From 898f0c05bdaa45492e6b0fc3d17812edab3c0b09 Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Tue, 15 Sep 2020 14:54:11 -0700 Subject: [PATCH] CS144 Lab checkpoint 0 --- .clang-format | 26 + .gitignore | 2 + CMakeLists.txt | 27 + README.md | 73 + apps/CMakeLists.txt | 1 + apps/webget.cc | 51 + compile_commands.json | 1 + doctests/CMakeLists.txt | 3 + doctests/address_dt.cc | 21 + doctests/address_example_1.cc | 1 + doctests/address_example_2.cc | 1 + doctests/address_example_3.cc | 1 + doctests/parser_dt.cc | 15 + doctests/parser_example.cc | 32 + doctests/socket_dt.cc | 26 + doctests/socket_example_1.cc | 20 + doctests/socket_example_2.cc | 26 + doctests/socket_example_3.cc | 14 + etc/Doxyfile.in | 48 + etc/build_defs.cmake | 6 + etc/build_type.cmake | 16 + etc/cflags.cmake | 20 + etc/clang_format.cmake | 23 + etc/clang_tidy.cmake | 33 + etc/cppcheck.cmake | 18 + etc/cppreference-doxygen-web.tag.xml | 35489 +++++++++++++++++++++++++ etc/doxygen.cmake | 12 + etc/linux-man-doxygen-web.tag.xml | 16735 ++++++++++++ etc/rfc-doxygen-web.tag.xml | 33 + etc/sponge_doxygen.css | 11 + etc/sponge_small.png | Bin 0 -> 18549 bytes etc/tests.cmake | 238 + etc/tunconfig | 1 + libsponge/CMakeLists.txt | 2 + libsponge/byte_stream.cc | 53 + libsponge/byte_stream.hh | 85 + libsponge/util/address.cc | 134 + libsponge/util/address.hh | 85 + libsponge/util/buffer.cc | 104 + libsponge/util/buffer.hh | 130 + libsponge/util/eventloop.cc | 145 + libsponge/util/eventloop.hh | 76 + libsponge/util/file_descriptor.cc | 110 + libsponge/util/file_descriptor.hh | 117 + libsponge/util/parser.cc | 72 + libsponge/util/parser.hh | 79 + libsponge/util/socket.cc | 168 + libsponge/util/socket.hh | 124 + libsponge/util/tun.cc | 36 + libsponge/util/tun.hh | 29 + libsponge/util/util.cc | 144 + libsponge/util/util.hh | 72 + tests/CMakeLists.txt | 13 + tests/byte_stream_capacity.cc | 113 + tests/byte_stream_construction.cc | 40 + tests/byte_stream_many_writes.cc | 46 + tests/byte_stream_one_write.cc | 134 + tests/byte_stream_test_harness.cc | 184 + tests/byte_stream_test_harness.hh | 142 + tests/byte_stream_two_writes.cc | 133 + tests/test_err_if.hh | 18 + tests/test_should_be.hh | 28 + tests/webget_t.sh | 10 + writeups/lab0.md | 20 + 64 files changed, 55670 insertions(+) create mode 100644 .clang-format create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 README.md create mode 100644 apps/CMakeLists.txt create mode 100644 apps/webget.cc create mode 120000 compile_commands.json create mode 100644 doctests/CMakeLists.txt create mode 100644 doctests/address_dt.cc create mode 100644 doctests/address_example_1.cc create mode 100644 doctests/address_example_2.cc create mode 100644 doctests/address_example_3.cc create mode 100644 doctests/parser_dt.cc create mode 100644 doctests/parser_example.cc create mode 100644 doctests/socket_dt.cc create mode 100644 doctests/socket_example_1.cc create mode 100644 doctests/socket_example_2.cc create mode 100644 doctests/socket_example_3.cc create mode 100644 etc/Doxyfile.in create mode 100644 etc/build_defs.cmake create mode 100644 etc/build_type.cmake create mode 100644 etc/cflags.cmake create mode 100644 etc/clang_format.cmake create mode 100644 etc/clang_tidy.cmake create mode 100644 etc/cppcheck.cmake create mode 100644 etc/cppreference-doxygen-web.tag.xml create mode 100644 etc/doxygen.cmake create mode 100644 etc/linux-man-doxygen-web.tag.xml create mode 100644 etc/rfc-doxygen-web.tag.xml create mode 100644 etc/sponge_doxygen.css create mode 100644 etc/sponge_small.png create mode 100644 etc/tests.cmake create mode 100644 etc/tunconfig create mode 100644 libsponge/CMakeLists.txt create mode 100644 libsponge/byte_stream.cc create mode 100644 libsponge/byte_stream.hh create mode 100644 libsponge/util/address.cc create mode 100644 libsponge/util/address.hh create mode 100644 libsponge/util/buffer.cc create mode 100644 libsponge/util/buffer.hh create mode 100644 libsponge/util/eventloop.cc create mode 100644 libsponge/util/eventloop.hh create mode 100644 libsponge/util/file_descriptor.cc create mode 100644 libsponge/util/file_descriptor.hh create mode 100644 libsponge/util/parser.cc create mode 100644 libsponge/util/parser.hh create mode 100644 libsponge/util/socket.cc create mode 100644 libsponge/util/socket.hh create mode 100644 libsponge/util/tun.cc create mode 100644 libsponge/util/tun.hh create mode 100644 libsponge/util/util.cc create mode 100644 libsponge/util/util.hh create mode 100644 tests/CMakeLists.txt create mode 100644 tests/byte_stream_capacity.cc create mode 100644 tests/byte_stream_construction.cc create mode 100644 tests/byte_stream_many_writes.cc create mode 100644 tests/byte_stream_one_write.cc create mode 100644 tests/byte_stream_test_harness.cc create mode 100644 tests/byte_stream_test_harness.hh create mode 100644 tests/byte_stream_two_writes.cc create mode 100644 tests/test_err_if.hh create mode 100644 tests/test_should_be.hh create mode 100755 tests/webget_t.sh create mode 100644 writeups/lab0.md diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..e1dec05 --- /dev/null +++ b/.clang-format @@ -0,0 +1,26 @@ +--- +Language: Cpp +BasedOnStyle: LLVM +AllowAllParametersOfDeclarationOnNextLine: false +AlwaysBreakTemplateDeclarations: true +BinPackArguments: false +BinPackParameters: false +BreakConstructorInitializers: BeforeComma +ColumnLimit: 120 +CommentPragmas: '^(!|NOLINT)' +ConstructorInitializerAllOnOneLineOrOnePerLine: true +IncludeBlocks: Regroup +IncludeCategories: + - Regex: '^<.*' + Priority: 2 + - Regex: '.*' + Priority: 1 +IncludeIsMainRegex: '(_dt|_win)?$' +IndentCaseLabels: true +IndentWidth: 4 +KeepEmptyLinesAtTheStartOfBlocks: false +PenaltyReturnTypeOnItsOwnLine: 200 +SpacesBeforeTrailingComments: 2 +TabWidth: 4 +UseTab: Never +... diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..08ee2d0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/build +/.ccls-cache diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..7f560fa --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required (VERSION 2.8.5) +cmake_policy (SET CMP0054 NEW) +project (Sponge) + +include (etc/build_defs.cmake) +include (etc/build_type.cmake) +include (etc/cflags.cmake) + +include (etc/doxygen.cmake) + +include (etc/clang_format.cmake) +include (etc/clang_tidy.cmake) +include (etc/cppcheck.cmake) + +include_directories ("${PROJECT_SOURCE_DIR}/libsponge/util") +include_directories ("${PROJECT_SOURCE_DIR}/libsponge/tcp_helpers") +include_directories ("${PROJECT_SOURCE_DIR}/libsponge") + +add_subdirectory ("${PROJECT_SOURCE_DIR}/libsponge") + +add_subdirectory ("${PROJECT_SOURCE_DIR}/apps") + +add_subdirectory ("${PROJECT_SOURCE_DIR}/tests") + +add_subdirectory ("${PROJECT_SOURCE_DIR}/doctests") + +include (etc/tests.cmake) diff --git a/README.md b/README.md new file mode 100644 index 0000000..3aaf023 --- /dev/null +++ b/README.md @@ -0,0 +1,73 @@ +For build prereqs, see [the CS144 VM setup instructions](https://web.stanford.edu/class/cs144/vm_howto). + +## Sponge quickstart + +To set up your build directory: + + $ mkdir -p /build + $ cd /build + $ cmake .. + +**Note:** all further commands listed below should be run from the `build` dir. + +To build: + + $ make + +You can use the `-j` switch to build in parallel, e.g., + + $ make -j$(nproc) + +To test (after building; make sure you've got the [build prereqs](https://web.stanford.edu/class/cs144/vm_howto) installed!) + + $ make check_labN *(replacing N with a checkpoint number)* + +The first time you run `make check_lab...`, it will run `sudo` to configure two +[TUN](https://www.kernel.org/doc/Documentation/networking/tuntap.txt) devices for use during +testing. + +### build options + +You can specify a different compiler when you run cmake: + + $ CC=clang CXX=clang++ cmake .. + +You can also specify `CLANG_TIDY=` or `CLANG_FORMAT=` (see "other useful targets", below). + +Sponge's build system supports several different build targets. By default, cmake chooses the `Release` +target, which enables the usual optimizations. The `Debug` target enables debugging and reduces the +level of optimization. To choose the `Debug` target: + + $ cmake .. -DCMAKE_BUILD_TYPE=Debug + +The following targets are supported: + +- `Release` - optimizations +- `Debug` - debug symbols and `-Og` +- `RelASan` - release build with [ASan](https://en.wikipedia.org/wiki/AddressSanitizer) and + [UBSan](https://developers.redhat.com/blog/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/) +- `RelTSan` - release build with + [ThreadSan](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Thread_Sanitizer) +- `DebugASan` - debug build with ASan and UBSan +- `DebugTSan` - debug build with ThreadSan + +Of course, you can combine all of the above, e.g., + + $ CLANG_TIDY=clang-tidy-6.0 CXX=clang++-6.0 .. -DCMAKE_BUILD_TYPE=Debug + +**Note:** if you want to change `CC`, `CXX`, `CLANG_TIDY`, or `CLANG_FORMAT`, you need to remove +`build/CMakeCache.txt` and re-run cmake. (This isn't necessary for `CMAKE_BUILD_TYPE`.) + +### other useful targets + +To generate documentation (you'll need `doxygen`; output will be in `build/doc/`): + + $ make doc + +To format (you'll need `clang-format`): + + $ make format + +To see all available targets, + + $ make help diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt new file mode 100644 index 0000000..e77e5fb --- /dev/null +++ b/apps/CMakeLists.txt @@ -0,0 +1 @@ +add_sponge_exec (webget) diff --git a/apps/webget.cc b/apps/webget.cc new file mode 100644 index 0000000..3b85ce3 --- /dev/null +++ b/apps/webget.cc @@ -0,0 +1,51 @@ +#include "socket.hh" +#include "util.hh" + +#include +#include + +using namespace std; + +void get_URL(const string &host, const string &path) { + // Your code here. + + // You will need to connect to the "http" service on + // the computer whose name is in the "host" string, + // then request the URL path given in the "path" string. + + // Then you'll need to print out everything the server sends back, + // (not just one call to read() -- everything) until you reach + // the "eof" (end of file). + + cerr << "Function called: get_URL(" << host << ", " << path << ").\n"; + cerr << "Warning: get_URL() has not been implemented yet.\n"; +} + +int main(int argc, char *argv[]) { + try { + if (argc <= 0) { + abort(); // For sticklers: don't try to access argv[0] if argc <= 0. + } + + // The program takes two command-line arguments: the hostname and "path" part of the URL. + // Print the usage message unless there are these two arguments (plus the program name + // itself, so arg count = 3 in total). + if (argc != 3) { + cerr << "Usage: " << argv[0] << " HOST PATH\n"; + cerr << "\tExample: " << argv[0] << " stanford.edu /class/cs144\n"; + return EXIT_FAILURE; + } + + // Get the command-line arguments. + const string host = argv[1]; + const string path = argv[2]; + + // Call the student-written function. + get_URL(host, path); + } catch (const exception &e) { + cerr << e.what() << "\n"; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/compile_commands.json b/compile_commands.json new file mode 120000 index 0000000..25eb4b2 --- /dev/null +++ b/compile_commands.json @@ -0,0 +1 @@ +build/compile_commands.json \ No newline at end of file diff --git a/doctests/CMakeLists.txt b/doctests/CMakeLists.txt new file mode 100644 index 0000000..b7f6d04 --- /dev/null +++ b/doctests/CMakeLists.txt @@ -0,0 +1,3 @@ +add_sponge_exec (address_dt) +add_sponge_exec (parser_dt) +add_sponge_exec (socket_dt) diff --git a/doctests/address_dt.cc b/doctests/address_dt.cc new file mode 100644 index 0000000..63cb093 --- /dev/null +++ b/doctests/address_dt.cc @@ -0,0 +1,21 @@ +#include "address.hh" + +#include +#include +#include + +int main() { + try { +#include "address_example_1.cc" +#include "address_example_2.cc" +#include "address_example_3.cc" + if ((google_webserver.port() != 443) || (a_dns_server_numeric != 0x12'47'00'97)) { + throw std::runtime_error("unexpected value"); + } + } catch (const std::exception &e) { + std::cerr << "This test requires Internet access and working DNS.\n"; + std::cerr << "Error: " << e.what() << "\n"; + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} diff --git a/doctests/address_example_1.cc b/doctests/address_example_1.cc new file mode 100644 index 0000000..d21a23b --- /dev/null +++ b/doctests/address_example_1.cc @@ -0,0 +1 @@ +const Address google_webserver("www.google.com", "https"); diff --git a/doctests/address_example_2.cc b/doctests/address_example_2.cc new file mode 100644 index 0000000..02353f8 --- /dev/null +++ b/doctests/address_example_2.cc @@ -0,0 +1 @@ +const Address a_dns_server("18.71.0.151", 53); diff --git a/doctests/address_example_3.cc b/doctests/address_example_3.cc new file mode 100644 index 0000000..7f06cb4 --- /dev/null +++ b/doctests/address_example_3.cc @@ -0,0 +1 @@ +const uint32_t a_dns_server_numeric = a_dns_server.ipv4_numeric(); diff --git a/doctests/parser_dt.cc b/doctests/parser_dt.cc new file mode 100644 index 0000000..f163d0d --- /dev/null +++ b/doctests/parser_dt.cc @@ -0,0 +1,15 @@ +#include "parser.hh" + +#include +#include +#include +#include + +int main() { + try { +#include "parser_example.cc" + } catch (...) { + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} diff --git a/doctests/parser_example.cc b/doctests/parser_example.cc new file mode 100644 index 0000000..604e389 --- /dev/null +++ b/doctests/parser_example.cc @@ -0,0 +1,32 @@ +const uint32_t val1 = 0xdeadbeef; +const uint16_t val2 = 0xc0c0; +const uint8_t val3 = 0xff; +const uint32_t val4 = 0x0c05fefe; + +// first, let's serialize it +std::string buffer; +buffer.push_back(0x32); // manually added to beginning of string +{ + NetUnparser p; + p.u32(buffer, val1); + p.u16(buffer, val2); + p.u8(buffer, val3); + p.u32(buffer, val4); +} // p goes out of scope, data is in buffer + +// now let's deserialize it +uint8_t out0, out3; +uint32_t out1, out4; +uint16_t out2; +{ + NetParser p{std::string(buffer)}; // NOTE: starting at offset 0 + out0 = p.u8(); // buffer[0], which we manually set to 0x32 above + out1 = p.u32(); // parse out val1 + out2 = p.u16(); // val2 + out3 = p.u8(); // val3 + out4 = p.u32(); // val4 +} // p goes out of scope + +if (out0 != 0x32 || out1 != val1 || out2 != val2 || out3 != val3 || out4 != val4) { + throw std::runtime_error("bad parse"); +} diff --git a/doctests/socket_dt.cc b/doctests/socket_dt.cc new file mode 100644 index 0000000..a0136da --- /dev/null +++ b/doctests/socket_dt.cc @@ -0,0 +1,26 @@ +#include "socket.hh" + +#include "address.hh" +#include "util.hh" + +#include +#include +#include +#include +#include +#include + +int main() { + try { + { +#include "socket_example_1.cc" + } { +#include "socket_example_2.cc" + } { +#include "socket_example_3.cc" + } + } catch (...) { + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} diff --git a/doctests/socket_example_1.cc b/doctests/socket_example_1.cc new file mode 100644 index 0000000..5cf2bd4 --- /dev/null +++ b/doctests/socket_example_1.cc @@ -0,0 +1,20 @@ +const uint16_t portnum = ((std::random_device()()) % 50000) + 1025; + +// create a UDP socket and bind it to a local address +UDPSocket sock1; +sock1.bind(Address("127.0.0.1", portnum)); + +// create another UDP socket and send a datagram to the first socket without connecting +UDPSocket sock2; +sock2.sendto(Address("127.0.0.1", portnum), "hi there"); + +// receive sent datagram, connect the socket to the peer's address, and send a response +auto recvd = sock1.recv(); +sock1.connect(recvd.source_address); +sock1.send("hi yourself"); + +auto recvd2 = sock2.recv(); + +if (recvd.payload != "hi there" || recvd2.payload != "hi yourself") { + throw std::runtime_error("wrong data received"); +} diff --git a/doctests/socket_example_2.cc b/doctests/socket_example_2.cc new file mode 100644 index 0000000..08960cf --- /dev/null +++ b/doctests/socket_example_2.cc @@ -0,0 +1,26 @@ +const uint16_t portnum = ((std::random_device()()) % 50000) + 1025; + +// create a TCP socket, bind it to a local address, and listen +TCPSocket sock1; +sock1.bind(Address("127.0.0.1", portnum)); +sock1.listen(1); + +// create another socket and connect to the first one +TCPSocket sock2; +sock2.connect(Address("127.0.0.1", portnum)); + +// accept the connection +auto sock3 = sock1.accept(); +sock3.write("hi there"); + +auto recvd = sock2.read(); +sock2.write("hi yourself"); + +auto recvd2 = sock3.read(); + +sock1.close(); // don't need to accept any more connections +sock2.close(); // you can call close(2) on a socket +sock3.shutdown(SHUT_RDWR); // you can also shutdown(2) a socket +if (recvd != "hi there" || recvd2 != "hi yourself") { + throw std::runtime_error("wrong data received"); +} diff --git a/doctests/socket_example_3.cc b/doctests/socket_example_3.cc new file mode 100644 index 0000000..3e6d34b --- /dev/null +++ b/doctests/socket_example_3.cc @@ -0,0 +1,14 @@ +// create a pair of stream sockets +std::array fds{}; +SystemCall("socketpair", ::socketpair(AF_UNIX, SOCK_STREAM, 0, fds.data())); +LocalStreamSocket pipe1{FileDescriptor(fds[0])}, pipe2{FileDescriptor(fds[1])}; + +pipe1.write("hi there"); +auto recvd = pipe2.read(); + +pipe2.write("hi yourself"); +auto recvd2 = pipe1.read(); + +if (recvd != "hi there" || recvd2 != "hi yourself") { + throw std::runtime_error("wrong data received"); +} diff --git a/etc/Doxyfile.in b/etc/Doxyfile.in new file mode 100644 index 0000000..d4a75fb --- /dev/null +++ b/etc/Doxyfile.in @@ -0,0 +1,48 @@ +# Doxyfile 1.8.14 + +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "Sponge" +PROJECT_BRIEF = "CS144's user-space TCP library" +PROJECT_LOGO = "@PROJECT_SOURCE_DIR@/etc/sponge_small.png" +INPUT = @PROJECT_SOURCE_DIR@ +RECURSIVE = YES +EXCLUDE = @PROJECT_SOURCE_DIR@/etc @PROJECT_SOURCE_DIR@/build @PROJECT_SOURCE_DIR@/tests @PROJECT_SOURCE_DIR@/writeups +OUTPUT_DIRECTORY = "@PROJECT_BINARY_DIR@/doc" +CASE_SENSE_NAMES = NO +SORT_BRIEF_DOCS = YES +SORT_MEMBERS_CTORS_1ST = YES +SHOW_NAMESPACES = NO +USE_MDFILE_AS_MAINPAGE = @PROJECT_SOURCE_DIR@/README.md +SOURCE_BROWSER = YES +EXT_LINKS_IN_WINDOW = YES +INCLUDE_PATH = @PROJECT_SOURCE_DIR@/libsponge +TAGFILES = "@PROJECT_SOURCE_DIR@/etc/cppreference-doxygen-web.tag.xml=https://en.cppreference.com/w/" +TAGFILES += "@PROJECT_SOURCE_DIR@/etc/linux-man-doxygen-web.tag.xml=https://man7.org/linux/man-pages/" +TAGFILES += "@PROJECT_SOURCE_DIR@/etc/rfc-doxygen-web.tag.xml=https://tools.ietf.org/html/" +HIDE_UNDOC_RELATIONS = NO +INLINE_GROUPED_CLASSES = YES +INLINE_SIMPLE_STRUCTS = YES +HTML_COLORSTYLE_HUE = 204 +HTML_COLORSTYLE_SAT = 120 +HTML_COLORSTYLE_GAMMA = 60 +HTML_EXTRA_STYLESHEET = "@PROJECT_SOURCE_DIR@/etc/sponge_doxygen.css" +GENERATE_LATEX = NO +EXAMPLE_PATH = "@PROJECT_SOURCE_DIR@/doctests" + +# cmake detects whether dot is available +HAVE_DOT = @DOXYGEN_DOT_FOUND@ +CLASS_GRAPH = YES +TEMPLATE_RELATIONS = YES +DOT_IMAGE_FORMAT = png +INTERACTIVE_SVG = NO +COLLABORATION_GRAPH = NO + +# ??? temporary +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_ANON_NSPACES = YES + +# do u liek eclips +GENERATE_ECLIPSEHELP = NO +ECLIPSE_DOC_ID = edu.stanford.cs144.sponge diff --git a/etc/build_defs.cmake b/etc/build_defs.cmake new file mode 100644 index 0000000..5a91087 --- /dev/null +++ b/etc/build_defs.cmake @@ -0,0 +1,6 @@ +find_library (LIBPCAP pcap) +find_library (LIBPTHREAD pthread) +macro (add_sponge_exec exec_name) + add_executable ("${exec_name}" "${exec_name}.cc") + target_link_libraries ("${exec_name}" ${ARGN} sponge ${LIBPTHREAD}) +endmacro (add_sponge_exec) diff --git a/etc/build_type.cmake b/etc/build_type.cmake new file mode 100644 index 0000000..0a06154 --- /dev/null +++ b/etc/build_type.cmake @@ -0,0 +1,16 @@ +set (default_build_type "Release") +if (NOT (CMAKE_BUILD_TYPE_SHADOW STREQUAL CMAKE_BUILD_TYPE)) + if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message (STATUS "Setting build type to '${default_build_type}'") + set (CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) + else () + message (STATUS "Building in ${CMAKE_BUILD_TYPE} mode as requested.") + endif () + set (CMAKE_BUILD_TYPE_SHADOW ${CMAKE_BUILD_TYPE} CACHE STRING "used to detect changes in build type" FORCE) +endif () + +message (STATUS " NOTE: You can choose a build type by calling cmake with one of:") +message (STATUS " -DCMAKE_BUILD_TYPE=Release -- full optimizations") +message (STATUS " -DCMAKE_BUILD_TYPE=Debug -- better debugging experience in gdb") +message (STATUS " -DCMAKE_BUILD_TYPE=RelASan -- full optimizations plus address and undefined-behavior sanitizers") +message (STATUS " -DCMAKE_BUILD_TYPE=DebugASan -- debug plus sanitizers") diff --git a/etc/cflags.cmake b/etc/cflags.cmake new file mode 100644 index 0000000..12317e3 --- /dev/null +++ b/etc/cflags.cmake @@ -0,0 +1,20 @@ +set (CMAKE_CXX_STANDARD 17) +set (CMAKE_EXPORT_COMPILE_COMMANDS ON) +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -g -pedantic -pedantic-errors -Werror -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-qual -Wformat=2 -Weffc++ -Wold-style-cast") + +# check for supported compiler versions +set (IS_GNU_COMPILER ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")) +set (IS_CLANG_COMPILER ("${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc][Ll][Aa][Nn][Gg]")) +set (CXX_VERSION_LT_6 ("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 6)) +set (CXX_VERSION_LT_8 ("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 8)) +if ((${IS_GNU_COMPILER} AND ${CXX_VERSION_LT_8}) OR (${IS_CLANG_COMPILER} AND ${CXX_VERSION_LT_6})) + message (FATAL_ERROR "You must compile this project with g++ >= 8 or clang >= 6.") +endif () +if (${IS_CLANG_COMPILER}) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wloop-analysis") +endif () + +# add some flags for the Release, Debug, and DebugSan modes +set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb3 -Og") +set (CMAKE_CXX_FLAGS_DEBUGASAN "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=undefined -fsanitize=address") +set (CMAKE_CXX_FLAGS_RELASAN "${CMAKE_CXX_FLAGS_RELEASE} -fsanitize=undefined -fsanitize=address") diff --git a/etc/clang_format.cmake b/etc/clang_format.cmake new file mode 100644 index 0000000..37a3d76 --- /dev/null +++ b/etc/clang_format.cmake @@ -0,0 +1,23 @@ +if (NOT CLANG_FORMAT) + if (DEFINED ENV{CLANG_FORMAT}) + set (CLANG_FORMAT_TMP $ENV{CLANG_FORMAT}) + else (NOT DEFINED ENV{CLANG_FORMAT}) + set (CLANG_FORMAT_TMP clang-format-6.0) + endif (DEFINED ENV{CLANG_FORMAT}) + + # figure out which version of clang-format we're using + execute_process (COMMAND ${CLANG_FORMAT_TMP} --version RESULT_VARIABLE CLANG_FORMAT_RESULT OUTPUT_VARIABLE CLANG_FORMAT_VERSION) + if (${CLANG_FORMAT_RESULT} EQUAL 0) + string (REGEX MATCH "version [0-9]" CLANG_FORMAT_VERSION ${CLANG_FORMAT_VERSION}) + message (STATUS "Found clang-format " ${CLANG_FORMAT_VERSION}) + set(CLANG_FORMAT ${CLANG_FORMAT_TMP} CACHE STRING "clang-format executable name") + endif (${CLANG_FORMAT_RESULT} EQUAL 0) +endif (NOT CLANG_FORMAT) + +if (DEFINED CLANG_FORMAT) + file (GLOB_RECURSE ALL_CC_FILES *.cc) + file (GLOB_RECURSE ALL_HH_FILES *.hh) + add_custom_target (format ${CLANG_FORMAT} -i ${ALL_CC_FILES} ${ALL_HH_FILES} COMMENT "Formatted all source files.") +else (NOT DEFINED CLANG_FORMAT) + add_custom_target (format echo "Could not find clang-format. Please install and re-run cmake") +endif (DEFINED CLANG_FORMAT) diff --git a/etc/clang_tidy.cmake b/etc/clang_tidy.cmake new file mode 100644 index 0000000..0398a75 --- /dev/null +++ b/etc/clang_tidy.cmake @@ -0,0 +1,33 @@ +if (NOT CLANG_TIDY) + if (DEFINED ENV{CLANG_TIDY}) + set (CLANG_TIDY_TMP $ENV{CLANG_TIDY}) + else (NOT DEFINED ENV{CLANG_TIDY}) + set (CLANG_TIDY_TMP clang-tidy) + endif (DEFINED ENV{CLANG_TIDY}) + + # is clang-tidy available? + execute_process (COMMAND ${CLANG_TIDY_TMP} --version RESULT_VARIABLE CLANG_TIDY_RESULT OUTPUT_VARIABLE CLANG_TIDY_VERSION) + if (${CLANG_TIDY_RESULT} EQUAL 0) + string (REGEX MATCH "version [0-9]" CLANG_TIDY_VERSION ${CLANG_TIDY_VERSION}) + message (STATUS "Found clang-tidy " ${CLANG_TIDY_VERSION}) + set (CLANG_TIDY ${CLANG_TIDY_TMP} CACHE STRING "clang-tidy executable name") + endif (${CLANG_TIDY_RESULT} EQUAL 0) +endif (NOT CLANG_TIDY) + +if (DEFINED CLANG_TIDY) + file (GLOB_RECURSE ALL_CC_FILES *.cc) + set (CLANG_TIDY_CHECKS "'*,-fuchsia-*,-hicpp-signed-bitwise,-google-build-using-namespace,-android*,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-google-runtime-references,-readability-avoid-const-params-in-decls,-llvm-header-guard'") + foreach (tidy_target ${ALL_CC_FILES}) + get_filename_component (basename ${tidy_target} NAME) + get_filename_component (dirname ${tidy_target} DIRECTORY) + get_filename_component (basedir ${dirname} NAME) + set (tidy_target_name "${basedir}__${basename}") + set (tidy_command ${CLANG_TIDY} -checks=${CLANG_TIDY_CHECKS} -header-filter=.* -p=${PROJECT_BINARY_DIR} ${tidy_target}) + add_custom_target (tidy_quiet_${tidy_target_name} ${tidy_command} 2>/dev/null) + add_custom_target (tidy_${tidy_target_name} ${tidy_command}) + list (APPEND ALL_TIDY_TARGETS tidy_quiet_${tidy_target_name}) + list (APPEND ALL_TIDY_VERBOSE_TARGETS tidy_${tidy_target_name}) + endforeach (tidy_target) + add_custom_target (tidy DEPENDS ${ALL_TIDY_TARGETS}) + add_custom_target (tidy_verbose DEPENDS ${ALL_TIDY_VERBOSE_TARGETS}) +endif (DEFINED CLANG_TIDY) diff --git a/etc/cppcheck.cmake b/etc/cppcheck.cmake new file mode 100644 index 0000000..486cefb --- /dev/null +++ b/etc/cppcheck.cmake @@ -0,0 +1,18 @@ +if (NOT CPPCHECK) + if (DEFINED ENV{CPPCHECK}) + set (CPPCHECK_TMP $ENV{CPPCHECK}) + else (NOT DEFINED ENV{CPPCHECK}) + set (CPPCHECK_TMP cppcheck) + endif () + + # is cppcheck available? + execute_process (COMMAND ${CPPCHECK_TMP} --version RESULT_VARIABLE CPPCHECK_RESULT OUTPUT_VARIABLE CPPCHECK_OUTPUT) + if (${CPPCHECK_RESULT} EQUAL 0) + message (STATUS "Found cppcheck") + set (CPPCHECK ${CPPCHECK_TMP} CACHE STRING "cppcheck executable name") + endif() +endif (NOT CPPCHECK) + +if (DEFINED CPPCHECK) + add_custom_target (cppcheck ${CPPCHECK} --enable=all --project="${PROJECT_BINARY_DIR}/compile_commands.json") +endif (DEFINED CPPCHECK) diff --git a/etc/cppreference-doxygen-web.tag.xml b/etc/cppreference-doxygen-web.tag.xml new file mode 100644 index 0000000..ea8388b --- /dev/null +++ b/etc/cppreference-doxygen-web.tag.xml @@ -0,0 +1,35489 @@ + + + + std + + std::is_function + + T + atomic_fetch_and_explicit + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + atomic_fetch_xor_explicit + cpp/atomic/atomic_fetch_xor + + (T... args) + + + T + set_unexpected + cpp/error/set_unexpected + + (T... args) + + std::input_iterator_tag + std::logical_and + std::is_integral + std::money_get + + T + fputs + cpp/io/c/fputs + + (T... args) + + std::basic_ofstream + std::ratio_subtract + + T + modf + cpp/numeric/math/modf + + (T... args) + + std::size_t + + T + not2 + cpp/utility/functional/not2 + + (T... args) + + + T + strlen + cpp/string/byte/strlen + + (T... args) + + + T + exp2 + cpp/numeric/math/exp2 + + (T... args) + + std::ctype_byname + std::wcout + + T + setiosflags + cpp/io/manip/setiosflags + + (T... args) + + + T + adjacent_difference + cpp/algorithm/adjacent_difference + + (T... args) + + + T + cos + cpp/numeric/math/cos + + (T... args) + + + T + fwscanf + cpp/io/c/fwscanf + + (T... args) + + + T + atomic_init + cpp/atomic/atomic_init + + (T... args) + + std::fstream + std::valarray + std::ratio_greater_equal + + T + forward_as_tuple + cpp/utility/tuple/forward_as_tuple + + (T... args) + + std::remove_extent + std::ratio_greater + + T + abort + cpp/utility/program/abort + + (T... args) + + + T + wcsncmp + cpp/string/wide/wcsncmp + + (T... args) + + std::intptr_t + std::regex_iterator + + T + set_intersection + cpp/algorithm/set_intersection + + (T... args) + + std::lock_guard + std::wbuffer_convert + std::modulus + std::ratio_divide + + T + atomic_signal_fence + cpp/atomic/atomic_signal_fence + + (T... args) + + + T + llabs + cpp/numeric/math/abs + + (T... args) + + + T + make_move_iterator + cpp/iterator/make_move_iterator + + (T... args) + + std::ostreambuf_iterator + std::dynarray + std::is_nothrow_move_constructible + std::vector + + T + scanf + cpp/io/c/fscanf + + (T... args) + + std::match_results + std::back_insert_iterator + + T + nextafter + cpp/numeric/math/nextafter + + (T... args) + + std::iterator + std::int8_t + + T + stol + cpp/string/basic_string/stol + + (T... args) + + + T + strcspn + cpp/string/byte/strcspn + + (T... args) + + + T + ungetwc + cpp/io/c/ungetwc + + (T... args) + + + T + transform + cpp/algorithm/transform + + (T... args) + + std::student_t_distribution + std::mt19937_64 + std::runtime_error + + T + putc + cpp/io/c/fputc + + (T... args) + + + T + iswdigit + cpp/string/wide/iswdigit + + (T... args) + + std::ranlux24_base + + T + rint + cpp/numeric/math/rint + + (T... args) + + std::allocator_traits + + T + memset + cpp/string/byte/memset + + (T... args) + + + T + isgraph + cpp/string/byte/isgraph + + (T... args) + + std::codecvt + std::ratio_less_equal + + T + replace_copy_if + cpp/algorithm/replace_copy + + (T... args) + + + T + scalbn + cpp/numeric/math/scalbn + + (T... args) + + std::condition_variable_any + + T + partial_sort_copy + cpp/algorithm/partial_sort_copy + + (T... args) + + std::deca + std::extreme_value_distribution + std::cout + std::decay + std::is_trivially_move_assignable + std::adopt_lock_t + + T + make_exception_ptr + cpp/error/make_exception_ptr + + (T... args) + + std::wcerr + + T + frexp + cpp/numeric/math/frexp + + (T... args) + + std::lognormal_distribution + + T + isxdigit + cpp/string/byte/isxdigit + + (T... args) + + std::wclog + + T + atomic_exchange_explicit + cpp/atomic/atomic_exchange + + (T... args) + + + T + wprintf + cpp/io/c/fwprintf + + (T... args) + + std::char_traits + std::remove_reference + + T + fdim + cpp/numeric/math/fdim + + (T... args) + + std::num_get + + T + wctype + cpp/string/wide/wctype + + (T... args) + + std::is_pointer + + T + mbrtoc32 + cpp/string/multibyte/mbrtoc32 + + (T... args) + + + T + setw + cpp/io/manip/setw + + (T... args) + + + T + get_temporary_buffer + cpp/memory/get_temporary_buffer + + (T... args) + + + T + fmax + cpp/numeric/math/fmax + + (T... args) + + std::multiset + + T + atomic_thread_fence + cpp/atomic/atomic_thread_fence + + (T... args) + + + T + atomic_exchange + cpp/atomic/atomic_exchange + + (T... args) + + std::weak_ptr + std::bidirectional_iterator_tag + std::wstring_convert + + T + fgetwc + cpp/io/c/fgetwc + + (T... args) + + + T + swprintf + cpp/io/c/fwprintf + + (T... args) + + + T + prev_permutation + cpp/algorithm/prev_permutation + + (T... args) + + std::greater_equal + std::is_trivially_constructible + + T + max_element + cpp/algorithm/max_element + + (T... args) + + std::string + std::discrete_distribution + std::wostream + std::is_polymorphic + + T + set_symmetric_difference + cpp/algorithm/set_symmetric_difference + + (T... args) + + + T + wcscpy + cpp/string/wide/wcscpy + + (T... args) + + + T + const_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + + T + minmax_element + cpp/algorithm/minmax_element + + (T... args) + + + T + wcstok + cpp/string/wide/wcstok + + (T... args) + + + T + ref + cpp/utility/functional/ref + + (T... args) + + std::reverse_iterator + + T + feupdateenv + cpp/numeric/fenv/feupdateenv + + (T... args) + + std::bad_array_new_length + + T + endl + cpp/io/manip/endl + + (T... args) + + + T + end + cpp/iterator/end + + (T... args) + + std::condition_variable + + T + wmemmove + cpp/string/wide/wmemmove + + (T... args) + + + T + fmin + cpp/numeric/math/fmin + + (T... args) + + + T + uninitialized_fill_n + cpp/memory/uninitialized_fill_n + + (T... args) + + std::ranlux48 + + T + nouppercase + cpp/io/manip/uppercase + + (T... args) + + + T + noshowpos + cpp/io/manip/showpos + + (T... args) + + + T + ctime + cpp/chrono/c/ctime + + (T... args) + + + T + wmemset + cpp/string/wide/wmemset + + (T... args) + + std::unexpected_handler + + T + iswpunct + cpp/string/wide/iswpunct + + (T... args) + + std::piecewise_constant_distribution + std::codecvt_base + std::set + + T + pop_heap + cpp/algorithm/pop_heap + + (T... args) + + + T + sprintf + cpp/io/c/fprintf + + (T... args) + + + T + fixed + cpp/io/manip/fixed + + (T... args) + + + T + make_shared + cpp/memory/shared_ptr/make_shared + + (T... args) + + std::forward_iterator_tag + std::codecvt_byname + std::pointer_safety + std::uint_least64_t + std::placeholders + std::nothrow_t + std::is_nothrow_copy_assignable + std::is_same + + T + make_heap + cpp/algorithm/make_heap + + (T... args) + + + T + fmod + cpp/numeric/math/fmod + + (T... args) + + std::unique_lock + std::basic_ostringstream + + T + atol + cpp/string/byte/atoi + + (T... args) + + std::is_error_code_enum + std::time_put_byname + + T + uninitialized_copy + cpp/memory/uninitialized_copy + + (T... args) + + std::time_get + + T + dynamic_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + + T + set_union + cpp/algorithm/set_union + + (T... args) + + std::regex + std::cin + + T + hexfloat + cpp/io/manip/fixed + + (T... args) + + + T + vswprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + asctime + cpp/chrono/c/asctime + + (T... args) + + std::unordered_map + + T + iswspace + cpp/string/wide/iswspace + + (T... args) + + std::initializer_list + + T + nan + cpp/numeric/math/nan + + (T... args) + + + T + sort + cpp/algorithm/sort + + (T... args) + + + T + quick_exit + cpp/utility/program/quick_exit + + (T... args) + + std::is_const + + T + log10 + cpp/numeric/math/log10 + + (T... args) + + std::basic_regex + + T + mbstowcs + cpp/string/multibyte/mbstowcs + + (T... args) + + + T + isspace + cpp/string/byte/isspace + + (T... args) + + std::poisson_distribution + std::bad_typeid + + T + strncat + cpp/string/byte/strncat + + (T... args) + + std::less_equal + + T + isinf + cpp/numeric/math/isinf + + (T... args) + + + T + atof + cpp/string/byte/atof + + (T... args) + + std::sig_atomic_t + + T + erf + cpp/numeric/math/erf + + (T... args) + + + T + is_sorted_until + cpp/algorithm/is_sorted_until + + (T... args) + + + T + cbrt + cpp/numeric/math/cbrt + + (T... args) + + + T + log1p + cpp/numeric/math/log1p + + (T... args) + + + T + return_temporary_buffer + cpp/memory/return_temporary_buffer + + (T... args) + + + T + mbsrtowcs + cpp/string/multibyte/mbsrtowcs + + (T... args) + + + T + feraiseexcept + cpp/numeric/fenv/feraiseexcept + + (T... args) + + + T + fseek + cpp/io/c/fseek + + (T... args) + + std::make_unsigned + std::basic_filebuf + + T + atomic_fetch_or_explicit + cpp/atomic/atomic_fetch_or + + (T... args) + + std::logical_or + + T + log + cpp/numeric/math/log + + (T... args) + + + T + putchar + cpp/io/c/putchar + + (T... args) + + + T + make_tuple + cpp/utility/tuple/make_tuple + + (T... args) + + + T + expm1 + cpp/numeric/math/expm1 + + (T... args) + + std::wstringbuf + + T + fma + cpp/numeric/math/fma + + (T... args) + + std::kilo + std::bernoulli_distribution + + T + remove_copy_if + cpp/algorithm/remove_copy + + (T... args) + + + T + showpoint + cpp/io/manip/showpoint + + (T... args) + + std::int16_t + + T + fscanf + cpp/io/c/fscanf + + (T... args) + + + T + stable_partition + cpp/algorithm/stable_partition + + (T... args) + + std::basic_ios + std::int32_t + + T + fill_n + cpp/algorithm/fill_n + + (T... args) + + std::is_rvalue_reference + + T + remove_copy + cpp/algorithm/remove_copy + + (T... args) + + + T + atomic_compare_exchange_strong_explicit + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::integral_constant + std::wsmatch + + T + wctomb + cpp/string/multibyte/wctomb + + (T... args) + + + T + fgets + cpp/io/c/fgets + + (T... args) + + + T + remainder + cpp/numeric/math/remainder + + (T... args) + + std::cerr + std::codecvt_utf8 + + T + allocate_shared + cpp/memory/shared_ptr/allocate_shared + + (T... args) + + std::ratio_add + + T + unique + cpp/algorithm/unique + + (T... args) + + std::is_trivially_move_constructible + + T + includes + cpp/algorithm/includes + + (T... args) + + + T + iswalnum + cpp/string/wide/iswalnum + + (T... args) + + std::wcsub_match + + T + exit + cpp/utility/program/exit + + (T... args) + + + T + put_time + cpp/io/manip/put_time + + (T... args) + + + T + to_string + cpp/string/basic_string/to_string + + (T... args) + + + T + is_heap_until + cpp/algorithm/is_heap_until + + (T... args) + + std::is_member_pointer + + T + wcstold + cpp/string/wide/wcstof + + (T... args) + + std::wstreampos + std::uint_least16_t + + T + stold + cpp/string/basic_string/stof + + (T... args) + + + T + ftell + cpp/io/c/ftell + + (T... args) + + std::tuple + + T + copy_backward + cpp/algorithm/copy_backward + + (T... args) + + + T + wcstoll + cpp/string/wide/wcstol + + (T... args) + + + T + perror + cpp/io/c/perror + + (T... args) + + + T + vwscanf + cpp/io/c/vfwscanf + + (T... args) + + + T + stable_sort + cpp/algorithm/stable_sort + + (T... args) + + std::make_signed + + T + generic_category + cpp/error/generic_category + + (T... args) + + + T + abs(int) + cpp/numeric/math/abs + + (T... args) + + + T + fgetws + cpp/io/c/fgetws + + (T... args) + + std::logic_error + std::sregex_iterator + + T + showpos + cpp/io/manip/showpos + + (T... args) + + std::int_least64_t + + T + exp + cpp/numeric/math/exp + + (T... args) + + std::binary_negate + + T + fill + cpp/algorithm/fill + + (T... args) + + + T + isalpha + cpp/string/byte/isalpha + + (T... args) + + std::discard_block_engine + std::is_trivially_assignable + std::add_cv + + T + lgamma + cpp/numeric/math/lgamma + + (T... args) + + std::pico + std::iterator_traits + std::is_trivially_default_constructible + + T + feclearexcept + cpp/numeric/fenv/feclearexcept + + (T... args) + + + T + wcsncpy + cpp/string/wide/wcsncpy + + (T... args) + + + T + undeclare_reachable + cpp/memory/gc/undeclare_reachable + + (T... args) + + std::shared_ptr + + T + oct + cpp/io/manip/hex + + (T... args) + + std::bad_alloc + std::ostringstream + std::basic_fstream + std::stringbuf + std::exponential_distribution + std::uint32_t + + T + strspn + cpp/string/byte/strspn + + (T... args) + + std::wcregex_iterator + std::bad_function_call + + T + realloc + cpp/memory/c/realloc + + (T... args) + + + T + copy + cpp/algorithm/copy + + (T... args) + + + T + binary_search + cpp/algorithm/binary_search + + (T... args) + + + T + system_category + cpp/error/system_category + + (T... args) + + + T + mbrtowc + cpp/string/multibyte/mbrtowc + + (T... args) + + std::false_type + + T + strtof + cpp/string/byte/strtof + + (T... args) + + + T + mem_fn + cpp/utility/functional/mem_fn + + (T... args) + + std::wregex + + T + distance + cpp/iterator/distance + + (T... args) + + + T + lock + cpp/thread/lock + + (T... args) + + + T + strcmp + cpp/string/byte/strcmp + + (T... args) + + + T + tmpfile + cpp/io/c/tmpfile + + (T... args) + + + T + hypot + cpp/numeric/math/hypot + + (T... args) + + + T + getenv + cpp/utility/program/getenv + + (T... args) + + + T + strrchr + cpp/string/byte/strrchr + + (T... args) + + + T + count + cpp/algorithm/count + + (T... args) + + std::uint_least8_t + + T + tan + cpp/numeric/math/tan + + (T... args) + + + T + strftime + cpp/chrono/c/strftime + + (T... args) + + std::uniform_real_distribution + + T + stod + cpp/string/basic_string/stof + + (T... args) + + + T + towupper + cpp/string/wide/towupper + + (T... args) + + std::smatch + std::cregex_token_iterator + std::range_error + std::is_assignable + + T + atoll + cpp/string/byte/atoi + + (T... args) + + std::is_copy_assignable + std::invalid_argument + + T + atomic_store + cpp/atomic/atomic_store + + (T... args) + + std::is_unsigned + std::jmp_buf + std::is_class + std::geometric_distribution + + T + stoi + cpp/string/basic_string/stol + + (T... args) + + + T + rethrow_exception + cpp/error/rethrow_exception + + (T... args) + + std::uint_fast8_t + + T + sin + cpp/numeric/math/sin + + (T... args) + + + T + atomic_fetch_sub_explicit + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + unexpected + cpp/error/unexpected + + (T... args) + + + T + mbtowc + cpp/string/multibyte/mbtowc + + (T... args) + + std::mersenne_twister_engine + + T + get_time + cpp/io/manip/get_time + + (T... args) + + + T + partition + cpp/algorithm/partition + + (T... args) + + + T + next + cpp/iterator/next + + (T... args) + + std::is_arithmetic + std::negate + std::try_to_lock_t + std::wfilebuf + std::is_compound + std::iostream + std::is_object + + T + isfinite + cpp/numeric/math/isfinite + + (T... args) + + + T + boolalpha + cpp/io/manip/boolalpha + + (T... args) + + + T + fetestexcept + cpp/numeric/fenv/fetestexcept + + (T... args) + + + T + mbrlen + cpp/string/multibyte/mbrlen + + (T... args) + + std::recursive_mutex + std::is_copy_constructible + + T + iswgraph + cpp/string/wide/iswgraph + + (T... args) + + std::codecvt_utf8_utf16 + std::not_equal_to + std::is_destructible + std::int_fast32_t + + T + time + cpp/chrono/c/time + + (T... args) + + + T + atomic_compare_exchange_strong + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::rank + + T + wcschr + cpp/string/wide/wcschr + + (T... args) + + + T + uppercase + cpp/io/manip/uppercase + + (T... args) + + std::milli + std::deci + + T + lower_bound + cpp/algorithm/lower_bound + + (T... args) + + std::add_lvalue_reference + std::is_bind_expression + std::ios_base + + T + copy_if + cpp/algorithm/copy + + (T... args) + + std::ratio_less + std::int64_t + std::nullptr_t + + T + isnan + cpp/numeric/math/isnan + + (T... args) + + + T + has_facet + cpp/locale/has_facet + + (T... args) + + + T + kill_dependency + cpp/atomic/kill_dependency + + (T... args) + + + T + uninitialized_copy_n + cpp/memory/uninitialized_copy_n + + (T... args) + + std::stack + + T + feholdexcept + cpp/numeric/fenv/feholdexcept + + (T... args) + + + T + div + cpp/numeric/math/div + + (T... args) + + + T + at_quick_exit + cpp/utility/program/at_quick_exit + + (T... args) + + std::uint_fast64_t + std::is_reference + std::ratio + std::shared_future + std::u16streampos + + T + wcspbrk + cpp/string/wide/wcspbrk + + (T... args) + + + T + search + cpp/algorithm/search + + (T... args) + + std::wistream + std::aligned_storage + + T + find_first_of + cpp/algorithm/find_first_of + + (T... args) + + + T + iota + cpp/algorithm/iota + + (T... args) + + std::wstreambuf + + T + declare_reachable + cpp/memory/gc/declare_reachable + + (T... args) + + + T + atomic_compare_exchange_weak + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::binary_function + + T + strtod + cpp/string/byte/strtof + + (T... args) + + + T + accumulate + cpp/algorithm/accumulate + + (T... args) + + + T + wcsrchr + cpp/string/wide/wcsrchr + + (T... args) + + std::out_of_range + + T + min_element + cpp/algorithm/min_element + + (T... args) + + std::independent_bits_engine + + T + clearerr + cpp/io/c/clearerr + + (T... args) + + + T + random_shuffle + cpp/algorithm/random_shuffle + + (T... args) + + std::stringstream + std::tera + + T + iswalpha + cpp/string/wide/iswalpha + + (T... args) + + std::recursive_timed_mutex + std::nano + + T + atomic_fetch_and + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + wmemchr + cpp/string/wide/wmemchr + + (T... args) + + std::unordered_multimap + std::normal_distribution + + T + bsearch + cpp/algorithm/bsearch + + (T... args) + + + T + ilogb + cpp/numeric/math/ilogb + + (T... args) + + std::minstd_rand + std::is_signed + + T + unique_copy + cpp/algorithm/unique_copy + + (T... args) + + + T + _Exit + cpp/utility/program/_Exit + + (T... args) + + + T + move + cpp/utility/move + + (T... args) + + + T + find_end + cpp/algorithm/find_end + + (T... args) + + std::is_move_constructible + std::unique_ptr + + T + fesetexceptflag + cpp/numeric/fenv/feexceptflag + + (T... args) + + std::is_nothrow_copy_constructible + std::forward_list + std::errc + std::lconv + + T + nth_element + cpp/algorithm/nth_element + + (T... args) + + + T + gets + cpp/io/c/gets + + (T... args) + + + T + lexicographical_compare + cpp/algorithm/lexicographical_compare + + (T... args) + + + T + nearbyint + cpp/numeric/math/nearbyint + + (T... args) + + std::strstreambuf + std::locale + std::equal_to + + T + memcpy + cpp/string/byte/memcpy + + (T... args) + + + T + fwrite + cpp/io/c/fwrite + + (T... args) + + std::divides + std::collate_byname + + T + unitbuf + cpp/io/manip/unitbuf + + (T... args) + + + T + iswlower + cpp/string/wide/iswlower + + (T... args) + + + T + mblen + cpp/string/multibyte/mblen + + (T... args) + + + T + swscanf + cpp/io/c/fwscanf + + (T... args) + + + T + wcstoimax + cpp/string/wide/wcstoimax + + (T... args) + + std::domain_error + + T + fprintf + cpp/io/c/fprintf + + (T... args) + + + T + find_if + cpp/algorithm/find + + (T... args) + + std::is_empty + + T + strtoimax + cpp/string/byte/strtoimax + + (T... args) + + + T + isalnum + cpp/string/byte/isalnum + + (T... args) + + + T + atomic_fetch_add_explicit + cpp/atomic/atomic_fetch_add + + (T... args) + + std::is_nothrow_default_constructible + std::ratio_equal + + T + push_heap + cpp/algorithm/push_heap + + (T... args) + + + T + min + cpp/algorithm/min + + (T... args) + + + T + fwprintf + cpp/io/c/fwprintf + + (T... args) + + std::ostream + std::streamsize + + T + uncaught_exception + cpp/error/uncaught_exception + + (T... args) + + std::shared_lock + + T + strtoll + cpp/string/byte/strtol + + (T... args) + + std::uint8_t + + T + throw_with_nested + cpp/error/throw_with_nested + + (T... args) + + + T + shuffle + cpp/algorithm/random_shuffle + + (T... args) + + + T + isprint + cpp/string/byte/isprint + + (T... args) + + + T + get_new_handler + cpp/memory/new/get_new_handler + + (T... args) + + + T + call_once + cpp/thread/call_once + + (T... args) + + + T + trunc + cpp/numeric/math/trunc + + (T... args) + + + T + wcscspn + cpp/string/wide/wcscspn + + (T... args) + + std::enable_shared_from_this + std::ptrdiff_t + + T + mbrtoc16 + cpp/string/multibyte/mbrtoc16 + + (T... args) + + std::int_fast8_t + std::aligned_union + + T + lround + cpp/numeric/math/round + + (T... args) + + std::future + std::wcmatch + std::overflow_error + std::centi + + T + pow + cpp/numeric/math/pow + + (T... args) + + std::wssub_match + std::is_nothrow_move_assignable + std::pair + + T + tgamma + cpp/numeric/math/tgamma + + (T... args) + + + T + erfc + cpp/numeric/math/erfc + + (T... args) + + + T + llround + cpp/numeric/math/round + + (T... args) + + + T + abs(float) + cpp/numeric/math/fabs + + (T... args) + + + T + asinh + cpp/numeric/math/asinh + + (T... args) + + + T + feof + cpp/io/c/feof + + (T... args) + + std::wsregex_token_iterator + std::weibull_distribution + + T + noskipws + cpp/io/manip/skipws + + (T... args) + + std::less + std::multiplies + + T + find + cpp/algorithm/find + + (T... args) + + + T + atoi + cpp/string/byte/atoi + + (T... args) + + std::is_enum + + T + not1 + cpp/utility/functional/not1 + + (T... args) + + + T + vfscanf + cpp/io/c/vfscanf + + (T... args) + + std::unary_function + + T + stof + cpp/string/basic_string/stof + + (T... args) + + + T + regex_search + cpp/regex/regex_search + + (T... args) + + std::error_code + std::yocto + std::streampos + std::istream_iterator + + T + rotate_copy + cpp/algorithm/rotate_copy + + (T... args) + + + T + set_new_handler + cpp/memory/new/set_new_handler + + (T... args) + + + T + undeclare_no_pointers + cpp/memory/gc/undeclare_no_pointers + + (T... args) + + std::wifstream + + T + async + cpp/thread/async + + (T... args) + + + T + partition_point + cpp/algorithm/partition_point + + (T... args) + + std::moneypunct_byname + + T + vsscanf + cpp/io/c/vfscanf + + (T... args) + + std::terminate_handler + std::ctype_base + std::reference_wrapper + + T + fesetround + cpp/numeric/fenv/feround + + (T... args) + + + T + atomic_is_lock_free + cpp/atomic/atomic_is_lock_free + + (T... args) + + std::ranlux48_base + + T + tanh + cpp/numeric/math/tanh + + (T... args) + + std::bit_not + std::int_fast16_t + + T + ldiv + cpp/numeric/math/div + + (T... args) + + + T + setbase + cpp/io/manip/setbase + + (T... args) + + + T + remove + cpp/algorithm/remove + + (T... args) + + + T + strtol + cpp/string/byte/strtol + + (T... args) + + + T + strpbrk + cpp/string/byte/strpbrk + + (T... args) + + std::error_category + std::regex_traits + + T + signbit + cpp/numeric/math/signbit + + (T... args) + + + T + wcsncat + cpp/string/wide/wcsncat + + (T... args) + + + T + get_money + cpp/io/manip/get_money + + (T... args) + + std::regex_constants + + T + set_difference + cpp/algorithm/set_difference + + (T... args) + + std::negative_binomial_distribution + + T + cref + cpp/utility/functional/ref + + (T... args) + + std::is_union + + T + getline + cpp/string/basic_string/getline + + (T... args) + + std::mt19937 + std::enable_if + + T + to_wstring + cpp/string/basic_string/to_wstring + + (T... args) + + std::chi_squared_distribution + std::add_rvalue_reference + + T + system + cpp/utility/program/system + + (T... args) + + + T + static_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + std::basic_istream + std::ostream_iterator + + T + wcstoumax + cpp/string/wide/wcstoimax + + (T... args) + + + T + memmove + cpp/string/byte/memmove + + (T... args) + + + T + getwchar + cpp/io/c/getwchar + + (T... args) + + + T + scientific + cpp/io/manip/fixed + + (T... args) + + + T + wcsftime + cpp/chrono/c/wcsftime + + (T... args) + + + T + begin + cpp/iterator/begin + + (T... args) + + + T + ceil + cpp/numeric/math/ceil + + (T... args) + + + T + sinh + cpp/numeric/math/sinh + + (T... args) + + + T + is_permutation + cpp/algorithm/is_permutation + + (T... args) + + std::is_trivially_copy_assignable + + T + generate_n + cpp/algorithm/generate_n + + (T... args) + + + T + acosh + cpp/numeric/math/acosh + + (T... args) + + std::clog + std::is_scalar + + T + advance + cpp/iterator/advance + + (T... args) + + std::uses_allocator + std::piecewise_linear_distribution + std::hash + + T + flush + cpp/io/manip/flush + + (T... args) + + std::shuffle_order_engine + std::chrono + std::greater + std::csub_match + std::uintmax_t + + T + atomic_fetch_xor + cpp/atomic/atomic_fetch_xor + + (T... args) + + std::remove_pointer + std::numeric_limits + + T + ws + cpp/io/manip/ws + + (T... args) + + std::add_volatile + std::once_flag + std::is_literal_type + std::money_base + + T + signal + cpp/utility/program/signal + + (T... args) + + + T + noshowbase + cpp/io/manip/showbase + + (T... args) + + std::peta + std::is_placeholder + + T + generate + cpp/algorithm/generate + + (T... args) + + + T + ldexp + cpp/numeric/math/ldexp + + (T... args) + + std::add_const + std::basic_stringbuf + std::tm + std::is_abstract + std::deque + + T + vsnprintf + cpp/io/c/vfprintf + + (T... args) + + std::allocator + + T + remove_if + cpp/algorithm/remove + + (T... args) + + std::scoped_allocator_adaptor + std::ssub_match + + T + stoull + cpp/string/basic_string/stoul + + (T... args) + + std::messages_byname + + T + fegetexceptflag + cpp/numeric/fenv/feexceptflag + + (T... args) + + + T + find_if_not + cpp/algorithm/find + + (T... args) + + std::promise + + T + merge + cpp/algorithm/merge + + (T... args) + + + T + free + cpp/memory/c/free + + (T... args) + + + T + count_if + cpp/algorithm/count + + (T... args) + + + T + clock + cpp/chrono/c/clock + + (T... args) + + + T + mktime + cpp/chrono/c/mktime + + (T... args) + + std::add_pointer + std::uintptr_t + + T + inserter + cpp/iterator/inserter + + (T... args) + + + T + puts + cpp/io/c/puts + + (T... args) + + std::bit_and + + T + asin + cpp/numeric/math/asin + + (T... args) + + std::uniform_int_distribution + std::type_info + + T + iscntrl + cpp/string/byte/iscntrl + + (T... args) + + + T + difftime + cpp/chrono/c/difftime + + (T... args) + + + T + terminate + cpp/error/terminate + + (T... args) + + + T + memcmp + cpp/string/byte/memcmp + + (T... args) + + std::fisher_f_distribution + + T + uninitialized_fill + cpp/memory/uninitialized_fill + + (T... args) + + std::strstream + + T + hex + cpp/io/manip/hex + + (T... args) + + + T + tie + cpp/utility/tuple/tie + + (T... args) + + + T + back_inserter + cpp/iterator/back_inserter + + (T... args) + + + T + upper_bound + cpp/algorithm/upper_bound + + (T... args) + + std::time_get_byname + std::basic_streambuf + + T + adjacent_find + cpp/algorithm/adjacent_find + + (T... args) + + std::is_nothrow_constructible + + T + use_facet + cpp/locale/use_facet + + (T... args) + + std::queue + std::is_base_of + std::intmax_t + std::ranlux24 + + T + vfwprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + atomic_fetch_add + cpp/atomic/atomic_fetch_add + + (T... args) + + std::remove_cv + + T + fsetpos + cpp/io/c/fsetpos + + (T... args) + + + T + malloc + cpp/memory/c/malloc + + (T... args) + + + T + localtime + cpp/chrono/c/localtime + + (T... args) + + std::is_trivially_destructible + std::wcin + + T + wcscmp + cpp/string/wide/wcscmp + + (T... args) + + + T + c32rtomb + cpp/string/multibyte/c32rtomb + + (T... args) + + + T + isupper + cpp/string/byte/isupper + + (T... args) + + std::atomic + std::basic_stringstream + + T + wcstod + cpp/string/wide/wcstof + + (T... args) + + + T + tolower + cpp/string/byte/tolower + + (T... args) + + std::is_void + + T + sort_heap + cpp/algorithm/sort_heap + + (T... args) + + std::plus + + T + isdigit + cpp/string/byte/isdigit + + (T... args) + + std::bitset + + T + wcslen + cpp/string/wide/wcslen + + (T... args) + + + T + wmemcmp + cpp/string/wide/wmemcmp + + (T... args) + + std::FILE + + T + move_if_noexcept + cpp/utility/move_if_noexcept + + (T... args) + + + T + declval + cpp/utility/declval + + (T... args) + + + T + fpclassify + cpp/numeric/math/fpclassify + + (T... args) + + + T + iswupper + cpp/string/wide/iswupper + + (T... args) + + std::thread + std::future_error + std::time_base + std::alignment_of + std::time_put + std::bit_or + + T + rand + cpp/numeric/random/rand + + (T... args) + + + T + atomic_compare_exchange_weak_explicit + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::pointer_traits + + T + partial_sort + cpp/algorithm/partial_sort + + (T... args) + + std::basic_string + + T + llrint + cpp/numeric/math/rint + + (T... args) + + std::priority_queue + + T + fclose + cpp/io/c/fclose + + (T... args) + + + T + reverse + cpp/algorithm/reverse + + (T... args) + + std::exa + + T + partial_sum + cpp/algorithm/partial_sum + + (T... args) + + std::wostringstream + + T + showbase + cpp/io/manip/showbase + + (T... args) + + std::is_default_constructible + std::cregex_iterator + + T + vswscanf + cpp/io/c/vfwscanf + + (T... args) + + std::wstring + + T + atan + cpp/numeric/math/atan + + (T... args) + + + T + atanh + cpp/numeric/math/atanh + + (T... args) + + std::remove_all_extents + + T + iter_swap + cpp/algorithm/iter_swap + + (T... args) + + + T + scalbln + cpp/numeric/math/scalbn + + (T... args) + + std::istrstream + + T + reverse_copy + cpp/algorithm/reverse_copy + + (T... args) + + std::unary_negate + std::unordered_multiset + std::basic_ostream + std::wsregex_iterator + std::uint_fast16_t + std::is_nothrow_assignable + + T + forward + cpp/utility/forward + + (T... args) + + std::moneypunct + + T + getc + cpp/io/c/fgetc + + (T... args) + + std::type_index + + T + equal_range + cpp/algorithm/equal_range + + (T... args) + + + T + atomic_fetch_sub + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + is_partitioned + cpp/algorithm/is_partitioned + + (T... args) + + + T + next_permutation + cpp/algorithm/next_permutation + + (T... args) + + + T + isblank + cpp/string/byte/isblank + + (T... args) + + + T + noshowpoint + cpp/io/manip/showpoint + + (T... args) + + + T + atan2 + cpp/numeric/math/atan2 + + (T... args) + + + T + nanf + cpp/numeric/math/nan + + (T... args) + + + T + towctrans + cpp/string/wide/towctrans + + (T... args) + + std::is_standard_layout + std::timed_mutex + + T + right + cpp/io/manip/left + + (T... args) + + + T + fputwc + cpp/io/c/fputwc + + (T... args) + + + T + strtoul + cpp/string/byte/strtoul + + (T... args) + + + T + is_heap + cpp/algorithm/is_heap + + (T... args) + + std::bad_exception + + T + fflush + cpp/io/c/fflush + + (T... args) + + + T + strtoumax + cpp/string/byte/strtoimax + + (T... args) + + + T + nexttoward + cpp/numeric/math/nextafter + + (T... args) + + std::int_fast64_t + std::function + + T + nounitbuf + cpp/io/manip/unitbuf + + (T... args) + + std::bad_cast + std::error_condition + std::filebuf + std::int_least16_t + + T + ispunct + cpp/string/byte/ispunct + + (T... args) + + std::istreambuf_iterator + std::u16string + + T + noboolalpha + cpp/io/manip/boolalpha + + (T... args) + + + T + make_pair + cpp/utility/pair/make_pair + + (T... args) + + std::is_error_condition_enum + std::is_nothrow_destructible + std::wiostream + + T + iswctype + cpp/string/wide/iswctype + + (T... args) + + std::allocator_arg_t + + T + srand + cpp/numeric/random/srand + + (T... args) + + std::rel_ops + std::uint_least32_t + std::collate + + T + replace_copy + cpp/algorithm/replace_copy + + (T... args) + + + T + future_category + cpp/thread/future/future_category + + (T... args) + + std::remove_const + + T + resetiosflags + cpp/io/manip/resetiosflags + + (T... args) + + + T + vprintf + cpp/io/c/vfprintf + + (T... args) + + std::u32string + std::uint_fast32_t + + T + gmtime + cpp/chrono/c/gmtime + + (T... args) + + std::is_lvalue_reference + + T + align + cpp/memory/align + + (T... args) + + + T + tuple_cat + cpp/utility/tuple/tuple_cat + + (T... args) + + + T + ends + cpp/io/manip/ends + + (T... args) + + + T + set_terminate + cpp/error/set_terminate + + (T... args) + + + T + lrint + cpp/numeric/math/rint + + (T... args) + + std::complex + std::ofstream + std::insert_iterator + std::bad_array_length + + T + none_of + cpp/algorithm/all_any_none_of + + (T... args) + + std::this_thread + + T + wscanf + cpp/io/c/fwscanf + + (T... args) + + + T + fputc + cpp/io/c/fputc + + (T... args) + + + T + dec + cpp/io/manip/hex + + (T... args) + + + T + strcat + cpp/string/byte/strcat + + (T... args) + + std::is_trivially_copyable + std::basic_istringstream + std::basic_ifstream + std::list + + T + raise + cpp/utility/program/raise + + (T... args) + + std::minus + + T + wcsspn + cpp/string/wide/wcsspn + + (T... args) + + + T + fabs + cpp/numeric/math/fabs + + (T... args) + + + T + wmemcpy + cpp/string/wide/wmemcpy + + (T... args) + + + T + copy_n + cpp/algorithm/copy_n + + (T... args) + + std::map + std::linear_congruential_engine + + T + rethrow_if_nested + cpp/error/rethrow_if_nested + + (T... args) + + + T + setlocale + cpp/locale/setlocale + + (T... args) + + std::codecvt_utf16 + + T + addressof + cpp/memory/addressof + + (T... args) + + + T + calloc + cpp/memory/c/calloc + + (T... args) + + std::cmatch + + T + strerror + cpp/string/byte/strerror + + (T... args) + + std::defer_lock_t + + T + strcpy + cpp/string/byte/strcpy + + (T... args) + + std::exception + + T + wcstoull + cpp/string/wide/wcstoul + + (T... args) + + + T + c16rtomb + cpp/string/multibyte/c16rtomb + + (T... args) + + std::front_insert_iterator + + T + generate_canonical + cpp/numeric/random/generate_canonical + + (T... args) + + + T + vfprintf + cpp/io/c/vfprintf + + (T... args) + + + T + notify_all_at_thread_exit + cpp/thread/notify_all_at_thread_exit + + (T... args) + + + T + rotate + cpp/algorithm/rotate + + (T... args) + + + T + current_exception + cpp/error/current_exception + + (T... args) + + + T + strtok + cpp/string/byte/strtok + + (T... args) + + + T + wcscat + cpp/string/wide/wcscat + + (T... args) + + + T + strncpy + cpp/string/byte/strncpy + + (T... args) + + + T + towlower + cpp/string/wide/towlower + + (T... args) + + + T + floor + cpp/numeric/math/floor + + (T... args) + + std::zetta + + T + left + cpp/io/manip/left + + (T... args) + + + T + ferror + cpp/io/c/ferror + + (T... args) + + std::streambuf + + T + atomic_load_explicit + cpp/atomic/atomic_load + + (T... args) + + std::experimental + std::num_put + + T + swap + cpp/algorithm/swap + + (T... args) + + + T + acos + cpp/numeric/math/acos + + (T... args) + + std::owner_less + + T + wcscoll + cpp/string/wide/wcscoll + + (T... args) + + + T + sqrt + cpp/numeric/math/sqrt + + (T... args) + + std::extent + + T + mbsinit + cpp/string/multibyte/mbsinit + + (T... args) + + std::bad_optional_access + + T + qsort + cpp/algorithm/qsort + + (T... args) + + + T + stoll + cpp/string/basic_string/stol + + (T... args) + + + T + put_money + cpp/io/manip/put_money + + (T... args) + + + T + wcstoul + cpp/string/wide/wcstoul + + (T... args) + + + T + wcstol + cpp/string/wide/wcstol + + (T... args) + + + T + atexit + cpp/utility/program/atexit + + (T... args) + + + T + atomic_fetch_or + cpp/atomic/atomic_fetch_or + + (T... args) + + + T + rewind + cpp/io/c/rewind + + (T... args) + + + T + wcsxfrm + cpp/string/wide/wcsxfrm + + (T... args) + + std::yotta + std::wcregex_token_iterator + + T + round + cpp/numeric/math/round + + (T... args) + + std::uint64_t + std::messages + + T + vwprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + all_of + cpp/algorithm/all_any_none_of + + (T... args) + + std::regex_token_iterator + + T + replace + cpp/algorithm/replace + + (T... args) + + std::move_iterator + + T + remquo + cpp/numeric/math/remquo + + (T... args) + + + T + setbuf + cpp/io/c/setbuf + + (T... args) + + std::messages_base + + T + strncmp + cpp/string/byte/strncmp + + (T... args) + + + T + localeconv + cpp/locale/localeconv + + (T... args) + + + T + wctrans + cpp/string/wide/wctrans + + (T... args) + + std::istringstream + std::giga + + T + any_of + cpp/algorithm/all_any_none_of + + (T... args) + + std::integer_sequence + + T + equal + cpp/algorithm/equal + + (T... args) + + + T + max + cpp/algorithm/max + + (T... args) + + + T + strxfrm + cpp/string/byte/strxfrm + + (T... args) + + std::has_virtual_destructor + std::max_align_t + std::remove_volatile + std::underlying_type + + T + iswxdigit + cpp/string/wide/iswxdigit + + (T... args) + + + T + labs + cpp/numeric/math/abs + + (T... args) + + std::hecto + + T + regex_match + cpp/regex/regex_match + + (T... args) + + std::is_member_object_pointer + std::exception_ptr + + T + fputws + cpp/io/c/fputws + + (T... args) + + + T + wcrtomb + cpp/string/multibyte/wcrtomb + + (T... args) + + + T + setprecision + cpp/io/manip/setprecision + + (T... args) + + + T + setvbuf + cpp/io/c/setvbuf + + (T... args) + + std::nested_exception + std::random_access_iterator_tag + + T + regex_replace + cpp/regex/regex_replace + + (T... args) + + std::ctype + + T + freopen + cpp/io/c/freopen + + (T... args) + + + T + logb + cpp/numeric/math/logb + + (T... args) + + std::time_t + + T + wctob + cpp/string/multibyte/wctob + + (T... args) + + std::knuth_b + + T + atomic_load + cpp/atomic/atomic_load + + (T... args) + + + T + search_n + cpp/algorithm/search_n + + (T... args) + + + T + toupper + cpp/string/byte/toupper + + (T... args) + + std::auto_ptr + + T + move_backward + cpp/algorithm/move_backward + + (T... args) + + + T + is_sorted + cpp/algorithm/is_sorted + + (T... args) + + std::minstd_rand0 + + T + strtoull + cpp/string/byte/strtoul + + (T... args) + + std::sregex_token_iterator + std::logical_not + std::fpos_t + + T + iswblank + cpp/string/wide/iswblank + + (T... args) + + std::istream + std::seed_seq + std::default_delete + std::femto + std::clock_t + std::true_type + + T + get_pointer_safety + cpp/memory/gc/get_pointer_safety + + (T... args) + + std::mbstate_t + + T + get_unexpected + cpp/error/get_unexpected + + (T... args) + + + T + sscanf + cpp/io/c/fscanf + + (T... args) + + std::ostrstream + std::gamma_distribution + std::bad_weak_ptr + std::output_iterator_tag + std::micro + std::is_trivial + + T + fesetenv + cpp/numeric/fenv/feenv + + (T... args) + + + T + atomic_store_explicit + cpp/atomic/atomic_store + + (T... args) + + + T + strtold + cpp/string/byte/strtof + + (T... args) + + + T + fread + cpp/io/c/fread + + (T... args) + + std::packaged_task + std::unordered_set + std::is_volatile + + T + memchr + cpp/string/byte/memchr + + (T... args) + + + T + btowc + cpp/string/multibyte/btowc + + (T... args) + + std::wfstream + + T + replace_if + cpp/algorithm/replace + + (T... args) + + std::multimap + + T + strcoll + cpp/string/byte/strcoll + + (T... args) + + + T + vsprintf + cpp/io/c/vfprintf + + (T... args) + + + T + mismatch + cpp/algorithm/mismatch + + (T... args) + + + T + getchar + cpp/io/c/getchar + + (T... args) + + std::atomic_flag + + T + islower + cpp/string/byte/islower + + (T... args) + + + T + tmpnam + cpp/io/c/tmpnam + + (T... args) + + std::numpunct_byname + + T + nanl + cpp/numeric/math/nan + + (T... args) + + std::binomial_distribution + + T + fopen + cpp/io/c/fopen + + (T... args) + + std::basic_iostream + std::wofstream + std::fpos + std::underflow_error + + T + for_each + cpp/algorithm/for_each + + (T... args) + + + T + fegetround + cpp/numeric/fenv/feround + + (T... args) + + + T + ungetc + cpp/io/c/ungetc + + (T... args) + + std::cauchy_distribution + std::is_trivially_copy_constructible + std::conditional + std::is_pod + + T + internal + cpp/io/manip/left + + (T... args) + + + T + vfwscanf + cpp/io/c/vfwscanf + + (T... args) + + std::int_least8_t + + T + fgetc + cpp/io/c/fgetc + + (T... args) + + std::streamoff + std::is_move_assignable + std::int_least32_t + + T + wcstof + cpp/string/wide/wcstof + + (T... args) + + std::wstringstream + std::subtract_with_carry_engine + std::regex_error + + T + bind + cpp/utility/functional/bind + + (T... args) + + + T + skipws + cpp/io/manip/skipws + + (T... args) + + std::is_constructible + std::piecewise_construct_t + + T + iswprint + cpp/string/wide/iswprint + + (T... args) + + + T + wcstombs + cpp/string/multibyte/wcstombs + + (T... args) + + + T + inplace_merge + cpp/algorithm/inplace_merge + + (T... args) + + + T + copysign + cpp/numeric/math/copysign + + (T... args) + + + T + putwchar + cpp/io/c/putwchar + + (T... args) + + std::mutex + + T + wcsstr + cpp/string/wide/wcsstr + + (T... args) + + + T + fegetenv + cpp/numeric/fenv/feenv + + (T... args) + + + T + longjmp + cpp/utility/program/longjmp + + (T... args) + + + T + iswcntrl + cpp/string/wide/iswcntrl + + (T... args) + + std::system_error + + T + declare_no_pointers + cpp/memory/gc/declare_no_pointers + + (T... args) + + + T + isnormal + cpp/numeric/math/isnormal + + (T... args) + + + T + swap_ranges + cpp/algorithm/swap_ranges + + (T... args) + + std::wistringstream + std::is_floating_point + + T + minmax + cpp/algorithm/minmax + + (T... args) + + + T + defaultfloat + cpp/io/manip/fixed + + (T... args) + + + T + rename + cpp/io/c/rename + + (T... args) + + + T + snprintf + cpp/io/c/fprintf + + (T... args) + + + T + try_lock + cpp/thread/try_lock + + (T... args) + + std::ratio_not_equal + std::ratio_multiply + std::result_of + std::is_fundamental + + T + stoul + cpp/string/basic_string/stoul + + (T... args) + + std::ifstream + std::u32streampos + + T + fgetpos + cpp/io/c/fgetpos + + (T... args) + + std::length_error + + T + partition_copy + cpp/algorithm/partition_copy + + (T... args) + + + T + vscanf + cpp/io/c/vfscanf + + (T... args) + + + T + front_inserter + cpp/iterator/front_inserter + + (T... args) + + std::sub_match + std::common_type + + T + get_terminate + cpp/error/get_terminate + + (T... args) + + + T + cosh + cpp/numeric/math/cosh + + (T... args) + + std::shared_timed_mutex + std::array + std::random_device + std::default_random_engine + std::raw_storage_iterator + std::is_convertible + + T + prev + cpp/iterator/prev + + (T... args) + + std::uint16_t + + T + strchr + cpp/string/byte/strchr + + (T... args) + + std::is_array + + T + strstr + cpp/string/byte/strstr + + (T... args) + + std::mega + + T + printf + cpp/io/c/fprintf + + (T... args) + + std::numpunct + std::money_put + std::new_handler + std::is_member_function_pointer + + T + setfill + cpp/io/manip/setfill + + (T... args) + + + T + inner_product + cpp/algorithm/inner_product + + (T... args) + + + + std::is_function + cpp/types/is_function + + + std::input_iterator_tag + cpp/iterator/iterator_tags + + + std::logical_and + cpp/utility/functional/logical_and + + T + operator() + cpp/utility/functional/logical_and + + (T... args) + + + + std::is_integral + cpp/types/is_integral + + + std::money_get + cpp/locale/money_get + + T + do_get + cpp/locale/money_get/get + + (T... args) + + std::money_get::char_type + std::money_get::pattern + + T + get + cpp/locale/money_get/get + + (T... args) + + + T + ~money_get + cpp/locale/money_get/~money_get + + (T... args) + + std::money_get::string_type + std::money_get::iter_type + + T + money_get + cpp/locale/money_get/money_get + + (T... args) + + + + std::money_get::char_type + cpp/locale/money_get + + + std::money_get::pattern + cpp/locale/money_base + + + std::money_get::string_type + cpp/locale/money_get + + + std::money_get::iter_type + cpp/locale/money_get + + + std::basic_ofstream + cpp/io/basic_ofstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + basic_ofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_ofstream::event_callback + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_ofstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::basic_ofstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ofstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ofstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ofstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::ratio_subtract + cpp/numeric/ratio/ratio_subtract + + + std::size_t + cpp/types/size_t + + + std::ctype_byname + cpp/locale/ctype_byname + + T + ~ctype_byname + cpp/locale/ctype_byname + + (T... args) + + + T + ctype_byname + cpp/locale/ctype_byname + + (T... args) + + + T + do_toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + do_scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + do_tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + widen + cpp/locale/ctype/widen + + (T... args) + + + T + is + cpp/locale/ctype/is + + (T... args) + + + T + scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_is + cpp/locale/ctype/is + + (T... args) + + + T + narrow + cpp/locale/ctype/narrow + + (T... args) + + std::ctype_byname::mask + + T + do_widen + cpp/locale/ctype/widen + + (T... args) + + + + std::ctype_byname::mask + cpp/locale/ctype_base + + + std::wcout + cpp/io/basic_ostream + + + std::fstream + cpp/io/basic_fstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + fstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::fstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::fstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::fstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::fstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::fstream::event_callback + cpp/io/ios_base/event_callback + + + std::fstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::valarray + cpp/numeric/valarray + + + std::ratio_greater_equal + cpp/numeric/ratio/ratio_greater_equal + + + std::remove_extent + cpp/types/remove_extent + + + std::ratio_greater + cpp/numeric/ratio/ratio_greater + + + std::intptr_t + cpp/types/integer + + + std::regex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + regex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::lock_guard + cpp/thread/lock_guard + + T + ~lock_guard + cpp/thread/lock_guard/~lock_guard + + (T... args) + + + T + lock_guard + cpp/thread/lock_guard/lock_guard + + (T... args) + + + + std::wbuffer_convert + cpp/locale/wbuffer_convert + + T + state + cpp/locale/wbuffer_convert/state + + (T... args) + + + T + wbuffer_convert + cpp/locale/wbuffer_convert/wbuffer_convert + + (T... args) + + + T + rdbuf + cpp/locale/wbuffer_convert/rdbuf + + (T... args) + + + T + ~wbuffer_convert + cpp/locale/wbuffer_convert/~wbuffer_convert + + (T... args) + + + + std::modulus + cpp/utility/functional/modulus + + T + operator() + cpp/utility/functional/modulus + + (T... args) + + + + std::ratio_divide + cpp/numeric/ratio/ratio_divide + + + std::ostreambuf_iterator + cpp/iterator/ostreambuf_iterator + + + std::dynarray + cpp/container/dynarray + + T + rbegin + cpp/container/dynarray/rbegin + + (T... args) + + + T + crend + cpp/container/dynarray/rend + + (T... args) + + + T + begin + cpp/container/dynarray/begin + + (T... args) + + + T + data + cpp/container/dynarray/data + + (T... args) + + + T + at + cpp/container/dynarray/at + + (T... args) + + + T + back + cpp/container/dynarray/back + + (T... args) + + + T + end + cpp/container/dynarray/end + + (T... args) + + + T + fill + cpp/container/dynarray/fill + + (T... args) + + + T + empty + cpp/container/dynarray/empty + + (T... args) + + + T + size + cpp/container/dynarray/size + + (T... args) + + + T + cend + cpp/container/dynarray/end + + (T... args) + + + T + ~dynarray + cpp/container/dynarray/~dynarray + + (T... args) + + + T + max_size + cpp/container/dynarray/max_size + + (T... args) + + + T + rend + cpp/container/dynarray/rend + + (T... args) + + + T + front + cpp/container/dynarray/front + + (T... args) + + + T + dynarray + cpp/container/dynarray/dynarray + + (T... args) + + + T + operator[] + cpp/container/dynarray/operator_at + + (T... args) + + + T + crbegin + cpp/container/dynarray/rbegin + + (T... args) + + + T + cbegin + cpp/container/dynarray/begin + + (T... args) + + + + std::is_nothrow_move_constructible + cpp/types/is_move_constructible + + + std::vector + cpp/container/vector + + T + push_back + cpp/container/vector/push_back + + (T... args) + + + T + crbegin + cpp/container/vector/rbegin + + (T... args) + + + T + erase + cpp/container/vector/erase + + (T... args) + + + T + data + cpp/container/vector/data + + (T... args) + + + T + insert + cpp/container/vector/insert + + (T... args) + + + T + pop_back + cpp/container/vector/pop_back + + (T... args) + + + T + shrink_to_fit + cpp/container/vector/shrink_to_fit + + (T... args) + + + T + back + cpp/container/vector/back + + (T... args) + + + T + end + cpp/container/vector/end + + (T... args) + + + T + resize + cpp/container/vector/resize + + (T... args) + + + T + emplace_back + cpp/container/vector/emplace_back + + (T... args) + + + T + size + cpp/container/vector/size + + (T... args) + + + T + cbegin + cpp/container/vector/begin + + (T... args) + + + T + front + cpp/container/vector/front + + (T... args) + + + T + ~vector + cpp/container/vector/~vector + + (T... args) + + + T + rbegin + cpp/container/vector/rbegin + + (T... args) + + + T + crend + cpp/container/vector/rend + + (T... args) + + + T + assign + cpp/container/vector/assign + + (T... args) + + + T + operator= + cpp/container/vector/operator= + + (T... args) + + + T + vector + cpp/container/vector/vector + + (T... args) + + + T + reserve + cpp/container/vector/reserve + + (T... args) + + + T + capacity + cpp/container/vector/capacity + + (T... args) + + + T + empty + cpp/container/vector/empty + + (T... args) + + + T + cend + cpp/container/vector/end + + (T... args) + + + T + swap + cpp/container/vector/swap + + (T... args) + + + T + max_size + cpp/container/vector/max_size + + (T... args) + + + T + rend + cpp/container/vector/rend + + (T... args) + + + T + get_allocator + cpp/container/vector/get_allocator + + (T... args) + + + T + clear + cpp/container/vector/clear + + (T... args) + + + T + at + cpp/container/vector/at + + (T... args) + + + T + emplace + cpp/container/vector/emplace + + (T... args) + + + T + operator[] + cpp/container/vector/operator_at + + (T... args) + + + T + begin + cpp/container/vector/begin + + (T... args) + + + + std::match_results + cpp/regex/match_results + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + ~match_results + cpp/regex/match_results/~match_results + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + match_results + cpp/regex/match_results/match_results + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + + std::back_insert_iterator + cpp/iterator/back_insert_iterator + + + std::iterator + cpp/iterator/iterator + + + std::int8_t + cpp/types/integer + + + std::student_t_distribution + cpp/numeric/random/student_t_distribution + + T + n + cpp/numeric/random/student_t_distribution/n + + (T... args) + + + T + reset + cpp/numeric/random/student_t_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/student_t_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/student_t_distribution/operator() + + (T... args) + + + T + student_t_distribution + cpp/numeric/random/student_t_distribution/student_t_distribution + + (T... args) + + + T + param + cpp/numeric/random/student_t_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/student_t_distribution/min + + (T... args) + + + + std::mt19937_64 + cpp/numeric/random/mersenne_twister_engine + + T + discard + cpp/numeric/random/mersenne_twister_engine/discard + + (T... args) + + + T + mt19937_64 + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + max + cpp/numeric/random/mersenne_twister_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + + std::runtime_error + cpp/error/runtime_error + + T + runtime_error + cpp/error/runtime_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ranlux24_base + cpp/numeric/random/subtract_with_carry_engine + + T + discard + cpp/numeric/random/subtract_with_carry_engine/discard + + (T... args) + + + T + ranlux24_base + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + + std::allocator_traits + cpp/memory/allocator_traits + + T + destroy + cpp/memory/allocator_traits/destroy + + (T... args) + + + T + select_on_container_copy_construction + cpp/memory/allocator_traits/select_on_container_copy_construction + + (T... args) + + + T + max_size + cpp/memory/allocator_traits/max_size + + (T... args) + + + T + allocate + cpp/memory/allocator_traits/allocate + + (T... args) + + + T + deallocate + cpp/memory/allocator_traits/deallocate + + (T... args) + + + T + construct + cpp/memory/allocator_traits/construct + + (T... args) + + + + std::codecvt + cpp/locale/codecvt + std::codecvt::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + std::codecvt::state_type + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + codecvt + cpp/locale/codecvt/codecvt + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + ~codecvt + cpp/locale/codecvt/~codecvt + + (T... args) + + + + std::codecvt::extern_type + cpp/locale/codecvt + + + std::codecvt::state_type + cpp/locale/codecvt + + + std::codecvt::intern_type + cpp/locale/codecvt + + + std::ratio_less_equal + cpp/numeric/ratio/ratio_less_equal + + + std::condition_variable_any + cpp/thread/condition_variable_any + + T + condition_variable_any + cpp/thread/condition_variable_any/condition_variable_any + + (T... args) + + + T + notify_one + cpp/thread/condition_variable_any/notify_one + + (T... args) + + + T + wait_for + cpp/thread/condition_variable_any/wait_for + + (T... args) + + + T + native_handle + cpp/thread/condition_variable_any/native_handle + + (T... args) + + + T + notify_all + cpp/thread/condition_variable_any/notify_all + + (T... args) + + + T + ~condition_variable_any + cpp/thread/condition_variable_any/~condition_variable_any + + (T... args) + + + T + wait_until + cpp/thread/condition_variable_any/wait_until + + (T... args) + + + T + wait + cpp/thread/condition_variable_any/wait + + (T... args) + + + + std::deca + cpp/numeric/ratio/ratio + + + std::extreme_value_distribution + cpp/numeric/random/extreme_value_distribution + + T + max + cpp/numeric/random/extreme_value_distribution/max + + (T... args) + + + T + b + cpp/numeric/random/extreme_value_distribution/params + + (T... args) + + + T + a + cpp/numeric/random/extreme_value_distribution/params + + (T... args) + + + T + operator() + cpp/numeric/random/extreme_value_distribution/operator() + + (T... args) + + + T + extreme_value_distribution + cpp/numeric/random/extreme_value_distribution/extreme_value_distribution + + (T... args) + + + T + param + cpp/numeric/random/extreme_value_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/extreme_value_distribution/min + + (T... args) + + + T + reset + cpp/numeric/random/extreme_value_distribution/reset + + (T... args) + + + + std::cout + cpp/io/basic_ostream + + + std::decay + cpp/types/decay + + + std::is_trivially_move_assignable + cpp/types/is_move_assignable + + + std::adopt_lock_t + cpp/thread/lock_tag_t + + + std::wcerr + cpp/io/basic_ostream + + + std::lognormal_distribution + cpp/numeric/random/lognormal_distribution + + T + max + cpp/numeric/random/lognormal_distribution/max + + (T... args) + + + T + reset + cpp/numeric/random/lognormal_distribution/reset + + (T... args) + + + T + lognormal_distribution + cpp/numeric/random/lognormal_distribution/lognormal_distribution + + (T... args) + + + T + m + cpp/numeric/random/lognormal_distribution/params + + (T... args) + + + T + operator() + cpp/numeric/random/lognormal_distribution/operator() + + (T... args) + + + T + s + cpp/numeric/random/lognormal_distribution/params + + (T... args) + + + T + param + cpp/numeric/random/lognormal_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/lognormal_distribution/min + + (T... args) + + + + std::wclog + cpp/io/basic_ostream + + + std::char_traits + cpp/string/char_traits + + T + assign + cpp/string/char_traits/assign + + (T... args) + + + T + not_eof + cpp/string/char_traits/not_eof + + (T... args) + + + T + to_int_type + cpp/string/char_traits/to_int_type + + (T... args) + + + T + to_char_type + cpp/string/char_traits/to_char_type + + (T... args) + + + T + eq + cpp/string/char_traits/cmp + + (T... args) + + + T + copy + cpp/string/char_traits/copy + + (T... args) + + + T + length + cpp/string/char_traits/length + + (T... args) + + + T + lt + cpp/string/char_traits/cmp + + (T... args) + + + T + eof + cpp/string/char_traits/eof + + (T... args) + + + T + find + cpp/string/char_traits/find + + (T... args) + + + T + move + cpp/string/char_traits/move + + (T... args) + + + T + compare + cpp/string/char_traits/compare + + (T... args) + + + T + eq_int_type + cpp/string/char_traits/eq_int_type + + (T... args) + + + + std::remove_reference + cpp/types/remove_reference + + + std::num_get + cpp/locale/num_get + + T + do_get + cpp/locale/num_get/get + + (T... args) + + std::num_get::char_type + std::num_get::iter_type + + T + num_get + cpp/locale/num_get/num_get + + (T... args) + + + T + ~num_get + cpp/locale/num_get/~num_get + + (T... args) + + + T + get + cpp/locale/num_get/get + + (T... args) + + + + std::num_get::char_type + cpp/locale/num_get + + + std::num_get::iter_type + cpp/locale/num_get + + + std::is_pointer + cpp/types/is_pointer + + + std::multiset + cpp/container/multiset + + T + begin + cpp/container/multiset/begin + + (T... args) + + + T + erase + cpp/container/multiset/erase + + (T... args) + + + T + insert + cpp/container/multiset/insert + + (T... args) + + + T + swap + cpp/container/multiset/swap + + (T... args) + + + T + end + cpp/container/multiset/end + + (T... args) + + + T + emplace_hint + cpp/container/multiset/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/multiset/key_comp + + (T... args) + + + T + cbegin + cpp/container/multiset/begin + + (T... args) + + + T + count + cpp/container/multiset/count + + (T... args) + + + T + find + cpp/container/multiset/find + + (T... args) + + + T + crbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + multiset + cpp/container/multiset/multiset + + (T... args) + + + T + upper_bound + cpp/container/multiset/upper_bound + + (T... args) + + + T + rbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + crend + cpp/container/multiset/rend + + (T... args) + + + T + size + cpp/container/multiset/size + + (T... args) + + + T + operator= + cpp/container/multiset/operator= + + (T... args) + + + T + ~multiset + cpp/container/multiset/~multiset + + (T... args) + + + T + value_comp + cpp/container/multiset/value_comp + + (T... args) + + + T + empty + cpp/container/multiset/empty + + (T... args) + + + T + lower_bound + cpp/container/multiset/lower_bound + + (T... args) + + + T + get_allocator + cpp/container/multiset/get_allocator + + (T... args) + + + T + max_size + cpp/container/multiset/max_size + + (T... args) + + + T + rend + cpp/container/multiset/rend + + (T... args) + + + T + cend + cpp/container/multiset/end + + (T... args) + + + T + clear + cpp/container/multiset/clear + + (T... args) + + + T + equal_range + cpp/container/multiset/equal_range + + (T... args) + + + T + emplace + cpp/container/multiset/emplace + + (T... args) + + + + std::weak_ptr + cpp/memory/weak_ptr + + T + operator= + cpp/memory/weak_ptr/operator= + + (T... args) + + + T + swap + cpp/memory/weak_ptr/swap + + (T... args) + + + T + weak_ptr + cpp/memory/weak_ptr/weak_ptr + + (T... args) + + + T + owner_before + cpp/memory/weak_ptr/owner_before + + (T... args) + + + T + ~weak_ptr + cpp/memory/weak_ptr/~weak_ptr + + (T... args) + + + T + use_count + cpp/memory/weak_ptr/use_count + + (T... args) + + + T + expired + cpp/memory/weak_ptr/expired + + (T... args) + + + T + lock + cpp/memory/weak_ptr/lock + + (T... args) + + + T + reset + cpp/memory/weak_ptr/reset + + (T... args) + + + + std::bidirectional_iterator_tag + cpp/iterator/iterator_tags + + + std::wstring_convert + cpp/locale/wstring_convert + + T + converted + cpp/locale/wstring_convert/converted + + (T... args) + + + T + to_bytes + cpp/locale/wstring_convert/to_bytes + + (T... args) + + + T + ~wstring_convert + cpp/locale/wstring_convert/~wstring_convert + + (T... args) + + + T + state + cpp/locale/wstring_convert/state + + (T... args) + + + T + wstring_convert + cpp/locale/wstring_convert/wstring_convert + + (T... args) + + + T + from_bytes + cpp/locale/wstring_convert/from_bytes + + (T... args) + + + + std::greater_equal + cpp/utility/functional/greater_equal + + T + operator() + cpp/utility/functional/greater_equal + + (T... args) + + + + std::is_trivially_constructible + cpp/types/is_constructible + + + std::string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + string + cpp/string/basic_string/basic_string + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::discrete_distribution + cpp/numeric/random/discrete_distribution + + T + probabilities + cpp/numeric/random/discrete_distribution/probabilities + + (T... args) + + + T + reset + cpp/numeric/random/discrete_distribution/reset + + (T... args) + + + T + operator() + cpp/numeric/random/discrete_distribution/operator() + + (T... args) + + + T + discrete_distribution + cpp/numeric/random/discrete_distribution/discrete_distribution + + (T... args) + + + T + max + cpp/numeric/random/discrete_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/discrete_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/discrete_distribution/min + + (T... args) + + + + std::wostream + cpp/io/basic_ostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + std::wostream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + ~wostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + wostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wostream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wostream::event_callback + cpp/io/ios_base/event_callback + + + std::wostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::is_polymorphic + cpp/types/is_polymorphic + + + std::reverse_iterator + cpp/iterator/reverse_iterator + + + std::bad_array_new_length + cpp/memory/new/bad_array_new_length + + T + bad_array_new_length + cpp/memory/new/bad_array_new_length/bad_array_new_length + + (T... args) + + + T + what + cpp/memory/new/bad_alloc + + (T... args) + + + + std::condition_variable + cpp/thread/condition_variable + + T + wait + cpp/thread/condition_variable/wait + + (T... args) + + + T + notify_one + cpp/thread/condition_variable/notify_one + + (T... args) + + + T + wait_for + cpp/thread/condition_variable/wait_for + + (T... args) + + + T + notify_all + cpp/thread/condition_variable/notify_all + + (T... args) + + + T + native_handle + cpp/thread/condition_variable/native_handle + + (T... args) + + + T + wait_until + cpp/thread/condition_variable/wait_until + + (T... args) + + + T + condition_variable + cpp/thread/condition_variable/condition_variable + + (T... args) + + + T + ~condition_variable + cpp/thread/condition_variable/~condition_variable + + (T... args) + + + + std::ranlux48 + cpp/numeric/random/discard_block_engine + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + ranlux48 + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + + std::unexpected_handler + cpp/error/unexpected_handler + + + std::piecewise_constant_distribution + cpp/numeric/random/piecewise_constant_distribution + + T + densities + cpp/numeric/random/piecewise_constant_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/piecewise_constant_distribution/max + + (T... args) + + + T + intervals + cpp/numeric/random/piecewise_constant_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/piecewise_constant_distribution/reset + + (T... args) + + + T + piecewise_constant_distribution + cpp/numeric/random/piecewise_constant_distribution/piecewise_constant_distribution + + (T... args) + + + T + operator() + cpp/numeric/random/piecewise_constant_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/piecewise_constant_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/piecewise_constant_distribution/min + + (T... args) + + + + std::codecvt_base + cpp/locale/codecvt_base + + + std::set + cpp/container/set + + T + begin + cpp/container/set/begin + + (T... args) + + + T + erase + cpp/container/set/erase + + (T... args) + + + T + insert + cpp/container/set/insert + + (T... args) + + + T + ~set + cpp/container/set/~set + + (T... args) + + + T + rbegin + cpp/container/set/rbegin + + (T... args) + + + T + end + cpp/container/set/end + + (T... args) + + + T + emplace_hint + cpp/container/set/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/set/key_comp + + (T... args) + + + T + count + cpp/container/set/count + + (T... args) + + + T + find + cpp/container/set/find + + (T... args) + + + T + crbegin + cpp/container/set/rbegin + + (T... args) + + + T + cbegin + cpp/container/set/begin + + (T... args) + + + T + upper_bound + cpp/container/set/upper_bound + + (T... args) + + + T + swap + cpp/container/set/swap + + (T... args) + + + T + crend + cpp/container/set/rend + + (T... args) + + + T + size + cpp/container/set/size + + (T... args) + + + T + set + cpp/container/set/set + + (T... args) + + + T + operator= + cpp/container/set/operator= + + (T... args) + + + T + value_comp + cpp/container/set/value_comp + + (T... args) + + + T + empty + cpp/container/set/empty + + (T... args) + + + T + lower_bound + cpp/container/set/lower_bound + + (T... args) + + + T + get_allocator + cpp/container/set/get_allocator + + (T... args) + + + T + max_size + cpp/container/set/max_size + + (T... args) + + + T + rend + cpp/container/set/rend + + (T... args) + + + T + cend + cpp/container/set/end + + (T... args) + + + T + clear + cpp/container/set/clear + + (T... args) + + + T + equal_range + cpp/container/set/equal_range + + (T... args) + + + T + emplace + cpp/container/set/emplace + + (T... args) + + + + std::forward_iterator_tag + cpp/iterator/iterator_tags + + + std::codecvt_byname + cpp/locale/codecvt_byname + std::codecvt_byname::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_byname::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + codecvt_byname + cpp/locale/codecvt_byname + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_byname::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + ~codecvt_byname + cpp/locale/codecvt_byname + + (T... args) + + + + std::codecvt_byname::extern_type + cpp/locale/codecvt + + + std::codecvt_byname::state_type + cpp/locale/codecvt + + + std::codecvt_byname::intern_type + cpp/locale/codecvt + + + std::pointer_safety + cpp/memory/gc/pointer_safety + + + std::uint_least64_t + cpp/types/integer + + + std::placeholders + cpp/utility/functional/placeholders + + + std::nothrow_t + cpp/memory/new/nothrow_t + + + std::is_nothrow_copy_assignable + cpp/types/is_copy_assignable + + + std::is_same + cpp/types/is_same + + + std::unique_lock + cpp/thread/unique_lock + + T + mutex + cpp/thread/unique_lock/mutex + + (T... args) + + + T + swap + cpp/thread/unique_lock/swap + + (T... args) + + + T + owns_lock + cpp/thread/unique_lock/owns_lock + + (T... args) + + + T + try_lock_for + cpp/thread/unique_lock/try_lock_for + + (T... args) + + + T + release + cpp/thread/unique_lock/release + + (T... args) + + + T + lock + cpp/thread/unique_lock/lock + + (T... args) + + + T + operator bool + cpp/thread/unique_lock/operator_bool + + (T... args) + + + T + ~unique_lock + cpp/thread/unique_lock/~unique_lock + + (T... args) + + + T + unlock + cpp/thread/unique_lock/unlock + + (T... args) + + + T + operator= + cpp/thread/unique_lock/operator= + + (T... args) + + + T + try_lock_until + cpp/thread/unique_lock/try_lock_until + + (T... args) + + + T + try_lock + cpp/thread/unique_lock/try_lock + + (T... args) + + + T + unique_lock + cpp/thread/unique_lock/unique_lock + + (T... args) + + + + std::basic_ostringstream + cpp/io/basic_ostringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_ostringstream::event_callback + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_ostringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + basic_ostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::basic_ostringstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ostringstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ostringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ostringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::is_error_code_enum + cpp/error/error_code/is_error_code_enum + + + std::time_put_byname + cpp/locale/time_put_byname + + T + time_put_byname + cpp/locale/time_put_byname + + (T... args) + + std::time_put_byname::char_type + + T + do_put + cpp/locale/time_put/put + + (T... args) + + + T + put + cpp/locale/time_put/put + + (T... args) + + + T + ~time_put_byname + cpp/locale/time_put_byname + + (T... args) + + std::time_put_byname::iter_type + + + std::time_put_byname::char_type + cpp/locale/time_put + + + std::time_put_byname::iter_type + cpp/locale/time_put + + + std::time_get + cpp/locale/time_get + + T + do_date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + do_get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + do_get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + ~time_get + cpp/locale/time_get/~time_get + + (T... args) + + + T + do_get_year + cpp/locale/time_get/get_year + + (T... args) + + std::time_get::iter_type + + T + get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + time_get + cpp/locale/time_get/time_get + + (T... args) + + + T + do_get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + get_date + cpp/locale/time_get/get_date + + (T... args) + + std::time_get::char_type + + T + date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + + std::time_get::iter_type + cpp/locale/time_get + + + std::time_get::char_type + cpp/locale/time_get + + + std::regex + cpp/regex/basic_regex + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + regex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + T + ~regex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + + std::cin + cpp/io/basic_istream + + + std::unordered_map + cpp/container/unordered_map + + T + max_bucket_count + cpp/container/unordered_map/max_bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_map/begin + + (T... args) + + + T + erase + cpp/container/unordered_map/erase + + (T... args) + + + T + insert + cpp/container/unordered_map/insert + + (T... args) + + + T + bucket_count + cpp/container/unordered_map/bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_map/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_map/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_map/emplace_hint + + (T... args) + + + T + end(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + load_factor + cpp/container/unordered_map/load_factor + + (T... args) + + + T + get_allocator + cpp/container/unordered_map/get_allocator + + (T... args) + + + T + key_eq + cpp/container/unordered_map/key_eq + + (T... args) + + + T + ~unordered_map + cpp/container/unordered_map/~unordered_map + + (T... args) + + + T + hash_function + cpp/container/unordered_map/hash_function + + (T... args) + + + T + find + cpp/container/unordered_map/find + + (T... args) + + + T + at + cpp/container/unordered_map/at + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_map/swap + + (T... args) + + + T + begin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + unordered_map + cpp/container/unordered_map/unordered_map + + (T... args) + + + T + size + cpp/container/unordered_map/size + + (T... args) + + + T + operator= + cpp/container/unordered_map/operator= + + (T... args) + + + T + cend(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + reserve + cpp/container/unordered_map/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_map/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_map/bucket + + (T... args) + + + T + empty + cpp/container/unordered_map/empty + + (T... args) + + + T + cend + cpp/container/unordered_map/end + + (T... args) + + + T + max_size + cpp/container/unordered_map/max_size + + (T... args) + + + T + count + cpp/container/unordered_map/count + + (T... args) + + + T + clear + cpp/container/unordered_map/clear + + (T... args) + + + T + equal_range + cpp/container/unordered_map/equal_range + + (T... args) + + + T + emplace + cpp/container/unordered_map/emplace + + (T... args) + + + T + operator[] + cpp/container/unordered_map/operator_at + + (T... args) + + + T + begin + cpp/container/unordered_map/begin + + (T... args) + + + T + bucket_size + cpp/container/unordered_map/bucket_size + + (T... args) + + + + std::initializer_list + cpp/utility/initializer_list + + T + end + cpp/utility/initializer_list/end + + (T... args) + + + T + size + cpp/utility/initializer_list/size + + (T... args) + + + T + initializer_list + cpp/utility/initializer_list/initializer_list + + (T... args) + + + T + begin + cpp/utility/initializer_list/begin + + (T... args) + + + + std::is_const + cpp/types/is_const + + + std::basic_regex + cpp/regex/basic_regex + + T + basic_regex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + ~basic_regex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + + std::poisson_distribution + cpp/numeric/random/poisson_distribution + + T + poisson_distribution + cpp/numeric/random/poisson_distribution/poisson_distribution + + (T... args) + + + T + mean + cpp/numeric/random/poisson_distribution/mean + + (T... args) + + + T + max + cpp/numeric/random/poisson_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/poisson_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/poisson_distribution/min + + (T... args) + + + T + reset + cpp/numeric/random/poisson_distribution/reset + + (T... args) + + + + std::bad_typeid + cpp/types/bad_typeid + + T + bad_typeid + cpp/types/bad_typeid/bad_typeid + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::less_equal + cpp/utility/functional/less_equal + + T + operator() + cpp/utility/functional/less_equal + + (T... args) + + + + std::sig_atomic_t + cpp/utility/program/sig_atomic_t + + + std::make_unsigned + cpp/types/make_unsigned + + + std::basic_filebuf + cpp/io/basic_filebuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + basic_filebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + ~basic_filebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + + std::logical_or + cpp/utility/functional/logical_or + + T + operator() + cpp/utility/functional/logical_or + + (T... args) + + + + std::wstringbuf + cpp/io/basic_stringbuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + wstringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + + std::kilo + cpp/numeric/ratio/ratio + + + std::bernoulli_distribution + cpp/numeric/random/bernoulli_distribution + + T + bernoulli_distribution + cpp/numeric/random/bernoulli_distribution/bernoulli_distribution + + (T... args) + + + T + p + cpp/numeric/random/bernoulli_distribution/p + + (T... args) + + + T + reset + cpp/numeric/random/bernoulli_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/bernoulli_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/bernoulli_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/bernoulli_distribution/min + + (T... args) + + + + std::int16_t + cpp/types/integer + + + std::basic_ios + cpp/io/basic_ios + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + std::basic_ios::failure + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + basic_ios + cpp/io/basic_ios/basic_ios + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + ~basic_ios + cpp/io/basic_ios/~basic_ios + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + std::basic_ios::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ios::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ios::event_callback + cpp/io/ios_base/event_callback + + + std::int32_t + cpp/types/integer + + + std::is_rvalue_reference + cpp/types/is_rvalue_reference + + + std::integral_constant + cpp/types/integral_constant + + + std::wsmatch + cpp/regex/match_results + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + wsmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + ~wsmatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::cerr + cpp/io/basic_ostream + + + std::codecvt_utf8 + cpp/locale/codecvt_utf8 + std::codecvt_utf8::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_utf8::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf8::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + + std::codecvt_utf8::extern_type + cpp/locale/codecvt + + + std::codecvt_utf8::state_type + cpp/locale/codecvt + + + std::codecvt_utf8::intern_type + cpp/locale/codecvt + + + std::ratio_add + cpp/numeric/ratio/ratio_add + + + std::is_trivially_move_constructible + cpp/types/is_move_constructible + + + std::wcsub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + wcsub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::is_member_pointer + cpp/types/is_member_pointer + + + std::wstreampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::uint_least16_t + cpp/types/integer + + + std::tuple + cpp/utility/tuple + + T + operator= + cpp/utility/tuple/operator= + + (T... args) + + + T + swap + cpp/utility/tuple/swap + + (T... args) + + + T + tuple + cpp/utility/tuple/tuple + + (T... args) + + + + std::make_signed + cpp/types/make_signed + + + std::logic_error + cpp/error/logic_error + + T + logic_error + cpp/error/logic_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::sregex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + sregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::int_least64_t + cpp/types/integer + + + std::binary_negate + cpp/utility/functional/binary_negate + + T + operator() + cpp/utility/functional/binary_negate + + (T... args) + + + T + binary_negate + cpp/utility/functional/binary_negate + + (T... args) + + + + std::discard_block_engine + cpp/numeric/random/discard_block_engine + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (T... args) + + + T + discard_block_engine + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + + std::is_trivially_assignable + cpp/types/is_assignable + + + std::add_cv + cpp/types/add_cv + + + std::pico + cpp/numeric/ratio/ratio + + + std::iterator_traits + cpp/iterator/iterator_traits + + + std::is_trivially_default_constructible + cpp/types/is_default_constructible + + + std::shared_ptr + cpp/memory/shared_ptr + + T + shared_ptr + cpp/memory/shared_ptr/shared_ptr + + (T... args) + + + T + ~shared_ptr + cpp/memory/shared_ptr/~shared_ptr + + (T... args) + + + T + swap + cpp/memory/shared_ptr/swap + + (T... args) + + + T + owner_before + cpp/memory/shared_ptr/owner_before + + (T... args) + + + T + reset + cpp/memory/shared_ptr/reset + + (T... args) + + + T + operator-> + cpp/memory/shared_ptr/operator* + + (T... args) + + + T + operator= + cpp/memory/shared_ptr/operator= + + (T... args) + + + T + unique + cpp/memory/shared_ptr/unique + + (T... args) + + + T + operator* + cpp/memory/shared_ptr/operator* + + (T... args) + + + T + operator bool + cpp/memory/shared_ptr/operator_bool + + (T... args) + + + T + get + cpp/memory/shared_ptr/get + + (T... args) + + + + std::bad_alloc + cpp/memory/new/bad_alloc + + T + operator= + cpp/memory/new/bad_alloc + + (T... args) + + + T + bad_alloc + cpp/memory/new/bad_alloc + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostringstream + cpp/io/basic_ostringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ostringstream::event_callback + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + ostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ostringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::ostringstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ostringstream::event_callback + cpp/io/ios_base/event_callback + + + std::ostringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::basic_fstream + cpp/io/basic_fstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + basic_fstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::basic_fstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::basic_fstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_fstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_fstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_fstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_fstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::stringbuf + cpp/io/basic_stringbuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + stringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::exponential_distribution + cpp/numeric/random/exponential_distribution + + T + exponential_distribution + cpp/numeric/random/exponential_distribution/exponential_distribution + + (T... args) + + + T + min + cpp/numeric/random/exponential_distribution/min + + (T... args) + + + T + max + cpp/numeric/random/exponential_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/exponential_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/exponential_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/exponential_distribution/reset + + (T... args) + + + T + lambda + cpp/numeric/random/exponential_distribution/lambda + + (T... args) + + + + std::uint32_t + cpp/types/integer + + + std::wcregex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + wcregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::bad_function_call + cpp/utility/functional/bad_function_call + + T + bad_function_call + cpp/utility/functional/bad_function_call + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::false_type + cpp/types/integral_constant + + + std::wregex + cpp/regex/basic_regex + + T + wregex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + ~wregex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + + std::uint_least8_t + cpp/types/integer + + + std::uniform_real_distribution + cpp/numeric/random/uniform_real_distribution + + T + uniform_real_distribution + cpp/numeric/random/uniform_real_distribution/uniform_real_distribution + + (T... args) + + + T + reset + cpp/numeric/random/uniform_real_distribution/reset + + (T... args) + + + T + a + cpp/numeric/random/uniform_real_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/uniform_real_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/uniform_real_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/uniform_real_distribution/min + + (T... args) + + + T + b + cpp/numeric/random/uniform_real_distribution/params + + (T... args) + + + + std::smatch + cpp/regex/match_results + + T + smatch + cpp/regex/match_results/match_results + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + ~smatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::cregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + cregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::range_error + cpp/error/range_error + + T + range_error + cpp/error/range_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_assignable + cpp/types/is_assignable + + + std::is_copy_assignable + cpp/types/is_copy_assignable + + + std::invalid_argument + cpp/error/invalid_argument + + T + invalid_argument + cpp/error/invalid_argument + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_unsigned + cpp/types/is_unsigned + + + std::jmp_buf + cpp/utility/program/jmp_buf + + + std::is_class + cpp/types/is_class + + + std::geometric_distribution + cpp/numeric/random/geometric_distribution + + T + p + cpp/numeric/random/geometric_distribution/p + + (T... args) + + + T + reset + cpp/numeric/random/geometric_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/geometric_distribution/max + + (T... args) + + + T + geometric_distribution + cpp/numeric/random/geometric_distribution/geometric_distribution + + (T... args) + + + T + param + cpp/numeric/random/geometric_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/geometric_distribution/min + + (T... args) + + + + std::uint_fast8_t + cpp/types/integer + + + std::mersenne_twister_engine + cpp/numeric/random/mersenne_twister_engine + + T + discard + cpp/numeric/random/mersenne_twister_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/mersenne_twister_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + mersenne_twister_engine + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + + std::is_arithmetic + cpp/types/is_arithmetic + + + std::negate + cpp/utility/functional/negate + + T + operator() + cpp/utility/functional/negate + + (T... args) + + + + std::try_to_lock_t + cpp/thread/lock_tag_t + + + std::wfilebuf + cpp/io/basic_filebuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + ~wfilebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + wfilebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + + std::is_compound + cpp/types/is_compound + + + std::iostream + cpp/io/basic_iostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + ~iostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::iostream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::iostream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::iostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + iostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::iostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::iostream::event_callback + cpp/io/ios_base/event_callback + + + std::iostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_object + cpp/types/is_object + + + std::recursive_mutex + cpp/thread/recursive_mutex + + T + unlock + cpp/thread/recursive_mutex/unlock + + (T... args) + + + T + native_handle + cpp/thread/recursive_mutex/native_handle + + (T... args) + + + T + recursive_mutex + cpp/thread/recursive_mutex/recursive_mutex + + (T... args) + + + T + lock + cpp/thread/recursive_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/recursive_mutex/try_lock + + (T... args) + + + + std::is_copy_constructible + cpp/types/is_copy_constructible + + + std::codecvt_utf8_utf16 + cpp/locale/codecvt_utf8_utf16 + std::codecvt_utf8_utf16::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_utf8_utf16::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf8_utf16::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + + std::codecvt_utf8_utf16::extern_type + cpp/locale/codecvt + + + std::codecvt_utf8_utf16::state_type + cpp/locale/codecvt + + + std::codecvt_utf8_utf16::intern_type + cpp/locale/codecvt + + + std::not_equal_to + cpp/utility/functional/not_equal_to + + T + operator() + cpp/utility/functional/not_equal_to + + (T... args) + + + + std::is_destructible + cpp/types/is_destructible + + + std::int_fast32_t + cpp/types/integer + + + std::rank + cpp/types/rank + + + std::milli + cpp/numeric/ratio/ratio + + + std::deci + cpp/numeric/ratio/ratio + + + std::add_lvalue_reference + cpp/types/add_reference + + + std::is_bind_expression + cpp/utility/functional/is_bind_expression + + + std::ios_base + cpp/io/ios_base + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + std::ios_base::event_callback + std::ios_base::failure + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + ios_base + cpp/io/ios_base/ios_base + + (T... args) + + + T + ~ios_base + cpp/io/ios_base/~ios_base + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + + std::ios_base::event_callback + cpp/io/ios_base/event_callback + + + std::ios_base::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ratio_less + cpp/numeric/ratio/ratio_less + + + std::int64_t + cpp/types/integer + + + std::nullptr_t + cpp/types/nullptr_t + + + std::stack + cpp/container/stack + + T + operator= + cpp/container/stack/operator= + + (T... args) + + + T + swap + cpp/container/stack/swap + + (T... args) + + + T + size + cpp/container/stack/size + + (T... args) + + + T + empty + cpp/container/stack/empty + + (T... args) + + + T + pop + cpp/container/stack/pop + + (T... args) + + + T + emplace + cpp/container/stack/emplace + + (T... args) + + + T + ~stack + cpp/container/stack/~stack + + (T... args) + + + T + top + cpp/container/stack/top + + (T... args) + + + T + stack + cpp/container/stack/stack + + (T... args) + + + T + push + cpp/container/stack/push + + (T... args) + + + + std::uint_fast64_t + cpp/types/integer + + + std::is_reference + cpp/types/is_reference + + + std::ratio + cpp/numeric/ratio/ratio + + + std::shared_future + cpp/thread/shared_future + + T + ~shared_future + cpp/thread/shared_future/~shared_future + + (T... args) + + + T + operator= + cpp/thread/shared_future/operator= + + (T... args) + + + T + wait + cpp/thread/shared_future/wait + + (T... args) + + + T + wait_until + cpp/thread/shared_future/wait_until + + (T... args) + + + T + wait_for + cpp/thread/shared_future/wait_for + + (T... args) + + + T + shared_future + cpp/thread/shared_future/shared_future + + (T... args) + + + T + valid + cpp/thread/shared_future/valid + + (T... args) + + + T + get + cpp/thread/shared_future/get + + (T... args) + + + + std::u16streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::wistream + cpp/io/basic_istream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::wistream::event_callback + + T + wistream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ~wistream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wistream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::wistream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wistream::event_callback + cpp/io/ios_base/event_callback + + + std::wistream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wistream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::aligned_storage + cpp/types/aligned_storage + + + std::wstreambuf + cpp/io/basic_streambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + wstreambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + ~wstreambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::binary_function + cpp/utility/functional/binary_function + + + std::out_of_range + cpp/error/out_of_range + + T + out_of_range + cpp/error/out_of_range + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::independent_bits_engine + cpp/numeric/random/independent_bits_engine + + T + discard + cpp/numeric/random/independent_bits_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/independent_bits_engine/max + + (T... args) + + + T + independent_bits_engine + cpp/numeric/random/independent_bits_engine/independent_bits_engine + + (T... args) + + + T + operator() + cpp/numeric/random/independent_bits_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/independent_bits_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/independent_bits_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/independent_bits_engine/min + + (T... args) + + + + std::stringstream + cpp/io/basic_stringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + stringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::stringstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::stringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::stringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::stringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::stringstream::event_callback + cpp/io/ios_base/event_callback + + + std::stringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::tera + cpp/numeric/ratio/ratio + + + std::recursive_timed_mutex + cpp/thread/recursive_timed_mutex + + T + unlock + cpp/thread/recursive_timed_mutex/unlock + + (T... args) + + + T + native_handle + cpp/thread/recursive_timed_mutex/native_handle + + (T... args) + + + T + try_lock_until + cpp/thread/recursive_timed_mutex/try_lock_until + + (T... args) + + + T + try_lock_for + cpp/thread/recursive_timed_mutex/try_lock_for + + (T... args) + + + T + recursive_timed_mutex + cpp/thread/recursive_timed_mutex/recursive_timed_mutex + + (T... args) + + + T + lock + cpp/thread/recursive_timed_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/recursive_timed_mutex/try_lock + + (T... args) + + + + std::nano + cpp/numeric/ratio/ratio + + + std::unordered_multimap + cpp/container/unordered_multimap + + T + ~unordered_multimap + cpp/container/unordered_multimap/~unordered_multimap + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_multimap/max_bucket_count + + (T... args) + + + T + bucket_count + cpp/container/unordered_multimap/bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + erase + cpp/container/unordered_multimap/erase + + (T... args) + + + T + insert + cpp/container/unordered_multimap/insert + + (T... args) + + + T + unordered_multimap + cpp/container/unordered_multimap/unordered_multimap + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multimap/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_multimap/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multimap/emplace_hint + + (T... args) + + + T + end(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + key_eq + cpp/container/unordered_multimap/key_eq + + (T... args) + + + T + hash_function + cpp/container/unordered_multimap/hash_function + + (T... args) + + + T + find + cpp/container/unordered_multimap/find + + (T... args) + + + T + begin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_multimap/swap + + (T... args) + + + T + begin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + load_factor + cpp/container/unordered_multimap/load_factor + + (T... args) + + + T + size + cpp/container/unordered_multimap/size + + (T... args) + + + T + operator= + cpp/container/unordered_multimap/operator= + + (T... args) + + + T + cend + cpp/container/unordered_multimap/end + + (T... args) + + + T + reserve + cpp/container/unordered_multimap/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_multimap/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_multimap/bucket + + (T... args) + + + T + empty + cpp/container/unordered_multimap/empty + + (T... args) + + + T + get_allocator + cpp/container/unordered_multimap/get_allocator + + (T... args) + + + T + max_size + cpp/container/unordered_multimap/max_size + + (T... args) + + + T + cend(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + count + cpp/container/unordered_multimap/count + + (T... args) + + + T + clear + cpp/container/unordered_multimap/clear + + (T... args) + + + T + equal_range + cpp/container/unordered_multimap/equal_range + + (T... args) + + + T + emplace + cpp/container/unordered_multimap/emplace + + (T... args) + + + T + bucket_size + cpp/container/unordered_multimap/bucket_size + + (T... args) + + + + std::normal_distribution + cpp/numeric/random/normal_distribution + + T + min + cpp/numeric/random/normal_distribution/min + + (T... args) + + + T + stddev + cpp/numeric/random/normal_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/normal_distribution/reset + + (T... args) + + + T + mean + cpp/numeric/random/normal_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/normal_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/normal_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/normal_distribution/param + + (T... args) + + + T + normal_distribution + cpp/numeric/random/normal_distribution/normal_distribution + + (T... args) + + + + std::minstd_rand + cpp/numeric/random/linear_congruential_engine + + T + discard + cpp/numeric/random/linear_congruential_engine/discard + + (T... args) + + + T + minstd_rand + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + T + max + cpp/numeric/random/linear_congruential_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + + std::is_signed + cpp/types/is_signed + + + std::is_move_constructible + cpp/types/is_move_constructible + + + std::unique_ptr + cpp/memory/unique_ptr + + T + unique_ptr + cpp/memory/unique_ptr/unique_ptr + + (T... args) + + + T + operator= + cpp/memory/unique_ptr/operator= + + (T... args) + + + T + swap + cpp/memory/unique_ptr/swap + + (T... args) + + + T + operator* + cpp/memory/unique_ptr/operator* + + (T... args) + + + T + ~unique_ptr + cpp/memory/unique_ptr/~unique_ptr + + (T... args) + + + T + operator-> + cpp/memory/unique_ptr/operator* + + (T... args) + + + T + release + cpp/memory/unique_ptr/release + + (T... args) + + + T + get_deleter + cpp/memory/unique_ptr/get_deleter + + (T... args) + + + T + operator bool + cpp/memory/unique_ptr/operator_bool + + (T... args) + + + T + get + cpp/memory/unique_ptr/get + + (T... args) + + + T + reset + cpp/memory/unique_ptr/reset + + (T... args) + + + + std::is_nothrow_copy_constructible + cpp/types/is_copy_constructible + + + std::forward_list + cpp/container/forward_list + + T + pop_front + cpp/container/forward_list/pop_front + + (T... args) + + + T + unique + cpp/container/forward_list/unique + + (T... args) + + + T + sort + cpp/container/forward_list/sort + + (T... args) + + + T + cbegin + cpp/container/forward_list/begin + + (T... args) + + + T + splice_after + cpp/container/forward_list/splice_after + + (T... args) + + + T + reverse + cpp/container/forward_list/reverse + + (T... args) + + + T + remove_if + cpp/container/forward_list/remove + + (T... args) + + + T + end + cpp/container/forward_list/end + + (T... args) + + + T + remove + cpp/container/forward_list/remove + + (T... args) + + + T + push_front + cpp/container/forward_list/push_front + + (T... args) + + + T + emplace_after + cpp/container/forward_list/emplace_after + + (T... args) + + + T + get_allocator + cpp/container/forward_list/get_allocator + + (T... args) + + + T + front + cpp/container/forward_list/front + + (T... args) + + + T + begin + cpp/container/forward_list/begin + + (T... args) + + + T + resize + cpp/container/forward_list/resize + + (T... args) + + + T + emplace_front + cpp/container/forward_list/emplace_front + + (T... args) + + + T + swap + cpp/container/forward_list/swap + + (T... args) + + + T + erase_after + cpp/container/forward_list/erase_after + + (T... args) + + + T + assign + cpp/container/forward_list/assign + + (T... args) + + + T + forward_list + cpp/container/forward_list/forward_list + + (T... args) + + + T + ~forward_list + cpp/container/forward_list/~forward_list + + (T... args) + + + T + before_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + cbefore_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + merge + cpp/container/forward_list/merge + + (T... args) + + + T + operator= + cpp/container/forward_list/operator= + + (T... args) + + + T + insert_after + cpp/container/forward_list/insert_after + + (T... args) + + + T + empty + cpp/container/forward_list/empty + + (T... args) + + + T + max_size + cpp/container/forward_list/max_size + + (T... args) + + + T + cend + cpp/container/forward_list/end + + (T... args) + + + T + clear + cpp/container/forward_list/clear + + (T... args) + + + + std::errc + cpp/error/errc + + + std::lconv + cpp/locale/lconv + + + std::strstreambuf + cpp/io/strstreambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/strstreambuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pcount + cpp/io/strstreambuf/pcount + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + ~strstreambuf + cpp/io/strstreambuf/~strstreambuf + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + freeze + cpp/io/strstreambuf/freeze + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + strstreambuf + cpp/io/strstreambuf/strstreambuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::locale + cpp/locale/locale + + T + name + cpp/locale/locale/name + + (T... args) + + + T + combine + cpp/locale/locale/combine + + (T... args) + + + T + operator() + cpp/locale/locale/operator() + + (T... args) + + + T + classic + cpp/locale/locale/classic + + (T... args) + + + T + global + cpp/locale/locale/global + + (T... args) + + + T + operator!= + cpp/locale/locale/operator_cmp + + (T... args) + + + T + operator= + cpp/locale/locale/operator= + + (T... args) + + std::locale::facet + + T + operator== + cpp/locale/locale/operator_cmp + + (T... args) + + + T + locale + cpp/locale/locale/locale + + (T... args) + + std::locale::id + + T + ~locale + cpp/locale/locale/~locale + + (T... args) + + + + std::locale::facet + cpp/locale/locale/facet + + T + facet + cpp/locale/locale/facet/facet + + (T... args) + + + + std::locale::id + cpp/locale/locale/id + + T + id + cpp/locale/locale/id/id + + (T... args) + + + + std::equal_to + cpp/utility/functional/equal_to + + T + operator() + cpp/utility/functional/equal_to + + (T... args) + + + + std::divides + cpp/utility/functional/divides + + T + operator() + cpp/utility/functional/divides + + (T... args) + + + + std::collate_byname + cpp/locale/collate_byname + + T + hash + cpp/locale/collate/hash + + (T... args) + + + T + do_hash + cpp/locale/collate/hash + + (T... args) + + std::collate_byname::char_type + + T + do_transform + cpp/locale/collate/transform + + (T... args) + + + T + transform + cpp/locale/collate/transform + + (T... args) + + + T + do_compare + cpp/locale/collate/compare + + (T... args) + + + T + ~collate_byname + cpp/locale/collate_byname + + (T... args) + + std::collate_byname::string_type + + T + collate_byname + cpp/locale/collate_byname + + (T... args) + + + T + compare + cpp/locale/collate/compare + + (T... args) + + + + std::collate_byname::char_type + cpp/locale/collate + + + std::collate_byname::string_type + cpp/locale/collate + + + std::domain_error + cpp/error/domain_error + + T + domain_error + cpp/error/domain_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_empty + cpp/types/is_empty + + + std::is_nothrow_default_constructible + cpp/types/is_default_constructible + + + std::ratio_equal + cpp/numeric/ratio/ratio_equal + + + std::ostream + cpp/io/basic_ostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ostream::event_callback + + T + ostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + ~ostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ostream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ostream::event_callback + cpp/io/ios_base/event_callback + + + std::ostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::streamsize + cpp/io/streamsize + + + std::shared_lock + cpp/thread/shared_lock + + T + mutex + cpp/thread/shared_lock/mutex + + (T... args) + + + T + swap + cpp/thread/shared_lock/swap + + (T... args) + + + T + shared_lock + cpp/thread/shared_lock/shared_lock + + (T... args) + + + T + try_lock_for + cpp/thread/shared_lock/try_lock_for + + (T... args) + + + T + release + cpp/thread/shared_lock/release + + (T... args) + + + T + lock + cpp/thread/shared_lock/lock + + (T... args) + + + T + operator bool + cpp/thread/shared_lock/operator_bool + + (T... args) + + + T + unlock + cpp/thread/shared_lock/unlock + + (T... args) + + + T + operator= + cpp/thread/shared_lock/operator= + + (T... args) + + + T + ~shared_lock + cpp/thread/shared_lock/~shared_lock + + (T... args) + + + T + try_lock_until + cpp/thread/shared_lock/try_lock_until + + (T... args) + + + T + try_lock + cpp/thread/shared_lock/try_lock + + (T... args) + + + T + owns_lock + cpp/thread/shared_lock/owns_lock + + (T... args) + + + + std::uint8_t + cpp/types/integer + + + std::enable_shared_from_this + cpp/memory/enable_shared_from_this + + T + enable_shared_from_this + cpp/memory/enable_shared_from_this/enable_shared_from_this + + (T... args) + + + T + operator= + cpp/memory/enable_shared_from_this/operator= + + (T... args) + + + T + shared_from_this + cpp/memory/enable_shared_from_this/shared_from_this + + (T... args) + + + T + ~enable_shared_from_this + cpp/memory/enable_shared_from_this/~enable_shared_from_this + + (T... args) + + + + std::ptrdiff_t + cpp/types/ptrdiff_t + + + std::int_fast8_t + cpp/types/integer + + + std::aligned_union + cpp/types/aligned_union + + + std::future + cpp/thread/future + + T + operator= + cpp/thread/future/operator= + + (T... args) + + + T + wait + cpp/thread/future/wait + + (T... args) + + + T + wait_until + cpp/thread/future/wait_until + + (T... args) + + + T + wait_for + cpp/thread/future/wait_for + + (T... args) + + + T + ~future + cpp/thread/future/~future + + (T... args) + + + T + share + cpp/thread/future/share + + (T... args) + + + T + future + cpp/thread/future/future + + (T... args) + + + T + valid + cpp/thread/future/valid + + (T... args) + + + T + get + cpp/thread/future/get + + (T... args) + + + + std::wcmatch + cpp/regex/match_results + + T + wcmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + ~wcmatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::overflow_error + cpp/error/overflow_error + + T + overflow_error + cpp/error/overflow_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::centi + cpp/numeric/ratio/ratio + + + std::wssub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + wssub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::is_nothrow_move_assignable + cpp/types/is_move_assignable + + + std::pair + cpp/utility/pair + + T + pair + cpp/utility/pair/pair + + (T... args) + + + T + swap + cpp/utility/pair/swap + + (T... args) + + + T + operator= + cpp/utility/pair/operator= + + (T... args) + + + + std::wsregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + wsregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::weibull_distribution + cpp/numeric/random/weibull_distribution + + T + reset + cpp/numeric/random/weibull_distribution/reset + + (T... args) + + + T + a + cpp/numeric/random/weibull_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/weibull_distribution/max + + (T... args) + + + T + weibull_distribution + cpp/numeric/random/weibull_distribution/weibull_distribution + + (T... args) + + + T + operator() + cpp/numeric/random/weibull_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/weibull_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/weibull_distribution/min + + (T... args) + + + T + b + cpp/numeric/random/weibull_distribution/params + + (T... args) + + + + std::less + cpp/utility/functional/less + + T + operator() + cpp/utility/functional/less + + (T... args) + + + + std::multiplies + cpp/utility/functional/multiplies + + T + operator() + cpp/utility/functional/multiplies + + (T... args) + + + + std::is_enum + cpp/types/is_enum + + + std::unary_function + cpp/utility/functional/unary_function + + + std::error_code + cpp/error/error_code + + T + value + cpp/error/error_code/value + + (T... args) + + + T + operator bool + cpp/error/error_code/operator_bool + + (T... args) + + + T + assign + cpp/error/error_code/assign + + (T... args) + + + T + operator= + cpp/error/error_code/operator= + + (T... args) + + + T + error_code + cpp/error/error_code/error_code + + (T... args) + + + T + clear + cpp/error/error_code/clear + + (T... args) + + + T + default_error_condition + cpp/error/error_code/default_error_condition + + (T... args) + + + T + message + cpp/error/error_code/message + + (T... args) + + + T + category + cpp/error/error_code/category + + (T... args) + + + + std::yocto + cpp/numeric/ratio/ratio + + + std::streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::istream_iterator + cpp/iterator/istream_iterator + + + std::wifstream + cpp/io/basic_ifstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::wifstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::wifstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + wifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + std::wifstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wifstream::event_callback + cpp/io/ios_base/event_callback + + + std::wifstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wifstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::moneypunct_byname + cpp/locale/moneypunct_byname + + T + do_curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + moneypunct_byname + cpp/locale/moneypunct_byname + + (T... args) + + + T + curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + do_negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + do_frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + std::moneypunct_byname::string_type + std::moneypunct_byname::pattern + + T + do_positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct_byname::char_type + + T + ~moneypunct_byname + cpp/locale/moneypunct_byname + + (T... args) + + + T + do_grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + + std::moneypunct_byname::string_type + cpp/locale/moneypunct + + + std::moneypunct_byname::pattern + cpp/locale/money_base + + + std::moneypunct_byname::char_type + cpp/locale/moneypunct + + + std::terminate_handler + cpp/error/terminate_handler + + + std::ctype_base + cpp/locale/ctype_base + std::ctype_base::mask + + + std::ctype_base::mask + cpp/locale/ctype_base + + + std::reference_wrapper + cpp/utility/functional/reference_wrapper + + T + operator= + cpp/utility/functional/reference_wrapper/operator= + + (T... args) + + + T + operator() + cpp/utility/functional/reference_wrapper/operator() + + (T... args) + + + T + get + cpp/utility/functional/reference_wrapper/get + + (T... args) + + + T + reference_wrapper + cpp/utility/functional/reference_wrapper/reference_wrapper + + (T... args) + + + T + operator T& + cpp/utility/functional/reference_wrapper/get + + (T... args) + + + + std::ranlux48_base + cpp/numeric/random/subtract_with_carry_engine + + T + discard + cpp/numeric/random/subtract_with_carry_engine/discard + + (T... args) + + + T + ranlux48_base + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + + std::bit_not + cpp/utility/functional/bit_not + + T + operator() + cpp/utility/functional/bit_not + + (T... args) + + + + std::int_fast16_t + cpp/types/integer + + + std::error_category + cpp/error/error_category + + T + name + cpp/error/error_category/name + + (T... args) + + + T + operator!= + cpp/error/error_category/operator_cmp + + (T... args) + + + T + operator< + cpp/error/error_category/operator_cmp + + (T... args) + + + T + error_category + cpp/error/error_category/error_category + + (T... args) + + + T + equivalent + cpp/error/error_category/equivalent + + (T... args) + + + T + operator== + cpp/error/error_category/operator_cmp + + (T... args) + + + T + ~error_category + cpp/error/error_category/~error_category + + (T... args) + + + T + default_error_condition + cpp/error/error_category/default_error_condition + + (T... args) + + + T + message + cpp/error/error_category/message + + (T... args) + + + + std::regex_traits + cpp/regex/regex_traits + + T + value + cpp/regex/regex_traits/value + + (T... args) + + + T + lookup_collatename + cpp/regex/regex_traits/lookup_collatename + + (T... args) + + + T + isctype + cpp/regex/regex_traits/isctype + + (T... args) + + + T + getloc + cpp/regex/regex_traits/getloc + + (T... args) + + + T + regex_traits + cpp/regex/regex_traits/regex_traits + + (T... args) + + + T + transform_primary + cpp/regex/regex_traits/transform_primary + + (T... args) + + + T + translate + cpp/regex/regex_traits/translate + + (T... args) + + + T + imbue + cpp/regex/regex_traits/imbue + + (T... args) + + + T + lookup_classname + cpp/regex/regex_traits/lookup_classname + + (T... args) + + + T + transform + cpp/regex/regex_traits/transform + + (T... args) + + + T + length + cpp/regex/regex_traits/length + + (T... args) + + + T + translate_nocase + cpp/regex/regex_traits/translate_nocase + + (T... args) + + + + std::regex_constants + + + + std::negative_binomial_distribution + cpp/numeric/random/negative_binomial_distribution + + T + p + cpp/numeric/random/negative_binomial_distribution/params + + (T... args) + + + T + negative_binomial_distribution + cpp/numeric/random/negative_binomial_distribution/negative_binomial_distribution + + (T... args) + + + T + min + cpp/numeric/random/negative_binomial_distribution/min + + (T... args) + + + T + max + cpp/numeric/random/negative_binomial_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/negative_binomial_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/negative_binomial_distribution/reset + + (T... args) + + + T + k + cpp/numeric/random/negative_binomial_distribution/params + + (T... args) + + + + std::is_union + cpp/types/is_union + + + std::mt19937 + cpp/numeric/random/mersenne_twister_engine + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + T + discard + cpp/numeric/random/mersenne_twister_engine/discard + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + mt19937 + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + max + cpp/numeric/random/mersenne_twister_engine/max + + (T... args) + + + T + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + + std::enable_if + cpp/types/enable_if + + + std::chi_squared_distribution + cpp/numeric/random/chi_squared_distribution + + T + n + cpp/numeric/random/chi_squared_distribution/n + + (T... args) + + + T + reset + cpp/numeric/random/chi_squared_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/chi_squared_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/chi_squared_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/chi_squared_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/chi_squared_distribution/min + + (T... args) + + + T + chi_squared_distribution + cpp/numeric/random/chi_squared_distribution/chi_squared_distribution + + (T... args) + + + + std::add_rvalue_reference + cpp/types/add_reference + + + std::basic_istream + cpp/io/basic_istream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_istream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + basic_istream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + ~basic_istream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_istream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::basic_istream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_istream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_istream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_istream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::ostream_iterator + cpp/iterator/ostream_iterator + + + std::is_trivially_copy_assignable + cpp/types/is_copy_assignable + + + std::clog + cpp/io/basic_ostream + + + std::is_scalar + cpp/types/is_scalar + + + std::uses_allocator + cpp/memory/uses_allocator + + + std::piecewise_linear_distribution + cpp/numeric/random/piecewise_linear_distribution + + T + piecewise_linear_distribution + cpp/numeric/random/piecewise_linear_distribution/piecewise_linear_distribution + + (T... args) + + + T + densities + cpp/numeric/random/piecewise_linear_distribution/params + + (T... args) + + + T + intervals + cpp/numeric/random/piecewise_linear_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/piecewise_linear_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/piecewise_linear_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/piecewise_linear_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/piecewise_linear_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/piecewise_linear_distribution/min + + (T... args) + + + + std::hash + cpp/utility/hash + + T + hash + cpp/utility/hash/hash + + (T... args) + + + T + operator() + cpp/utility/hash/operator() + + (T... args) + + + + std::shuffle_order_engine + cpp/numeric/random/shuffle_order_engine + + T + discard + cpp/numeric/random/shuffle_order_engine/discard + + (T... args) + + + T + shuffle_order_engine + cpp/numeric/random/shuffle_order_engine/shuffle_order_engine + + (T... args) + + + T + max + cpp/numeric/random/shuffle_order_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/shuffle_order_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/shuffle_order_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/shuffle_order_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/shuffle_order_engine/min + + (T... args) + + + + std::chrono + + std::chrono::minutes + + T + time_point_cast + cpp/chrono/time_point/time_point_cast + + (T... args) + + std::chrono::seconds + std::chrono::treat_as_floating_point + std::chrono::duration + std::chrono::milliseconds + std::chrono::steady_clock + std::chrono::system_clock + std::chrono::hours + std::chrono::time_point + std::chrono::high_resolution_clock + std::chrono::duration_values + std::chrono::microseconds + std::chrono::nanoseconds + + T + duration_cast + cpp/chrono/duration/duration_cast + + (T... args) + + + + std::chrono::minutes + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + minutes + cpp/chrono/duration/duration + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::seconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + seconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::treat_as_floating_point + cpp/chrono/treat_as_floating_point + + + std::chrono::duration + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + duration + cpp/chrono/duration/duration + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::milliseconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + milliseconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::steady_clock + cpp/chrono/steady_clock + + T + now + cpp/chrono/steady_clock/now + + (T... args) + + + + std::chrono::system_clock + cpp/chrono/system_clock + + T + now + cpp/chrono/system_clock/now + + (T... args) + + + T + to_time_t + cpp/chrono/system_clock/to_time_t + + (T... args) + + + T + from_time_t + cpp/chrono/system_clock/from_time_t + + (T... args) + + + + std::chrono::hours + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + hours + cpp/chrono/duration/duration + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::time_point + cpp/chrono/time_point + + T + time_since_epoch + cpp/chrono/time_point/time_since_epoch + + (T... args) + + + T + min + cpp/chrono/time_point/min + + (T... args) + + + T + operator- + cpp/chrono/time_point/operator_arith + + (T... args) + + + T + max + cpp/chrono/time_point/max + + (T... args) + + + T + operator+ + cpp/chrono/time_point/operator_arith + + (T... args) + + + T + time_point + cpp/chrono/time_point/time_point + + (T... args) + + + + std::chrono::high_resolution_clock + cpp/chrono/high_resolution_clock + + T + now + cpp/chrono/high_resolution_clock/now + + (T... args) + + + + std::chrono::duration_values + cpp/chrono/duration_values + + T + max + cpp/chrono/duration_values/max + + (T... args) + + + T + zero + cpp/chrono/duration_values/zero + + (T... args) + + + T + min + cpp/chrono/duration_values/min + + (T... args) + + + + std::chrono::microseconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + microseconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::nanoseconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + nanoseconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::greater + cpp/utility/functional/greater + + T + operator() + cpp/utility/functional/greater + + (T... args) + + + + std::csub_match + cpp/regex/sub_match + + T + csub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::uintmax_t + cpp/types/integer + + + std::remove_pointer + cpp/types/remove_pointer + + + std::numeric_limits + cpp/types/numeric_limits + + T + lowest + cpp/types/numeric_limits/lowest + + (T... args) + + + T + infinity + cpp/types/numeric_limits/infinity + + (T... args) + + + T + signaling_NaN + cpp/types/numeric_limits/signaling_NaN + + (T... args) + + + T + quiet_NaN + cpp/types/numeric_limits/quiet_NaN + + (T... args) + + + T + denorm_min + cpp/types/numeric_limits/denorm_min + + (T... args) + + + T + max + cpp/types/numeric_limits/max + + (T... args) + + + T + round_error + cpp/types/numeric_limits/round_error + + (T... args) + + + T + min + cpp/types/numeric_limits/min + + (T... args) + + + T + epsilon + cpp/types/numeric_limits/epsilon + + (T... args) + + + + std::add_volatile + cpp/types/add_cv + + + std::once_flag + cpp/thread/once_flag + + T + once_flag + cpp/thread/once_flag + + (T... args) + + + + std::is_literal_type + cpp/types/is_literal_type + + + std::money_base + cpp/locale/money_base + std::money_base::pattern + + + std::money_base::pattern + cpp/locale/money_base + + + std::peta + cpp/numeric/ratio/ratio + + + std::is_placeholder + cpp/utility/functional/is_placeholder + + + std::add_const + cpp/types/add_cv + + + std::basic_stringbuf + cpp/io/basic_stringbuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + basic_stringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::tm + cpp/chrono/c/tm + + + std::is_abstract + cpp/types/is_abstract + + + std::deque + cpp/container/deque + + T + pop_front + cpp/container/deque/pop_front + + (T... args) + + + T + push_back + cpp/container/deque/push_back + + (T... args) + + + T + shrink_to_fit + cpp/container/deque/shrink_to_fit + + (T... args) + + + T + crbegin + cpp/container/deque/rbegin + + (T... args) + + + T + erase + cpp/container/deque/erase + + (T... args) + + + T + insert + cpp/container/deque/insert + + (T... args) + + + T + ~deque + cpp/container/deque/~deque + + (T... args) + + + T + back + cpp/container/deque/back + + (T... args) + + + T + end + cpp/container/deque/end + + (T... args) + + + T + push_front + cpp/container/deque/push_front + + (T... args) + + + T + emplace_back + cpp/container/deque/emplace_back + + (T... args) + + + T + pop_back + cpp/container/deque/pop_back + + (T... args) + + + T + cbegin + cpp/container/deque/begin + + (T... args) + + + T + front + cpp/container/deque/front + + (T... args) + + + T + deque + cpp/container/deque/deque + + (T... args) + + + T + size + cpp/container/deque/size + + (T... args) + + + T + resize + cpp/container/deque/resize + + (T... args) + + + T + emplace_front + cpp/container/deque/emplace_front + + (T... args) + + + T + rbegin + cpp/container/deque/rbegin + + (T... args) + + + T + crend + cpp/container/deque/rend + + (T... args) + + + T + assign + cpp/container/deque/assign + + (T... args) + + + T + operator= + cpp/container/deque/operator= + + (T... args) + + + T + empty + cpp/container/deque/empty + + (T... args) + + + T + cend + cpp/container/deque/end + + (T... args) + + + T + swap + cpp/container/deque/swap + + (T... args) + + + T + max_size + cpp/container/deque/max_size + + (T... args) + + + T + rend + cpp/container/deque/rend + + (T... args) + + + T + get_allocator + cpp/container/deque/get_allocator + + (T... args) + + + T + clear + cpp/container/deque/clear + + (T... args) + + + T + at + cpp/container/deque/at + + (T... args) + + + T + emplace + cpp/container/deque/emplace + + (T... args) + + + T + operator[] + cpp/container/deque/operator_at + + (T... args) + + + T + begin + cpp/container/deque/begin + + (T... args) + + + + std::allocator + cpp/memory/allocator + + T + allocator + cpp/memory/allocator/allocator + + (T... args) + + + T + allocate + cpp/memory/allocator/allocate + + (T... args) + + + T + destroy + cpp/memory/allocator/destroy + + (T... args) + + + T + ~allocator + cpp/memory/allocator/~allocator + + (T... args) + + + T + max_size + cpp/memory/allocator/max_size + + (T... args) + + + T + address + cpp/memory/allocator/address + + (T... args) + + + T + deallocate + cpp/memory/allocator/deallocate + + (T... args) + + + T + construct + cpp/memory/allocator/construct + + (T... args) + + + + std::scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor + + T + deallocate + cpp/memory/scoped_allocator_adaptor/deallocate + + (T... args) + + + T + scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor/scoped_allocator_adaptor + + (T... args) + + + T + destroy + cpp/memory/scoped_allocator_adaptor/destroy + + (T... args) + + + T + construct + cpp/memory/scoped_allocator_adaptor/construct + + (T... args) + + + T + max_size + cpp/memory/scoped_allocator_adaptor/max_size + + (T... args) + + + T + inner_allocator + cpp/memory/scoped_allocator_adaptor/inner_allocator + + (T... args) + + + T + select_on_container_copy_construction + cpp/memory/scoped_allocator_adaptor/select_on_container_copy_construction + + (T... args) + + + T + allocate + cpp/memory/scoped_allocator_adaptor/allocate + + (T... args) + + + T + outer_allocator + cpp/memory/scoped_allocator_adaptor/outer_allocator + + (T... args) + + + T + ~scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor/~scoped_allocator_adaptor + + (T... args) + + + + std::ssub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + ssub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::messages_byname + cpp/locale/messages_byname + + T + do_get + cpp/locale/messages/get + + (T... args) + + std::messages_byname::char_type + std::messages_byname::catalog + + T + ~messages_byname + cpp/locale/messages_byname + + (T... args) + + + T + messages_byname + cpp/locale/messages_byname + + (T... args) + + + T + do_open + cpp/locale/messages/open + + (T... args) + + + T + do_close + cpp/locale/messages/close + + (T... args) + + + T + open + cpp/locale/messages/open + + (T... args) + + std::messages_byname::string_type + + T + get + cpp/locale/messages/get + + (T... args) + + + T + close + cpp/locale/messages/close + + (T... args) + + + + std::messages_byname::char_type + cpp/locale/messages + + + std::messages_byname::catalog + cpp/locale/messages_base + + + std::messages_byname::string_type + cpp/locale/messages + + + std::promise + cpp/thread/promise + + T + set_exception + cpp/thread/promise/set_exception + + (T... args) + + + T + operator= + cpp/thread/promise/operator= + + (T... args) + + + T + swap + cpp/thread/promise/swap + + (T... args) + + + T + set_exception_at_thread_exit + cpp/thread/promise/set_exception_at_thread_exit + + (T... args) + + + T + set_value + cpp/thread/promise/set_value + + (T... args) + + + T + get_future + cpp/thread/promise/get_future + + (T... args) + + + T + promise + cpp/thread/promise/promise + + (T... args) + + + T + ~promise + cpp/thread/promise/~promise + + (T... args) + + + T + set_value_at_thread_exit + cpp/thread/promise/set_value_at_thread_exit + + (T... args) + + + + std::add_pointer + cpp/types/add_pointer + + + std::uintptr_t + cpp/types/integer + + + std::bit_and + cpp/utility/functional/bit_and + + T + operator() + cpp/utility/functional/bit_and + + (T... args) + + + + std::uniform_int_distribution + cpp/numeric/random/uniform_int_distribution + + T + min + cpp/numeric/random/uniform_int_distribution/min + + (T... args) + + + T + b + cpp/numeric/random/uniform_int_distribution/params + + (T... args) + + + T + a + cpp/numeric/random/uniform_int_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/uniform_int_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/uniform_int_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/uniform_int_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/uniform_int_distribution/reset + + (T... args) + + + T + uniform_int_distribution + cpp/numeric/random/uniform_int_distribution/uniform_int_distribution + + (T... args) + + + + std::type_info + cpp/types/type_info + + T + operator!= + cpp/types/type_info/operator_cmp + + (T... args) + + + T + before + cpp/types/type_info/before + + (T... args) + + + T + name + cpp/types/type_info/name + + (T... args) + + + T + operator== + cpp/types/type_info/operator_cmp + + (T... args) + + + T + hash_code + cpp/types/type_info/hash_code + + (T... args) + + + + std::fisher_f_distribution + cpp/numeric/random/fisher_f_distribution + + T + fisher_f_distribution + cpp/numeric/random/fisher_f_distribution/fisher_f_distribution + + (T... args) + + + T + n + cpp/numeric/random/fisher_f_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/fisher_f_distribution/reset + + (T... args) + + + T + m + cpp/numeric/random/fisher_f_distribution/params + + (T... args) + + + T + operator() + cpp/numeric/random/fisher_f_distribution/operator() + + (T... args) + + + T + max + cpp/numeric/random/fisher_f_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/fisher_f_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/fisher_f_distribution/min + + (T... args) + + + + std::strstream + cpp/io/strstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/strstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + pcount + cpp/io/strstream/pcount + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::strstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::strstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::strstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + strstream + cpp/io/strstream/strstream + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + freeze + cpp/io/strstream/freeze + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + ~strstream + cpp/io/strstream/~strstream + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::strstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::strstream::event_callback + cpp/io/ios_base/event_callback + + + std::strstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::time_get_byname + cpp/locale/time_get_byname + + T + do_get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + do_get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + time_get_byname + cpp/locale/time_get_byname + + (T... args) + + + T + do_get_year + cpp/locale/time_get/get_year + + (T... args) + + std::time_get_byname::iter_type + + T + get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + ~time_get_byname + cpp/locale/time_get_byname + + (T... args) + + + T + get_time + cpp/locale/time_get/get_time + + (T... args) + + std::time_get_byname::char_type + + T + do_get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + do_date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + + std::time_get_byname::iter_type + cpp/locale/time_get + + + std::time_get_byname::char_type + cpp/locale/time_get + + + std::basic_streambuf + cpp/io/basic_streambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + basic_streambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + ~basic_streambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + + std::is_nothrow_constructible + cpp/types/is_constructible + + + std::queue + cpp/container/queue + + T + operator= + cpp/container/queue/operator= + + (T... args) + + + T + swap + cpp/container/queue/swap + + (T... args) + + + T + emplace + cpp/container/queue/emplace + + (T... args) + + + T + empty + cpp/container/queue/empty + + (T... args) + + + T + ~queue + cpp/container/queue/~queue + + (T... args) + + + T + pop + cpp/container/queue/pop + + (T... args) + + + T + front + cpp/container/queue/front + + (T... args) + + + T + push + cpp/container/queue/push + + (T... args) + + + T + queue + cpp/container/queue/queue + + (T... args) + + + T + back + cpp/container/queue/back + + (T... args) + + + T + size + cpp/container/queue/size + + (T... args) + + + + std::is_base_of + cpp/types/is_base_of + + + std::intmax_t + cpp/types/integer + + + std::ranlux24 + cpp/numeric/random/discard_block_engine + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + ranlux24 + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + + std::remove_cv + cpp/types/remove_cv + + + std::is_trivially_destructible + cpp/types/is_destructible + + + std::wcin + cpp/io/basic_istream + + + std::atomic + cpp/atomic/atomic + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + atomic + cpp/atomic/atomic/atomic + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + + std::basic_stringstream + cpp/io/basic_stringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + basic_stringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::basic_stringstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::basic_stringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_stringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_stringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_stringstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_stringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_void + cpp/types/is_void + + + std::plus + cpp/utility/functional/plus + + T + operator() + cpp/utility/functional/plus + + (T... args) + + + + std::bitset + cpp/utility/bitset + + T + none + cpp/utility/bitset/all_any_none + + (T... args) + + + T + operator<< + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator>> + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + std::bitset::reference + + T + reset + cpp/utility/bitset/reset + + (T... args) + + + T + count + cpp/utility/bitset/count + + (T... args) + + + T + operator<<= + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator|= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + operator&= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + bitset + cpp/utility/bitset/bitset + + (T... args) + + + T + size + cpp/utility/bitset/size + + (T... args) + + + T + set + cpp/utility/bitset/set + + (T... args) + + + T + all + cpp/utility/bitset/all_any_none + + (T... args) + + + T + to_string + cpp/utility/bitset/to_string + + (T... args) + + + T + operator!= + cpp/utility/bitset/operator_cmp + + (T... args) + + + T + any + cpp/utility/bitset/all_any_none + + (T... args) + + + T + test + cpp/utility/bitset/test + + (T... args) + + + T + operator== + cpp/utility/bitset/operator_cmp + + (T... args) + + + T + operator>>= + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + to_ulong + cpp/utility/bitset/to_ulong + + (T... args) + + + T + operator^= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + operator~ + cpp/utility/bitset/operator_logic + + (T... args) + + + T + to_ullong + cpp/utility/bitset/to_ullong + + (T... args) + + + T + operator[] + cpp/utility/bitset/operator_at + + (T... args) + + + T + flip + cpp/utility/bitset/flip + + (T... args) + + + + std::bitset::reference + cpp/utility/bitset/reference + + + std::FILE + cpp/io/c + + + std::thread + cpp/thread/thread + + T + joinable + cpp/thread/thread/joinable + + (T... args) + + + T + operator= + cpp/thread/thread/operator= + + (T... args) + + + T + native_handle + cpp/thread/thread/native_handle + + (T... args) + + + T + ~thread + cpp/thread/thread/~thread + + (T... args) + + + T + swap + cpp/thread/thread/swap + + (T... args) + + + T + hardware_concurrency + cpp/thread/thread/hardware_concurrency + + (T... args) + + std::thread::id + + T + thread + cpp/thread/thread/thread + + (T... args) + + + T + join + cpp/thread/thread/join + + (T... args) + + + T + detach + cpp/thread/thread/detach + + (T... args) + + + T + get_id + cpp/thread/thread/get_id + + (T... args) + + + + std::thread::id + cpp/thread/thread/id + + T + operator!= + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator>= + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator<= + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator< + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator== + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator<< + cpp/thread/thread/id/operator_ltlt + + (T... args) + + + T + id + cpp/thread/thread/id/id + + (T... args) + + + T + operator> + cpp/thread/thread/id/operator_cmp + + (T... args) + + + + std::future_error + cpp/thread/future_error + + T + code + cpp/thread/future_error/code + + (T... args) + + + T + future_error + cpp/thread/future_error/future_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::time_base + cpp/locale/time_base + + + std::alignment_of + cpp/types/alignment_of + + + std::time_put + cpp/locale/time_put + std::time_put::char_type + std::time_put::iter_type + + T + do_put + cpp/locale/time_put/put + + (T... args) + + + T + ~time_put + cpp/locale/time_put/~time_put + + (T... args) + + + T + put + cpp/locale/time_put/put + + (T... args) + + + T + time_put + cpp/locale/time_put/time_put + + (T... args) + + + + std::time_put::char_type + cpp/locale/time_put + + + std::time_put::iter_type + cpp/locale/time_put + + + std::bit_or + cpp/utility/functional/bit_or + + T + operator() + cpp/utility/functional/bit_or + + (T... args) + + + + std::pointer_traits + cpp/memory/pointer_traits + + T + pointer_to + cpp/memory/pointer_traits/pointer_to + + (T... args) + + + + std::basic_string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + basic_string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::priority_queue + cpp/container/priority_queue + + T + empty + cpp/container/priority_queue/empty + + (T... args) + + + T + swap + cpp/container/priority_queue/swap + + (T... args) + + + T + priority_queue + cpp/container/priority_queue/priority_queue + + (T... args) + + + T + size + cpp/container/priority_queue/size + + (T... args) + + + T + operator= + cpp/container/priority_queue/operator= + + (T... args) + + + T + pop + cpp/container/priority_queue/pop + + (T... args) + + + T + emplace + cpp/container/priority_queue/emplace + + (T... args) + + + T + push + cpp/container/priority_queue/push + + (T... args) + + + T + top + cpp/container/priority_queue/top + + (T... args) + + + T + ~priority_queue + cpp/container/priority_queue/~priority_queue + + (T... args) + + + + std::exa + cpp/numeric/ratio/ratio + + + std::wostringstream + cpp/io/basic_ostringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::wostringstream::event_callback + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + wostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wostringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::wostringstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wostringstream::event_callback + cpp/io/ios_base/event_callback + + + std::wostringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wostringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::is_default_constructible + cpp/types/is_default_constructible + + + std::cregex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + cregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::wstring + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + wstring + cpp/string/basic_string/basic_string + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::remove_all_extents + cpp/types/remove_all_extents + + + std::istrstream + cpp/io/istrstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + ~istrstream + cpp/io/istrstream/~istrstream + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/istrstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::istrstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::istrstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + istrstream + cpp/io/istrstream/istrstream + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::istrstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::istrstream::event_callback + cpp/io/ios_base/event_callback + + + std::istrstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::istrstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::unary_negate + cpp/utility/functional/unary_negate + + T + operator() + cpp/utility/functional/unary_negate + + (T... args) + + + T + unary_negate + cpp/utility/functional/unary_negate + + (T... args) + + + + std::unordered_multiset + cpp/container/unordered_multiset + + T + max_bucket_count + cpp/container/unordered_multiset/max_bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + erase + cpp/container/unordered_multiset/erase + + (T... args) + + + T + insert + cpp/container/unordered_multiset/insert + + (T... args) + + + T + bucket_count + cpp/container/unordered_multiset/bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multiset/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_multiset/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multiset/emplace_hint + + (T... args) + + + T + unordered_multiset + cpp/container/unordered_multiset/unordered_multiset + + (T... args) + + + T + end(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + key_eq + cpp/container/unordered_multiset/key_eq + + (T... args) + + + T + hash_function + cpp/container/unordered_multiset/hash_function + + (T... args) + + + T + equal_range + cpp/container/unordered_multiset/equal_range + + (T... args) + + + T + begin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_multiset/swap + + (T... args) + + + T + ~unordered_multiset + cpp/container/unordered_multiset/~unordered_multiset + + (T... args) + + + T + load_factor + cpp/container/unordered_multiset/load_factor + + (T... args) + + + T + size + cpp/container/unordered_multiset/size + + (T... args) + + + T + operator= + cpp/container/unordered_multiset/operator= + + (T... args) + + + T + cend + cpp/container/unordered_multiset/end + + (T... args) + + + T + reserve + cpp/container/unordered_multiset/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_multiset/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_multiset/bucket + + (T... args) + + + T + find + cpp/container/unordered_multiset/find + + (T... args) + + + T + empty + cpp/container/unordered_multiset/empty + + (T... args) + + + T + get_allocator + cpp/container/unordered_multiset/get_allocator + + (T... args) + + + T + max_size + cpp/container/unordered_multiset/max_size + + (T... args) + + + T + cend(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + count + cpp/container/unordered_multiset/count + + (T... args) + + + T + clear + cpp/container/unordered_multiset/clear + + (T... args) + + + T + begin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + emplace + cpp/container/unordered_multiset/emplace + + (T... args) + + + T + bucket_size + cpp/container/unordered_multiset/bucket_size + + (T... args) + + + + std::basic_ostream + cpp/io/basic_ostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_ostream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_ostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + basic_ostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + ~basic_ostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + std::basic_ostream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ostream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::wsregex_iterator + cpp/regex/regex_iterator + + T + wsregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::uint_fast16_t + cpp/types/integer + + + std::is_nothrow_assignable + cpp/types/is_assignable + + + std::moneypunct + cpp/locale/moneypunct + + T + do_curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + do_pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + do_negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + ~moneypunct + cpp/locale/moneypunct/~moneypunct + + (T... args) + + + T + pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + do_frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + std::moneypunct::string_type + std::moneypunct::pattern + + T + do_positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct::char_type + + T + moneypunct + cpp/locale/moneypunct/moneypunct + + (T... args) + + + T + do_grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + + std::moneypunct::string_type + cpp/locale/moneypunct + + + std::moneypunct::pattern + cpp/locale/money_base + + + std::moneypunct::char_type + cpp/locale/moneypunct + + + std::type_index + cpp/types/type_index + + T + operator!= + cpp/types/type_index/operator_cmp + + (T... args) + + + T + hash_code + cpp/types/type_index/hash_code + + (T... args) + + + T + operator<= + cpp/types/type_index/operator_cmp + + (T... args) + + + T + operator< + cpp/types/type_index/operator_cmp + + (T... args) + + + T + operator== + cpp/types/type_index/operator_cmp + + (T... args) + + + T + operator>= + cpp/types/type_index/operator_cmp + + (T... args) + + + T + type_index + cpp/types/type_index/type_index + + (T... args) + + + T + name + cpp/types/type_index/name + + (T... args) + + + T + operator> + cpp/types/type_index/operator_cmp + + (T... args) + + + + std::is_standard_layout + cpp/types/is_standard_layout + + + std::timed_mutex + cpp/thread/timed_mutex + + T + unlock + cpp/thread/timed_mutex/unlock + + (T... args) + + + T + native_handle + cpp/thread/timed_mutex/native_handle + + (T... args) + + + T + try_lock_until + cpp/thread/timed_mutex/try_lock_until + + (T... args) + + + T + try_lock_for + cpp/thread/timed_mutex/try_lock_for + + (T... args) + + + T + lock + cpp/thread/timed_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/timed_mutex/try_lock + + (T... args) + + + T + timed_mutex + cpp/thread/timed_mutex/timed_mutex + + (T... args) + + + + std::bad_exception + cpp/error/bad_exception + + + std::int_fast64_t + cpp/types/integer + + + std::function + cpp/utility/functional/function + + T + operator= + cpp/utility/functional/function/operator= + + (T... args) + + + T + swap + cpp/utility/functional/function/swap + + (T... args) + + + T + assign + cpp/utility/functional/function/assign + + (T... args) + + + T + target + cpp/utility/functional/function/target + + (T... args) + + + T + operator() + cpp/utility/functional/function/operator() + + (T... args) + + + T + target_type + cpp/utility/functional/function/target_type + + (T... args) + + + T + function + cpp/utility/functional/function/function + + (T... args) + + + T + operator bool + cpp/utility/functional/function/operator_bool + + (T... args) + + + T + ~function + cpp/utility/functional/function/~function + + (T... args) + + + + std::bad_cast + cpp/types/bad_cast + + T + bad_cast + cpp/types/bad_cast/bad_cast + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::error_condition + cpp/error/error_condition + + T + error_condition + cpp/error/error_condition/error_condition + + (T... args) + + + T + operator= + cpp/error/error_condition/operator= + + (T... args) + + + T + operator bool + cpp/error/error_condition/operator_bool + + (T... args) + + + T + assign + cpp/error/error_condition/assign + + (T... args) + + + T + value + cpp/error/error_condition/value + + (T... args) + + + T + clear + cpp/error/error_condition/clear + + (T... args) + + + T + message + cpp/error/error_condition/message + + (T... args) + + + T + category + cpp/error/error_condition/category + + (T... args) + + + + std::filebuf + cpp/io/basic_filebuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + filebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + ~filebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + + std::int_least16_t + cpp/types/integer + + + std::istreambuf_iterator + cpp/iterator/istreambuf_iterator + + + std::u16string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + u16string + cpp/string/basic_string/basic_string + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::is_error_condition_enum + cpp/error/error_condition/is_error_condition_enum + + + std::is_nothrow_destructible + cpp/types/is_destructible + + + std::wiostream + cpp/io/basic_iostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::wiostream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::wiostream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + wiostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wiostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + ~wiostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wiostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wiostream::event_callback + cpp/io/ios_base/event_callback + + + std::wiostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::allocator_arg_t + cpp/memory/allocator_arg_t + + + std::rel_ops + + + T + operator!= + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + T + operator>= + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + T + operator<= + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + T + operator> + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + + std::uint_least32_t + cpp/types/integer + + + std::collate + cpp/locale/collate + + T + hash + cpp/locale/collate/hash + + (T... args) + + + T + do_hash + cpp/locale/collate/hash + + (T... args) + + + T + collate + cpp/locale/collate/collate + + (T... args) + + std::collate::char_type + + T + ~collate + cpp/locale/collate/~collate + + (T... args) + + + T + do_transform + cpp/locale/collate/transform + + (T... args) + + + T + transform + cpp/locale/collate/transform + + (T... args) + + + T + do_compare + cpp/locale/collate/compare + + (T... args) + + std::collate::string_type + + T + compare + cpp/locale/collate/compare + + (T... args) + + + + std::collate::char_type + cpp/locale/collate + + + std::collate::string_type + cpp/locale/collate + + + std::remove_const + cpp/types/remove_cv + + + std::u32string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + u32string + cpp/string/basic_string/basic_string + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::uint_fast32_t + cpp/types/integer + + + std::is_lvalue_reference + cpp/types/is_lvalue_reference + + + std::complex + cpp/numeric/complex + + T + operator= + cpp/numeric/complex/operator= + + (T... args) + + + T + complex + cpp/numeric/complex/complex + + (T... args) + + + T + operator-= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + imag + cpp/numeric/complex/imag + + (T... args) + + + T + operator+= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + operator/= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + operator*= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + real + cpp/numeric/complex/real + + (T... args) + + + + std::ofstream + cpp/io/basic_ofstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ofstream::event_callback + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ofstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::ofstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + ofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ofstream::event_callback + cpp/io/ios_base/event_callback + + + std::ofstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ofstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::insert_iterator + cpp/iterator/insert_iterator + + + std::bad_array_length + cpp/memory/new/bad_array_length + + T + bad_array_length + cpp/memory/new/bad_array_length + + (T... args) + + + T + what + cpp/memory/new/bad_alloc + + (T... args) + + + + std::this_thread + + + T + yield + cpp/thread/yield + + (T... args) + + + T + sleep_for + cpp/thread/sleep_for + + (T... args) + + + T + sleep_until + cpp/thread/sleep_until + + (T... args) + + + T + get_id + cpp/thread/get_id + + (T... args) + + + + std::is_trivially_copyable + cpp/types/is_trivially_copyable + + + std::basic_istringstream + cpp/io/basic_istringstream + + T + basic_istringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::basic_istringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::basic_istringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + std::basic_istringstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_istringstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_istringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_istringstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_ifstream + cpp/io/basic_ifstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + basic_ifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::basic_ifstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::basic_ifstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + std::basic_ifstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ifstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ifstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ifstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::list + cpp/container/list + + T + pop_front + cpp/container/list/pop_front + + (T... args) + + + T + push_back + cpp/container/list/push_back + + (T... args) + + + T + splice + cpp/container/list/splice + + (T... args) + + + T + crbegin + cpp/container/list/rbegin + + (T... args) + + + T + erase + cpp/container/list/erase + + (T... args) + + + T + emplace_front + cpp/container/list/emplace_front + + (T... args) + + + T + insert + cpp/container/list/insert + + (T... args) + + + T + reverse + cpp/container/list/reverse + + (T... args) + + + T + back + cpp/container/list/back + + (T... args) + + + T + end + cpp/container/list/end + + (T... args) + + + T + remove + cpp/container/list/remove + + (T... args) + + + T + list + cpp/container/list/list + + (T... args) + + + T + emplace_back + cpp/container/list/emplace_back + + (T... args) + + + T + pop_back + cpp/container/list/pop_back + + (T... args) + + + T + cbegin + cpp/container/list/begin + + (T... args) + + + T + front + cpp/container/list/front + + (T... args) + + + T + unique + cpp/container/list/unique + + (T... args) + + + T + size + cpp/container/list/size + + (T... args) + + + T + resize + cpp/container/list/resize + + (T... args) + + + T + push_front + cpp/container/list/push_front + + (T... args) + + + T + rbegin + cpp/container/list/rbegin + + (T... args) + + + T + crend + cpp/container/list/rend + + (T... args) + + + T + assign + cpp/container/list/assign + + (T... args) + + + T + operator= + cpp/container/list/operator= + + (T... args) + + + T + sort + cpp/container/list/sort + + (T... args) + + + T + ~list + cpp/container/list/~list + + (T... args) + + + T + merge + cpp/container/list/merge + + (T... args) + + + T + empty + cpp/container/list/empty + + (T... args) + + + T + remove_if + cpp/container/list/remove + + (T... args) + + + T + cend + cpp/container/list/end + + (T... args) + + + T + swap + cpp/container/list/swap + + (T... args) + + + T + max_size + cpp/container/list/max_size + + (T... args) + + + T + rend + cpp/container/list/rend + + (T... args) + + + T + get_allocator + cpp/container/list/get_allocator + + (T... args) + + + T + clear + cpp/container/list/clear + + (T... args) + + + T + emplace + cpp/container/list/emplace + + (T... args) + + + T + begin + cpp/container/list/begin + + (T... args) + + + + std::minus + cpp/utility/functional/minus + + T + operator() + cpp/utility/functional/minus + + (T... args) + + + + std::map + cpp/container/map + + T + begin + cpp/container/map/begin + + (T... args) + + + T + erase + cpp/container/map/erase + + (T... args) + + + T + insert + cpp/container/map/insert + + (T... args) + + + T + swap + cpp/container/map/swap + + (T... args) + + + T + end + cpp/container/map/end + + (T... args) + + + T + emplace_hint + cpp/container/map/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/map/key_comp + + (T... args) + + std::map::value_compare + + T + cbegin + cpp/container/map/begin + + (T... args) + + + T + count + cpp/container/map/count + + (T... args) + + + T + find + cpp/container/map/find + + (T... args) + + + T + map + cpp/container/map/map + + (T... args) + + + T + crbegin + cpp/container/map/rbegin + + (T... args) + + + T + at + cpp/container/map/at + + (T... args) + + + T + upper_bound + cpp/container/map/upper_bound + + (T... args) + + + T + rbegin + cpp/container/map/rbegin + + (T... args) + + + T + crend + cpp/container/map/rend + + (T... args) + + + T + size + cpp/container/map/size + + (T... args) + + + T + operator= + cpp/container/map/operator= + + (T... args) + + + T + ~map + cpp/container/map/~map + + (T... args) + + + T + value_comp + cpp/container/map/value_comp + + (T... args) + + + T + empty + cpp/container/map/empty + + (T... args) + + + T + lower_bound + cpp/container/map/lower_bound + + (T... args) + + + T + cend + cpp/container/map/end + + (T... args) + + + T + max_size + cpp/container/map/max_size + + (T... args) + + + T + rend + cpp/container/map/rend + + (T... args) + + + T + get_allocator + cpp/container/map/get_allocator + + (T... args) + + + T + clear + cpp/container/map/clear + + (T... args) + + + T + equal_range + cpp/container/map/equal_range + + (T... args) + + + T + emplace + cpp/container/map/emplace + + (T... args) + + + T + operator[] + cpp/container/map/operator_at + + (T... args) + + + + std::map::value_compare + cpp/container/map/value_compare + + + std::linear_congruential_engine + cpp/numeric/random/linear_congruential_engine + + T + discard + cpp/numeric/random/linear_congruential_engine/discard + + (T... args) + + + T + linear_congruential_engine + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + T + max + cpp/numeric/random/linear_congruential_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + + std::codecvt_utf16 + cpp/locale/codecvt_utf16 + std::codecvt_utf16::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_utf16::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf16::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + + std::codecvt_utf16::extern_type + cpp/locale/codecvt + + + std::codecvt_utf16::state_type + cpp/locale/codecvt + + + std::codecvt_utf16::intern_type + cpp/locale/codecvt + + + std::cmatch + cpp/regex/match_results + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + ~cmatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + cmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::defer_lock_t + cpp/thread/lock_tag_t + + + std::exception + cpp/error/exception + + T + what + cpp/error/exception/what + + (T... args) + + + T + ~exception + cpp/error/exception/~exception + + (T... args) + + + T + operator= + cpp/error/exception/operator= + + (T... args) + + + T + exception + cpp/error/exception/exception + + (T... args) + + + + std::front_insert_iterator + cpp/iterator/front_insert_iterator + + + std::zetta + cpp/numeric/ratio/ratio + + + std::streambuf + cpp/io/basic_streambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + ~streambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + streambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::experimental + + + T + make_optional + cpp/experimental/optional/make_optional + + (T... args) + + std::experimental::optional + + + std::experimental::optional + cpp/experimental/optional + + T + operator= + cpp/experimental/optional/operator= + + (T... args) + + + T + operator bool + cpp/experimental/optional/operator_bool + + (T... args) + + + T + optional + cpp/experimental/optional/optional + + (T... args) + + + T + ~optional + cpp/experimental/optional/~optional + + (T... args) + + + T + operator-> + cpp/experimental/optional/operator* + + (T... args) + + + T + value + cpp/experimental/optional/value + + (T... args) + + + T + value_or + cpp/experimental/optional/value_or + + (T... args) + + + T + operator* + cpp/experimental/optional/operator* + + (T... args) + + + T + emplace + cpp/experimental/optional/emplace + + (T... args) + + + T + swap + cpp/experimental/optional/swap + + (T... args) + + + + std::num_put + cpp/locale/num_put + + T + num_put + cpp/locale/num_put/num_put + + (T... args) + + std::num_put::char_type + + T + ~num_put + cpp/locale/num_put/~num_put + + (T... args) + + + T + do_put + cpp/locale/num_put/put + + (T... args) + + + T + put + cpp/locale/num_put/put + + (T... args) + + std::num_put::iter_type + + + std::num_put::char_type + cpp/locale/num_put + + + std::num_put::iter_type + cpp/locale/num_put + + + std::owner_less + cpp/memory/owner_less + + T + operator() + cpp/memory/owner_less + + (T... args) + + + + std::extent + cpp/types/extent + + + std::bad_optional_access + cpp/utility/bad_optional_access + + T + bad_optional_access + cpp/utility/bad_optional_access + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::yotta + cpp/numeric/ratio/ratio + + + std::wcregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + wcregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + + std::uint64_t + cpp/types/integer + + + std::messages + cpp/locale/messages + + T + do_get + cpp/locale/messages/get + + (T... args) + + + T + do_close + cpp/locale/messages/close + + (T... args) + + std::messages::char_type + + T + get + cpp/locale/messages/get + + (T... args) + + + T + ~messages + cpp/locale/messages/~messages + + (T... args) + + + T + do_open + cpp/locale/messages/open + + (T... args) + + + T + messages + cpp/locale/messages/messages + + (T... args) + + + T + open + cpp/locale/messages/open + + (T... args) + + std::messages::string_type + std::messages::catalog + + T + close + cpp/locale/messages/close + + (T... args) + + + + std::messages::char_type + cpp/locale/messages + + + std::messages::string_type + cpp/locale/messages + + + std::messages::catalog + cpp/locale/messages_base + + + std::regex_token_iterator + cpp/regex/regex_token_iterator + + T + regex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::move_iterator + cpp/iterator/move_iterator + + + std::messages_base + cpp/locale/messages_base + std::messages_base::catalog + + + std::messages_base::catalog + cpp/locale/messages_base + + + std::istringstream + cpp/io/basic_istringstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + istringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::istringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::istringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + std::istringstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::istringstream::event_callback + cpp/io/ios_base/event_callback + + + std::istringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::istringstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::giga + cpp/numeric/ratio/ratio + + + std::integer_sequence + cpp/utility/integer_sequence + + + std::has_virtual_destructor + cpp/types/has_virtual_destructor + + + std::max_align_t + cpp/types/max_align_t + + + std::remove_volatile + cpp/types/remove_cv + + + std::underlying_type + cpp/types/underlying_type + + + std::hecto + cpp/numeric/ratio/ratio + + + std::is_member_object_pointer + cpp/types/is_member_object_pointer + + + std::exception_ptr + cpp/error/exception_ptr + + + std::nested_exception + cpp/error/nested_exception + + T + operator= + cpp/error/nested_exception/operator= + + (T... args) + + + T + ~nested_exception + cpp/error/nested_exception/~nested_exception + + (T... args) + + + T + rethrow_nested + cpp/error/nested_exception/rethrow_nested + + (T... args) + + + T + nested_exception + cpp/error/nested_exception/nested_exception + + (T... args) + + + T + nested_ptr + cpp/error/nested_exception/nested_ptr + + (T... args) + + + + std::random_access_iterator_tag + cpp/iterator/iterator_tags + + + std::ctype + cpp/locale/ctype + + T + do_toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + ~ctype + cpp/locale/ctype/~ctype + + (T... args) + + + T + do_narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + widen + cpp/locale/ctype/widen + + (T... args) + + + T + is + cpp/locale/ctype/is + + (T... args) + + + T + do_scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_is + cpp/locale/ctype/is + + (T... args) + + + T + do_tolower + cpp/locale/ctype/tolower + + (T... args) + + std::ctype::mask + + T + do_widen + cpp/locale/ctype/widen + + (T... args) + + + T + ctype + cpp/locale/ctype/ctype + + (T... args) + + + + std::ctype::mask + cpp/locale/ctype_base + + + std::time_t + cpp/chrono/c/time_t + + + std::knuth_b + cpp/numeric/random/shuffle_order_engine + + T + discard + cpp/numeric/random/shuffle_order_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/shuffle_order_engine/max + + (T... args) + + + T + knuth_b + cpp/numeric/random/shuffle_order_engine/shuffle_order_engine + + (T... args) + + + T + operator() + cpp/numeric/random/shuffle_order_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/shuffle_order_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/shuffle_order_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/shuffle_order_engine/min + + (T... args) + + + + std::auto_ptr + cpp/memory/auto_ptr + + T + release + cpp/memory/auto_ptr/release + + (T... args) + + + T + operator* + cpp/memory/auto_ptr/operator* + + (T... args) + + + T + operator auto_ptr<Y> + cpp/memory/auto_ptr/operator_auto_ptr + + (T... args) + + + T + reset + cpp/memory/auto_ptr/reset + + (T... args) + + + T + operator-> + cpp/memory/auto_ptr/operator* + + (T... args) + + + T + operator= + cpp/memory/auto_ptr/operator= + + (T... args) + + + T + auto_ptr + cpp/memory/auto_ptr/auto_ptr + + (T... args) + + + T + ~auto_ptr + cpp/memory/auto_ptr/~auto_ptr + + (T... args) + + + T + get + cpp/memory/auto_ptr/get + + (T... args) + + + + std::minstd_rand0 + cpp/numeric/random/linear_congruential_engine + + T + discard + cpp/numeric/random/linear_congruential_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/linear_congruential_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + T + minstd_rand0 + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + + std::sregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + sregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::logical_not + cpp/utility/functional/logical_not + + T + operator() + cpp/utility/functional/logical_not + + (T... args) + + + + std::fpos_t + cpp/io/c + + + std::istream + cpp/io/basic_istream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + ~istream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + T + istream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::istream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::istream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::istream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::istream::event_callback + cpp/io/ios_base/event_callback + + + std::istream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::istream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::seed_seq + cpp/numeric/random/seed_seq + + T + generate + cpp/numeric/random/seed_seq/generate + + (T... args) + + + T + param + cpp/numeric/random/seed_seq/param + + (T... args) + + + T + size + cpp/numeric/random/seed_seq/size + + (T... args) + + + T + seed_seq + cpp/numeric/random/seed_seq/seed_seq + + (T... args) + + + + std::default_delete + cpp/memory/default_delete + + T + default_delete + cpp/memory/default_delete + + (T... args) + + + T + operator() + cpp/memory/default_delete + + (T... args) + + + + std::femto + cpp/numeric/ratio/ratio + + + std::clock_t + cpp/chrono/c/clock_t + + + std::true_type + cpp/types/integral_constant + + + std::mbstate_t + cpp/string/multibyte/mbstate_t + + + std::ostrstream + cpp/io/ostrstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/ostrstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ostrstream::event_callback + + T + pcount + cpp/io/ostrstream/pcount + + (T... args) + + + T + ostrstream + cpp/io/ostrstream/ostrstream + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ostrstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + freeze + cpp/io/ostrstream/freeze + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + ~ostrstream + cpp/io/ostrstream/~ostrstream + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::ostrstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ostrstream::event_callback + cpp/io/ios_base/event_callback + + + std::ostrstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostrstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::gamma_distribution + cpp/numeric/random/gamma_distribution + + T + gamma_distribution + cpp/numeric/random/gamma_distribution/gamma_distribution + + (T... args) + + + T + max + cpp/numeric/random/gamma_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/gamma_distribution/operator() + + (T... args) + + + T + reset + cpp/numeric/random/gamma_distribution/reset + + (T... args) + + + T + alpha + cpp/numeric/random/gamma_distribution/params + + (T... args) + + + T + beta + cpp/numeric/random/gamma_distribution/params + + (T... args) + + + T + param + cpp/numeric/random/gamma_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/gamma_distribution/min + + (T... args) + + + + std::bad_weak_ptr + cpp/memory/bad_weak_ptr + + T + bad_weak_ptr + cpp/memory/bad_weak_ptr/bad_weak_ptr + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::output_iterator_tag + cpp/iterator/iterator_tags + + + std::micro + cpp/numeric/ratio/ratio + + + std::is_trivial + cpp/types/is_trivial + + + std::packaged_task + cpp/thread/packaged_task + + T + operator= + cpp/thread/packaged_task/operator= + + (T... args) + + + T + swap + cpp/thread/packaged_task/swap + + (T... args) + + + T + reset + cpp/thread/packaged_task/reset + + (T... args) + + + T + packaged_task + cpp/thread/packaged_task/packaged_task + + (T... args) + + + T + make_ready_at_thread_exit + cpp/thread/packaged_task/make_ready_at_thread_exit + + (T... args) + + + T + operator() + cpp/thread/packaged_task/operator() + + (T... args) + + + T + get_future + cpp/thread/packaged_task/get_future + + (T... args) + + + T + valid + cpp/thread/packaged_task/valid + + (T... args) + + + T + ~packaged_task + cpp/thread/packaged_task/~packaged_task + + (T... args) + + + + std::unordered_set + cpp/container/unordered_set + + T + max_bucket_count + cpp/container/unordered_set/max_bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_set/begin + + (T... args) + + + T + erase + cpp/container/unordered_set/erase + + (T... args) + + + T + insert + cpp/container/unordered_set/insert + + (T... args) + + + T + bucket_count + cpp/container/unordered_set/bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_set/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_set/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_set/emplace_hint + + (T... args) + + + T + end(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + ~unordered_set + cpp/container/unordered_set/~unordered_set + + (T... args) + + + T + key_eq + cpp/container/unordered_set/key_eq + + (T... args) + + + T + hash_function + cpp/container/unordered_set/hash_function + + (T... args) + + + T + find + cpp/container/unordered_set/find + + (T... args) + + + T + clear + cpp/container/unordered_set/clear + + (T... args) + + + T + begin + cpp/container/unordered_set/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_set/swap + + (T... args) + + + T + begin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + load_factor + cpp/container/unordered_set/load_factor + + (T... args) + + + T + size + cpp/container/unordered_set/size + + (T... args) + + + T + operator= + cpp/container/unordered_set/operator= + + (T... args) + + + T + cend + cpp/container/unordered_set/end + + (T... args) + + + T + reserve + cpp/container/unordered_set/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_set/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_set/bucket + + (T... args) + + + T + empty + cpp/container/unordered_set/empty + + (T... args) + + + T + get_allocator + cpp/container/unordered_set/get_allocator + + (T... args) + + + T + max_size + cpp/container/unordered_set/max_size + + (T... args) + + + T + cend(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + count + cpp/container/unordered_set/count + + (T... args) + + + T + unordered_set + cpp/container/unordered_set/unordered_set + + (T... args) + + + T + equal_range + cpp/container/unordered_set/equal_range + + (T... args) + + + T + emplace + cpp/container/unordered_set/emplace + + (T... args) + + + T + bucket_size + cpp/container/unordered_set/bucket_size + + (T... args) + + + + std::is_volatile + cpp/types/is_volatile + + + std::wfstream + cpp/io/basic_fstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::wfstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + wfstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::wfstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wfstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wfstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wfstream::event_callback + cpp/io/ios_base/event_callback + + + std::wfstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::multimap + cpp/container/multimap + + T + multimap + cpp/container/multimap/multimap + + (T... args) + + + T + begin + cpp/container/multimap/begin + + (T... args) + + + T + erase + cpp/container/multimap/erase + + (T... args) + + + T + insert + cpp/container/multimap/insert + + (T... args) + + + T + swap + cpp/container/multimap/swap + + (T... args) + + + T + end + cpp/container/multimap/end + + (T... args) + + + T + ~multimap + cpp/container/multimap/~multimap + + (T... args) + + + T + emplace_hint + cpp/container/multimap/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/multimap/key_comp + + (T... args) + + std::multimap::value_compare + + T + cbegin + cpp/container/multimap/begin + + (T... args) + + + T + count + cpp/container/multimap/count + + (T... args) + + + T + find + cpp/container/multimap/find + + (T... args) + + + T + crbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + upper_bound + cpp/container/multimap/upper_bound + + (T... args) + + + T + rbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + crend + cpp/container/multimap/rend + + (T... args) + + + T + size + cpp/container/multimap/size + + (T... args) + + + T + operator= + cpp/container/multimap/operator= + + (T... args) + + + T + value_comp + cpp/container/multimap/value_comp + + (T... args) + + + T + empty + cpp/container/multimap/empty + + (T... args) + + + T + lower_bound + cpp/container/multimap/lower_bound + + (T... args) + + + T + cend + cpp/container/multimap/end + + (T... args) + + + T + max_size + cpp/container/multimap/max_size + + (T... args) + + + T + rend + cpp/container/multimap/rend + + (T... args) + + + T + get_allocator + cpp/container/multimap/get_allocator + + (T... args) + + + T + clear + cpp/container/multimap/clear + + (T... args) + + + T + equal_range + cpp/container/multimap/equal_range + + (T... args) + + + T + emplace + cpp/container/multimap/emplace + + (T... args) + + + + std::multimap::value_compare + cpp/container/multimap/value_compare + + + std::atomic_flag + cpp/atomic/atomic_flag + + T + operator= + cpp/atomic/atomic_flag/operator= + + (T... args) + + + T + clear + cpp/atomic/atomic_flag/clear + + (T... args) + + + T + atomic_flag + cpp/atomic/atomic_flag/atomic_flag + + (T... args) + + + T + test_and_set + cpp/atomic/atomic_flag/test_and_set + + (T... args) + + + + std::numpunct_byname + cpp/locale/numpunct_byname + + T + grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + do_decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct_byname::string_type + + T + numpunct_byname + cpp/locale/numpunct_byname + + (T... args) + + + T + truename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct_byname::char_type + + T + do_truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + ~numpunct_byname + cpp/locale/numpunct_byname + + (T... args) + + + + std::numpunct_byname::string_type + cpp/locale/numpunct + + + std::numpunct_byname::char_type + cpp/locale/numpunct + + + std::binomial_distribution + cpp/numeric/random/binomial_distribution + + T + t + cpp/numeric/random/binomial_distribution/params + + (T... args) + + + T + binomial_distribution + cpp/numeric/random/binomial_distribution/binomial_distribution + + (T... args) + + + T + reset + cpp/numeric/random/binomial_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/binomial_distribution/max + + (T... args) + + + T + p + cpp/numeric/random/binomial_distribution/params + + (T... args) + + + T + min + cpp/numeric/random/binomial_distribution/min + + (T... args) + + + T + param + cpp/numeric/random/binomial_distribution/param + + (T... args) + + + + std::basic_iostream + cpp/io/basic_iostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + ~basic_iostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::basic_iostream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::basic_iostream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + basic_iostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_iostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_iostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_iostream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_iostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wofstream + cpp/io/basic_ofstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::wofstream::event_callback + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + wofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wofstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::wofstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wofstream::event_callback + cpp/io/ios_base/event_callback + + + std::wofstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wofstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::fpos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::underflow_error + cpp/error/underflow_error + + T + underflow_error + cpp/error/underflow_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::cauchy_distribution + cpp/numeric/random/cauchy_distribution + + T + min + cpp/numeric/random/cauchy_distribution/min + + (T... args) + + + T + reset + cpp/numeric/random/cauchy_distribution/reset + + (T... args) + + + T + a + cpp/numeric/random/cauchy_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/cauchy_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/cauchy_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/cauchy_distribution/param + + (T... args) + + + T + cauchy_distribution + cpp/numeric/random/cauchy_distribution/cauchy_distribution + + (T... args) + + + T + b + cpp/numeric/random/cauchy_distribution/params + + (T... args) + + + + std::is_trivially_copy_constructible + cpp/types/is_copy_constructible + + + std::conditional + cpp/types/conditional + + + std::is_pod + cpp/types/is_pod + + + std::int_least8_t + cpp/types/integer + + + std::streamoff + cpp/io/streamoff + + + std::is_move_assignable + cpp/types/is_move_assignable + + + std::int_least32_t + cpp/types/integer + + + std::wstringstream + cpp/io/basic_stringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::wstringstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::wstringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wstringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + wstringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wstringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wstringstream::event_callback + cpp/io/ios_base/event_callback + + + std::wstringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::subtract_with_carry_engine + cpp/numeric/random/subtract_with_carry_engine + + T + discard + cpp/numeric/random/subtract_with_carry_engine/discard + + (T... args) + + + T + subtract_with_carry_engine + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + + std::regex_error + cpp/regex/regex_error + + T + code + cpp/regex/regex_error/code + + (T... args) + + + T + regex_error + cpp/regex/regex_error/regex_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_constructible + cpp/types/is_constructible + + + std::piecewise_construct_t + cpp/utility/piecewise_construct_t + + + std::mutex + cpp/thread/mutex + + T + mutex + cpp/thread/mutex/mutex + + (T... args) + + + T + unlock + cpp/thread/mutex/unlock + + (T... args) + + + T + lock + cpp/thread/mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/mutex/try_lock + + (T... args) + + + T + native_handle + cpp/thread/mutex/native_handle + + (T... args) + + + + std::system_error + cpp/error/system_error + + T + code + cpp/error/system_error/code + + (T... args) + + + T + system_error + cpp/error/system_error/system_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wistringstream + cpp/io/basic_istringstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + wistringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::wistringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::wistringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + std::wistringstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wistringstream::event_callback + cpp/io/ios_base/event_callback + + + std::wistringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wistringstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::is_floating_point + cpp/types/is_floating_point + + + std::ratio_not_equal + cpp/numeric/ratio/ratio_not_equal + + + std::ratio_multiply + cpp/numeric/ratio/ratio_multiply + + + std::result_of + cpp/types/result_of + + + std::is_fundamental + cpp/types/is_fundamental + + + std::ifstream + cpp/io/basic_ifstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::ifstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + ifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::ifstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + std::ifstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ifstream::event_callback + cpp/io/ios_base/event_callback + + + std::ifstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ifstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::u32streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::length_error + cpp/error/length_error + + T + length_error + cpp/error/length_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::sub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + sub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::common_type + cpp/types/common_type + + + std::shared_timed_mutex + cpp/thread/shared_timed_mutex + + T + unlock + cpp/thread/shared_timed_mutex/unlock + + (T... args) + + + T + unlock_shared + cpp/thread/shared_timed_mutex/unlock_shared + + (T... args) + + + T + try_lock_until + cpp/thread/shared_timed_mutex/try_lock_until + + (T... args) + + + T + try_lock_for + cpp/thread/shared_timed_mutex/try_lock_for + + (T... args) + + + T + try_lock_shared_until + cpp/thread/shared_timed_mutex/try_lock_shared_until + + (T... args) + + + T + shared_timed_mutex + cpp/thread/shared_timed_mutex/shared_timed_mutex + + (T... args) + + + T + lock_shared + cpp/thread/shared_timed_mutex/lock_shared + + (T... args) + + + T + lock + cpp/thread/shared_timed_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/shared_timed_mutex/try_lock + + (T... args) + + + T + try_lock_shared + cpp/thread/shared_timed_mutex/try_lock_shared + + (T... args) + + + T + try_lock_shared_for + cpp/thread/shared_timed_mutex/try_lock_shared_for + + (T... args) + + + + std::array + cpp/container/array + + T + max_size + cpp/container/array/max_size + + (T... args) + + + T + rbegin + cpp/container/array/rbegin + + (T... args) + + + T + crend + cpp/container/array/rend + + (T... args) + + + T + crbegin + cpp/container/array/rbegin + + (T... args) + + + T + swap + cpp/container/array/swap + + (T... args) + + + T + data + cpp/container/array/data + + (T... args) + + + T + back + cpp/container/array/back + + (T... args) + + + T + end + cpp/container/array/end + + (T... args) + + + T + fill + cpp/container/array/fill + + (T... args) + + + T + empty + cpp/container/array/empty + + (T... args) + + + T + cend + cpp/container/array/end + + (T... args) + + + T + size + cpp/container/array/size + + (T... args) + + + T + cbegin + cpp/container/array/begin + + (T... args) + + + T + rend + cpp/container/array/rend + + (T... args) + + + T + front + cpp/container/array/front + + (T... args) + + + T + at + cpp/container/array/at + + (T... args) + + + T + operator[] + cpp/container/array/operator_at + + (T... args) + + + T + begin + cpp/container/array/begin + + (T... args) + + + + std::random_device + cpp/numeric/random/random_device + + T + operator() + cpp/numeric/random/random_device/operator() + + (T... args) + + + T + random_device + cpp/numeric/random/random_device/random_device + + (T... args) + + + T + entropy + cpp/numeric/random/random_device/entropy + + (T... args) + + + T + min + cpp/numeric/random/random_device/min + + (T... args) + + + T + max + cpp/numeric/random/random_device/max + + (T... args) + + + + std::default_random_engine + cpp/numeric/random + + + std::raw_storage_iterator + cpp/memory/raw_storage_iterator + + T + operator= + cpp/memory/raw_storage_iterator/operator= + + (T... args) + + + T + raw_storage_iterator + cpp/memory/raw_storage_iterator/raw_storage_iterator + + (T... args) + + + T + operator* + cpp/memory/raw_storage_iterator/operator* + + (T... args) + + + T + operator++ + cpp/memory/raw_storage_iterator/operator_arith + + (T... args) + + + + std::is_convertible + cpp/types/is_convertible + + + std::uint16_t + cpp/types/integer + + + std::is_array + cpp/types/is_array + + + std::mega + cpp/numeric/ratio/ratio + + + std::numpunct + cpp/locale/numpunct + + T + grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + do_decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + numpunct + cpp/locale/numpunct/numpunct + + (T... args) + + + T + do_falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct::string_type + + T + do_grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + truename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct::char_type + + T + falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + ~numpunct + cpp/locale/numpunct/~numpunct + + (T... args) + + + T + decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + + std::numpunct::string_type + cpp/locale/numpunct + + + std::numpunct::char_type + cpp/locale/numpunct + + + std::money_put + cpp/locale/money_put + std::money_put::char_type + std::money_put::pattern + + T + do_put + cpp/locale/money_put/put + + (T... args) + + + T + money_put + cpp/locale/money_put/money_put + + (T... args) + + + T + ~money_put + cpp/locale/money_put/~money_put + + (T... args) + + + T + put + cpp/locale/money_put/put + + (T... args) + + std::money_put::string_type + std::money_put::iter_type + + + std::money_put::char_type + cpp/locale/money_put + + + std::money_put::pattern + cpp/locale/money_base + + + std::money_put::string_type + cpp/locale/money_put + + + std::money_put::iter_type + cpp/locale/money_put + + + std::new_handler + cpp/memory/new/new_handler + + + std::is_member_function_pointer + cpp/types/is_member_function_pointer + + + va_list + cpp/utility/variadic/va_list + + diff --git a/etc/doxygen.cmake b/etc/doxygen.cmake new file mode 100644 index 0000000..67feed9 --- /dev/null +++ b/etc/doxygen.cmake @@ -0,0 +1,12 @@ +find_package (Doxygen) +if (DOXYGEN_FOUND) + if (Doxygen_dot_FOUND) + set (DOXYGEN_DOT_FOUND YES) + else (NOT Doxygen_dot_FOUND) + set (DOXYGEN_DOT_FOUND NO) + endif (Doxygen_dot_FOUND) + configure_file ("${PROJECT_SOURCE_DIR}/etc/Doxyfile.in" "${PROJECT_BINARY_DIR}/Doxyfile" @ONLY) + add_custom_target (doc "${DOXYGEN_EXECUTABLE}" "${PROJECT_BINARY_DIR}/Doxyfile" + WORKING_DIRECTORY "${PROJECT_BINARY_DIR}" + COMMENT "Generate docs using Doxygen" VERBATIM) +endif () diff --git a/etc/linux-man-doxygen-web.tag.xml b/etc/linux-man-doxygen-web.tag.xml new file mode 100644 index 0000000..e8ae984 --- /dev/null +++ b/etc/linux-man-doxygen-web.tag.xml @@ -0,0 +1,16735 @@ + + +man1 + + + getent + man1/getent.1.html + + + + + + iconv + man1/iconv.1.html + + + + + + intro + man1/intro.1.html + + + + + + ldd + man1/ldd.1.html + + + + + + locale + man1/locale.1.html + + + + + + localedef + man1/localedef.1.html + + + + + + memusage + man1/memusage.1.html + + + + + + memusagestat + man1/memusagestat.1.html + + + + + + mtrace + man1/mtrace.1.html + + + + + + pldd + man1/pldd.1.html + + + + + + sprof + man1/sprof.1.html + + + + + + time + man1/time.1.html + + + + +man2 + + + accept + man2/accept.2.html + + + + + + accept4 + man2/accept4.2.html + + + + + + access + man2/access.2.html + + + + + + acct + man2/acct.2.html + + + + + + add_key + man2/add_key.2.html + + + + + + adjtimex + man2/adjtimex.2.html + + + + + + afs_syscall + man2/afs_syscall.2.html + + + + + + alarm + man2/alarm.2.html + + + + + + alloc_hugepages + man2/alloc_hugepages.2.html + + + + + + arch_prctl + man2/arch_prctl.2.html + + + + + + arm_fadvise + man2/arm_fadvise.2.html + + + + + + arm_fadvise64_64 + man2/arm_fadvise64_64.2.html + + + + + + arm_sync_file_range + man2/arm_sync_file_range.2.html + + + + + + bdflush + man2/bdflush.2.html + + + + + + bind + man2/bind.2.html + + + + + + bpf + man2/bpf.2.html + + + + + + break + man2/break.2.html + + + + + + brk + man2/brk.2.html + + + + + + cacheflush + man2/cacheflush.2.html + + + + + + capget + man2/capget.2.html + + + + + + capset + man2/capset.2.html + + + + + + chdir + man2/chdir.2.html + + + + + + chmod + man2/chmod.2.html + + + + + + chown + man2/chown.2.html + + + + + + chown32 + man2/chown32.2.html + + + + + + chroot + man2/chroot.2.html + + + + + + clock_getres + man2/clock_getres.2.html + + + + + + clock_gettime + man2/clock_gettime.2.html + + + + + + clock_nanosleep + man2/clock_nanosleep.2.html + + + + + + clock_settime + man2/clock_settime.2.html + + + + + + clone + man2/clone.2.html + + + + + + __clone2 + man2/__clone2.2.html + + + + + + clone2 + man2/clone2.2.html + + + + + + close + man2/close.2.html + + + + + + connect + man2/connect.2.html + + + + + + copy_file_range + man2/copy_file_range.2.html + + + + + + creat + man2/creat.2.html + + + + + + create_module + man2/create_module.2.html + + + + + + delete_module + man2/delete_module.2.html + + + + + + dup + man2/dup.2.html + + + + + + dup2 + man2/dup2.2.html + + + + + + dup3 + man2/dup3.2.html + + + + + + epoll_create1 + man2/epoll_create1.2.html + + + + + + epoll_create + man2/epoll_create.2.html + + + + + + epoll_ctl + man2/epoll_ctl.2.html + + + + + + epoll_pwait + man2/epoll_pwait.2.html + + + + + + epoll_wait + man2/epoll_wait.2.html + + + + + + eventfd + man2/eventfd.2.html + + + + + + eventfd2 + man2/eventfd2.2.html + + + + + + execve + man2/execve.2.html + + + + + + execveat + man2/execveat.2.html + + + + + + _exit + man2/_exit.2.html + + + + + + exit + man2/exit.2.html + + + + + + _Exit + man2/_Exit.2.html + + + + + + exit_group + man2/exit_group.2.html + + + + + + faccessat + man2/faccessat.2.html + + + + + + fadvise64 + man2/fadvise64.2.html + + + + + + fadvise64_64 + man2/fadvise64_64.2.html + + + + + + fallocate + man2/fallocate.2.html + + + + + + fanotify_init + man2/fanotify_init.2.html + + + + + + fanotify_mark + man2/fanotify_mark.2.html + + + + + + fattach + man2/fattach.2.html + + + + + + fchdir + man2/fchdir.2.html + + + + + + fchmod + man2/fchmod.2.html + + + + + + fchmodat + man2/fchmodat.2.html + + + + + + fchown + man2/fchown.2.html + + + + + + fchown32 + man2/fchown32.2.html + + + + + + fchownat + man2/fchownat.2.html + + + + + + fcntl + man2/fcntl.2.html + + + + + + fcntl64 + man2/fcntl64.2.html + + + + + + fdatasync + man2/fdatasync.2.html + + + + + + fdetach + man2/fdetach.2.html + + + + + + fgetxattr + man2/fgetxattr.2.html + + + + + + finit_module + man2/finit_module.2.html + + + + + + flistxattr + man2/flistxattr.2.html + + + + + + flock + man2/flock.2.html + + + + + + fork + man2/fork.2.html + + + + + + free_hugepages + man2/free_hugepages.2.html + + + + + + fremovexattr + man2/fremovexattr.2.html + + + + + + fsetxattr + man2/fsetxattr.2.html + + + + + + fstat + man2/fstat.2.html + + + + + + fstat64 + man2/fstat64.2.html + + + + + + fstatat + man2/fstatat.2.html + + + + + + fstatat64 + man2/fstatat64.2.html + + + + + + fstatfs + man2/fstatfs.2.html + + + + + + fstatfs64 + man2/fstatfs64.2.html + + + + + + fstatvfs + man2/fstatvfs.2.html + + + + + + fsync + man2/fsync.2.html + + + + + + ftruncate + man2/ftruncate.2.html + + + + + + ftruncate64 + man2/ftruncate64.2.html + + + + + + futex + man2/futex.2.html + + + + + + futimesat + man2/futimesat.2.html + + + + + + getcontext + man2/getcontext.2.html + + + + + + getcpu + man2/getcpu.2.html + + + + + + getcwd + man2/getcwd.2.html + + + + + + getdents + man2/getdents.2.html + + + + + + getdents64 + man2/getdents64.2.html + + + + + + getdomainname + man2/getdomainname.2.html + + + + + + getdtablesize + man2/getdtablesize.2.html + + + + + + getegid + man2/getegid.2.html + + + + + + getegid32 + man2/getegid32.2.html + + + + + + geteuid + man2/geteuid.2.html + + + + + + geteuid32 + man2/geteuid32.2.html + + + + + + getgid + man2/getgid.2.html + + + + + + getgid32 + man2/getgid32.2.html + + + + + + getgroups + man2/getgroups.2.html + + + + + + getgroups32 + man2/getgroups32.2.html + + + + + + gethostid + man2/gethostid.2.html + + + + + + gethostname + man2/gethostname.2.html + + + + + + getitimer + man2/getitimer.2.html + + + + + + get_kernel_syms + man2/get_kernel_syms.2.html + + + + + + get_mempolicy + man2/get_mempolicy.2.html + + + + + + getmsg + man2/getmsg.2.html + + + + + + getpagesize + man2/getpagesize.2.html + + + + + + getpeername + man2/getpeername.2.html + + + + + + getpgid + man2/getpgid.2.html + + + + + + getpgrp + man2/getpgrp.2.html + + + + + + getpid + man2/getpid.2.html + + + + + + getpmsg + man2/getpmsg.2.html + + + + + + getppid + man2/getppid.2.html + + + + + + getpriority + man2/getpriority.2.html + + + + + + getrandom + man2/getrandom.2.html + + + + + + getresgid + man2/getresgid.2.html + + + + + + getresgid32 + man2/getresgid32.2.html + + + + + + getresuid + man2/getresuid.2.html + + + + + + getresuid32 + man2/getresuid32.2.html + + + + + + getrlimit + man2/getrlimit.2.html + + + + + + get_robust_list + man2/get_robust_list.2.html + + + + + + getrusage + man2/getrusage.2.html + + + + + + getsid + man2/getsid.2.html + + + + + + getsockname + man2/getsockname.2.html + + + + + + getsockopt + man2/getsockopt.2.html + + + + + + get_thread_area + man2/get_thread_area.2.html + + + + + + gettid + man2/gettid.2.html + + + + + + gettimeofday + man2/gettimeofday.2.html + + + + + + getuid + man2/getuid.2.html + + + + + + getuid32 + man2/getuid32.2.html + + + + + + getunwind + man2/getunwind.2.html + + + + + + getxattr + man2/getxattr.2.html + + + + + + gtty + man2/gtty.2.html + + + + + + idle + man2/idle.2.html + + + + + + inb + man2/inb.2.html + + + + + + inb_p + man2/inb_p.2.html + + + + + + init_module + man2/init_module.2.html + + + + + + inl + man2/inl.2.html + + + + + + inl_p + man2/inl_p.2.html + + + + + + inotify_add_watch + man2/inotify_add_watch.2.html + + + + + + inotify_init1 + man2/inotify_init1.2.html + + + + + + inotify_init + man2/inotify_init.2.html + + + + + + inotify_rm_watch + man2/inotify_rm_watch.2.html + + + + + + insb + man2/insb.2.html + + + + + + insl + man2/insl.2.html + + + + + + insw + man2/insw.2.html + + + + + + intro + man2/intro.2.html + + + + + + inw + man2/inw.2.html + + + + + + inw_p + man2/inw_p.2.html + + + + + + io_cancel + man2/io_cancel.2.html + + + + + + ioctl + man2/ioctl.2.html + + + + + + ioctl_console + man2/ioctl_console.2.html + + + + + + ioctl_fat + man2/ioctl_fat.2.html + + + + + + ioctl_ficlone + man2/ioctl_ficlone.2.html + + + + + + ioctl_ficlonerange + man2/ioctl_ficlonerange.2.html + + + + + + ioctl_fideduperange + man2/ioctl_fideduperange.2.html + + + + + + ioctl_getfsmap + man2/ioctl_getfsmap.2.html + + + + + + ioctl_iflags + man2/ioctl_iflags.2.html + + + + + + ioctl_list + man2/ioctl_list.2.html + + + + + + ioctl_ns + man2/ioctl_ns.2.html + + + + + + ioctl_tty + man2/ioctl_tty.2.html + + + + + + ioctl_userfaultfd + man2/ioctl_userfaultfd.2.html + + + + + + io_destroy + man2/io_destroy.2.html + + + + + + io_getevents + man2/io_getevents.2.html + + + + + + ioperm + man2/ioperm.2.html + + + + + + iopl + man2/iopl.2.html + + + + + + ioprio_get + man2/ioprio_get.2.html + + + + + + ioprio_set + man2/ioprio_set.2.html + + + + + + io_setup + man2/io_setup.2.html + + + + + + io_submit + man2/io_submit.2.html + + + + + + ipc + man2/ipc.2.html + + + + + + isastream + man2/isastream.2.html + + + + + + kcmp + man2/kcmp.2.html + + + + + + kexec_file_load + man2/kexec_file_load.2.html + + + + + + kexec_load + man2/kexec_load.2.html + + + + + + keyctl + man2/keyctl.2.html + + + + + + kill + man2/kill.2.html + + + + + + killpg + man2/killpg.2.html + + + + + + lchown + man2/lchown.2.html + + + + + + lchown32 + man2/lchown32.2.html + + + + + + lgetxattr + man2/lgetxattr.2.html + + + + + + link + man2/link.2.html + + + + + + linkat + man2/linkat.2.html + + + + + + listen + man2/listen.2.html + + + + + + listxattr + man2/listxattr.2.html + + + + + + llistxattr + man2/llistxattr.2.html + + + + + + _llseek + man2/_llseek.2.html + + + + + + llseek + man2/llseek.2.html + + + + + + lock + man2/lock.2.html + + + + + + lookup_dcookie + man2/lookup_dcookie.2.html + + + + + + lremovexattr + man2/lremovexattr.2.html + + + + + + lseek + man2/lseek.2.html + + + + + + lsetxattr + man2/lsetxattr.2.html + + + + + + lstat + man2/lstat.2.html + + + + + + lstat64 + man2/lstat64.2.html + + + + + + madvise1 + man2/madvise1.2.html + + + + + + madvise + man2/madvise.2.html + + + + + + mbind + man2/mbind.2.html + + + + + + membarrier + man2/membarrier.2.html + + + + + + memfd_create + man2/memfd_create.2.html + + + + + + migrate_pages + man2/migrate_pages.2.html + + + + + + mincore + man2/mincore.2.html + + + + + + mkdir + man2/mkdir.2.html + + + + + + mkdirat + man2/mkdirat.2.html + + + + + + mknod + man2/mknod.2.html + + + + + + mknodat + man2/mknodat.2.html + + + + + + mlock + man2/mlock.2.html + + + + + + mlock2 + man2/mlock2.2.html + + + + + + mlockall + man2/mlockall.2.html + + + + + + mmap + man2/mmap.2.html + + + + + + mmap2 + man2/mmap2.2.html + + + + + + modify_ldt + man2/modify_ldt.2.html + + + + + + mount + man2/mount.2.html + + + + + + move_pages + man2/move_pages.2.html + + + + + + mprotect + man2/mprotect.2.html + + + + + + mpx + man2/mpx.2.html + + + + + + mq_getsetattr + man2/mq_getsetattr.2.html + + + + + + mq_notify + man2/mq_notify.2.html + + + + + + mq_open + man2/mq_open.2.html + + + + + + mq_timedreceive + man2/mq_timedreceive.2.html + + + + + + mq_timedsend + man2/mq_timedsend.2.html + + + + + + mq_unlink + man2/mq_unlink.2.html + + + + + + mremap + man2/mremap.2.html + + + + + + msgctl + man2/msgctl.2.html + + + + + + msgget + man2/msgget.2.html + + + + + + msgop + man2/msgop.2.html + + + + + + msgrcv + man2/msgrcv.2.html + + + + + + msgsnd + man2/msgsnd.2.html + + + + + + msync + man2/msync.2.html + + + + + + munlock + man2/munlock.2.html + + + + + + munlockall + man2/munlockall.2.html + + + + + + munmap + man2/munmap.2.html + + + + + + name_to_handle_at + man2/name_to_handle_at.2.html + + + + + + nanosleep + man2/nanosleep.2.html + + + + + + newfstatat + man2/newfstatat.2.html + + + + + + _newselect + man2/_newselect.2.html + + + + + + nfsservctl + man2/nfsservctl.2.html + + + + + + nice + man2/nice.2.html + + + + + + oldfstat + man2/oldfstat.2.html + + + + + + oldlstat + man2/oldlstat.2.html + + + + + + oldolduname + man2/oldolduname.2.html + + + + + + oldstat + man2/oldstat.2.html + + + + + + olduname + man2/olduname.2.html + + + + + + open + man2/open.2.html + + + + + + openat + man2/openat.2.html + + + + + + open_by_handle_at + man2/open_by_handle_at.2.html + + + + + + outb + man2/outb.2.html + + + + + + outb_p + man2/outb_p.2.html + + + + + + outl + man2/outl.2.html + + + + + + outl_p + man2/outl_p.2.html + + + + + + outsb + man2/outsb.2.html + + + + + + outsl + man2/outsl.2.html + + + + + + outsw + man2/outsw.2.html + + + + + + outw + man2/outw.2.html + + + + + + outw_p + man2/outw_p.2.html + + + + + + pause + man2/pause.2.html + + + + + + pciconfig_iobase + man2/pciconfig_iobase.2.html + + + + + + pciconfig_read + man2/pciconfig_read.2.html + + + + + + pciconfig_write + man2/pciconfig_write.2.html + + + + + + perf_event_open + man2/perf_event_open.2.html + + + + + + perfmonctl + man2/perfmonctl.2.html + + + + + + personality + man2/personality.2.html + + + + + + phys + man2/phys.2.html + + + + + + pipe + man2/pipe.2.html + + + + + + pipe2 + man2/pipe2.2.html + + + + + + pivot_root + man2/pivot_root.2.html + + + + + + pkey_alloc + man2/pkey_alloc.2.html + + + + + + pkey_free + man2/pkey_free.2.html + + + + + + pkey_mprotect + man2/pkey_mprotect.2.html + + + + + + poll + man2/poll.2.html + + + + + + posix_fadvise + man2/posix_fadvise.2.html + + + + + + ppoll + man2/ppoll.2.html + + + + + + prctl + man2/prctl.2.html + + + + + + pread + man2/pread.2.html + + + + + + pread64 + man2/pread64.2.html + + + + + + preadv + man2/preadv.2.html + + + + + + preadv2 + man2/preadv2.2.html + + + + + + prlimit + man2/prlimit.2.html + + + + + + prlimit64 + man2/prlimit64.2.html + + + + + + process_vm_readv + man2/process_vm_readv.2.html + + + + + + process_vm_writev + man2/process_vm_writev.2.html + + + + + + prof + man2/prof.2.html + + + + + + pselect + man2/pselect.2.html + + + + + + pselect6 + man2/pselect6.2.html + + + + + + ptrace + man2/ptrace.2.html + + + + + + putmsg + man2/putmsg.2.html + + + + + + putpmsg + man2/putpmsg.2.html + + + + + + pwrite + man2/pwrite.2.html + + + + + + pwrite64 + man2/pwrite64.2.html + + + + + + pwritev + man2/pwritev.2.html + + + + + + pwritev2 + man2/pwritev2.2.html + + + + + + query_module + man2/query_module.2.html + + + + + + quotactl + man2/quotactl.2.html + + + + + + read + man2/read.2.html + + + + + + readahead + man2/readahead.2.html + + + + + + readdir + man2/readdir.2.html + + + + + + readlink + man2/readlink.2.html + + + + + + readlinkat + man2/readlinkat.2.html + + + + + + readv + man2/readv.2.html + + + + + + reboot + man2/reboot.2.html + + + + + + recv + man2/recv.2.html + + + + + + recvfrom + man2/recvfrom.2.html + + + + + + recvmmsg + man2/recvmmsg.2.html + + + + + + recvmsg + man2/recvmsg.2.html + + + + + + remap_file_pages + man2/remap_file_pages.2.html + + + + + + removexattr + man2/removexattr.2.html + + + + + + rename + man2/rename.2.html + + + + + + renameat + man2/renameat.2.html + + + + + + renameat2 + man2/renameat2.2.html + + + + + + request_key + man2/request_key.2.html + + + + + + restart_syscall + man2/restart_syscall.2.html + + + + + + rmdir + man2/rmdir.2.html + + + + + + rt_sigaction + man2/rt_sigaction.2.html + + + + + + rt_sigpending + man2/rt_sigpending.2.html + + + + + + rt_sigprocmask + man2/rt_sigprocmask.2.html + + + + + + rt_sigqueueinfo + man2/rt_sigqueueinfo.2.html + + + + + + rt_sigreturn + man2/rt_sigreturn.2.html + + + + + + rt_sigsuspend + man2/rt_sigsuspend.2.html + + + + + + rt_sigtimedwait + man2/rt_sigtimedwait.2.html + + + + + + rt_tgsigqueueinfo + man2/rt_tgsigqueueinfo.2.html + + + + + + s390_guarded_storage + man2/s390_guarded_storage.2.html + + + + + + s390_pci_mmio_read + man2/s390_pci_mmio_read.2.html + + + + + + s390_pci_mmio_write + man2/s390_pci_mmio_write.2.html + + + + + + s390_runtime_instr + man2/s390_runtime_instr.2.html + + + + + + s390_sthyi + man2/s390_sthyi.2.html + + + + + + sbrk + man2/sbrk.2.html + + + + + + sched_getaffinity + man2/sched_getaffinity.2.html + + + + + + sched_getattr + man2/sched_getattr.2.html + + + + + + sched_getparam + man2/sched_getparam.2.html + + + + + + sched_get_priority_max + man2/sched_get_priority_max.2.html + + + + + + sched_get_priority_min + man2/sched_get_priority_min.2.html + + + + + + sched_getscheduler + man2/sched_getscheduler.2.html + + + + + + sched_rr_get_interval + man2/sched_rr_get_interval.2.html + + + + + + sched_setaffinity + man2/sched_setaffinity.2.html + + + + + + sched_setattr + man2/sched_setattr.2.html + + + + + + sched_setparam + man2/sched_setparam.2.html + + + + + + sched_setscheduler + man2/sched_setscheduler.2.html + + + + + + sched_yield + man2/sched_yield.2.html + + + + + + seccomp + man2/seccomp.2.html + + + + + + security + man2/security.2.html + + + + + + select + man2/select.2.html + + + + + + select_tut + man2/select_tut.2.html + + + + + + semctl + man2/semctl.2.html + + + + + + semget + man2/semget.2.html + + + + + + semop + man2/semop.2.html + + + + + + semtimedop + man2/semtimedop.2.html + + + + + + send + man2/send.2.html + + + + + + sendfile + man2/sendfile.2.html + + + + + + sendfile64 + man2/sendfile64.2.html + + + + + + sendmmsg + man2/sendmmsg.2.html + + + + + + sendmsg + man2/sendmsg.2.html + + + + + + sendto + man2/sendto.2.html + + + + + + setcontext + man2/setcontext.2.html + + + + + + setdomainname + man2/setdomainname.2.html + + + + + + setegid + man2/setegid.2.html + + + + + + seteuid + man2/seteuid.2.html + + + + + + setfsgid + man2/setfsgid.2.html + + + + + + setfsgid32 + man2/setfsgid32.2.html + + + + + + setfsuid + man2/setfsuid.2.html + + + + + + setfsuid32 + man2/setfsuid32.2.html + + + + + + setgid + man2/setgid.2.html + + + + + + setgid32 + man2/setgid32.2.html + + + + + + setgroups + man2/setgroups.2.html + + + + + + setgroups32 + man2/setgroups32.2.html + + + + + + sethostid + man2/sethostid.2.html + + + + + + sethostname + man2/sethostname.2.html + + + + + + setitimer + man2/setitimer.2.html + + + + + + set_mempolicy + man2/set_mempolicy.2.html + + + + + + setns + man2/setns.2.html + + + + + + setpgid + man2/setpgid.2.html + + + + + + setpgrp + man2/setpgrp.2.html + + + + + + setpriority + man2/setpriority.2.html + + + + + + setregid + man2/setregid.2.html + + + + + + setregid32 + man2/setregid32.2.html + + + + + + setresgid + man2/setresgid.2.html + + + + + + setresgid32 + man2/setresgid32.2.html + + + + + + setresuid + man2/setresuid.2.html + + + + + + setresuid32 + man2/setresuid32.2.html + + + + + + setreuid + man2/setreuid.2.html + + + + + + setreuid32 + man2/setreuid32.2.html + + + + + + setrlimit + man2/setrlimit.2.html + + + + + + set_robust_list + man2/set_robust_list.2.html + + + + + + setsid + man2/setsid.2.html + + + + + + setsockopt + man2/setsockopt.2.html + + + + + + set_thread_area + man2/set_thread_area.2.html + + + + + + set_tid_address + man2/set_tid_address.2.html + + + + + + settimeofday + man2/settimeofday.2.html + + + + + + setuid + man2/setuid.2.html + + + + + + setuid32 + man2/setuid32.2.html + + + + + + setup + man2/setup.2.html + + + + + + setxattr + man2/setxattr.2.html + + + + + + sgetmask + man2/sgetmask.2.html + + + + + + shmat + man2/shmat.2.html + + + + + + shmctl + man2/shmctl.2.html + + + + + + shmdt + man2/shmdt.2.html + + + + + + shmget + man2/shmget.2.html + + + + + + shmop + man2/shmop.2.html + + + + + + shutdown + man2/shutdown.2.html + + + + + + sigaction + man2/sigaction.2.html + + + + + + sigaltstack + man2/sigaltstack.2.html + + + + + + signal + man2/signal.2.html + + + + + + signalfd + man2/signalfd.2.html + + + + + + signalfd4 + man2/signalfd4.2.html + + + + + + sigpending + man2/sigpending.2.html + + + + + + sigprocmask + man2/sigprocmask.2.html + + + + + + sigqueue + man2/sigqueue.2.html + + + + + + sigreturn + man2/sigreturn.2.html + + + + + + sigsuspend + man2/sigsuspend.2.html + + + + + + sigtimedwait + man2/sigtimedwait.2.html + + + + + + sigwaitinfo + man2/sigwaitinfo.2.html + + + + + + socket + man2/socket.2.html + + + + + + socketcall + man2/socketcall.2.html + + + + + + socketpair + man2/socketpair.2.html + + + + + + splice + man2/splice.2.html + + + + + + spu_create + man2/spu_create.2.html + + + + + + spu_run + man2/spu_run.2.html + + + + + + ssetmask + man2/ssetmask.2.html + + + + + + stat + man2/stat.2.html + + + + + + stat64 + man2/stat64.2.html + + + + + + statfs + man2/statfs.2.html + + + + + + statfs64 + man2/statfs64.2.html + + + + + + statvfs + man2/statvfs.2.html + + + + + + statx + man2/statx.2.html + + + + + + stime + man2/stime.2.html + + + + + + stty + man2/stty.2.html + + + + + + subpage_prot + man2/subpage_prot.2.html + + + + + + swapoff + man2/swapoff.2.html + + + + + + swapon + man2/swapon.2.html + + + + + + symlink + man2/symlink.2.html + + + + + + symlinkat + man2/symlinkat.2.html + + + + + + sync + man2/sync.2.html + + + + + + sync_file_range + man2/sync_file_range.2.html + + + + + + sync_file_range2 + man2/sync_file_range2.2.html + + + + + + syncfs + man2/syncfs.2.html + + + + + + _syscall + man2/_syscall.2.html + + + + + + syscall + man2/syscall.2.html + + + + + + syscalls + man2/syscalls.2.html + + + + + + _sysctl + man2/_sysctl.2.html + + + + + + sysctl + man2/sysctl.2.html + + + + + + sysfs + man2/sysfs.2.html + + + + + + sysinfo + man2/sysinfo.2.html + + + + + + syslog + man2/syslog.2.html + + + + + + tee + man2/tee.2.html + + + + + + tgkill + man2/tgkill.2.html + + + + + + time + man2/time.2.html + + + + + + timer_create + man2/timer_create.2.html + + + + + + timer_delete + man2/timer_delete.2.html + + + + + + timerfd_create + man2/timerfd_create.2.html + + + + + + timerfd_gettime + man2/timerfd_gettime.2.html + + + + + + timerfd_settime + man2/timerfd_settime.2.html + + + + + + timer_getoverrun + man2/timer_getoverrun.2.html + + + + + + timer_gettime + man2/timer_gettime.2.html + + + + + + timer_settime + man2/timer_settime.2.html + + + + + + times + man2/times.2.html + + + + + + tkill + man2/tkill.2.html + + + + + + truncate + man2/truncate.2.html + + + + + + truncate64 + man2/truncate64.2.html + + + + + + tuxcall + man2/tuxcall.2.html + + + + + + ugetrlimit + man2/ugetrlimit.2.html + + + + + + umask + man2/umask.2.html + + + + + + umount + man2/umount.2.html + + + + + + umount2 + man2/umount2.2.html + + + + + + uname + man2/uname.2.html + + + + + + unimplemented + man2/unimplemented.2.html + + + + + + unlink + man2/unlink.2.html + + + + + + unlinkat + man2/unlinkat.2.html + + + + + + unshare + man2/unshare.2.html + + + + + + uselib + man2/uselib.2.html + + + + + + userfaultfd + man2/userfaultfd.2.html + + + + + + ustat + man2/ustat.2.html + + + + + + utime + man2/utime.2.html + + + + + + utimensat + man2/utimensat.2.html + + + + + + utimes + man2/utimes.2.html + + + + + + vfork + man2/vfork.2.html + + + + + + vhangup + man2/vhangup.2.html + + + + + + vm86 + man2/vm86.2.html + + + + + + vm86old + man2/vm86old.2.html + + + + + + vmsplice + man2/vmsplice.2.html + + + + + + vserver + man2/vserver.2.html + + + + + + wait + man2/wait.2.html + + + + + + wait3 + man2/wait3.2.html + + + + + + wait4 + man2/wait4.2.html + + + + + + waitid + man2/waitid.2.html + + + + + + waitpid + man2/waitpid.2.html + + + + + + write + man2/write.2.html + + + + + + writev + man2/writev.2.html + + + + +man3 + + + a64l + man3/a64l.3.html + + + + + + abort + man3/abort.3.html + + + + + + abs + man3/abs.3.html + + + + + + acos + man3/acos.3.html + + + + + + acosf + man3/acosf.3.html + + + + + + acosh + man3/acosh.3.html + + + + + + acoshf + man3/acoshf.3.html + + + + + + acoshl + man3/acoshl.3.html + + + + + + acosl + man3/acosl.3.html + + + + + + addmntent + man3/addmntent.3.html + + + + + + addseverity + man3/addseverity.3.html + + + + + + adjtime + man3/adjtime.3.html + + + + + + __after_morecore_hook + man3/__after_morecore_hook.3.html + + + + + + aio_cancel + man3/aio_cancel.3.html + + + + + + aio_error + man3/aio_error.3.html + + + + + + aio_fsync + man3/aio_fsync.3.html + + + + + + aio_init + man3/aio_init.3.html + + + + + + aio_read + man3/aio_read.3.html + + + + + + aio_return + man3/aio_return.3.html + + + + + + aio_suspend + man3/aio_suspend.3.html + + + + + + aio_write + man3/aio_write.3.html + + + + + + aligned_alloc + man3/aligned_alloc.3.html + + + + + + alloca + man3/alloca.3.html + + + + + + alphasort + man3/alphasort.3.html + + + + + + argz + man3/argz.3.html + + + + + + argz_add + man3/argz_add.3.html + + + + + + argz_add_sep + man3/argz_add_sep.3.html + + + + + + argz_append + man3/argz_append.3.html + + + + + + argz_count + man3/argz_count.3.html + + + + + + argz_create + man3/argz_create.3.html + + + + + + argz_create_sep + man3/argz_create_sep.3.html + + + + + + argz_delete + man3/argz_delete.3.html + + + + + + argz_extract + man3/argz_extract.3.html + + + + + + argz_insert + man3/argz_insert.3.html + + + + + + argz_next + man3/argz_next.3.html + + + + + + argz_replace + man3/argz_replace.3.html + + + + + + argz_stringify + man3/argz_stringify.3.html + + + + + + asctime + man3/asctime.3.html + + + + + + asctime_r + man3/asctime_r.3.html + + + + + + asin + man3/asin.3.html + + + + + + asinf + man3/asinf.3.html + + + + + + asinh + man3/asinh.3.html + + + + + + asinhf + man3/asinhf.3.html + + + + + + asinhl + man3/asinhl.3.html + + + + + + asinl + man3/asinl.3.html + + + + + + asprintf + man3/asprintf.3.html + + + + + + assert + man3/assert.3.html + + + + + + assert_perror + man3/assert_perror.3.html + + + + + + atan2 + man3/atan2.3.html + + + + + + atan2f + man3/atan2f.3.html + + + + + + atan2l + man3/atan2l.3.html + + + + + + atan + man3/atan.3.html + + + + + + atanf + man3/atanf.3.html + + + + + + atanh + man3/atanh.3.html + + + + + + atanhf + man3/atanhf.3.html + + + + + + atanhl + man3/atanhl.3.html + + + + + + atanl + man3/atanl.3.html + + + + + + atexit + man3/atexit.3.html + + + + + + atof + man3/atof.3.html + + + + + + atoi + man3/atoi.3.html + + + + + + atol + man3/atol.3.html + + + + + + atoll + man3/atoll.3.html + + + + + + atoq + man3/atoq.3.html + + + + + + auth_destroy + man3/auth_destroy.3.html + + + + + + authnone_create + man3/authnone_create.3.html + + + + + + authunix_create + man3/authunix_create.3.html + + + + + + authunix_create_default + man3/authunix_create_default.3.html + + + + + + backtrace + man3/backtrace.3.html + + + + + + backtrace_symbols + man3/backtrace_symbols.3.html + + + + + + backtrace_symbols_fd + man3/backtrace_symbols_fd.3.html + + + + + + basename + man3/basename.3.html + + + + + + bcmp + man3/bcmp.3.html + + + + + + bcopy + man3/bcopy.3.html + + + + + + be16toh + man3/be16toh.3.html + + + + + + be32toh + man3/be32toh.3.html + + + + + + be64toh + man3/be64toh.3.html + + + + + + bindresvport + man3/bindresvport.3.html + + + + + + bsd_signal + man3/bsd_signal.3.html + + + + + + bsearch + man3/bsearch.3.html + + + + + + bstring + man3/bstring.3.html + + + + + + bswap_16 + man3/bswap_16.3.html + + + + + + bswap + man3/bswap.3.html + + + + + + bswap_32 + man3/bswap_32.3.html + + + + + + bswap_64 + man3/bswap_64.3.html + + + + + + btowc + man3/btowc.3.html + + + + + + btree + man3/btree.3.html + + + + + + byteorder + man3/byteorder.3.html + + + + + + bzero + man3/bzero.3.html + + + + + + cabs + man3/cabs.3.html + + + + + + cabsf + man3/cabsf.3.html + + + + + + cabsl + man3/cabsl.3.html + + + + + + cacos + man3/cacos.3.html + + + + + + cacosf + man3/cacosf.3.html + + + + + + cacosh + man3/cacosh.3.html + + + + + + cacoshf + man3/cacoshf.3.html + + + + + + cacoshl + man3/cacoshl.3.html + + + + + + cacosl + man3/cacosl.3.html + + + + + + calloc + man3/calloc.3.html + + + + + + callrpc + man3/callrpc.3.html + + + + + + canonicalize_file_name + man3/canonicalize_file_name.3.html + + + + + + carg + man3/carg.3.html + + + + + + cargf + man3/cargf.3.html + + + + + + cargl + man3/cargl.3.html + + + + + + casin + man3/casin.3.html + + + + + + casinf + man3/casinf.3.html + + + + + + casinh + man3/casinh.3.html + + + + + + casinhf + man3/casinhf.3.html + + + + + + casinhl + man3/casinhl.3.html + + + + + + casinl + man3/casinl.3.html + + + + + + catan + man3/catan.3.html + + + + + + catanf + man3/catanf.3.html + + + + + + catanh + man3/catanh.3.html + + + + + + catanhf + man3/catanhf.3.html + + + + + + catanhl + man3/catanhl.3.html + + + + + + catanl + man3/catanl.3.html + + + + + + catclose + man3/catclose.3.html + + + + + + catgets + man3/catgets.3.html + + + + + + catopen + man3/catopen.3.html + + + + + + cbc_crypt + man3/cbc_crypt.3.html + + + + + + cbrt + man3/cbrt.3.html + + + + + + cbrtf + man3/cbrtf.3.html + + + + + + cbrtl + man3/cbrtl.3.html + + + + + + ccos + man3/ccos.3.html + + + + + + ccosf + man3/ccosf.3.html + + + + + + ccosh + man3/ccosh.3.html + + + + + + ccoshf + man3/ccoshf.3.html + + + + + + ccoshl + man3/ccoshl.3.html + + + + + + ccosl + man3/ccosl.3.html + + + + + + ceil + man3/ceil.3.html + + + + + + ceilf + man3/ceilf.3.html + + + + + + ceill + man3/ceill.3.html + + + + + + cexp2 + man3/cexp2.3.html + + + + + + cexp2f + man3/cexp2f.3.html + + + + + + cexp2l + man3/cexp2l.3.html + + + + + + cexp + man3/cexp.3.html + + + + + + cexpf + man3/cexpf.3.html + + + + + + cexpl + man3/cexpl.3.html + + + + + + cfgetispeed + man3/cfgetispeed.3.html + + + + + + cfgetospeed + man3/cfgetospeed.3.html + + + + + + cfmakeraw + man3/cfmakeraw.3.html + + + + + + cfree + man3/cfree.3.html + + + + + + cfsetispeed + man3/cfsetispeed.3.html + + + + + + cfsetospeed + man3/cfsetospeed.3.html + + + + + + cfsetspeed + man3/cfsetspeed.3.html + + + + + + cimag + man3/cimag.3.html + + + + + + cimagf + man3/cimagf.3.html + + + + + + cimagl + man3/cimagl.3.html + + + + + + CIRCLEQ_ENTRY + man3/CIRCLEQ_ENTRY.3.html + + + + + + CIRCLEQ_HEAD + man3/CIRCLEQ_HEAD.3.html + + + + + + CIRCLEQ_INIT + man3/CIRCLEQ_INIT.3.html + + + + + + CIRCLEQ_INSERT_AFTER + man3/CIRCLEQ_INSERT_AFTER.3.html + + + + + + CIRCLEQ_INSERT_BEFORE + man3/CIRCLEQ_INSERT_BEFORE.3.html + + + + + + CIRCLEQ_INSERT_HEAD + man3/CIRCLEQ_INSERT_HEAD.3.html + + + + + + CIRCLEQ_INSERT_TAIL + man3/CIRCLEQ_INSERT_TAIL.3.html + + + + + + CIRCLEQ_REMOVE + man3/CIRCLEQ_REMOVE.3.html + + + + + + clearenv + man3/clearenv.3.html + + + + + + clearerr + man3/clearerr.3.html + + + + + + clearerr_unlocked + man3/clearerr_unlocked.3.html + + + + + + clnt_broadcast + man3/clnt_broadcast.3.html + + + + + + clnt_call + man3/clnt_call.3.html + + + + + + clnt_control + man3/clnt_control.3.html + + + + + + clnt_create + man3/clnt_create.3.html + + + + + + clnt_destroy + man3/clnt_destroy.3.html + + + + + + clnt_freeres + man3/clnt_freeres.3.html + + + + + + clnt_geterr + man3/clnt_geterr.3.html + + + + + + clnt_pcreateerror + man3/clnt_pcreateerror.3.html + + + + + + clnt_perrno + man3/clnt_perrno.3.html + + + + + + clnt_perror + man3/clnt_perror.3.html + + + + + + clntraw_create + man3/clntraw_create.3.html + + + + + + clnt_spcreateerror + man3/clnt_spcreateerror.3.html + + + + + + clnt_sperrno + man3/clnt_sperrno.3.html + + + + + + clnt_sperror + man3/clnt_sperror.3.html + + + + + + clnttcp_create + man3/clnttcp_create.3.html + + + + + + clntudp_bufcreate + man3/clntudp_bufcreate.3.html + + + + + + clntudp_create + man3/clntudp_create.3.html + + + + + + clock + man3/clock.3.html + + + + + + clock_getcpuclockid + man3/clock_getcpuclockid.3.html + + + + + + clock_getres + man3/clock_getres.3.html + + + + + + clock_gettime + man3/clock_gettime.3.html + + + + + + clock_settime + man3/clock_settime.3.html + + + + + + clog10 + man3/clog10.3.html + + + + + + clog10f + man3/clog10f.3.html + + + + + + clog10l + man3/clog10l.3.html + + + + + + clog2 + man3/clog2.3.html + + + + + + clog2f + man3/clog2f.3.html + + + + + + clog2l + man3/clog2l.3.html + + + + + + clog + man3/clog.3.html + + + + + + clogf + man3/clogf.3.html + + + + + + clogl + man3/clogl.3.html + + + + + + closedir + man3/closedir.3.html + + + + + + closelog + man3/closelog.3.html + + + + + + cmsg + man3/cmsg.3.html + + + + + + CMSG_ALIGN + man3/CMSG_ALIGN.3.html + + + + + + CMSG_DATA + man3/CMSG_DATA.3.html + + + + + + CMSG_FIRSTHDR + man3/CMSG_FIRSTHDR.3.html + + + + + + CMSG_LEN + man3/CMSG_LEN.3.html + + + + + + CMSG_NXTHDR + man3/CMSG_NXTHDR.3.html + + + + + + CMSG_SPACE + man3/CMSG_SPACE.3.html + + + + + + confstr + man3/confstr.3.html + + + + + + conj + man3/conj.3.html + + + + + + conjf + man3/conjf.3.html + + + + + + conjl + man3/conjl.3.html + + + + + + copysign + man3/copysign.3.html + + + + + + copysignf + man3/copysignf.3.html + + + + + + copysignl + man3/copysignl.3.html + + + + + + cos + man3/cos.3.html + + + + + + cosf + man3/cosf.3.html + + + + + + cosh + man3/cosh.3.html + + + + + + coshf + man3/coshf.3.html + + + + + + coshl + man3/coshl.3.html + + + + + + cosl + man3/cosl.3.html + + + + + + cpow + man3/cpow.3.html + + + + + + cpowf + man3/cpowf.3.html + + + + + + cpowl + man3/cpowl.3.html + + + + + + cproj + man3/cproj.3.html + + + + + + cprojf + man3/cprojf.3.html + + + + + + cprojl + man3/cprojl.3.html + + + + + + CPU_ALLOC + man3/CPU_ALLOC.3.html + + + + + + CPU_ALLOC_SIZE + man3/CPU_ALLOC_SIZE.3.html + + + + + + CPU_AND + man3/CPU_AND.3.html + + + + + + CPU_AND_S + man3/CPU_AND_S.3.html + + + + + + CPU_CLR + man3/CPU_CLR.3.html + + + + + + CPU_CLR_S + man3/CPU_CLR_S.3.html + + + + + + CPU_COUNT + man3/CPU_COUNT.3.html + + + + + + CPU_COUNT_S + man3/CPU_COUNT_S.3.html + + + + + + CPU_EQUAL + man3/CPU_EQUAL.3.html + + + + + + CPU_EQUAL_S + man3/CPU_EQUAL_S.3.html + + + + + + CPU_FREE + man3/CPU_FREE.3.html + + + + + + CPU_ISSET + man3/CPU_ISSET.3.html + + + + + + CPU_ISSET_S + man3/CPU_ISSET_S.3.html + + + + + + CPU_OR + man3/CPU_OR.3.html + + + + + + CPU_OR_S + man3/CPU_OR_S.3.html + + + + + + CPU_SET + man3/CPU_SET.3.html + + + + + + CPU_SET_S + man3/CPU_SET_S.3.html + + + + + + CPU_XOR + man3/CPU_XOR.3.html + + + + + + CPU_XOR_S + man3/CPU_XOR_S.3.html + + + + + + CPU_ZERO + man3/CPU_ZERO.3.html + + + + + + CPU_ZERO_S + man3/CPU_ZERO_S.3.html + + + + + + creal + man3/creal.3.html + + + + + + crealf + man3/crealf.3.html + + + + + + creall + man3/creall.3.html + + + + + + crypt + man3/crypt.3.html + + + + + + crypt_r + man3/crypt_r.3.html + + + + + + csin + man3/csin.3.html + + + + + + csinf + man3/csinf.3.html + + + + + + csinh + man3/csinh.3.html + + + + + + csinhf + man3/csinhf.3.html + + + + + + csinhl + man3/csinhl.3.html + + + + + + csinl + man3/csinl.3.html + + + + + + csqrt + man3/csqrt.3.html + + + + + + csqrtf + man3/csqrtf.3.html + + + + + + csqrtl + man3/csqrtl.3.html + + + + + + ctan + man3/ctan.3.html + + + + + + ctanf + man3/ctanf.3.html + + + + + + ctanh + man3/ctanh.3.html + + + + + + ctanhf + man3/ctanhf.3.html + + + + + + ctanhl + man3/ctanhl.3.html + + + + + + ctanl + man3/ctanl.3.html + + + + + + ctermid + man3/ctermid.3.html + + + + + + ctime + man3/ctime.3.html + + + + + + ctime_r + man3/ctime_r.3.html + + + + + + cuserid + man3/cuserid.3.html + + + + + + daemon + man3/daemon.3.html + + + + + + daylight + man3/daylight.3.html + + + + + + db + man3/db.3.html + + + + + + dbopen + man3/dbopen.3.html + + + + + + des_crypt + man3/des_crypt.3.html + + + + + + DES_FAILED + man3/DES_FAILED.3.html + + + + + + des_setparity + man3/des_setparity.3.html + + + + + + difftime + man3/difftime.3.html + + + + + + dirfd + man3/dirfd.3.html + + + + + + dirname + man3/dirname.3.html + + + + + + div + man3/div.3.html + + + + + + dladdr1 + man3/dladdr1.3.html + + + + + + dladdr + man3/dladdr.3.html + + + + + + dlclose + man3/dlclose.3.html + + + + + + dlerror + man3/dlerror.3.html + + + + + + dlinfo + man3/dlinfo.3.html + + + + + + dl_iterate_phdr + man3/dl_iterate_phdr.3.html + + + + + + dlmopen + man3/dlmopen.3.html + + + + + + dlopen + man3/dlopen.3.html + + + + + + dlsym + man3/dlsym.3.html + + + + + + dlvsym + man3/dlvsym.3.html + + + + + + dn_comp + man3/dn_comp.3.html + + + + + + dn_expand + man3/dn_expand.3.html + + + + + + dprintf + man3/dprintf.3.html + + + + + + drand48 + man3/drand48.3.html + + + + + + drand48_r + man3/drand48_r.3.html + + + + + + drem + man3/drem.3.html + + + + + + dremf + man3/dremf.3.html + + + + + + dreml + man3/dreml.3.html + + + + + + duplocale + man3/duplocale.3.html + + + + + + dysize + man3/dysize.3.html + + + + + + eaccess + man3/eaccess.3.html + + + + + + ecb_crypt + man3/ecb_crypt.3.html + + + + + + ecvt + man3/ecvt.3.html + + + + + + ecvt_r + man3/ecvt_r.3.html + + + + + + edata + man3/edata.3.html + + + + + + encrypt + man3/encrypt.3.html + + + + + + encrypt_r + man3/encrypt_r.3.html + + + + + + end + man3/end.3.html + + + + + + endaliasent + man3/endaliasent.3.html + + + + + + endfsent + man3/endfsent.3.html + + + + + + endgrent + man3/endgrent.3.html + + + + + + endhostent + man3/endhostent.3.html + + + + + + endian + man3/endian.3.html + + + + + + endmntent + man3/endmntent.3.html + + + + + + endnetent + man3/endnetent.3.html + + + + + + endnetgrent + man3/endnetgrent.3.html + + + + + + endprotoent + man3/endprotoent.3.html + + + + + + endpwent + man3/endpwent.3.html + + + + + + endrpcent + man3/endrpcent.3.html + + + + + + endservent + man3/endservent.3.html + + + + + + endspent + man3/endspent.3.html + + + + + + endttyent + man3/endttyent.3.html + + + + + + endusershell + man3/endusershell.3.html + + + + + + endutent + man3/endutent.3.html + + + + + + endutxent + man3/endutxent.3.html + + + + + + envz + man3/envz.3.html + + + + + + envz_add + man3/envz_add.3.html + + + + + + envz_entry + man3/envz_entry.3.html + + + + + + envz_get + man3/envz_get.3.html + + + + + + envz_merge + man3/envz_merge.3.html + + + + + + envz_remove + man3/envz_remove.3.html + + + + + + envz_strip + man3/envz_strip.3.html + + + + + + erand48 + man3/erand48.3.html + + + + + + erand48_r + man3/erand48_r.3.html + + + + + + erf + man3/erf.3.html + + + + + + erfc + man3/erfc.3.html + + + + + + erfcf + man3/erfcf.3.html + + + + + + erfcl + man3/erfcl.3.html + + + + + + erff + man3/erff.3.html + + + + + + erfl + man3/erfl.3.html + + + + + + err + man3/err.3.html + + + + + + errno + man3/errno.3.html + + + + + + error + man3/error.3.html + + + + + + error_at_line + man3/error_at_line.3.html + + + + + + error_message_count + man3/error_message_count.3.html + + + + + + error_one_per_line + man3/error_one_per_line.3.html + + + + + + error_print_progname + man3/error_print_progname.3.html + + + + + + errx + man3/errx.3.html + + + + + + etext + man3/etext.3.html + + + + + + ether_aton + man3/ether_aton.3.html + + + + + + ether_aton_r + man3/ether_aton_r.3.html + + + + + + ether_hostton + man3/ether_hostton.3.html + + + + + + ether_line + man3/ether_line.3.html + + + + + + ether_ntoa + man3/ether_ntoa.3.html + + + + + + ether_ntoa_r + man3/ether_ntoa_r.3.html + + + + + + ether_ntohost + man3/ether_ntohost.3.html + + + + + + euidaccess + man3/euidaccess.3.html + + + + + + eventfd_read + man3/eventfd_read.3.html + + + + + + eventfd_write + man3/eventfd_write.3.html + + + + + + exec + man3/exec.3.html + + + + + + execl + man3/execl.3.html + + + + + + execle + man3/execle.3.html + + + + + + execlp + man3/execlp.3.html + + + + + + execv + man3/execv.3.html + + + + + + execvp + man3/execvp.3.html + + + + + + execvpe + man3/execvpe.3.html + + + + + + exit + man3/exit.3.html + + + + + + exp10 + man3/exp10.3.html + + + + + + exp10f + man3/exp10f.3.html + + + + + + exp10l + man3/exp10l.3.html + + + + + + exp2 + man3/exp2.3.html + + + + + + exp2f + man3/exp2f.3.html + + + + + + exp2l + man3/exp2l.3.html + + + + + + exp + man3/exp.3.html + + + + + + expf + man3/expf.3.html + + + + + + expl + man3/expl.3.html + + + + + + explicit_bzero + man3/explicit_bzero.3.html + + + + + + expm1 + man3/expm1.3.html + + + + + + expm1f + man3/expm1f.3.html + + + + + + expm1l + man3/expm1l.3.html + + + + + + fabs + man3/fabs.3.html + + + + + + fabsf + man3/fabsf.3.html + + + + + + fabsl + man3/fabsl.3.html + + + + + + __fbufsize + man3/__fbufsize.3.html + + + + + + fclose + man3/fclose.3.html + + + + + + fcloseall + man3/fcloseall.3.html + + + + + + fcvt + man3/fcvt.3.html + + + + + + fcvt_r + man3/fcvt_r.3.html + + + + + + FD_CLR + man3/FD_CLR.3.html + + + + + + fdim + man3/fdim.3.html + + + + + + fdimf + man3/fdimf.3.html + + + + + + fdiml + man3/fdiml.3.html + + + + + + FD_ISSET + man3/FD_ISSET.3.html + + + + + + fdopen + man3/fdopen.3.html + + + + + + fdopendir + man3/fdopendir.3.html + + + + + + FD_SET + man3/FD_SET.3.html + + + + + + FD_ZERO + man3/FD_ZERO.3.html + + + + + + feclearexcept + man3/feclearexcept.3.html + + + + + + fedisableexcept + man3/fedisableexcept.3.html + + + + + + feenableexcept + man3/feenableexcept.3.html + + + + + + fegetenv + man3/fegetenv.3.html + + + + + + fegetexcept + man3/fegetexcept.3.html + + + + + + fegetexceptflag + man3/fegetexceptflag.3.html + + + + + + fegetround + man3/fegetround.3.html + + + + + + feholdexcept + man3/feholdexcept.3.html + + + + + + fenv + man3/fenv.3.html + + + + + + feof + man3/feof.3.html + + + + + + feof_unlocked + man3/feof_unlocked.3.html + + + + + + feraiseexcept + man3/feraiseexcept.3.html + + + + + + ferror + man3/ferror.3.html + + + + + + ferror_unlocked + man3/ferror_unlocked.3.html + + + + + + fesetenv + man3/fesetenv.3.html + + + + + + fesetexceptflag + man3/fesetexceptflag.3.html + + + + + + fesetround + man3/fesetround.3.html + + + + + + fetestexcept + man3/fetestexcept.3.html + + + + + + feupdateenv + man3/feupdateenv.3.html + + + + + + fexecve + man3/fexecve.3.html + + + + + + fflush + man3/fflush.3.html + + + + + + fflush_unlocked + man3/fflush_unlocked.3.html + + + + + + ffs + man3/ffs.3.html + + + + + + ffsl + man3/ffsl.3.html + + + + + + ffsll + man3/ffsll.3.html + + + + + + fgetc + man3/fgetc.3.html + + + + + + fgetc_unlocked + man3/fgetc_unlocked.3.html + + + + + + fgetgrent + man3/fgetgrent.3.html + + + + + + fgetgrent_r + man3/fgetgrent_r.3.html + + + + + + fgetpos + man3/fgetpos.3.html + + + + + + fgetpwent + man3/fgetpwent.3.html + + + + + + fgetpwent_r + man3/fgetpwent_r.3.html + + + + + + fgets + man3/fgets.3.html + + + + + + fgetspent + man3/fgetspent.3.html + + + + + + fgetspent_r + man3/fgetspent_r.3.html + + + + + + fgets_unlocked + man3/fgets_unlocked.3.html + + + + + + fgetwc + man3/fgetwc.3.html + + + + + + fgetwc_unlocked + man3/fgetwc_unlocked.3.html + + + + + + fgetws + man3/fgetws.3.html + + + + + + fgetws_unlocked + man3/fgetws_unlocked.3.html + + + + + + fileno + man3/fileno.3.html + + + + + + fileno_unlocked + man3/fileno_unlocked.3.html + + + + + + finite + man3/finite.3.html + + + + + + finitef + man3/finitef.3.html + + + + + + finitel + man3/finitel.3.html + + + + + + __flbf + man3/__flbf.3.html + + + + + + flockfile + man3/flockfile.3.html + + + + + + floor + man3/floor.3.html + + + + + + floorf + man3/floorf.3.html + + + + + + floorl + man3/floorl.3.html + + + + + + _flushlbf + man3/_flushlbf.3.html + + + + + + fma + man3/fma.3.html + + + + + + fmaf + man3/fmaf.3.html + + + + + + fmal + man3/fmal.3.html + + + + + + fmax + man3/fmax.3.html + + + + + + fmaxf + man3/fmaxf.3.html + + + + + + fmaxl + man3/fmaxl.3.html + + + + + + fmemopen + man3/fmemopen.3.html + + + + + + fmin + man3/fmin.3.html + + + + + + fminf + man3/fminf.3.html + + + + + + fminl + man3/fminl.3.html + + + + + + fmod + man3/fmod.3.html + + + + + + fmodf + man3/fmodf.3.html + + + + + + fmodl + man3/fmodl.3.html + + + + + + fmtmsg + man3/fmtmsg.3.html + + + + + + fnmatch + man3/fnmatch.3.html + + + + + + fopen + man3/fopen.3.html + + + + + + fopencookie + man3/fopencookie.3.html + + + + + + forkpty + man3/forkpty.3.html + + + + + + fpathconf + man3/fpathconf.3.html + + + + + + fpclassify + man3/fpclassify.3.html + + + + + + __fpending + man3/__fpending.3.html + + + + + + fprintf + man3/fprintf.3.html + + + + + + __fpurge + man3/__fpurge.3.html + + + + + + fpurge + man3/fpurge.3.html + + + + + + fputc + man3/fputc.3.html + + + + + + fputc_unlocked + man3/fputc_unlocked.3.html + + + + + + fputs + man3/fputs.3.html + + + + + + fputs_unlocked + man3/fputs_unlocked.3.html + + + + + + fputwc + man3/fputwc.3.html + + + + + + fputwc_unlocked + man3/fputwc_unlocked.3.html + + + + + + fputws + man3/fputws.3.html + + + + + + fputws_unlocked + man3/fputws_unlocked.3.html + + + + + + fread + man3/fread.3.html + + + + + + __freadable + man3/__freadable.3.html + + + + + + __freading + man3/__freading.3.html + + + + + + fread_unlocked + man3/fread_unlocked.3.html + + + + + + free + man3/free.3.html + + + + + + freeaddrinfo + man3/freeaddrinfo.3.html + + + + + + __free_hook + man3/__free_hook.3.html + + + + + + freehostent + man3/freehostent.3.html + + + + + + freeifaddrs + man3/freeifaddrs.3.html + + + + + + freelocale + man3/freelocale.3.html + + + + + + freopen + man3/freopen.3.html + + + + + + frexp + man3/frexp.3.html + + + + + + frexpf + man3/frexpf.3.html + + + + + + frexpl + man3/frexpl.3.html + + + + + + fscanf + man3/fscanf.3.html + + + + + + fseek + man3/fseek.3.html + + + + + + fseeko + man3/fseeko.3.html + + + + + + __fsetlocking + man3/__fsetlocking.3.html + + + + + + fsetpos + man3/fsetpos.3.html + + + + + + fstatvfs + man3/fstatvfs.3.html + + + + + + ftell + man3/ftell.3.html + + + + + + ftello + man3/ftello.3.html + + + + + + ftime + man3/ftime.3.html + + + + + + ftok + man3/ftok.3.html + + + + + + ftrylockfile + man3/ftrylockfile.3.html + + + + + + fts + man3/fts.3.html + + + + + + fts_children + man3/fts_children.3.html + + + + + + fts_close + man3/fts_close.3.html + + + + + + fts_open + man3/fts_open.3.html + + + + + + fts_read + man3/fts_read.3.html + + + + + + fts_set + man3/fts_set.3.html + + + + + + ftw + man3/ftw.3.html + + + + + + funlockfile + man3/funlockfile.3.html + + + + + + futimens + man3/futimens.3.html + + + + + + futimes + man3/futimes.3.html + + + + + + fwide + man3/fwide.3.html + + + + + + fwprintf + man3/fwprintf.3.html + + + + + + __fwritable + man3/__fwritable.3.html + + + + + + fwrite + man3/fwrite.3.html + + + + + + fwrite_unlocked + man3/fwrite_unlocked.3.html + + + + + + __fwriting + man3/__fwriting.3.html + + + + + + gai_cancel + man3/gai_cancel.3.html + + + + + + gai_error + man3/gai_error.3.html + + + + + + gai_strerror + man3/gai_strerror.3.html + + + + + + gai_suspend + man3/gai_suspend.3.html + + + + + + gamma + man3/gamma.3.html + + + + + + gammaf + man3/gammaf.3.html + + + + + + gammal + man3/gammal.3.html + + + + + + gcvt + man3/gcvt.3.html + + + + + + getaddrinfo + man3/getaddrinfo.3.html + + + + + + getaddrinfo_a + man3/getaddrinfo_a.3.html + + + + + + getaliasbyname + man3/getaliasbyname.3.html + + + + + + getaliasbyname_r + man3/getaliasbyname_r.3.html + + + + + + getaliasent + man3/getaliasent.3.html + + + + + + getaliasent_r + man3/getaliasent_r.3.html + + + + + + getauxval + man3/getauxval.3.html + + + + + + get_avphys_pages + man3/get_avphys_pages.3.html + + + + + + getc + man3/getc.3.html + + + + + + getchar + man3/getchar.3.html + + + + + + getchar_unlocked + man3/getchar_unlocked.3.html + + + + + + getcontext + man3/getcontext.3.html + + + + + + getc_unlocked + man3/getc_unlocked.3.html + + + + + + get_current_dir_name + man3/get_current_dir_name.3.html + + + + + + getcwd + man3/getcwd.3.html + + + + + + getdate + man3/getdate.3.html + + + + + + getdate_err + man3/getdate_err.3.html + + + + + + getdate_r + man3/getdate_r.3.html + + + + + + getdelim + man3/getdelim.3.html + + + + + + getdirentries + man3/getdirentries.3.html + + + + + + getdtablesize + man3/getdtablesize.3.html + + + + + + getentropy + man3/getentropy.3.html + + + + + + getenv + man3/getenv.3.html + + + + + + getfsent + man3/getfsent.3.html + + + + + + getfsfile + man3/getfsfile.3.html + + + + + + getfsspec + man3/getfsspec.3.html + + + + + + getgrent + man3/getgrent.3.html + + + + + + getgrent_r + man3/getgrent_r.3.html + + + + + + getgrgid + man3/getgrgid.3.html + + + + + + getgrgid_r + man3/getgrgid_r.3.html + + + + + + getgrnam + man3/getgrnam.3.html + + + + + + getgrnam_r + man3/getgrnam_r.3.html + + + + + + getgrouplist + man3/getgrouplist.3.html + + + + + + gethostbyaddr + man3/gethostbyaddr.3.html + + + + + + gethostbyaddr_r + man3/gethostbyaddr_r.3.html + + + + + + gethostbyname2 + man3/gethostbyname2.3.html + + + + + + gethostbyname2_r + man3/gethostbyname2_r.3.html + + + + + + gethostbyname + man3/gethostbyname.3.html + + + + + + gethostbyname_r + man3/gethostbyname_r.3.html + + + + + + gethostent + man3/gethostent.3.html + + + + + + gethostent_r + man3/gethostent_r.3.html + + + + + + gethostid + man3/gethostid.3.html + + + + + + getifaddrs + man3/getifaddrs.3.html + + + + + + getipnodebyaddr + man3/getipnodebyaddr.3.html + + + + + + getipnodebyname + man3/getipnodebyname.3.html + + + + + + getline + man3/getline.3.html + + + + + + getloadavg + man3/getloadavg.3.html + + + + + + getlogin + man3/getlogin.3.html + + + + + + getlogin_r + man3/getlogin_r.3.html + + + + + + getmntent + man3/getmntent.3.html + + + + + + getmntent_r + man3/getmntent_r.3.html + + + + + + get_myaddress + man3/get_myaddress.3.html + + + + + + getnameinfo + man3/getnameinfo.3.html + + + + + + getnetbyaddr + man3/getnetbyaddr.3.html + + + + + + getnetbyaddr_r + man3/getnetbyaddr_r.3.html + + + + + + getnetbyname + man3/getnetbyname.3.html + + + + + + getnetbyname_r + man3/getnetbyname_r.3.html + + + + + + getnetent + man3/getnetent.3.html + + + + + + getnetent_r + man3/getnetent_r.3.html + + + + + + getnetgrent + man3/getnetgrent.3.html + + + + + + getnetgrent_r + man3/getnetgrent_r.3.html + + + + + + get_nprocs + man3/get_nprocs.3.html + + + + + + get_nprocs_conf + man3/get_nprocs_conf.3.html + + + + + + getopt + man3/getopt.3.html + + + + + + getopt_long + man3/getopt_long.3.html + + + + + + getopt_long_only + man3/getopt_long_only.3.html + + + + + + getpass + man3/getpass.3.html + + + + + + get_phys_pages + man3/get_phys_pages.3.html + + + + + + getprotobyname + man3/getprotobyname.3.html + + + + + + getprotobyname_r + man3/getprotobyname_r.3.html + + + + + + getprotobynumber + man3/getprotobynumber.3.html + + + + + + getprotobynumber_r + man3/getprotobynumber_r.3.html + + + + + + getprotoent + man3/getprotoent.3.html + + + + + + getprotoent_r + man3/getprotoent_r.3.html + + + + + + getpt + man3/getpt.3.html + + + + + + getpw + man3/getpw.3.html + + + + + + getpwent + man3/getpwent.3.html + + + + + + getpwent_r + man3/getpwent_r.3.html + + + + + + getpwnam + man3/getpwnam.3.html + + + + + + getpwnam_r + man3/getpwnam_r.3.html + + + + + + getpwuid + man3/getpwuid.3.html + + + + + + getpwuid_r + man3/getpwuid_r.3.html + + + + + + getrpcbyname + man3/getrpcbyname.3.html + + + + + + getrpcbyname_r + man3/getrpcbyname_r.3.html + + + + + + getrpcbynumber + man3/getrpcbynumber.3.html + + + + + + getrpcbynumber_r + man3/getrpcbynumber_r.3.html + + + + + + getrpcent + man3/getrpcent.3.html + + + + + + getrpcent_r + man3/getrpcent_r.3.html + + + + + + getrpcport + man3/getrpcport.3.html + + + + + + gets + man3/gets.3.html + + + + + + getservbyname + man3/getservbyname.3.html + + + + + + getservbyname_r + man3/getservbyname_r.3.html + + + + + + getservbyport + man3/getservbyport.3.html + + + + + + getservbyport_r + man3/getservbyport_r.3.html + + + + + + getservent + man3/getservent.3.html + + + + + + getservent_r + man3/getservent_r.3.html + + + + + + getspent + man3/getspent.3.html + + + + + + getspent_r + man3/getspent_r.3.html + + + + + + getspnam + man3/getspnam.3.html + + + + + + getspnam_r + man3/getspnam_r.3.html + + + + + + getsubopt + man3/getsubopt.3.html + + + + + + getttyent + man3/getttyent.3.html + + + + + + getttynam + man3/getttynam.3.html + + + + + + getumask + man3/getumask.3.html + + + + + + getusershell + man3/getusershell.3.html + + + + + + getutent + man3/getutent.3.html + + + + + + getutent_r + man3/getutent_r.3.html + + + + + + getutid + man3/getutid.3.html + + + + + + getutid_r + man3/getutid_r.3.html + + + + + + getutline + man3/getutline.3.html + + + + + + getutline_r + man3/getutline_r.3.html + + + + + + getutmp + man3/getutmp.3.html + + + + + + getutmpx + man3/getutmpx.3.html + + + + + + getutxent + man3/getutxent.3.html + + + + + + getutxid + man3/getutxid.3.html + + + + + + getutxline + man3/getutxline.3.html + + + + + + getw + man3/getw.3.html + + + + + + getwc + man3/getwc.3.html + + + + + + getwchar + man3/getwchar.3.html + + + + + + getwchar_unlocked + man3/getwchar_unlocked.3.html + + + + + + getwc_unlocked + man3/getwc_unlocked.3.html + + + + + + getwd + man3/getwd.3.html + + + + + + glob + man3/glob.3.html + + + + + + globfree + man3/globfree.3.html + + + + + + gmtime + man3/gmtime.3.html + + + + + + gmtime_r + man3/gmtime_r.3.html + + + + + + gnu_dev_major + man3/gnu_dev_major.3.html + + + + + + gnu_dev_makedev + man3/gnu_dev_makedev.3.html + + + + + + gnu_dev_minor + man3/gnu_dev_minor.3.html + + + + + + gnu_get_libc_release + man3/gnu_get_libc_release.3.html + + + + + + gnu_get_libc_version + man3/gnu_get_libc_version.3.html + + + + + + grantpt + man3/grantpt.3.html + + + + + + group_member + man3/group_member.3.html + + + + + + gsignal + man3/gsignal.3.html + + + + + + hash + man3/hash.3.html + + + + + + hasmntopt + man3/hasmntopt.3.html + + + + + + hcreate + man3/hcreate.3.html + + + + + + hcreate_r + man3/hcreate_r.3.html + + + + + + hdestroy + man3/hdestroy.3.html + + + + + + hdestroy_r + man3/hdestroy_r.3.html + + + + + + h_errno + man3/h_errno.3.html + + + + + + herror + man3/herror.3.html + + + + + + hsearch + man3/hsearch.3.html + + + + + + hsearch_r + man3/hsearch_r.3.html + + + + + + hstrerror + man3/hstrerror.3.html + + + + + + htobe16 + man3/htobe16.3.html + + + + + + htobe32 + man3/htobe32.3.html + + + + + + htobe64 + man3/htobe64.3.html + + + + + + htole16 + man3/htole16.3.html + + + + + + htole32 + man3/htole32.3.html + + + + + + htole64 + man3/htole64.3.html + + + + + + htonl + man3/htonl.3.html + + + + + + htons + man3/htons.3.html + + + + + + HUGE_VAL + man3/HUGE_VAL.3.html + + + + + + HUGE_VALF + man3/HUGE_VALF.3.html + + + + + + HUGE_VALL + man3/HUGE_VALL.3.html + + + + + + hypot + man3/hypot.3.html + + + + + + hypotf + man3/hypotf.3.html + + + + + + hypotl + man3/hypotl.3.html + + + + + + iconv + man3/iconv.3.html + + + + + + iconv_close + man3/iconv_close.3.html + + + + + + iconv_open + man3/iconv_open.3.html + + + + + + if_freenameindex + man3/if_freenameindex.3.html + + + + + + if_indextoname + man3/if_indextoname.3.html + + + + + + if_nameindex + man3/if_nameindex.3.html + + + + + + if_nametoindex + man3/if_nametoindex.3.html + + + + + + ilogb + man3/ilogb.3.html + + + + + + ilogbf + man3/ilogbf.3.html + + + + + + ilogbl + man3/ilogbl.3.html + + + + + + imaxabs + man3/imaxabs.3.html + + + + + + imaxdiv + man3/imaxdiv.3.html + + + + + + index + man3/index.3.html + + + + + + inet + man3/inet.3.html + + + + + + inet_addr + man3/inet_addr.3.html + + + + + + inet_aton + man3/inet_aton.3.html + + + + + + inet_lnaof + man3/inet_lnaof.3.html + + + + + + inet_makeaddr + man3/inet_makeaddr.3.html + + + + + + inet_net_ntop + man3/inet_net_ntop.3.html + + + + + + inet_netof + man3/inet_netof.3.html + + + + + + inet_net_pton + man3/inet_net_pton.3.html + + + + + + inet_network + man3/inet_network.3.html + + + + + + inet_ntoa + man3/inet_ntoa.3.html + + + + + + inet_ntop + man3/inet_ntop.3.html + + + + + + inet_pton + man3/inet_pton.3.html + + + + + + INFINITY + man3/INFINITY.3.html + + + + + + initgroups + man3/initgroups.3.html + + + + + + initstate + man3/initstate.3.html + + + + + + initstate_r + man3/initstate_r.3.html + + + + + + innetgr + man3/innetgr.3.html + + + + + + insque + man3/insque.3.html + + + + + + intro + man3/intro.3.html + + + + + + iruserok + man3/iruserok.3.html + + + + + + iruserok_af + man3/iruserok_af.3.html + + + + + + isalnum + man3/isalnum.3.html + + + + + + isalnum_l + man3/isalnum_l.3.html + + + + + + isalpha + man3/isalpha.3.html + + + + + + isalpha_l + man3/isalpha_l.3.html + + + + + + isascii + man3/isascii.3.html + + + + + + isascii_l + man3/isascii_l.3.html + + + + + + isatty + man3/isatty.3.html + + + + + + isblank + man3/isblank.3.html + + + + + + isblank_l + man3/isblank_l.3.html + + + + + + iscntrl + man3/iscntrl.3.html + + + + + + iscntrl_l + man3/iscntrl_l.3.html + + + + + + isdigit + man3/isdigit.3.html + + + + + + isdigit_l + man3/isdigit_l.3.html + + + + + + isfdtype + man3/isfdtype.3.html + + + + + + isfinite + man3/isfinite.3.html + + + + + + isgraph + man3/isgraph.3.html + + + + + + isgraph_l + man3/isgraph_l.3.html + + + + + + isgreater + man3/isgreater.3.html + + + + + + isgreaterequal + man3/isgreaterequal.3.html + + + + + + isinf + man3/isinf.3.html + + + + + + isinff + man3/isinff.3.html + + + + + + isinfl + man3/isinfl.3.html + + + + + + isless + man3/isless.3.html + + + + + + islessequal + man3/islessequal.3.html + + + + + + islessgreater + man3/islessgreater.3.html + + + + + + islower + man3/islower.3.html + + + + + + islower_l + man3/islower_l.3.html + + + + + + isnan + man3/isnan.3.html + + + + + + isnanf + man3/isnanf.3.html + + + + + + isnanl + man3/isnanl.3.html + + + + + + isnormal + man3/isnormal.3.html + + + + + + isprint + man3/isprint.3.html + + + + + + isprint_l + man3/isprint_l.3.html + + + + + + ispunct + man3/ispunct.3.html + + + + + + ispunct_l + man3/ispunct_l.3.html + + + + + + isspace + man3/isspace.3.html + + + + + + isspace_l + man3/isspace_l.3.html + + + + + + isunordered + man3/isunordered.3.html + + + + + + isupper + man3/isupper.3.html + + + + + + isupper_l + man3/isupper_l.3.html + + + + + + iswalnum + man3/iswalnum.3.html + + + + + + iswalpha + man3/iswalpha.3.html + + + + + + iswblank + man3/iswblank.3.html + + + + + + iswcntrl + man3/iswcntrl.3.html + + + + + + iswctype + man3/iswctype.3.html + + + + + + iswdigit + man3/iswdigit.3.html + + + + + + iswgraph + man3/iswgraph.3.html + + + + + + iswlower + man3/iswlower.3.html + + + + + + iswprint + man3/iswprint.3.html + + + + + + iswpunct + man3/iswpunct.3.html + + + + + + iswspace + man3/iswspace.3.html + + + + + + iswupper + man3/iswupper.3.html + + + + + + iswxdigit + man3/iswxdigit.3.html + + + + + + isxdigit + man3/isxdigit.3.html + + + + + + isxdigit_l + man3/isxdigit_l.3.html + + + + + + j0 + man3/j0.3.html + + + + + + j0f + man3/j0f.3.html + + + + + + j0l + man3/j0l.3.html + + + + + + j1 + man3/j1.3.html + + + + + + j1f + man3/j1f.3.html + + + + + + j1l + man3/j1l.3.html + + + + + + jn + man3/jn.3.html + + + + + + jnf + man3/jnf.3.html + + + + + + jnl + man3/jnl.3.html + + + + + + jrand48 + man3/jrand48.3.html + + + + + + jrand48_r + man3/jrand48_r.3.html + + + + + + key_decryptsession + man3/key_decryptsession.3.html + + + + + + key_encryptsession + man3/key_encryptsession.3.html + + + + + + key_gendes + man3/key_gendes.3.html + + + + + + key_secretkey_is_set + man3/key_secretkey_is_set.3.html + + + + + + key_setsecret + man3/key_setsecret.3.html + + + + + + killpg + man3/killpg.3.html + + + + + + klogctl + man3/klogctl.3.html + + + + + + l64a + man3/l64a.3.html + + + + + + labs + man3/labs.3.html + + + + + + lckpwdf + man3/lckpwdf.3.html + + + + + + lcong48 + man3/lcong48.3.html + + + + + + lcong48_r + man3/lcong48_r.3.html + + + + + + ldexp + man3/ldexp.3.html + + + + + + ldexpf + man3/ldexpf.3.html + + + + + + ldexpl + man3/ldexpl.3.html + + + + + + ldiv + man3/ldiv.3.html + + + + + + le16toh + man3/le16toh.3.html + + + + + + le32toh + man3/le32toh.3.html + + + + + + le64toh + man3/le64toh.3.html + + + + + + lfind + man3/lfind.3.html + + + + + + lgamma + man3/lgamma.3.html + + + + + + lgammaf + man3/lgammaf.3.html + + + + + + lgammaf_r + man3/lgammaf_r.3.html + + + + + + lgammal + man3/lgammal.3.html + + + + + + lgammal_r + man3/lgammal_r.3.html + + + + + + lgamma_r + man3/lgamma_r.3.html + + + + + + lio_listio + man3/lio_listio.3.html + + + + + + LIST_EMPTY + man3/LIST_EMPTY.3.html + + + + + + LIST_ENTRY + man3/LIST_ENTRY.3.html + + + + + + LIST_FIRST + man3/LIST_FIRST.3.html + + + + + + LIST_FOREACH + man3/LIST_FOREACH.3.html + + + + + + LIST_HEAD + man3/LIST_HEAD.3.html + + + + + + LIST_HEAD_INITIALIZER + man3/LIST_HEAD_INITIALIZER.3.html + + + + + + LIST_INIT + man3/LIST_INIT.3.html + + + + + + LIST_INSERT_AFTER + man3/LIST_INSERT_AFTER.3.html + + + + + + LIST_INSERT_BEFORE + man3/LIST_INSERT_BEFORE.3.html + + + + + + LIST_INSERT_HEAD + man3/LIST_INSERT_HEAD.3.html + + + + + + LIST_NEXT + man3/LIST_NEXT.3.html + + + + + + LIST_REMOVE + man3/LIST_REMOVE.3.html + + + + + + llabs + man3/llabs.3.html + + + + + + lldiv + man3/lldiv.3.html + + + + + + llrint + man3/llrint.3.html + + + + + + llrintf + man3/llrintf.3.html + + + + + + llrintl + man3/llrintl.3.html + + + + + + llround + man3/llround.3.html + + + + + + llroundf + man3/llroundf.3.html + + + + + + llroundl + man3/llroundl.3.html + + + + + + localeconv + man3/localeconv.3.html + + + + + + localtime + man3/localtime.3.html + + + + + + localtime_r + man3/localtime_r.3.html + + + + + + lockf + man3/lockf.3.html + + + + + + log10 + man3/log10.3.html + + + + + + log10f + man3/log10f.3.html + + + + + + log10l + man3/log10l.3.html + + + + + + log1p + man3/log1p.3.html + + + + + + log1pf + man3/log1pf.3.html + + + + + + log1pl + man3/log1pl.3.html + + + + + + log2 + man3/log2.3.html + + + + + + log2f + man3/log2f.3.html + + + + + + log2l + man3/log2l.3.html + + + + + + log + man3/log.3.html + + + + + + logb + man3/logb.3.html + + + + + + logbf + man3/logbf.3.html + + + + + + logbl + man3/logbl.3.html + + + + + + logf + man3/logf.3.html + + + + + + login + man3/login.3.html + + + + + + login_tty + man3/login_tty.3.html + + + + + + logl + man3/logl.3.html + + + + + + logout + man3/logout.3.html + + + + + + logwtmp + man3/logwtmp.3.html + + + + + + longjmp + man3/longjmp.3.html + + + + + + lrand48 + man3/lrand48.3.html + + + + + + lrand48_r + man3/lrand48_r.3.html + + + + + + lrint + man3/lrint.3.html + + + + + + lrintf + man3/lrintf.3.html + + + + + + lrintl + man3/lrintl.3.html + + + + + + lround + man3/lround.3.html + + + + + + lroundf + man3/lroundf.3.html + + + + + + lroundl + man3/lroundl.3.html + + + + + + lsearch + man3/lsearch.3.html + + + + + + lseek64 + man3/lseek64.3.html + + + + + + lutimes + man3/lutimes.3.html + + + + + + major + man3/major.3.html + + + + + + makecontext + man3/makecontext.3.html + + + + + + makedev + man3/makedev.3.html + + + + + + mallinfo + man3/mallinfo.3.html + + + + + + malloc + man3/malloc.3.html + + + + + + malloc_get_state + man3/malloc_get_state.3.html + + + + + + __malloc_hook + man3/__malloc_hook.3.html + + + + + + malloc_hook + man3/malloc_hook.3.html + + + + + + malloc_info + man3/malloc_info.3.html + + + + + + __malloc_initialize_hook + man3/__malloc_initialize_hook.3.html + + + + + + malloc_set_state + man3/malloc_set_state.3.html + + + + + + malloc_stats + man3/malloc_stats.3.html + + + + + + malloc_trim + man3/malloc_trim.3.html + + + + + + malloc_usable_size + man3/malloc_usable_size.3.html + + + + + + mallopt + man3/mallopt.3.html + + + + + + matherr + man3/matherr.3.html + + + + + + MB_CUR_MAX + man3/MB_CUR_MAX.3.html + + + + + + mblen + man3/mblen.3.html + + + + + + MB_LEN_MAX + man3/MB_LEN_MAX.3.html + + + + + + mbrlen + man3/mbrlen.3.html + + + + + + mbrtowc + man3/mbrtowc.3.html + + + + + + mbsinit + man3/mbsinit.3.html + + + + + + mbsnrtowcs + man3/mbsnrtowcs.3.html + + + + + + mbsrtowcs + man3/mbsrtowcs.3.html + + + + + + mbstowcs + man3/mbstowcs.3.html + + + + + + mbtowc + man3/mbtowc.3.html + + + + + + mcheck + man3/mcheck.3.html + + + + + + mcheck_check_all + man3/mcheck_check_all.3.html + + + + + + mcheck_pedantic + man3/mcheck_pedantic.3.html + + + + + + memalign + man3/memalign.3.html + + + + + + __memalign_hook + man3/__memalign_hook.3.html + + + + + + memccpy + man3/memccpy.3.html + + + + + + memchr + man3/memchr.3.html + + + + + + memcmp + man3/memcmp.3.html + + + + + + memcpy + man3/memcpy.3.html + + + + + + memfrob + man3/memfrob.3.html + + + + + + memmem + man3/memmem.3.html + + + + + + memmove + man3/memmove.3.html + + + + + + mempcpy + man3/mempcpy.3.html + + + + + + memrchr + man3/memrchr.3.html + + + + + + memset + man3/memset.3.html + + + + + + minor + man3/minor.3.html + + + + + + mkdtemp + man3/mkdtemp.3.html + + + + + + mkfifo + man3/mkfifo.3.html + + + + + + mkfifoat + man3/mkfifoat.3.html + + + + + + mkostemp + man3/mkostemp.3.html + + + + + + mkostemps + man3/mkostemps.3.html + + + + + + mkstemp + man3/mkstemp.3.html + + + + + + mkstemps + man3/mkstemps.3.html + + + + + + mktemp + man3/mktemp.3.html + + + + + + mktime + man3/mktime.3.html + + + + + + mmap64 + man3/mmap64.3.html + + + + + + modf + man3/modf.3.html + + + + + + modff + man3/modff.3.html + + + + + + modfl + man3/modfl.3.html + + + + + + mpool + man3/mpool.3.html + + + + + + mprobe + man3/mprobe.3.html + + + + + + mq_close + man3/mq_close.3.html + + + + + + mq_getattr + man3/mq_getattr.3.html + + + + + + mq_notify + man3/mq_notify.3.html + + + + + + mq_open + man3/mq_open.3.html + + + + + + mq_receive + man3/mq_receive.3.html + + + + + + mq_send + man3/mq_send.3.html + + + + + + mq_setattr + man3/mq_setattr.3.html + + + + + + mq_timedreceive + man3/mq_timedreceive.3.html + + + + + + mq_timedsend + man3/mq_timedsend.3.html + + + + + + mq_unlink + man3/mq_unlink.3.html + + + + + + mrand48 + man3/mrand48.3.html + + + + + + mrand48_r + man3/mrand48_r.3.html + + + + + + mtrace + man3/mtrace.3.html + + + + + + muntrace + man3/muntrace.3.html + + + + + + nan + man3/nan.3.html + + + + + + NAN + man3/NAN.3.html + + + + + + nanf + man3/nanf.3.html + + + + + + nanl + man3/nanl.3.html + + + + + + nearbyint + man3/nearbyint.3.html + + + + + + nearbyintf + man3/nearbyintf.3.html + + + + + + nearbyintl + man3/nearbyintl.3.html + + + + + + netlink + man3/netlink.3.html + + + + + + newlocale + man3/newlocale.3.html + + + + + + nextafter + man3/nextafter.3.html + + + + + + nextafterf + man3/nextafterf.3.html + + + + + + nextafterl + man3/nextafterl.3.html + + + + + + nextdown + man3/nextdown.3.html + + + + + + nextdownf + man3/nextdownf.3.html + + + + + + nextdownl + man3/nextdownl.3.html + + + + + + nexttoward + man3/nexttoward.3.html + + + + + + nexttowardf + man3/nexttowardf.3.html + + + + + + nexttowardl + man3/nexttowardl.3.html + + + + + + nextup + man3/nextup.3.html + + + + + + nextupf + man3/nextupf.3.html + + + + + + nextupl + man3/nextupl.3.html + + + + + + nftw + man3/nftw.3.html + + + + + + nl_langinfo + man3/nl_langinfo.3.html + + + + + + nl_langinfo_l + man3/nl_langinfo_l.3.html + + + + + + nrand48 + man3/nrand48.3.html + + + + + + nrand48_r + man3/nrand48_r.3.html + + + + + + ntohl + man3/ntohl.3.html + + + + + + ntohs + man3/ntohs.3.html + + + + + + ntp_adjtime + man3/ntp_adjtime.3.html + + + + + + ntp_gettime + man3/ntp_gettime.3.html + + + + + + ntp_gettimex + man3/ntp_gettimex.3.html + + + + + + offsetof + man3/offsetof.3.html + + + + + + on_exit + man3/on_exit.3.html + + + + + + opendir + man3/opendir.3.html + + + + + + openlog + man3/openlog.3.html + + + + + + open_memstream + man3/open_memstream.3.html + + + + + + openpty + man3/openpty.3.html + + + + + + open_wmemstream + man3/open_wmemstream.3.html + + + + + + optarg + man3/optarg.3.html + + + + + + opterr + man3/opterr.3.html + + + + + + optind + man3/optind.3.html + + + + + + optopt + man3/optopt.3.html + + + + + + passwd2des + man3/passwd2des.3.html + + + + + + pathconf + man3/pathconf.3.html + + + + + + pclose + man3/pclose.3.html + + + + + + perror + man3/perror.3.html + + + + + + pmap_getmaps + man3/pmap_getmaps.3.html + + + + + + pmap_getport + man3/pmap_getport.3.html + + + + + + pmap_rmtcall + man3/pmap_rmtcall.3.html + + + + + + pmap_set + man3/pmap_set.3.html + + + + + + pmap_unset + man3/pmap_unset.3.html + + + + + + popen + man3/popen.3.html + + + + + + posix_fallocate + man3/posix_fallocate.3.html + + + + + + posix_madvise + man3/posix_madvise.3.html + + + + + + posix_memalign + man3/posix_memalign.3.html + + + + + + posix_openpt + man3/posix_openpt.3.html + + + + + + posix_spawn + man3/posix_spawn.3.html + + + + + + posix_spawnp + man3/posix_spawnp.3.html + + + + + + pow10 + man3/pow10.3.html + + + + + + pow10f + man3/pow10f.3.html + + + + + + pow10l + man3/pow10l.3.html + + + + + + pow + man3/pow.3.html + + + + + + powf + man3/powf.3.html + + + + + + powl + man3/powl.3.html + + + + + + __ppc_get_timebase + man3/__ppc_get_timebase.3.html + + + + + + __ppc_get_timebase_freq + man3/__ppc_get_timebase_freq.3.html + + + + + + __ppc_mdoio + man3/__ppc_mdoio.3.html + + + + + + __ppc_mdoom + man3/__ppc_mdoom.3.html + + + + + + __ppc_set_ppr_low + man3/__ppc_set_ppr_low.3.html + + + + + + __ppc_set_ppr_med + man3/__ppc_set_ppr_med.3.html + + + + + + __ppc_set_ppr_med_high + man3/__ppc_set_ppr_med_high.3.html + + + + + + __ppc_set_ppr_med_low + man3/__ppc_set_ppr_med_low.3.html + + + + + + __ppc_set_ppr_very_low + man3/__ppc_set_ppr_very_low.3.html + + + + + + __ppc_yield + man3/__ppc_yield.3.html + + + + + + printf + man3/printf.3.html + + + + + + profil + man3/profil.3.html + + + + + + program_invocation_name + man3/program_invocation_name.3.html + + + + + + program_invocation_short_name + man3/program_invocation_short_name.3.html + + + + + + psiginfo + man3/psiginfo.3.html + + + + + + psignal + man3/psignal.3.html + + + + + + pthread_atfork + man3/pthread_atfork.3.html + + + + + + pthread_attr_destroy + man3/pthread_attr_destroy.3.html + + + + + + pthread_attr_getaffinity_np + man3/pthread_attr_getaffinity_np.3.html + + + + + + pthread_attr_getdetachstate + man3/pthread_attr_getdetachstate.3.html + + + + + + pthread_attr_getguardsize + man3/pthread_attr_getguardsize.3.html + + + + + + pthread_attr_getinheritsched + man3/pthread_attr_getinheritsched.3.html + + + + + + pthread_attr_getschedparam + man3/pthread_attr_getschedparam.3.html + + + + + + pthread_attr_getschedpolicy + man3/pthread_attr_getschedpolicy.3.html + + + + + + pthread_attr_getscope + man3/pthread_attr_getscope.3.html + + + + + + pthread_attr_getstack + man3/pthread_attr_getstack.3.html + + + + + + pthread_attr_getstackaddr + man3/pthread_attr_getstackaddr.3.html + + + + + + pthread_attr_getstacksize + man3/pthread_attr_getstacksize.3.html + + + + + + pthread_attr_init + man3/pthread_attr_init.3.html + + + + + + pthread_attr_setaffinity_np + man3/pthread_attr_setaffinity_np.3.html + + + + + + pthread_attr_setdetachstate + man3/pthread_attr_setdetachstate.3.html + + + + + + pthread_attr_setguardsize + man3/pthread_attr_setguardsize.3.html + + + + + + pthread_attr_setinheritsched + man3/pthread_attr_setinheritsched.3.html + + + + + + pthread_attr_setschedparam + man3/pthread_attr_setschedparam.3.html + + + + + + pthread_attr_setschedpolicy + man3/pthread_attr_setschedpolicy.3.html + + + + + + pthread_attr_setscope + man3/pthread_attr_setscope.3.html + + + + + + pthread_attr_setstack + man3/pthread_attr_setstack.3.html + + + + + + pthread_attr_setstackaddr + man3/pthread_attr_setstackaddr.3.html + + + + + + pthread_attr_setstacksize + man3/pthread_attr_setstacksize.3.html + + + + + + pthread_cancel + man3/pthread_cancel.3.html + + + + + + pthread_cleanup_pop + man3/pthread_cleanup_pop.3.html + + + + + + pthread_cleanup_pop_restore_np + man3/pthread_cleanup_pop_restore_np.3.html + + + + + + pthread_cleanup_push + man3/pthread_cleanup_push.3.html + + + + + + pthread_cleanup_push_defer_np + man3/pthread_cleanup_push_defer_np.3.html + + + + + + pthread_create + man3/pthread_create.3.html + + + + + + pthread_detach + man3/pthread_detach.3.html + + + + + + pthread_equal + man3/pthread_equal.3.html + + + + + + pthread_exit + man3/pthread_exit.3.html + + + + + + pthread_getaffinity_np + man3/pthread_getaffinity_np.3.html + + + + + + pthread_getattr_default_np + man3/pthread_getattr_default_np.3.html + + + + + + pthread_getattr_np + man3/pthread_getattr_np.3.html + + + + + + pthread_getconcurrency + man3/pthread_getconcurrency.3.html + + + + + + pthread_getcpuclockid + man3/pthread_getcpuclockid.3.html + + + + + + pthread_getname_np + man3/pthread_getname_np.3.html + + + + + + pthread_getschedparam + man3/pthread_getschedparam.3.html + + + + + + pthread_join + man3/pthread_join.3.html + + + + + + pthread_kill + man3/pthread_kill.3.html + + + + + + pthread_kill_other_threads_np + man3/pthread_kill_other_threads_np.3.html + + + + + + pthread_mutexattr_destroy + man3/pthread_mutexattr_destroy.3.html + + + + + + pthread_mutexattr_getpshared + man3/pthread_mutexattr_getpshared.3.html + + + + + + pthread_mutexattr_getrobust + man3/pthread_mutexattr_getrobust.3.html + + + + + + pthread_mutexattr_getrobust_np + man3/pthread_mutexattr_getrobust_np.3.html + + + + + + pthread_mutexattr_init + man3/pthread_mutexattr_init.3.html + + + + + + pthread_mutexattr_setpshared + man3/pthread_mutexattr_setpshared.3.html + + + + + + pthread_mutexattr_setrobust + man3/pthread_mutexattr_setrobust.3.html + + + + + + pthread_mutexattr_setrobust_np + man3/pthread_mutexattr_setrobust_np.3.html + + + + + + pthread_mutex_consistent + man3/pthread_mutex_consistent.3.html + + + + + + pthread_mutex_consistent_np + man3/pthread_mutex_consistent_np.3.html + + + + + + pthread_rwlockattr_getkind_np + man3/pthread_rwlockattr_getkind_np.3.html + + + + + + pthread_rwlockattr_setkind_np + man3/pthread_rwlockattr_setkind_np.3.html + + + + + + pthread_self + man3/pthread_self.3.html + + + + + + pthread_setaffinity_np + man3/pthread_setaffinity_np.3.html + + + + + + pthread_setattr_default_np + man3/pthread_setattr_default_np.3.html + + + + + + pthread_setcancelstate + man3/pthread_setcancelstate.3.html + + + + + + pthread_setcanceltype + man3/pthread_setcanceltype.3.html + + + + + + pthread_setconcurrency + man3/pthread_setconcurrency.3.html + + + + + + pthread_setname_np + man3/pthread_setname_np.3.html + + + + + + pthread_setschedparam + man3/pthread_setschedparam.3.html + + + + + + pthread_setschedprio + man3/pthread_setschedprio.3.html + + + + + + pthread_sigmask + man3/pthread_sigmask.3.html + + + + + + pthread_sigqueue + man3/pthread_sigqueue.3.html + + + + + + pthread_spin_destroy + man3/pthread_spin_destroy.3.html + + + + + + pthread_spin_init + man3/pthread_spin_init.3.html + + + + + + pthread_spin_lock + man3/pthread_spin_lock.3.html + + + + + + pthread_spin_trylock + man3/pthread_spin_trylock.3.html + + + + + + pthread_spin_unlock + man3/pthread_spin_unlock.3.html + + + + + + pthread_testcancel + man3/pthread_testcancel.3.html + + + + + + pthread_timedjoin_np + man3/pthread_timedjoin_np.3.html + + + + + + pthread_tryjoin_np + man3/pthread_tryjoin_np.3.html + + + + + + pthread_yield + man3/pthread_yield.3.html + + + + + + ptsname + man3/ptsname.3.html + + + + + + ptsname_r + man3/ptsname_r.3.html + + + + + + putc + man3/putc.3.html + + + + + + putchar + man3/putchar.3.html + + + + + + putchar_unlocked + man3/putchar_unlocked.3.html + + + + + + putc_unlocked + man3/putc_unlocked.3.html + + + + + + putenv + man3/putenv.3.html + + + + + + putgrent + man3/putgrent.3.html + + + + + + putpwent + man3/putpwent.3.html + + + + + + puts + man3/puts.3.html + + + + + + putspent + man3/putspent.3.html + + + + + + pututline + man3/pututline.3.html + + + + + + pututxline + man3/pututxline.3.html + + + + + + putw + man3/putw.3.html + + + + + + putwc + man3/putwc.3.html + + + + + + putwchar + man3/putwchar.3.html + + + + + + putwchar_unlocked + man3/putwchar_unlocked.3.html + + + + + + putwc_unlocked + man3/putwc_unlocked.3.html + + + + + + pvalloc + man3/pvalloc.3.html + + + + + + qecvt + man3/qecvt.3.html + + + + + + qecvt_r + man3/qecvt_r.3.html + + + + + + qfcvt + man3/qfcvt.3.html + + + + + + qfcvt_r + man3/qfcvt_r.3.html + + + + + + qgcvt + man3/qgcvt.3.html + + + + + + qsort + man3/qsort.3.html + + + + + + qsort_r + man3/qsort_r.3.html + + + + + + queue + man3/queue.3.html + + + + + + raise + man3/raise.3.html + + + + + + rand + man3/rand.3.html + + + + + + random + man3/random.3.html + + + + + + random_r + man3/random_r.3.html + + + + + + rand_r + man3/rand_r.3.html + + + + + + rawmemchr + man3/rawmemchr.3.html + + + + + + rcmd + man3/rcmd.3.html + + + + + + rcmd_af + man3/rcmd_af.3.html + + + + + + readdir + man3/readdir.3.html + + + + + + readdir_r + man3/readdir_r.3.html + + + + + + realloc + man3/realloc.3.html + + + + + + reallocarray + man3/reallocarray.3.html + + + + + + __realloc_hook + man3/__realloc_hook.3.html + + + + + + realpath + man3/realpath.3.html + + + + + + recno + man3/recno.3.html + + + + + + re_comp + man3/re_comp.3.html + + + + + + re_exec + man3/re_exec.3.html + + + + + + regcomp + man3/regcomp.3.html + + + + + + regerror + man3/regerror.3.html + + + + + + regex + man3/regex.3.html + + + + + + regexec + man3/regexec.3.html + + + + + + regfree + man3/regfree.3.html + + + + + + registerrpc + man3/registerrpc.3.html + + + + + + remainder + man3/remainder.3.html + + + + + + remainderf + man3/remainderf.3.html + + + + + + remainderl + man3/remainderl.3.html + + + + + + remove + man3/remove.3.html + + + + + + remque + man3/remque.3.html + + + + + + remquo + man3/remquo.3.html + + + + + + remquof + man3/remquof.3.html + + + + + + remquol + man3/remquol.3.html + + + + + + res_init + man3/res_init.3.html + + + + + + res_mkquery + man3/res_mkquery.3.html + + + + + + res_ninit + man3/res_ninit.3.html + + + + + + res_nmkquery + man3/res_nmkquery.3.html + + + + + + res_nquery + man3/res_nquery.3.html + + + + + + res_nquerydomain + man3/res_nquerydomain.3.html + + + + + + res_nsearch + man3/res_nsearch.3.html + + + + + + res_nsend + man3/res_nsend.3.html + + + + + + resolver + man3/resolver.3.html + + + + + + res_query + man3/res_query.3.html + + + + + + res_querydomain + man3/res_querydomain.3.html + + + + + + res_search + man3/res_search.3.html + + + + + + res_send + man3/res_send.3.html + + + + + + rewind + man3/rewind.3.html + + + + + + rewinddir + man3/rewinddir.3.html + + + + + + rexec + man3/rexec.3.html + + + + + + rexec_af + man3/rexec_af.3.html + + + + + + rindex + man3/rindex.3.html + + + + + + rint + man3/rint.3.html + + + + + + rintf + man3/rintf.3.html + + + + + + rintl + man3/rintl.3.html + + + + + + round + man3/round.3.html + + + + + + roundf + man3/roundf.3.html + + + + + + roundl + man3/roundl.3.html + + + + + + rpc + man3/rpc.3.html + + + + + + rpmatch + man3/rpmatch.3.html + + + + + + rresvport + man3/rresvport.3.html + + + + + + rresvport_af + man3/rresvport_af.3.html + + + + + + rtime + man3/rtime.3.html + + + + + + rtnetlink + man3/rtnetlink.3.html + + + + + + ruserok + man3/ruserok.3.html + + + + + + ruserok_af + man3/ruserok_af.3.html + + + + + + scalb + man3/scalb.3.html + + + + + + scalbf + man3/scalbf.3.html + + + + + + scalbl + man3/scalbl.3.html + + + + + + scalbln + man3/scalbln.3.html + + + + + + scalblnf + man3/scalblnf.3.html + + + + + + scalblnl + man3/scalblnl.3.html + + + + + + scalbn + man3/scalbn.3.html + + + + + + scalbnf + man3/scalbnf.3.html + + + + + + scalbnl + man3/scalbnl.3.html + + + + + + scandir + man3/scandir.3.html + + + + + + scandirat + man3/scandirat.3.html + + + + + + scanf + man3/scanf.3.html + + + + + + sched_getcpu + man3/sched_getcpu.3.html + + + + + + secure_getenv + man3/secure_getenv.3.html + + + + + + seed48 + man3/seed48.3.html + + + + + + seed48_r + man3/seed48_r.3.html + + + + + + seekdir + man3/seekdir.3.html + + + + + + sem_close + man3/sem_close.3.html + + + + + + sem_destroy + man3/sem_destroy.3.html + + + + + + sem_getvalue + man3/sem_getvalue.3.html + + + + + + sem_init + man3/sem_init.3.html + + + + + + sem_open + man3/sem_open.3.html + + + + + + sem_post + man3/sem_post.3.html + + + + + + sem_timedwait + man3/sem_timedwait.3.html + + + + + + sem_trywait + man3/sem_trywait.3.html + + + + + + sem_unlink + man3/sem_unlink.3.html + + + + + + sem_wait + man3/sem_wait.3.html + + + + + + setaliasent + man3/setaliasent.3.html + + + + + + setbuf + man3/setbuf.3.html + + + + + + setbuffer + man3/setbuffer.3.html + + + + + + setcontext + man3/setcontext.3.html + + + + + + setenv + man3/setenv.3.html + + + + + + __setfpucw + man3/__setfpucw.3.html + + + + + + setfsent + man3/setfsent.3.html + + + + + + setgrent + man3/setgrent.3.html + + + + + + sethostent + man3/sethostent.3.html + + + + + + sethostid + man3/sethostid.3.html + + + + + + setjmp + man3/setjmp.3.html + + + + + + setkey + man3/setkey.3.html + + + + + + setkey_r + man3/setkey_r.3.html + + + + + + setlinebuf + man3/setlinebuf.3.html + + + + + + setlocale + man3/setlocale.3.html + + + + + + setlogmask + man3/setlogmask.3.html + + + + + + setmntent + man3/setmntent.3.html + + + + + + setnetent + man3/setnetent.3.html + + + + + + setnetgrent + man3/setnetgrent.3.html + + + + + + setprotoent + man3/setprotoent.3.html + + + + + + setpwent + man3/setpwent.3.html + + + + + + setrpcent + man3/setrpcent.3.html + + + + + + setservent + man3/setservent.3.html + + + + + + setspent + man3/setspent.3.html + + + + + + setstate + man3/setstate.3.html + + + + + + setstate_r + man3/setstate_r.3.html + + + + + + setttyent + man3/setttyent.3.html + + + + + + setusershell + man3/setusershell.3.html + + + + + + setutent + man3/setutent.3.html + + + + + + setutxent + man3/setutxent.3.html + + + + + + setvbuf + man3/setvbuf.3.html + + + + + + sgetspent + man3/sgetspent.3.html + + + + + + sgetspent_r + man3/sgetspent_r.3.html + + + + + + shm_open + man3/shm_open.3.html + + + + + + shm_unlink + man3/shm_unlink.3.html + + + + + + sigaddset + man3/sigaddset.3.html + + + + + + sigandset + man3/sigandset.3.html + + + + + + sigblock + man3/sigblock.3.html + + + + + + sigdelset + man3/sigdelset.3.html + + + + + + sigemptyset + man3/sigemptyset.3.html + + + + + + sigfillset + man3/sigfillset.3.html + + + + + + siggetmask + man3/siggetmask.3.html + + + + + + sighold + man3/sighold.3.html + + + + + + sigignore + man3/sigignore.3.html + + + + + + siginterrupt + man3/siginterrupt.3.html + + + + + + sigisemptyset + man3/sigisemptyset.3.html + + + + + + sigismember + man3/sigismember.3.html + + + + + + siglongjmp + man3/siglongjmp.3.html + + + + + + sigmask + man3/sigmask.3.html + + + + + + signbit + man3/signbit.3.html + + + + + + signgam + man3/signgam.3.html + + + + + + significand + man3/significand.3.html + + + + + + significandf + man3/significandf.3.html + + + + + + significandl + man3/significandl.3.html + + + + + + sigorset + man3/sigorset.3.html + + + + + + sigpause + man3/sigpause.3.html + + + + + + sigqueue + man3/sigqueue.3.html + + + + + + sigrelse + man3/sigrelse.3.html + + + + + + sigset + man3/sigset.3.html + + + + + + sigsetjmp + man3/sigsetjmp.3.html + + + + + + sigsetmask + man3/sigsetmask.3.html + + + + + + sigsetops + man3/sigsetops.3.html + + + + + + sigstack + man3/sigstack.3.html + + + + + + sigvec + man3/sigvec.3.html + + + + + + sigwait + man3/sigwait.3.html + + + + + + sin + man3/sin.3.html + + + + + + sincos + man3/sincos.3.html + + + + + + sincosf + man3/sincosf.3.html + + + + + + sincosl + man3/sincosl.3.html + + + + + + sinf + man3/sinf.3.html + + + + + + sinh + man3/sinh.3.html + + + + + + sinhf + man3/sinhf.3.html + + + + + + sinhl + man3/sinhl.3.html + + + + + + sinl + man3/sinl.3.html + + + + + + sleep + man3/sleep.3.html + + + + + + SLIST_EMPTY + man3/SLIST_EMPTY.3.html + + + + + + SLIST_ENTRY + man3/SLIST_ENTRY.3.html + + + + + + SLIST_FIRST + man3/SLIST_FIRST.3.html + + + + + + SLIST_FOREACH + man3/SLIST_FOREACH.3.html + + + + + + SLIST_HEAD + man3/SLIST_HEAD.3.html + + + + + + SLIST_HEAD_INITIALIZER + man3/SLIST_HEAD_INITIALIZER.3.html + + + + + + SLIST_INIT + man3/SLIST_INIT.3.html + + + + + + SLIST_INSERT_AFTER + man3/SLIST_INSERT_AFTER.3.html + + + + + + SLIST_INSERT_HEAD + man3/SLIST_INSERT_HEAD.3.html + + + + + + SLIST_NEXT + man3/SLIST_NEXT.3.html + + + + + + SLIST_REMOVE + man3/SLIST_REMOVE.3.html + + + + + + SLIST_REMOVE_HEAD + man3/SLIST_REMOVE_HEAD.3.html + + + + + + snprintf + man3/snprintf.3.html + + + + + + sockatmark + man3/sockatmark.3.html + + + + + + sprintf + man3/sprintf.3.html + + + + + + sqrt + man3/sqrt.3.html + + + + + + sqrtf + man3/sqrtf.3.html + + + + + + sqrtl + man3/sqrtl.3.html + + + + + + srand + man3/srand.3.html + + + + + + srand48 + man3/srand48.3.html + + + + + + srand48_r + man3/srand48_r.3.html + + + + + + srandom + man3/srandom.3.html + + + + + + srandom_r + man3/srandom_r.3.html + + + + + + sscanf + man3/sscanf.3.html + + + + + + ssignal + man3/ssignal.3.html + + + + + + STAILQ_CONCAT + man3/STAILQ_CONCAT.3.html + + + + + + STAILQ_EMPTY + man3/STAILQ_EMPTY.3.html + + + + + + STAILQ_ENTRY + man3/STAILQ_ENTRY.3.html + + + + + + STAILQ_FIRST + man3/STAILQ_FIRST.3.html + + + + + + STAILQ_FOREACH + man3/STAILQ_FOREACH.3.html + + + + + + STAILQ_HEAD + man3/STAILQ_HEAD.3.html + + + + + + STAILQ_HEAD_INITIALIZER + man3/STAILQ_HEAD_INITIALIZER.3.html + + + + + + STAILQ_INIT + man3/STAILQ_INIT.3.html + + + + + + STAILQ_INSERT_AFTER + man3/STAILQ_INSERT_AFTER.3.html + + + + + + STAILQ_INSERT_HEAD + man3/STAILQ_INSERT_HEAD.3.html + + + + + + STAILQ_INSERT_TAIL + man3/STAILQ_INSERT_TAIL.3.html + + + + + + STAILQ_NEXT + man3/STAILQ_NEXT.3.html + + + + + + STAILQ_REMOVE + man3/STAILQ_REMOVE.3.html + + + + + + STAILQ_REMOVE_HEAD + man3/STAILQ_REMOVE_HEAD.3.html + + + + + + statvfs + man3/statvfs.3.html + + + + + + stdarg + man3/stdarg.3.html + + + + + + stderr + man3/stderr.3.html + + + + + + stdin + man3/stdin.3.html + + + + + + stdio + man3/stdio.3.html + + + + + + stdio_ext + man3/stdio_ext.3.html + + + + + + stdout + man3/stdout.3.html + + + + + + stpcpy + man3/stpcpy.3.html + + + + + + stpncpy + man3/stpncpy.3.html + + + + + + strcasecmp + man3/strcasecmp.3.html + + + + + + strcasestr + man3/strcasestr.3.html + + + + + + strcat + man3/strcat.3.html + + + + + + strchr + man3/strchr.3.html + + + + + + strchrnul + man3/strchrnul.3.html + + + + + + strcmp + man3/strcmp.3.html + + + + + + strcoll + man3/strcoll.3.html + + + + + + strcpy + man3/strcpy.3.html + + + + + + strcspn + man3/strcspn.3.html + + + + + + strdup + man3/strdup.3.html + + + + + + strdupa + man3/strdupa.3.html + + + + + + strerror + man3/strerror.3.html + + + + + + strerror_l + man3/strerror_l.3.html + + + + + + strerror_r + man3/strerror_r.3.html + + + + + + strfmon + man3/strfmon.3.html + + + + + + strfmon_l + man3/strfmon_l.3.html + + + + + + strfromd + man3/strfromd.3.html + + + + + + strfromf + man3/strfromf.3.html + + + + + + strfroml + man3/strfroml.3.html + + + + + + strfry + man3/strfry.3.html + + + + + + strftime + man3/strftime.3.html + + + + + + string + man3/string.3.html + + + + + + strlen + man3/strlen.3.html + + + + + + strncasecmp + man3/strncasecmp.3.html + + + + + + strncat + man3/strncat.3.html + + + + + + strncmp + man3/strncmp.3.html + + + + + + strncpy + man3/strncpy.3.html + + + + + + strndup + man3/strndup.3.html + + + + + + strndupa + man3/strndupa.3.html + + + + + + strnlen + man3/strnlen.3.html + + + + + + strpbrk + man3/strpbrk.3.html + + + + + + strptime + man3/strptime.3.html + + + + + + strrchr + man3/strrchr.3.html + + + + + + strsep + man3/strsep.3.html + + + + + + strsignal + man3/strsignal.3.html + + + + + + strspn + man3/strspn.3.html + + + + + + strstr + man3/strstr.3.html + + + + + + strtod + man3/strtod.3.html + + + + + + strtof + man3/strtof.3.html + + + + + + strtoimax + man3/strtoimax.3.html + + + + + + strtok + man3/strtok.3.html + + + + + + strtok_r + man3/strtok_r.3.html + + + + + + strtol + man3/strtol.3.html + + + + + + strtold + man3/strtold.3.html + + + + + + strtoll + man3/strtoll.3.html + + + + + + strtoq + man3/strtoq.3.html + + + + + + strtoul + man3/strtoul.3.html + + + + + + strtoull + man3/strtoull.3.html + + + + + + strtoumax + man3/strtoumax.3.html + + + + + + strtouq + man3/strtouq.3.html + + + + + + strverscmp + man3/strverscmp.3.html + + + + + + strxfrm + man3/strxfrm.3.html + + + + + + svc_destroy + man3/svc_destroy.3.html + + + + + + svcerr_auth + man3/svcerr_auth.3.html + + + + + + svcerr_decode + man3/svcerr_decode.3.html + + + + + + svcerr_noproc + man3/svcerr_noproc.3.html + + + + + + svcerr_noprog + man3/svcerr_noprog.3.html + + + + + + svcerr_progvers + man3/svcerr_progvers.3.html + + + + + + svcerr_systemerr + man3/svcerr_systemerr.3.html + + + + + + svcerr_weakauth + man3/svcerr_weakauth.3.html + + + + + + svcfd_create + man3/svcfd_create.3.html + + + + + + svc_freeargs + man3/svc_freeargs.3.html + + + + + + svc_getargs + man3/svc_getargs.3.html + + + + + + svc_getcaller + man3/svc_getcaller.3.html + + + + + + svc_getreq + man3/svc_getreq.3.html + + + + + + svc_getreqset + man3/svc_getreqset.3.html + + + + + + svcraw_create + man3/svcraw_create.3.html + + + + + + svc_register + man3/svc_register.3.html + + + + + + svc_run + man3/svc_run.3.html + + + + + + svc_sendreply + man3/svc_sendreply.3.html + + + + + + svctcp_create + man3/svctcp_create.3.html + + + + + + svcudp_bufcreate + man3/svcudp_bufcreate.3.html + + + + + + svcudp_create + man3/svcudp_create.3.html + + + + + + svc_unregister + man3/svc_unregister.3.html + + + + + + swab + man3/swab.3.html + + + + + + swapcontext + man3/swapcontext.3.html + + + + + + swprintf + man3/swprintf.3.html + + + + + + sysconf + man3/sysconf.3.html + + + + + + sys_errlist + man3/sys_errlist.3.html + + + + + + syslog + man3/syslog.3.html + + + + + + sys_nerr + man3/sys_nerr.3.html + + + + + + system + man3/system.3.html + + + + + + sysv_signal + man3/sysv_signal.3.html + + + + + + TAILQ_CONCAT + man3/TAILQ_CONCAT.3.html + + + + + + TAILQ_EMPTY + man3/TAILQ_EMPTY.3.html + + + + + + TAILQ_ENTRY + man3/TAILQ_ENTRY.3.html + + + + + + TAILQ_FIRST + man3/TAILQ_FIRST.3.html + + + + + + TAILQ_FOREACH + man3/TAILQ_FOREACH.3.html + + + + + + TAILQ_FOREACH_REVERSE + man3/TAILQ_FOREACH_REVERSE.3.html + + + + + + TAILQ_HEAD + man3/TAILQ_HEAD.3.html + + + + + + TAILQ_HEAD_INITIALIZER + man3/TAILQ_HEAD_INITIALIZER.3.html + + + + + + TAILQ_INIT + man3/TAILQ_INIT.3.html + + + + + + TAILQ_INSERT_AFTER + man3/TAILQ_INSERT_AFTER.3.html + + + + + + TAILQ_INSERT_BEFORE + man3/TAILQ_INSERT_BEFORE.3.html + + + + + + TAILQ_INSERT_HEAD + man3/TAILQ_INSERT_HEAD.3.html + + + + + + TAILQ_INSERT_TAIL + man3/TAILQ_INSERT_TAIL.3.html + + + + + + TAILQ_LAST + man3/TAILQ_LAST.3.html + + + + + + TAILQ_NEXT + man3/TAILQ_NEXT.3.html + + + + + + TAILQ_PREV + man3/TAILQ_PREV.3.html + + + + + + TAILQ_REMOVE + man3/TAILQ_REMOVE.3.html + + + + + + TAILQ_SWAP + man3/TAILQ_SWAP.3.html + + + + + + tan + man3/tan.3.html + + + + + + tanf + man3/tanf.3.html + + + + + + tanh + man3/tanh.3.html + + + + + + tanhf + man3/tanhf.3.html + + + + + + tanhl + man3/tanhl.3.html + + + + + + tanl + man3/tanl.3.html + + + + + + tcdrain + man3/tcdrain.3.html + + + + + + tcflow + man3/tcflow.3.html + + + + + + tcflush + man3/tcflush.3.html + + + + + + tcgetattr + man3/tcgetattr.3.html + + + + + + tcgetpgrp + man3/tcgetpgrp.3.html + + + + + + tcgetsid + man3/tcgetsid.3.html + + + + + + tcsendbreak + man3/tcsendbreak.3.html + + + + + + tcsetattr + man3/tcsetattr.3.html + + + + + + tcsetpgrp + man3/tcsetpgrp.3.html + + + + + + tdelete + man3/tdelete.3.html + + + + + + tdestroy + man3/tdestroy.3.html + + + + + + telldir + man3/telldir.3.html + + + + + + tempnam + man3/tempnam.3.html + + + + + + termios + man3/termios.3.html + + + + + + tfind + man3/tfind.3.html + + + + + + tgamma + man3/tgamma.3.html + + + + + + tgammaf + man3/tgammaf.3.html + + + + + + tgammal + man3/tgammal.3.html + + + + + + timegm + man3/timegm.3.html + + + + + + timelocal + man3/timelocal.3.html + + + + + + timeradd + man3/timeradd.3.html + + + + + + timerclear + man3/timerclear.3.html + + + + + + timercmp + man3/timercmp.3.html + + + + + + timerisset + man3/timerisset.3.html + + + + + + timersub + man3/timersub.3.html + + + + + + timezone + man3/timezone.3.html + + + + + + tmpfile + man3/tmpfile.3.html + + + + + + tmpnam + man3/tmpnam.3.html + + + + + + tmpnam_r + man3/tmpnam_r.3.html + + + + + + toascii + man3/toascii.3.html + + + + + + tolower + man3/tolower.3.html + + + + + + tolower_l + man3/tolower_l.3.html + + + + + + toupper + man3/toupper.3.html + + + + + + toupper_l + man3/toupper_l.3.html + + + + + + towctrans + man3/towctrans.3.html + + + + + + towlower + man3/towlower.3.html + + + + + + towlower_l + man3/towlower_l.3.html + + + + + + towupper + man3/towupper.3.html + + + + + + towupper_l + man3/towupper_l.3.html + + + + + + trunc + man3/trunc.3.html + + + + + + truncf + man3/truncf.3.html + + + + + + truncl + man3/truncl.3.html + + + + + + tsearch + man3/tsearch.3.html + + + + + + ttyname + man3/ttyname.3.html + + + + + + ttyname_r + man3/ttyname_r.3.html + + + + + + ttyslot + man3/ttyslot.3.html + + + + + + twalk + man3/twalk.3.html + + + + + + tzname + man3/tzname.3.html + + + + + + tzset + man3/tzset.3.html + + + + + + ualarm + man3/ualarm.3.html + + + + + + ulckpwdf + man3/ulckpwdf.3.html + + + + + + ulimit + man3/ulimit.3.html + + + + + + undocumented + man3/undocumented.3.html + + + + + + ungetc + man3/ungetc.3.html + + + + + + ungetwc + man3/ungetwc.3.html + + + + + + unlocked_stdio + man3/unlocked_stdio.3.html + + + + + + unlockpt + man3/unlockpt.3.html + + + + + + unsetenv + man3/unsetenv.3.html + + + + + + updwtmp + man3/updwtmp.3.html + + + + + + updwtmpx + man3/updwtmpx.3.html + + + + + + uselocale + man3/uselocale.3.html + + + + + + usleep + man3/usleep.3.html + + + + + + utmpname + man3/utmpname.3.html + + + + + + utmpxname + man3/utmpxname.3.html + + + + + + va_arg + man3/va_arg.3.html + + + + + + va_copy + man3/va_copy.3.html + + + + + + va_end + man3/va_end.3.html + + + + + + valloc + man3/valloc.3.html + + + + + + vasprintf + man3/vasprintf.3.html + + + + + + va_start + man3/va_start.3.html + + + + + + vdprintf + man3/vdprintf.3.html + + + + + + verr + man3/verr.3.html + + + + + + verrx + man3/verrx.3.html + + + + + + versionsort + man3/versionsort.3.html + + + + + + vfprintf + man3/vfprintf.3.html + + + + + + vfscanf + man3/vfscanf.3.html + + + + + + vfwprintf + man3/vfwprintf.3.html + + + + + + vlimit + man3/vlimit.3.html + + + + + + vprintf + man3/vprintf.3.html + + + + + + vscanf + man3/vscanf.3.html + + + + + + vsnprintf + man3/vsnprintf.3.html + + + + + + vsprintf + man3/vsprintf.3.html + + + + + + vsscanf + man3/vsscanf.3.html + + + + + + vswprintf + man3/vswprintf.3.html + + + + + + vsyslog + man3/vsyslog.3.html + + + + + + vtimes + man3/vtimes.3.html + + + + + + vwarn + man3/vwarn.3.html + + + + + + vwarnx + man3/vwarnx.3.html + + + + + + vwprintf + man3/vwprintf.3.html + + + + + + warn + man3/warn.3.html + + + + + + warnx + man3/warnx.3.html + + + + + + wcpcpy + man3/wcpcpy.3.html + + + + + + wcpncpy + man3/wcpncpy.3.html + + + + + + wcrtomb + man3/wcrtomb.3.html + + + + + + wcscasecmp + man3/wcscasecmp.3.html + + + + + + wcscat + man3/wcscat.3.html + + + + + + wcschr + man3/wcschr.3.html + + + + + + wcscmp + man3/wcscmp.3.html + + + + + + wcscpy + man3/wcscpy.3.html + + + + + + wcscspn + man3/wcscspn.3.html + + + + + + wcsdup + man3/wcsdup.3.html + + + + + + wcslen + man3/wcslen.3.html + + + + + + wcsncasecmp + man3/wcsncasecmp.3.html + + + + + + wcsncat + man3/wcsncat.3.html + + + + + + wcsncmp + man3/wcsncmp.3.html + + + + + + wcsncpy + man3/wcsncpy.3.html + + + + + + wcsnlen + man3/wcsnlen.3.html + + + + + + wcsnrtombs + man3/wcsnrtombs.3.html + + + + + + wcspbrk + man3/wcspbrk.3.html + + + + + + wcsrchr + man3/wcsrchr.3.html + + + + + + wcsrtombs + man3/wcsrtombs.3.html + + + + + + wcsspn + man3/wcsspn.3.html + + + + + + wcsstr + man3/wcsstr.3.html + + + + + + wcstoimax + man3/wcstoimax.3.html + + + + + + wcstok + man3/wcstok.3.html + + + + + + wcstombs + man3/wcstombs.3.html + + + + + + wcstoumax + man3/wcstoumax.3.html + + + + + + wcswidth + man3/wcswidth.3.html + + + + + + wctob + man3/wctob.3.html + + + + + + wctomb + man3/wctomb.3.html + + + + + + wctrans + man3/wctrans.3.html + + + + + + wctype + man3/wctype.3.html + + + + + + wcwidth + man3/wcwidth.3.html + + + + + + wmemchr + man3/wmemchr.3.html + + + + + + wmemcmp + man3/wmemcmp.3.html + + + + + + wmemcpy + man3/wmemcpy.3.html + + + + + + wmemmove + man3/wmemmove.3.html + + + + + + wmempcpy + man3/wmempcpy.3.html + + + + + + wmemset + man3/wmemset.3.html + + + + + + wordexp + man3/wordexp.3.html + + + + + + wordfree + man3/wordfree.3.html + + + + + + wprintf + man3/wprintf.3.html + + + + + + xcrypt + man3/xcrypt.3.html + + + + + + xdecrypt + man3/xdecrypt.3.html + + + + + + xdr + man3/xdr.3.html + + + + + + xdr_accepted_reply + man3/xdr_accepted_reply.3.html + + + + + + xdr_array + man3/xdr_array.3.html + + + + + + xdr_authunix_parms + man3/xdr_authunix_parms.3.html + + + + + + xdr_bool + man3/xdr_bool.3.html + + + + + + xdr_bytes + man3/xdr_bytes.3.html + + + + + + xdr_callhdr + man3/xdr_callhdr.3.html + + + + + + xdr_callmsg + man3/xdr_callmsg.3.html + + + + + + xdr_char + man3/xdr_char.3.html + + + + + + xdr_destroy + man3/xdr_destroy.3.html + + + + + + xdr_double + man3/xdr_double.3.html + + + + + + xdr_enum + man3/xdr_enum.3.html + + + + + + xdr_float + man3/xdr_float.3.html + + + + + + xdr_free + man3/xdr_free.3.html + + + + + + xdr_getpos + man3/xdr_getpos.3.html + + + + + + xdr_inline + man3/xdr_inline.3.html + + + + + + xdr_int + man3/xdr_int.3.html + + + + + + xdr_long + man3/xdr_long.3.html + + + + + + xdrmem_create + man3/xdrmem_create.3.html + + + + + + xdr_opaque + man3/xdr_opaque.3.html + + + + + + xdr_opaque_auth + man3/xdr_opaque_auth.3.html + + + + + + xdr_pmap + man3/xdr_pmap.3.html + + + + + + xdr_pmaplist + man3/xdr_pmaplist.3.html + + + + + + xdr_pointer + man3/xdr_pointer.3.html + + + + + + xdrrec_create + man3/xdrrec_create.3.html + + + + + + xdrrec_endofrecord + man3/xdrrec_endofrecord.3.html + + + + + + xdrrec_eof + man3/xdrrec_eof.3.html + + + + + + xdrrec_skiprecord + man3/xdrrec_skiprecord.3.html + + + + + + xdr_reference + man3/xdr_reference.3.html + + + + + + xdr_rejected_reply + man3/xdr_rejected_reply.3.html + + + + + + xdr_replymsg + man3/xdr_replymsg.3.html + + + + + + xdr_setpos + man3/xdr_setpos.3.html + + + + + + xdr_short + man3/xdr_short.3.html + + + + + + xdrstdio_create + man3/xdrstdio_create.3.html + + + + + + xdr_string + man3/xdr_string.3.html + + + + + + xdr_u_char + man3/xdr_u_char.3.html + + + + + + xdr_u_int + man3/xdr_u_int.3.html + + + + + + xdr_u_long + man3/xdr_u_long.3.html + + + + + + xdr_union + man3/xdr_union.3.html + + + + + + xdr_u_short + man3/xdr_u_short.3.html + + + + + + xdr_vector + man3/xdr_vector.3.html + + + + + + xdr_void + man3/xdr_void.3.html + + + + + + xdr_wrapstring + man3/xdr_wrapstring.3.html + + + + + + xencrypt + man3/xencrypt.3.html + + + + + + xprt_register + man3/xprt_register.3.html + + + + + + xprt_unregister + man3/xprt_unregister.3.html + + + + + + y0 + man3/y0.3.html + + + + + + y0f + man3/y0f.3.html + + + + + + y0l + man3/y0l.3.html + + + + + + y1 + man3/y1.3.html + + + + + + y1f + man3/y1f.3.html + + + + + + y1l + man3/y1l.3.html + + + + + + yn + man3/yn.3.html + + + + + + ynf + man3/ynf.3.html + + + + + + ynl + man3/ynl.3.html + + + + +man4 + + + cciss + man4/cciss.4.html + + + + + + console_codes + man4/console_codes.4.html + + + + + + console_ioctl + man4/console_ioctl.4.html + + + + + + cpuid + man4/cpuid.4.html + + + + + + dsp56k + man4/dsp56k.4.html + + + + + + fd + man4/fd.4.html + + + + + + full + man4/full.4.html + + + + + + fuse + man4/fuse.4.html + + + + + + hd + man4/hd.4.html + + + + + + hpsa + man4/hpsa.4.html + + + + + + initrd + man4/initrd.4.html + + + + + + intro + man4/intro.4.html + + + + + + kmem + man4/kmem.4.html + + + + + + lirc + man4/lirc.4.html + + + + + + loop + man4/loop.4.html + + + + + + loop-control + man4/loop-control.4.html + + + + + + lp + man4/lp.4.html + + + + + + mem + man4/mem.4.html + + + + + + mouse + man4/mouse.4.html + + + + + + msr + man4/msr.4.html + + + + + + null + man4/null.4.html + + + + + + port + man4/port.4.html + + + + + + ptmx + man4/ptmx.4.html + + + + + + pts + man4/pts.4.html + + + + + + ram + man4/ram.4.html + + + + + + random + man4/random.4.html + + + + + + rtc + man4/rtc.4.html + + + + + + sd + man4/sd.4.html + + + + + + sk98lin + man4/sk98lin.4.html + + + + + + smartpqi + man4/smartpqi.4.html + + + + + + st + man4/st.4.html + + + + + + tty + man4/tty.4.html + + + + + + tty_ioctl + man4/tty_ioctl.4.html + + + + + + ttyS + man4/ttyS.4.html + + + + + + urandom + man4/urandom.4.html + + + + + + vcs + man4/vcs.4.html + + + + + + vcsa + man4/vcsa.4.html + + + + + + veth + man4/veth.4.html + + + + + + wavelan + man4/wavelan.4.html + + + + + + zero + man4/zero.4.html + + + + +man5 + + + acct + man5/acct.5.html + + + + + + attr + man5/attr.5.html + + + + + + charmap + man5/charmap.5.html + + + + + + core + man5/core.5.html + + + + + + dir_colors + man5/dir_colors.5.html + + + + + + elf + man5/elf.5.html + + + + + + filesystems + man5/filesystems.5.html + + + + + + fs + man5/fs.5.html + + + + + + ftpusers + man5/ftpusers.5.html + + + + + + gai.conf + man5/gai.conf.5.html + + + + + + group + man5/group.5.html + + + + + + host.conf + man5/host.conf.5.html + + + + + + hosts + man5/hosts.5.html + + + + + + hosts.equiv + man5/hosts.equiv.5.html + + + + + + intro + man5/intro.5.html + + + + + + ipc + man5/ipc.5.html + + + + + + issue + man5/issue.5.html + + + + + + locale + man5/locale.5.html + + + + + + motd + man5/motd.5.html + + + + + + networks + man5/networks.5.html + + + + + + nologin + man5/nologin.5.html + + + + + + nscd.conf + man5/nscd.conf.5.html + + + + + + nss + man5/nss.5.html + + + + + + nsswitch.conf + man5/nsswitch.conf.5.html + + + + + + numa_maps + man5/numa_maps.5.html + + + + + + passwd + man5/passwd.5.html + + + + + + proc + man5/proc.5.html + + + + + + procfs + man5/procfs.5.html + + + + + + protocols + man5/protocols.5.html + + + + + + repertoiremap + man5/repertoiremap.5.html + + + + + + resolv.conf + man5/resolv.conf.5.html + + + + + + resolver + man5/resolver.5.html + + + + + + rpc + man5/rpc.5.html + + + + + + securetty + man5/securetty.5.html + + + + + + services + man5/services.5.html + + + + + + shells + man5/shells.5.html + + + + + + slabinfo + man5/slabinfo.5.html + + + + + + sysfs + man5/sysfs.5.html + + + + + + termcap + man5/termcap.5.html + + + + + + tmpfs + man5/tmpfs.5.html + + + + + + ttytype + man5/ttytype.5.html + + + + + + tzfile + man5/tzfile.5.html + + + + + + utmp + man5/utmp.5.html + + + + + + utmpx + man5/utmpx.5.html + + + + + + wtmp + man5/wtmp.5.html + + + + +man6 + + + intro + man6/intro.6.html + + + + +man7 + + + address_families + man7/address_families.7.html + + + + + + aio + man7/aio.7.html + + + + + + armscii-8 + man7/armscii-8.7.html + + + + + + arp + man7/arp.7.html + + + + + + ascii + man7/ascii.7.html + + + + + + attributes + man7/attributes.7.html + + + + + + boot + man7/boot.7.html + + + + + + bootparam + man7/bootparam.7.html + + + + + + bpf-helpers + man7/bpf-helpers.7.html + + + + + + capabilities + man7/capabilities.7.html + + + + + + cgroup_namespaces + man7/cgroup_namespaces.7.html + + + + + + cgroups + man7/cgroups.7.html + + + + + + charsets + man7/charsets.7.html + + + + + + complex + man7/complex.7.html + + + + + + cp1251 + man7/cp1251.7.html + + + + + + cp1252 + man7/cp1252.7.html + + + + + + cpuset + man7/cpuset.7.html + + + + + + credentials + man7/credentials.7.html + + + + + + ddp + man7/ddp.7.html + + + + + + environ + man7/environ.7.html + + + + + + epoll + man7/epoll.7.html + + + + + + fanotify + man7/fanotify.7.html + + + + + + feature_test_macros + man7/feature_test_macros.7.html + + + + + + fifo + man7/fifo.7.html + + + + + + futex + man7/futex.7.html + + + + + + glibc + man7/glibc.7.html + + + + + + glob + man7/glob.7.html + + + + + + hier + man7/hier.7.html + + + + + + hostname + man7/hostname.7.html + + + + + + icmp + man7/icmp.7.html + + + + + + inode + man7/inode.7.html + + + + + + inotify + man7/inotify.7.html + + + + + + intro + man7/intro.7.html + + + + + + ip + man7/ip.7.html + + + + + + ipv6 + man7/ipv6.7.html + + + + + + iso-8859-10 + man7/iso-8859-10.7.html + + + + + + iso_8859-10 + man7/iso_8859-10.7.html + + + + + + iso_8859_10 + man7/iso_8859_10.7.html + + + + + + iso-8859-11 + man7/iso-8859-11.7.html + + + + + + iso_8859-11 + man7/iso_8859-11.7.html + + + + + + iso_8859_11 + man7/iso_8859_11.7.html + + + + + + iso-8859-13 + man7/iso-8859-13.7.html + + + + + + iso_8859-13 + man7/iso_8859-13.7.html + + + + + + iso_8859_13 + man7/iso_8859_13.7.html + + + + + + iso-8859-14 + man7/iso-8859-14.7.html + + + + + + iso_8859-14 + man7/iso_8859-14.7.html + + + + + + iso_8859_14 + man7/iso_8859_14.7.html + + + + + + iso-8859-15 + man7/iso-8859-15.7.html + + + + + + iso_8859-15 + man7/iso_8859-15.7.html + + + + + + iso_8859_15 + man7/iso_8859_15.7.html + + + + + + iso-8859-16 + man7/iso-8859-16.7.html + + + + + + iso_8859-16 + man7/iso_8859-16.7.html + + + + + + iso_8859_16 + man7/iso_8859_16.7.html + + + + + + iso-8859-1 + man7/iso-8859-1.7.html + + + + + + iso_8859-1 + man7/iso_8859-1.7.html + + + + + + iso_8859_1 + man7/iso_8859_1.7.html + + + + + + iso-8859-2 + man7/iso-8859-2.7.html + + + + + + iso_8859-2 + man7/iso_8859-2.7.html + + + + + + iso_8859_2 + man7/iso_8859_2.7.html + + + + + + iso-8859-3 + man7/iso-8859-3.7.html + + + + + + iso_8859-3 + man7/iso_8859-3.7.html + + + + + + iso_8859_3 + man7/iso_8859_3.7.html + + + + + + iso-8859-4 + man7/iso-8859-4.7.html + + + + + + iso_8859-4 + man7/iso_8859-4.7.html + + + + + + iso_8859_4 + man7/iso_8859_4.7.html + + + + + + iso-8859-5 + man7/iso-8859-5.7.html + + + + + + iso_8859-5 + man7/iso_8859-5.7.html + + + + + + iso_8859_5 + man7/iso_8859_5.7.html + + + + + + iso-8859-6 + man7/iso-8859-6.7.html + + + + + + iso_8859-6 + man7/iso_8859-6.7.html + + + + + + iso_8859_6 + man7/iso_8859_6.7.html + + + + + + iso-8859-7 + man7/iso-8859-7.7.html + + + + + + iso_8859-7 + man7/iso_8859-7.7.html + + + + + + iso_8859_7 + man7/iso_8859_7.7.html + + + + + + iso-8859-8 + man7/iso-8859-8.7.html + + + + + + iso_8859-8 + man7/iso_8859-8.7.html + + + + + + iso_8859_8 + man7/iso_8859_8.7.html + + + + + + iso-8859-9 + man7/iso-8859-9.7.html + + + + + + iso_8859-9 + man7/iso_8859-9.7.html + + + + + + iso_8859_9 + man7/iso_8859_9.7.html + + + + + + keyrings + man7/keyrings.7.html + + + + + + koi8-r + man7/koi8-r.7.html + + + + + + koi8-u + man7/koi8-u.7.html + + + + + + latin10 + man7/latin10.7.html + + + + + + latin1 + man7/latin1.7.html + + + + + + latin2 + man7/latin2.7.html + + + + + + latin3 + man7/latin3.7.html + + + + + + latin4 + man7/latin4.7.html + + + + + + latin5 + man7/latin5.7.html + + + + + + latin6 + man7/latin6.7.html + + + + + + latin7 + man7/latin7.7.html + + + + + + latin8 + man7/latin8.7.html + + + + + + latin9 + man7/latin9.7.html + + + + + + libc + man7/libc.7.html + + + + + + locale + man7/locale.7.html + + + + + + mailaddr + man7/mailaddr.7.html + + + + + + man + man7/man.7.html + + + + + + man-pages + man7/man-pages.7.html + + + + + + math_error + man7/math_error.7.html + + + + + + mdoc + man7/mdoc.7.html + + + + + + mdoc.samples + man7/mdoc.samples.7.html + + + + + + mount_namespaces + man7/mount_namespaces.7.html + + + + + + mq_overview + man7/mq_overview.7.html + + + + + + namespaces + man7/namespaces.7.html + + + + + + netdevice + man7/netdevice.7.html + + + + + + netlink + man7/netlink.7.html + + + + + + network_namespaces + man7/network_namespaces.7.html + + + + + + nptl + man7/nptl.7.html + + + + + + numa + man7/numa.7.html + + + + + + operator + man7/operator.7.html + + + + + + packet + man7/packet.7.html + + + + + + path_resolution + man7/path_resolution.7.html + + + + + + persistent-keyring + man7/persistent-keyring.7.html + + + + + + pid_namespaces + man7/pid_namespaces.7.html + + + + + + pipe + man7/pipe.7.html + + + + + + pkeys + man7/pkeys.7.html + + + + + + posixoptions + man7/posixoptions.7.html + + + + + + precedence + man7/precedence.7.html + + + + + + process-keyring + man7/process-keyring.7.html + + + + + + pthreads + man7/pthreads.7.html + + + + + + pty + man7/pty.7.html + + + + + + random + man7/random.7.html + + + + + + raw + man7/raw.7.html + + + + + + regex + man7/regex.7.html + + + + + + rtld-audit + man7/rtld-audit.7.html + + + + + + rtnetlink + man7/rtnetlink.7.html + + + + + + sched + man7/sched.7.html + + + + + + sem_overview + man7/sem_overview.7.html + + + + + + session-keyring + man7/session-keyring.7.html + + + + + + shm_overview + man7/shm_overview.7.html + + + + + + sigevent + man7/sigevent.7.html + + + + + + signal + man7/signal.7.html + + + + + + signal-safety + man7/signal-safety.7.html + + + + + + sock_diag + man7/sock_diag.7.html + + + + + + socket + man7/socket.7.html + + + + + + spufs + man7/spufs.7.html + + + + + + standards + man7/standards.7.html + + + + + + suffixes + man7/suffixes.7.html + + + + + + svipc + man7/svipc.7.html + + + + + + symlink + man7/symlink.7.html + + + + + + tcp + man7/tcp.7.html + + + + + + termio + man7/termio.7.html + + + + + + thread-keyring + man7/thread-keyring.7.html + + + + + + time + man7/time.7.html + + + + + + tis-620 + man7/tis-620.7.html + + + + + + udp + man7/udp.7.html + + + + + + udplite + man7/udplite.7.html + + + + + + unicode + man7/unicode.7.html + + + + + + units + man7/units.7.html + + + + + + unix + man7/unix.7.html + + + + + + uri + man7/uri.7.html + + + + + + url + man7/url.7.html + + + + + + urn + man7/urn.7.html + + + + + + user-keyring + man7/user-keyring.7.html + + + + + + user_namespaces + man7/user_namespaces.7.html + + + + + + user-session-keyring + man7/user-session-keyring.7.html + + + + + + utf-8 + man7/utf-8.7.html + + + + + + utf8 + man7/utf8.7.html + + + + + + vdso + man7/vdso.7.html + + + + + + vsock + man7/vsock.7.html + + + + + + x25 + man7/x25.7.html + + + + + + xattr + man7/xattr.7.html + + + + +man8 + + + iconvconfig + man8/iconvconfig.8.html + + + + + + intro + man8/intro.8.html + + + + + + ldconfig + man8/ldconfig.8.html + + + + + + ld-linux + man8/ld-linux.8.html + + + + + + ld-linux.so + man8/ld-linux.so.8.html + + + + + + ld.so + man8/ld.so.8.html + + + + + + nscd + man8/nscd.8.html + + + + + + sln + man8/sln.8.html + + + + + + tzselect + man8/tzselect.8.html + + + + + + zdump + man8/zdump.8.html + + + + + + zic + man8/zic.8.html + + + + + diff --git a/etc/rfc-doxygen-web.tag.xml b/etc/rfc-doxygen-web.tag.xml new file mode 100644 index 0000000..dcdd233 --- /dev/null +++ b/etc/rfc-doxygen-web.tag.xml @@ -0,0 +1,33 @@ + + +rfc + + + rfc791 + rfc791 + + + + + + rfc793 + rfc793 + + + + + + rfc826 + rfc826 + + + + + + rfc6298 + rfc6298 + + + + + diff --git a/etc/sponge_doxygen.css b/etc/sponge_doxygen.css new file mode 100644 index 0000000..92176e3 --- /dev/null +++ b/etc/sponge_doxygen.css @@ -0,0 +1,11 @@ +html, body { background-color: #F8F8F8; } +div.textblock>p,div.memdoc>p,dl.section.note>dd { max-width: 750px; } +div.line,pre.fragment { line-height: 1.5; } +div.contents { + padding: 12px; + margin-top: auto; + margin-bottom: auto; + margin-left: 3%; + margin-right: 6%; + border-radius: 8px; +} diff --git a/etc/sponge_small.png b/etc/sponge_small.png new file mode 100644 index 0000000000000000000000000000000000000000..42306b4a0a2106b327414f359a646924237652c2 GIT binary patch literal 18549 zcmV(^K-IsAP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3>vk{mgXh5z#ubp#UJkHgh$ZZOB6?=eDBsj9l$ zW^78`S|TGo+)3aq0GRIl_kUgY#~*(LZzZ{uYb(7J&wr_>ZiBxx|M~CpXYlF${{D;o z`?c`<>n_&s7mSyp-ud}wIp6mWUeCY2p{DQa^Y_2bdQpZoh-{`~RRf2Yb~?9BC|IXf{#&+kp261jue;^24VcORR5 zULE|d*V9|0e^@*B^RItdy!$WK&X4aq;_pl0eEGhi{AG>4uZR54Yxh>@&vz7l{MCN{ zf)DoNp8mFW_wIJ@`8?f7g_SDq`%wOSiT5|&I9ba0zOC@9^8d`=>-*LD)p*3kj%{{x z@@u)!gR$B-q_D#XH=Ot93X5AzcC7NJ*|PXvYq46l^)@BxSGZPVkK3^q78kn~dD(v6 zOL(8#-{-B+_~adUrv)yi9sS!c_fIeWUw-|((7g)X5Z+?ew^rPjDW5 zYkC}PR!W)psi_e|BgdRv&bj28Tkd(3SW?NQlv;#QqsE$QuBF!6YOkZkmRfG5)z(^X zqg#(aSnj1)*IVy>3_f&l>A`mo-Z93s8E2Y#mRV<;eU3%=thDkftFE^C8ryc^_o3n#FSf4grkr~lQy*}vL3r>*<{*g2=I`|jM|_w65cZI8z&@okW@P;2VrbxP4Ytnoka z_)mYX)(@d($uFM#%yvTC84y|PtWvY_CY#gF+^4MKN|=!aY-i?l>g;RISk_(aL^^2_ zZ6non=iG&7O}a{IrL1u4IHP4B*BQM{H&3s2`dp{pov*H!4?#0lJ!i&#fs8Ws``Bq& zZvDNXazBzO*Y+gl_BUl*vZc%dVcgeeHSkv7yepZKhC;-hR^EWrid4NJJ&e&mEc1aa(qg z^;rA%Z9T^}^YDDy$e|9_s;=`Mt#bE;U2BEKx&xN>=j=tq-*woO8obN1_b_YNv#k@y zF8M4XhsR$j&b)SF#rb03QFXoEHjMVxZ0PsJUF*`0U8tk4bY}vh;kw1gT*;Z$`%((40DYalNT)UH zhUJE(ZKHd_;F!6A4#|!E0+M^n#0bk`Jk&j#j~gX_KC@mvuzg>IVgIs&{az;+V z-O8rt4cfJR5~?PS%;&_oLG5zm?s4tYRssq2h&Ma7p4Hy$8`(5i83UhQR+XOG$OJLZ z!3~q`lNBHtGk8|G_}sH+_<&St%@uO8oU`^y^E4oAN$^}UAhNpBZJRU}%zToTAOLG( z9V?Erd>Og%X98+BPqZ$`+A5?^Ql_=Z&D(mtCy&a%_!FL3Jh1O6unDJb-BIrm}z#kOZ;)@a9apB;RdrT4|wECL<PTUU< zXO_|iq~JGle&22(ZUtEu6LzAcr(wtdnSs02JJIoxxGqy|hDBlOli zq@}wq5lXMCUv_na6wr}b>F#tn zmtqhk@X6y8Eq;bt59`d^Z2;YapiC2b*1Ji6qJihARx;{<-J8v&aX>O;qVK%{4Ph$4 zS>{@Rg@}#-#aQuVFh(0J=d>--X0^G01At(i-kh}_;S|1@tBg8RY}h&6H_;1RLmH_>3hw(Nk?qjYu$S#TrLWwK*rFnC6A>e3|i zz8H!l-r@N|$^mnX0K&59A84*W|B2RWK5=KL1ptD(VpG}pxv#F8SZy1VMaS(lw=U?% z2D954@g-@v>)drW8hJX<)9QjfbrsvKKTXEjo!NIS(Q9&)4Fc%e>IuL(>N)CK8N zWL7&46f&5AY(CI7NzcB*eDLp_e)k5afI4VQSD{YwjlkfWqcq2=J{EvefuAjM$0FQA z?rTR7fm|)vsKv(KiO?XxBacQ%E1~0>WV+ZEol;;+3y^&weTxE#m`6Kyg59hSA_pAX zv7&=KG?!0yv)oNYfTBVZD0};uq4-pJ4de$C4}gS37?(RFO+rV-q=pIU1^tU`&iOGd z0gYtY(C6S2_#plo8pw#un{g=O`hc-X6H(~iO@;6aL)&AZ8vBI2T|0FklSY-ys`t*hrWai#b5`w-ST>yu&_K0^aHB>@*3X)C5jD;E*G7C}&6(ni$6YBXiKn1z~Volq`hSprfOlVTHqT z(imWOORPW`qjZ_+gH|CK2`5X79A&Wq@I;J&>I1y0q>k8v$Tm^(y(N>sKXyzd08(E4Jfo~y9wAe%gks@Gx6^mj$D`?KAH6%aQXyyoG zlCLqX`jR=Lp=xZlp&;=a<|D-2?SyCd6 zz$y4?StTp3cO8fc{YWAV~pWAViImSjTHx`8lZul1o{v#g+~J}rR}Tg zRQkXm&<5iR@G&=B4>t(G4QYXFIAD%AT)BJ5W7xVJuJ7=dAUrwC+lU&xQ(IW4ih9H+ z2e3lEu@iZCd^BO-fEsjLPx0*Ox$GRia$(ma`$9UxvBWX{Ggcqi$b{r0smfx@QKD!q z_B^dC+81h~l)x9;ZK6SMbUuJ@BquJUZP}3o2C;iY1PVX<78PH?K%uGXe%lc2qsaM@>);@UJd>rScx9NbJ0yF1cL0gl3?8N#DdM@&}&3m zy36Ej3~N529YB_JmlmyZRtz2^v0)mKMFs7WBNMkJyMPrPkkB|JWgtZXZ|=9tk|4Gby$~-#5(V)amVqlb!Zj*NtXXl0^0n05WJUQIY3$IEbK;A6E z+^ORqBgvOK?$~n`0t6jcl3lC`+Yg%^k{89S?d{sO={z}yeTAzls!-;k^h(GZR|c$+ z9nZ8Xib-E+clM%;Of$${T^a3ybaDheoCmVs1?_~hNC8lS)x=>yMKC^y4J%Z*7TX0- z0iHq-dxnt&Xh6`J5w8OW9)@LQo`iM8qw19-5SRf93~o%#no zO7)Rp$e^j>E{ZIQ0w6OsNcsppZ)^#&CZ)n2CZ{aN*#U?q_r+Esf})g#EI>maB{>hG z|G+#dd^V3}5(Tpkja%Yh+=9y!_%K8j+mF1QS+%xY0dhVTl4qTyRECrnVH_(Gv&n{q z>amD|pbj!k$JXv|bmJAc>n+@9d=4@{N)rWQHA?EjRwO_n8o7U;hn?B2MDVk0`D)+NDr^e0yQeqp5yQ~h+u@6@*97%kgi5B zAZ# zAPGsN*3-t19mE!DJD~Qs2VU{S$tzI8wJRqIb-qO|B0r2Op$ePaSa8TTHsz0jDlfuM$}n}n4>zQ8TVy{Q9~10#;sMU3k5 z9mBtStH|Zdb09dTraSm%gwMV2zSfMd;WdN=TpPX0X2OJ3t!Uhl$}m~U0>vi4DWSiy z;R)xrp`v)@5ETg+!VZq8q9Pt-iEC~uvn)Jw*zR)GC@^9SPuWfC`s@PT|IY4R!V zK>*k|%${noSLJ^gXK_22rNJ7pP-<-W(18?~y+i^+D-y8R(Nv~ITPrKQ6oHyUs#9bvrJL%Ua+g5o0S#>u zDWovr70ab9Y+p7{4$$>2p=dkljLE=?mm*VC=aMb9e_gP?nd(Vz98VUJ3j8E?pRPe$p3YDGE%Rn5fZCsdOs$R_i5O+uUR6;}g zhH#V5(RuNAR=nlxE3b0fJ zSLC@N;d>>Al8WaO*9P|>_ujK#Tsbx>hh}AIKmir7R1p3ld?ua0kr; zn8cf!B}-pJ5M?qErHE7_u#{#* zQXGU%{PaxNSf1@z6Gy`RvOuT^;`y>|n5o3(^MMV;M7aCy^={D+B(TG$08{E~IkNHi zUqdarET4SwCS(-8BqPa-%wJKl38X1%lY-c!8kQhodNdux-m^izVpa=^X~2k>kGw=?E_e8)6pfOAxEUEn>`11Q4!LqGWV)IqW2(Dr zugZr#Pa0%cT73#>5^*=v?JK^j!m_o$9X88wuo!OE`XsxTZV?Bcmu|CRgDB0 z+Y6~z!JZZ-bT z_(qau3+gKy?E-BPv?wqD#F3UwilZ!5#@IMyGMLd+tK|b(?m|4TP*89H5C8Gt{y9y= z8@bzf@KT6uK99Uv(jrL`g3s$vnFrAL29+C{%9Q8>^>^X&0~V+ot-1?{!?$#tl~dbz z?X78-@#ZDbFL$ZM3Id=_N%4#VO)5-avDxE}d4LuWCA@LGo@6b{v5T6p+!4;2Z+89?Ky61xJfvB(Pa2ZVl?f z*~kESm+X}`fC}DtaFxUeBHZIT!-#%VFcl{z>eGN1Dk&edQ&&CXjVRz1q_-VBxOg^! zC^xPGxyqmm+Ff0^goVH^l9d`b&=|lX6#(h&u|_7}ya%e_0wZ`99+-@PWVsj%y%ITp zynHN>r~=a>NtHhuwXnn`fR|*%x@A?q&OnWjmujh9b%b7-WRl`0Wtf|UG1eLv!?hYK z!dDgCsvVQwd_;u%39po0*+^z$cW6dW9sOF_57l~A9{|6g<0v-O3<82_s=d@Fl!W0| z<_j8FHaxA$m;MzEjv6xJJk>)b1*R%(V5Y5{qeL&ZI(?=`&VW9vN^zGc9ookuJPrKjZ8aRwutoPL&aB#^ffiNMHSl^md( z494UjMIUrVt>LlWC&2~9pp-i6-)`jlofYsWzv@z~m?-U)hERwI4Jak;WYI|UENY*S z4619uKjW%<&vVon&;=@KpbGHbb841N)Lc+EBMpuC@sZbjko<T5m&IyP>oU}oFu=h)2J3gP56`5gvLmd^rc1N0fH|o^Z}_My@;al*R$9;izm>E z2Zcp+ZMCkq)F+ZVE|nX+Vnu1CntRZg8{Qg?FVml;WdVOxOaLvFKcfMem9+gd4zEdr z+&v;LYf_vHLeUlo8pl_G2g`K?Nl2{Sh7=nr2=&KW@xZKe#=46JFo;wA zHdT7&azmpu35eEY+<@-!*pnydfNECNqiYOu!|FsDvJ#wHwjTFxEfWbvoW$uMEAqb< z!_SC9t6Foc*Fy_UdllocpnKFcOLU|^0;&-n#AHDPrf#w{meK8fnAOCo%9CG zwn`|P(`PmFAe4iMM!lduv%D=hYRDAnHx~zS6{gCC0EI~;wjxxSuc-+R;~Ld$FR!nJ z7i0O+oJ223t@e2 zqQzR`j&}IeUL-{X85fr^&Knq(CgQ72?GIuaZf@`5OJz-BT}8FTQ>r`d$RBJ{5hnmo zQ zFGd(YjhH6SUvY+*>)bqw6eE4f(}B)(t4Z-+P^P~*LtFz{Ze4=~f%UW@Dks!bPusjl z-4hZ>Q{R&)gc$7%HPcO+|7Ummu#QB)zVBB*ufQ z58^R3kbIO?t#b*rk0y(|N(1U{Y+vM?8;;ahO$bhy0w?u`r=nM5i%{Td?u}3p{n8PJ zDFESQqsXnOBB1w0W*GDZGb&Em!J`F)cnzegnCt=^Cj5y z5!GqxHmfUqvAI6JCs(<*PkN5$|rj#u#0$&YPxHgZ~k&&^c-e6P$G7hyhNz2#e zkuQh@iJG%&Yin9@Vc1#ctB!;0ClGzXTf~BbbnBkD3Fl=r$%EDu;byO#%b(cN22cU! zmem+n<^5HXNN*M1@xeeR>jY=1u;tWq&tMn$do;SJk|+wJXg)KDXTkY!H6ElP?mUFT z9x5dqFW$DOK90b;09%$IDWS;0ZlZvcn3}RqnDNY}Psx<5K3UQ7oTX8FWU;C7hZ>a5 z=?L~(kP!ANdsdr*`DNrvSDTFBFy%RDTTvVPI*a$Hp*~GkU-9&yBo^uPGPtWtxF_!zLZMuF25;X38``GnC&4ue)A@6c06; zcb{2`jeip@$A^K}G%+S61oH9>+Tw=y8tQlgJD)}(cW$8q5n+kfFkTa)c#}Yy64ags zb;l4d+&lQ0x{MNVp&B|1Fu^Rl;B-B3dO8?cw6)@hfKWvVjR+gsP}y%-ikK~ocL5AE zJQ;932i>(_R}fz!G*cS|aUTf}hclj0sx4?fQt?rcjJhh%FX@j^0bOqZg?Y>8G(gU; zZzfw6)DGfv9Ktsvb%6Y-=`tLv>Ar_`l&wZ`*^I!|r*y`Yq$@3;imza0BHA=n0>rv` zctSly(g7NNhXw-sW2iUP{CFk_8w`3ztpb!l15m|!kg5L7=@j)p;5F=mH<`OwOeo^l zYdyc9M$P$bh3^z9%dhu#LPgc?s<|qS6M`8e4zQzUpEM2eIMD`y z#89m=0+WgFESRyNfgTb8lb$d|*Qxt8)XMem*ap|sX`P@mhj4`_G6{~P@s^4*Ye*7I z5=@g+=rpkdqL>_Y>enyLhr&;H;oFwRxr(}SK=sv#>uwrJfQ3{Pm}hdpk>CIYhYr@jr%&Ced7uv7Ari?@ zU|ENU5MUbb!%qN>Z=lcv0l2;BLF*|jhDmZFOuQz<;Mn0dzT;NVNkz4(PUXu_J|)YK zRTO#@b!%)<9<e7fDdVrEs&779rcON8EVm#q9bYf zMrU5#42@rFxQLx31xY@gtk5ZgE!P}1HiUwnDP9BQHkUIvSWi(8HwJS#$YKoxRCK<` zNN*Uh0<4;Mk4>5h=Ev5|=VpcuMVXgYijoL-dKvoNF*QVubSpU+R!ZTj#X7k;Y00U1 zmC)W9fi!_zlq<-l5u$<)8GNhGKBzk6-~hOl>o=W6(=3QrTMC7;Wk6=u=>UW$VN-R& zDZPP^+Q_DW{y~gZO+TB{3@;>nRBOX5uPcSIqpG^6%IvDUu9**=+S)R5SknwhdA_Uj zd^*Ea+i_|VVfk9p`G)>l6MJvfA9b>Z7{8j8!cWKwpAN&pgK}n<5MHn}_%$&KPK7s^ zawD}!u%evQ$*y-!p_c{tb20Kt)#eO<0u8veC20w9X}CYD4k(xHd1&dhtBLpaJ&W}w zT2<&5ntS!cbPP&yC~=MDC&Ohq@u9@0%FxI~> zv$jk{Re_NW26)n20{mMa#c3p-lun-vdh=)Mqap4UbV&aExsYnpTdi|B+BVgP)Tbk2 zZucrfx8gOCuRg2}b&Re-?%S|0IOwe5d3`GKlaNdpJv8@gjQoi9At@16Wj}o5l+jz$7l(wdYU_CQsx>S+t>q4x zRGqCzRrkYHGf=CM6Y}7&mRU_Lf*WUg)CUU$q^V?#k#8t8;EohIT|GLl4)jP?5-?v$ zEiiX$_H~nuk>_cpV1YFg&0=_$j!sDP8QFYumrHz2qAYMAJ zSRLI}3+#1>dO|tp_8EP?q!J8Tbk1?6WB|1IO~VC~;LNHsZp{M|y;zUiUC~nHLx9R6 za4Qig0N#g2F0hRVd{$A_P=J}2!I&gTgWnA7oet`hMexehpmPcmN*b`C0q4K8RhHL^Mpims~ZL6wlR&VEWb)Li%H*c6w~rFo|@Yrp`> zkA)@G>z-+8^6cmYl#W}jsPf%s&_e@ONv_h=m3UoIaQQqu>KbFnZ+^G19~$xm7YHRw z#CO)AiI;^}vqS_x%g8t~u=d#&xoWi3#PcAL!Ec8QA{QS(04m%AgKV;~`Sh zaXIyJZgN4>M!1+@@R3F_FNB3DsvyYGx!~Nq=I*?P%}9o&Haq|8By!P*fky@V-paSA_r2#kFxK%HIn|KjH#m zq;DQxbvDR=_-~Mm+c+JviF=OX6={NjE7Wn9%qPd7c^MtLQ7i4inT{m$J&-vLIISr` z5Q0NId!1wgdI&Mip%L7x1DCjfrqPZx6hud@6Eq&;=pb;aEIFYS_`P9~F*N`?&N{1b zZ%9@I2_zP;e$s{#Ky`C@c@oYr=;-dDpEDKIpVg0=!oGuTYWSXkhXKLF)W-HVHA9KW zqhaNupF@CLP^%uKe5?(~ZH+zqrgLiQQH|M)gYSk$X(qxI4JpJoWpSOaF-WeV98~_B zI`F#H1RPP#Y7rBk(HmA@T?ib-JD|?$D#nO#;A-l`ThwvRKqh8^27e0zP|PAmaH7EG z(ugJWk3dYt5i{Sn%Ho#(j$ww;)!hflbt-LKokb%qOg|AwJy)_uZsVwYq7y&hGK!5i zB?7l-NNlS?pj9?iZZM51Iwcc`$jfPbWsi5@6wOjq#hnFrh6!*wx8qw>s}s$*72r*y z%Q`%)4&w_q=vOBg#?5^nb(SQQbO;)BM{*DxS6xwcnOWiSDwxnX3qRDOk|Whnh=x&h zhWL%H4jqqITUDpXbO^-jFvu~d1JIf_0YFfs`r!p#AxXk*Ic(&#%6doVr+^^ey+;2K z@A5mSZ~{~-Oo~; zemH=B)Q#MXra25m)DJOuXG5x9)*0c{8p5}W({k~|c-oo`tFLpDc+-5xsdb79%2Dn7 zuJ2O7x(H9r0h-7@YB=0X6m1W)e-1JDQL+FPZV2Rjh9psy@M2TE$ zYHnhe4gECOoCnggewhXzZMU7stc3RToq{unvt2dT@(0s_?AKl!QTamdq3(9N$&m!h)Du94={ag00006VoOIv0RI600RN!9r;`8x z010qNS#tmY4#WTe4#WYKD-Ig~000McNliru;tUA{95Mz87NYqJe{1jkAK&qu_l$S)^|c+xc09yx(xjnjNodo7iV7-3qzZw8RFIGg2tF_rA)%tG zUxJ_@kQfT66_nC}wo2PTL`o=e2G_CU`Pz3p_nvupr~kP3;=}(YQd?Ra>g+G)!#UD< zpS{*z>v^8FUQt!P(euhet-_zJRQ}$rnqF*aQC^CLuQBOqUxsV$HnE*kxb{hF;(;JAUEh38_=5*tVjoRop179JZJ z#!gQ9R_B6ToCnkhwN=%Tlapo8TQ^FUxn+?%xse&}dgaUuza9s@E`rqHziTM|n-21; z$4z|8xW7HL@{#?D4c|qUC32h?-e{B;Q_+9;v4PzBrhvS@&<}oouD^Ziq4Zz{ zA^{1?I5wclL8bH}VOj^y^$af^w+v%L5(}9#j2(ywzjCuC%M1^UEi(@froxRo1<%)( z%n6AVZWf-N5q{ue#EFMRP|ha?C(LuhKU;JB^Y7?$^Bo2G8+-mwe|4e%<&}A0-~?;H zim;s-iU3tm#*r}d%2pz@3b7F~3nJa6l)&vu`P|il2ewn3g`O3*65&!Tym{Q9&T!f& z&I-c_S_6lz!3r#cvXu%(U^^CFar~1@ef{f?i~K(UxVLi?O{?eYT6tyWxs(chCzL_C zy@0b;d2rx(;n-t*U_OpGtOA)6)_Rt6xxoY14jcMC$5WScA`J{8!{OXBx0Y8F9+^aB z0$#xbZ&+4kK(wH3MVxTjB?Nj55|1^+xh%&3na?sI5E-#j+X%sSm5@uWz|6C z3~l3i@p{4bxjv)VvM4;~#|itTvJwet;~nACEv=UB9g_ZBC@n~OlyGl(jc3O5R6 z<^m;#mu^;k>vqJ76JDNq?(11pV9ha|DL?UcKE8Q7e^jY_pBi}Yddyk^eGT}aOaM1p-!&*PO-#{4x8zyjgydq7Dj)wNgWQ>ir%KN+?kxRks>-=Y za7M@@%OsCj%Po_Yl-+s5sszTdWxUp7ILgQ^eE-9JR&v9h7s^(NfITj9XA zdf!pOCvFt7mO3GILfHy)Z+UnvBaaP{6OIed!+pzKA@zYZE7-&`&Mog6Swx{{VXuT9 z%1Nt4BDfZ|bHj~A;Bw!w^hzqi=|b^Y_vVNFnAh*rw7KDYERsEjKd@k)D+9z)v*W5JGzr9xR7wUUmXY3#`LKBo(t(+BsRFu85ipCfg80M{l4*eyL5M+st-jm#j%uwN@X^T1XnWLBtx;#(!M!XgNfC}Ssx!e?*Rgw>eGbJ&c9 z-`w|HN`xd9EU=mgMXQ)d=vm>>49-OyM#8~T*@+FeW5Xw($$8;-fqZioKK#l;Kl?%f z^H#Z#8>Y3=24xr-jKI(dv4zxjy{rl_uNC7xtBIvh;iL*!XP6`q5at1%J@(w68(y6U z)Nc5RUQ+e_0Z}PCxzxKjH*)IbB{*47++N)VKfe@6V!gF)la&zH% zbr$&SLCbCfvsM|UhBS}JQo}eAE)6YPsStqu7G9YL#&MSomve)4f~J;(N@)ac6@iEP zhNe}vdloA~T?F1b3{uD z2^_UBYZNE2vj|+y4QI7-R4F4ot+gy$Ws(~#aC06w7sJ9BRwLo`tYzj5StMM_4Y%i> z*a)kcaQ(RD;;Lh35m>Q?D2Cj^Q3FF!D$~`Dfq_SQ@NlAQ_os4X6gICF-cBpeqE(hn zzaLD^0PZw|Blm59T4AS#O65BMOr`R@%NBA2%f^E$Ey7{Z$&JLo-mIZ$6%EQTg5#paIYXmx z*eFLW)Bq|BMKF!BR|Jk*XcR_0L((*qVyG0#CNK*^P+`_W9bgg(i7JXh8(53G_k1xC z`c}Am7N~3GXsM7!eDsloY3*t1z_L|F5ol1RjWYL8dDw4w8o(U3Jhlvqvt4m1y;3xR zyR(Kiz)|68fuo}3&b+1#iZjA`1Rt1Kjw_`KV4A>wsl2>UdQK1#@;Y$0fc4mrA}`?Yd;)zV9Ztz76CMZK~b8!{)H zG)mQW7quD*yA3Q9=7B$cbD@}d<jn8>aL`ccOy zjCQT#xCtE?XV@=2Hx?~L9f*u@PQBx5V({ZRuiEYSr$PN95h_rsmUy~kzsccII9DvvM@cIHST}oMrl}9tdTH*UH8m5J^n6`Xnr{Ti6n1{~CL;_E* z7spnVs1M1;Q!tT)U{!58W?Z5iuKWZr#pYk^S;Ol42gU8F3 zFS_N_u(nL6%w?vWUqzv?& z;k1SA%y72!Gzia6Vcd5-^F)tcE~JrRGZp44ECYPtg2M+0Ua1gL1BHSjxWuwO>7K&Q z)Psljt(yA&Sik$3p?vjsc|1RVqyETir_HCoaMGBQvW3v8_|SUBsUxvMFEVIkNvz?K z^^{@mxL$NR@3c~GF9VkchF^JU$%pRCcxc#pGG(JQ3VRFBR&H6%4A0$ZIKS%HNQK*l z5(zW_O(2Uc1Z5c@GfHfQ*a(NECr0qjaMX6c^D3AoaDHf+*8xR%dMy9);~V_t-={); z=)U+f|DxuN-a;QfE(6XeC$oxP<|v!MNu?Bx$Hk7w2-oK=+ryYgH&S9N+)A*BN#Ag`2xQjcy<)9k6jl?%*IL@ZfEOW_j(_H&OoMQE z>^Z+;$X(YBMm@tcbQS*H8C*&j{DFG%iGkT)&m4m+;>O(b(0Z?vO0gr0ELcls1Zxau zMa$i3!xs)3A|Kc*J11|p@K^<7gd0UbTjkBEXB0ss!g}sl1Yt9`B#mdkRxHZcL1y5% zRjh%sRbnGJRZdzMMM9Q14&PevbN_SBNz)Pd{d*~I=n7g3SfT$1g1lRIX{8F6S5sPq z2!l9-wT8qP#);!#(O~FUMcV{|5k9nLDciuPXIM!MBM0X*!})Q6*jWZj6{cQ!*ZVek^5Gt7YS@Zl%_$AS$aNL=x$6Z#_mz^f zw)1T7w5*)9eCnlzPQDKE^S9>awB-}8%ssIPhn44a(eR#?m{8O#o51gm==N47R12J2W}LKn0sj%8CD|r{Bg^PhX)3R z-+ZaysD)#%EJYYaV7xN0a8z_DEaqP8xX03JRX%VfFe#+0u9=&tsf3y#G?4wO+)7{x zBHSsJtrU7rI?`@n9)uP+AG7L0U|6-vVdXIjWgA#YEW>e32uk7{r_-8;#tG1QH={fv zw$O_$Pp(=PDjYW5?Beb+u$CCSDv720smiTWWpl-ndQT9`Bsc8U$`4$LIbC{MFwUvk-|*?1HRnf`$_t}dc;mR`V$U$n1uM`K zUNcefk8jyPqJgq*$sE)nursd-(v8i|4Pz4V80pNW&D`+lB<5Q;9cti$GB4wM?8MZOh2P z-n{0t3hXXDUwUgs69Uc&3lFa?;CwFZRPfrgC5bGN>F69GP^)lmJ>$=RsK-&IV1v%$!C4FYCk=IgyQOkC_gpO$2joT>MnV%{5({UIGP3#$?;pypx#tG_s%oJ0Fmg~< z4FO9CwD-%}bF!?tIjhm86QyUhG8)Gm7A;3*z$k1aP%b@HfL_)OVE5`St^Bzd06_iV9XDv-IECJ%v!RhC8tvvIm(;61;H7HPPjjV!!oefbYy;HAP>s) ztY&BKS=52P3A6&SRnAJ~_CgTphQGrIYJoRS8g}cBtZOWcW8r)ZtLQI%9pqZ92Ujxr zwI_y_qV5KyO&ds1;z)=MynJVlpwv~%_0y6h1d2Lf+JG@a9UxY4M!0&bWZHDvZ}+4` zmK8gdvJgWm%BJZeJhZ}b32&UWoK%6kwGzefvB&$oweVbPgbS01S)<%Huw+)*8e8^D zB|<5DXOTR-7SWdgC?f;01||~T8X2yBU1~kK)o1@k@gomr{wrstP7t9IMG(|?PWq%5 zVO3ew4N@y*V!1Q-Oj5^Q(~S=ta2SMfZiub0?u2ry&qmL3yHw__5)V_h`<9{(yuJuL zGPFGAB1+#ia;#zA1itHX%Kx}oF-{`J7Er|lE3Ru}ZGhFdn}khb!?xwtbY8u*-iyM! zQi--A{o=)e3%_qM;^$sI{;_NG_HW%?)`P-#<82WkO&qu9HC2GM#8E2jHOiGqpLcKO z1QA|6Z7DpAGE0PVya=rHJ2!v;%gS?9!((fXacsC-D5DsTi@-_*tr&7qBm_+45G#D) zc11ppIj^2kW~hLm!X$#D0I3o3;JKKaSKr&?Pdq&|J8x_I;}@U1ksj9W!QDmu%&hev zjGX&OE#}Hx#Xh^YU?q*%9%U2?ahhV1h{rcF7GAhk266#umFq2B$qku>;K4e>UJ(dZ zm_)*-uPynu%^2$p!`NU^PRf9d41;@{AtxU0&Rcv?E@XzA3ng~K{R7LHSJo55Qz^O` z>Dq@@&G8>;#pUO}_||Y94gT9N-JHL#Y(3`&F&<%%C%7c$!dj2W8Fm*fAPgcwjbYXV z_C0JSmLe#3W}b5cM{d9vcy7OCGwTMsbA^c&21z%9r@^5a8^t1oz)|BPW30d9n)Ffq;SdRBn z9ymAR&fc8sCrjqua^Lod?UkHCKjEkfcoFt1&!UCRzTt9ixIFwCuNA00rwy!Uj#sCi z?aa_LfuX$2KjyOS}hAWT6(|i#ZpgF7a}K`rxueZ5IZmyd_b}YQN`an z#aZQhuJi~-7)0O_OFsniNQkUqXIg_1`jN1b8iFy1_cW@gLaoZI_Us=QOsl}Vd&0B{ z?3aOqS}8o=^NxW8aBcJamJMeU8x|%s9-FdR4@ zT8oj;%`OiMk9QVSS&bB9g;s>CClyweS=j(eFaRXR^^@ny+3kAo@Obw6t$Ey36=hYAFAv-C{VQQ5b?S>+BMX`s@~rbm zv)E7{FWEV&DVi<{yEW8hAn~5fOb`t`)H59KpHVFfy?+w7&!1LRYPB3~=hb6l)20wC zs);D?aem*0@MG`jQt#K!KlsnjuD*D*{K2DT{X?Z<6Pc1h1WMt--{_<`KI^Hlj-EC1%)F!{$H z+jMU$Lf=I-HCOi?_0X}XtBPmg-1FMh6nO-(=9x|k2P z&&SRBR-~6MyW+xT{K$P9N!|K*V2QQ{k^A0v4{R!Go_qOCKe+qGjf4H!r_9j&Rw#CN z*eh)P`T4~cw0LmhKCr#sOV%G4jIZ6V)z5Cv+pj$H@bH_ngMJU>U{SVfr^|XgE2@oo zQBD?%qPJMgdyB=QS1f1wVm8Yc^I0;Tp4#bruG1j4UEfYFJoe=1@h2Xgyz5=}O*HF| zU%GkR8?5xx$NT2X*FW{?zf_*gcbcY{mvir%p*2-Snxxraa`Alf#ABDu<6A4Y|Kw8_ zn{Vo({qH?L^^4c2i(6S!`*G1Uqq=TZXUj6y;5VA4j_azb=F4JU)eUvq#%If=^?{*R z;|dp@jm}@#__l9<#yvVpfA$j}y#L^v^=*Rx1OL!`yO{!tjsO4v07*qoM6N<$g89l9 A^8f$< literal 0 HcmV?d00001 diff --git a/etc/tests.cmake b/etc/tests.cmake new file mode 100644 index 0000000..ba4f459 --- /dev/null +++ b/etc/tests.cmake @@ -0,0 +1,238 @@ +enable_testing () + +set (LOSS_RATE 0.1) + +add_test(NAME t_wrapping_ints_cmp COMMAND wrapping_integers_cmp) +add_test(NAME t_wrapping_ints_unwrap COMMAND wrapping_integers_unwrap) +add_test(NAME t_wrapping_ints_wrap COMMAND wrapping_integers_wrap) +add_test(NAME t_wrapping_ints_roundtrip COMMAND wrapping_integers_roundtrip) + +add_test(NAME t_recv_connect COMMAND recv_connect) +add_test(NAME t_recv_transmit COMMAND recv_transmit) +add_test(NAME t_recv_window COMMAND recv_window) +add_test(NAME t_recv_reorder COMMAND recv_reorder) +add_test(NAME t_recv_close COMMAND recv_close) +add_test(NAME t_recv_special COMMAND recv_special) + +add_test(NAME t_send_connect COMMAND send_connect) +add_test(NAME t_send_transmit COMMAND send_transmit) +add_test(NAME t_send_retx COMMAND send_retx) +add_test(NAME t_send_window COMMAND send_window) +add_test(NAME t_send_ack COMMAND send_ack) +add_test(NAME t_send_close COMMAND send_close) +add_test(NAME t_send_extra COMMAND send_extra) + +add_test(NAME t_strm_reassem_single COMMAND fsm_stream_reassembler_single) +add_test(NAME t_strm_reassem_seq COMMAND fsm_stream_reassembler_seq) +add_test(NAME t_strm_reassem_dup COMMAND fsm_stream_reassembler_dup) +add_test(NAME t_strm_reassem_holes COMMAND fsm_stream_reassembler_holes) +add_test(NAME t_strm_reassem_many COMMAND fsm_stream_reassembler_many) +add_test(NAME t_strm_reassem_overlapping COMMAND fsm_stream_reassembler_overlapping) +add_test(NAME t_strm_reassem_win COMMAND fsm_stream_reassembler_win) +add_test(NAME t_strm_reassem_cap COMMAND fsm_stream_reassembler_cap) + +add_test(NAME t_byte_stream_construction COMMAND byte_stream_construction) +add_test(NAME t_byte_stream_one_write COMMAND byte_stream_one_write) +add_test(NAME t_byte_stream_two_writes COMMAND byte_stream_two_writes) +add_test(NAME t_byte_stream_capacity COMMAND byte_stream_capacity) +add_test(NAME t_byte_stream_many_writes COMMAND byte_stream_many_writes) + +add_test(NAME t_webget COMMAND "${PROJECT_SOURCE_DIR}/tests/webget_t.sh") + +add_test(NAME arp_network_interface COMMAND net_interface) + +add_test(NAME router_test COMMAND network_simulator) + +add_test(NAME t_tcp_parser COMMAND tcp_parser "${PROJECT_SOURCE_DIR}/tests/ipv4_parser.data") +add_test(NAME t_ipv4_parser COMMAND ipv4_parser "${PROJECT_SOURCE_DIR}/tests/ipv4_parser.data") +add_test(NAME t_active_close COMMAND fsm_active_close) +add_test(NAME t_passive_close COMMAND fsm_passive_close) +add_test(NAME ec_ack_rst COMMAND fsm_ack_rst) +add_test(NAME t_ack_rst COMMAND fsm_ack_rst_relaxed) +add_test(NAME ec_ack_rst_win COMMAND fsm_ack_rst_win) +add_test(NAME t_ack_rst_win COMMAND fsm_ack_rst_win_relaxed) +add_test(NAME ec_connect COMMAND fsm_connect) +add_test(NAME t_connect COMMAND fsm_connect_relaxed) +add_test(NAME ec_listen COMMAND fsm_listen) +add_test(NAME t_listen COMMAND fsm_listen_relaxed) +add_test(NAME t_winsize COMMAND fsm_winsize) +add_test(NAME ec_retx COMMAND fsm_retx) +add_test(NAME t_retx COMMAND fsm_retx_relaxed) +add_test(NAME t_retx_win COMMAND fsm_retx_win) +add_test(NAME t_loopback COMMAND fsm_loopback) +add_test(NAME t_loopback_win COMMAND fsm_loopback_win) +add_test(NAME t_reorder COMMAND fsm_reorder) + +add_test(NAME t_address_dt COMMAND address_dt) +add_test(NAME t_parser_dt COMMAND parser_dt) +add_test(NAME t_socket_dt COMMAND socket_dt) + +add_test(NAME t_udp_client_send COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucS) +add_test(NAME t_udp_server_send COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usS) +add_test(NAME t_udp_client_recv COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucR) +add_test(NAME t_udp_server_recv COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usR) +add_test(NAME t_udp_client_dupl COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucD) +add_test(NAME t_udp_server_dupl COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usD) + +add_test(NAME t_ucS_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucSd 1M -w 32K) +add_test(NAME t_ucS_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucSd 128K -w 8K) +add_test(NAME t_ucS_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucSd 16 -w 1) +add_test(NAME t_ucS_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucSd 32K) +add_test(NAME t_ucR_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucRd 1M -w 32K) +add_test(NAME t_ucR_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucRd 128K -w 8K) +add_test(NAME t_ucR_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucRd 16 -w 1) +add_test(NAME t_ucR_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucRd 32K) +add_test(NAME t_ucD_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucDd 1M -w 32K) +add_test(NAME t_ucD_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucDd 128K -w 8K) +add_test(NAME t_ucD_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucDd 16 -w 1) +add_test(NAME t_ucD_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucDd 32K) + +add_test(NAME t_usS_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usSd 1M -w 32K) +add_test(NAME t_usS_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usSd 128K -w 8K) +add_test(NAME t_usS_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usSd 16 -w 1) +add_test(NAME t_usS_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usSd 32K) +add_test(NAME t_usR_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usRd 1M -w 32K) +add_test(NAME t_usR_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usRd 128K -w 8K) +add_test(NAME t_usR_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usRd 16 -w 1) +add_test(NAME t_usR_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usRd 32K) +add_test(NAME t_usD_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usDd 1M -w 32K) +add_test(NAME t_usD_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usDd 128K -w 8K) +add_test(NAME t_usD_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usDd 16 -w 1) +add_test(NAME t_usD_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usDd 32K) + +add_test(NAME t_ucS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucSd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_ucS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucSd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_ucS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucSd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_ucR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucRd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_ucR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucRd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_ucR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucRd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_ucD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucDd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_ucD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucDd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_ucD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -ucDd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +add_test(NAME t_usS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usSd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_usS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usSd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_usS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usSd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_usR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usRd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_usR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usRd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_usR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usRd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_usD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usDd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_usD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usDd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_usD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -usDd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +add_test(NAME t_ipv4_client_send COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icS) +add_test(NAME t_ipv4_server_send COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isS) +add_test(NAME t_ipv4_client_recv COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icR) +add_test(NAME t_ipv4_server_recv COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isR) +add_test(NAME t_ipv4_client_dupl COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icD) +add_test(NAME t_ipv4_server_dupl COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isD) + +add_test(NAME t_icS_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSd 1M -w 32K) +add_test(NAME t_icS_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSd 128K -w 8K) +add_test(NAME t_icS_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSd 16 -w 1) +add_test(NAME t_icS_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSd 32K) +add_test(NAME t_icR_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRd 1M -w 32K) +add_test(NAME t_icR_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRd 128K -w 8K) +add_test(NAME t_icR_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRd 16 -w 1) +add_test(NAME t_icR_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRd 32K) +add_test(NAME t_icD_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDd 1M -w 32K) +add_test(NAME t_icD_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDd 128K -w 8K) +add_test(NAME t_icD_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDd 16 -w 1) +add_test(NAME t_icD_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDd 32K) + +add_test(NAME t_isS_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSd 1M -w 32K) +add_test(NAME t_isS_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSd 128K -w 8K) +add_test(NAME t_isS_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSd 16 -w 1) +add_test(NAME t_isS_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSd 32K) +add_test(NAME t_isR_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRd 1M -w 32K) +add_test(NAME t_isR_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRd 128K -w 8K) +add_test(NAME t_isR_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRd 16 -w 1) +add_test(NAME t_isR_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRd 32K) +add_test(NAME t_isD_1M_32k COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDd 1M -w 32K) +add_test(NAME t_isD_128K_8K COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDd 128K -w 8K) +add_test(NAME t_isD_16_1 COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDd 16 -w 1) +add_test(NAME t_isD_32K_d COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDd 32K) + +add_test(NAME t_icS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_icS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_icS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_icR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_icR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_icR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_icD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_icD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_icD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +add_test(NAME t_isS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_isS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_isS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_isR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_isR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_isR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_isD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_isD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_isD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +add_test(NAME t_icnS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSnd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_icnS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSnd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_icnS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSnd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_icnR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRnd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_icnR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRnd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_icnR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRnd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_icnD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDnd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_icnD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDnd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_icnD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDnd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +add_test(NAME t_isnS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSnd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_isnS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSnd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_isnS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSnd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_isnR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRnd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_isnR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRnd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_isnR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRnd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +add_test(NAME t_isnD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDnd 128K -w 8K -l ${LOSS_RATE}) +add_test(NAME t_isnD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDnd 128K -w 8K -L ${LOSS_RATE}) +add_test(NAME t_isnD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDnd 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +#add_test(NAME t_icoS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSod 128K -w 8K -l ${LOSS_RATE}) +#add_test(NAME t_icoS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSod 128K -w 8K -L ${LOSS_RATE}) +#add_test(NAME t_icoS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icSod 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +#add_test(NAME t_icoR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRod 128K -w 8K -l ${LOSS_RATE}) +#add_test(NAME t_icoR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRod 128K -w 8K -L ${LOSS_RATE}) +#add_test(NAME t_icoR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icRod 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +#add_test(NAME t_icoD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDod 128K -w 8K -l ${LOSS_RATE}) +#add_test(NAME t_icoD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDod 128K -w 8K -L ${LOSS_RATE}) +#add_test(NAME t_icoD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -icDod 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +#add_test(NAME t_isoS_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSod 128K -w 8K -l ${LOSS_RATE}) +#add_test(NAME t_isoS_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSod 128K -w 8K -L ${LOSS_RATE}) +#add_test(NAME t_isoS_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isSod 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +#add_test(NAME t_isoR_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRod 128K -w 8K -l ${LOSS_RATE}) +#add_test(NAME t_isoR_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRod 128K -w 8K -L ${LOSS_RATE}) +#add_test(NAME t_isoR_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isRod 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) +#add_test(NAME t_isoD_128K_8K_l COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDod 128K -w 8K -l ${LOSS_RATE}) +#add_test(NAME t_isoD_128K_8K_L COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDod 128K -w 8K -L ${LOSS_RATE}) +#add_test(NAME t_isoD_128K_8K_lL COMMAND "${PROJECT_SOURCE_DIR}/txrx.sh" -isDod 128K -w 8K -l ${LOSS_RATE} -L ${LOSS_RATE}) + +add_custom_target (check_webget COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R 't_webget' + COMMENT "Testing webget...") +add_custom_target (check_lab0 COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R 't_webget|t_byte_stream|_dt' + COMMENT "Testing Lab 0...") +add_custom_target (check_lab1 COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R 't_strm_reassem_|t_byte_stream|_dt' + COMMENT "Testing the stream reassembler...") +add_custom_target (check_lab2 COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R 't_recv_|t_wrapping_|t_strm_reassem_|t_byte_stream|_dt' + COMMENT "Testing the TCP receiver...") +add_custom_target (check_lab3 COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R 't_send_|t_recv_|t_wrapping_|t_strm_reassem_|t_byte_stream|_dt' + COMMENT "Testing the TCP sender...") +add_custom_target (check_lab4 COMMAND "${PROJECT_SOURCE_DIR}/tun.sh" check 144 145 + COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R "^t_" + COMMENT "Testing the TCP connection...") +add_custom_target (check_lab5 COMMAND "${PROJECT_SOURCE_DIR}/tap.sh" check 10 + COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R '^t_webget|^arp_' + COMMENT "Testing Lab 5...") +add_custom_target (check_lab6 COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R '^arp_|^router_' + COMMENT "Testing Lab 6...") + +add_custom_target (check COMMAND "${PROJECT_SOURCE_DIR}/tun.sh" check 144 145 + COMMAND "${PROJECT_SOURCE_DIR}/tap.sh" check 10 + COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --timeout 10 -R '^t_|^arp_|^router_' + COMMENT "Testing libsponge...") diff --git a/etc/tunconfig b/etc/tunconfig new file mode 100644 index 0000000..a6666be --- /dev/null +++ b/etc/tunconfig @@ -0,0 +1 @@ +TUN_IP_PREFIX=169.254 diff --git a/libsponge/CMakeLists.txt b/libsponge/CMakeLists.txt new file mode 100644 index 0000000..8b4289b --- /dev/null +++ b/libsponge/CMakeLists.txt @@ -0,0 +1,2 @@ +file (GLOB LIB_SOURCES "*.cc" "util/*.cc" "tcp_helpers/*.cc") +add_library (sponge STATIC ${LIB_SOURCES}) diff --git a/libsponge/byte_stream.cc b/libsponge/byte_stream.cc new file mode 100644 index 0000000..826e028 --- /dev/null +++ b/libsponge/byte_stream.cc @@ -0,0 +1,53 @@ +#include "byte_stream.hh" + +// Dummy implementation of a flow-controlled in-memory byte stream. + +// For Lab 0, please replace with a real implementation that passes the +// automated checks run by `make check_lab0`. + +// You will need to add private members to the class declaration in `byte_stream.hh` + +template +void DUMMY_CODE(Targs &&... /* unused */) {} + +using namespace std; + +ByteStream::ByteStream(const size_t capacity) { DUMMY_CODE(capacity); } + +size_t ByteStream::write(const string &data) { + DUMMY_CODE(data); + return {}; +} + +//! \param[in] len bytes will be copied from the output side of the buffer +string ByteStream::peek_output(const size_t len) const { + DUMMY_CODE(len); + return {}; +} + +//! \param[in] len bytes will be removed from the output side of the buffer +void ByteStream::pop_output(const size_t len) { DUMMY_CODE(len); } + +//! Read (i.e., copy and then pop) the next "len" bytes of the stream +//! \param[in] len bytes will be popped and returned +//! \returns a string +std::string ByteStream::read(const size_t len) { + DUMMY_CODE(len); + return {}; +} + +void ByteStream::end_input() {} + +bool ByteStream::input_ended() const { return {}; } + +size_t ByteStream::buffer_size() const { return {}; } + +bool ByteStream::buffer_empty() const { return {}; } + +bool ByteStream::eof() const { return false; } + +size_t ByteStream::bytes_written() const { return {}; } + +size_t ByteStream::bytes_read() const { return {}; } + +size_t ByteStream::remaining_capacity() const { return {}; } diff --git a/libsponge/byte_stream.hh b/libsponge/byte_stream.hh new file mode 100644 index 0000000..71317c2 --- /dev/null +++ b/libsponge/byte_stream.hh @@ -0,0 +1,85 @@ +#ifndef SPONGE_LIBSPONGE_BYTE_STREAM_HH +#define SPONGE_LIBSPONGE_BYTE_STREAM_HH + +#include + +//! \brief An in-order byte stream. + +//! Bytes are written on the "input" side and read from the "output" +//! side. The byte stream is finite: the writer can end the input, +//! and then no more bytes can be written. +class ByteStream { + private: + // Your code here -- add private members as necessary. + + // Hint: This doesn't need to be a sophisticated data structure at + // all, but if any of your tests are taking longer than a second, + // that's a sign that you probably want to keep exploring + // different approaches. + + bool _error{}; //!< Flag indicating that the stream suffered an error. + + public: + //! Construct a stream with room for `capacity` bytes. + ByteStream(const size_t capacity); + + //! \name "Input" interface for the writer + //!@{ + + //! Write a string of bytes into the stream. Write as many + //! as will fit, and return how many were written. + //! \returns the number of bytes accepted into the stream + size_t write(const std::string &data); + + //! \returns the number of additional bytes that the stream has space for + size_t remaining_capacity() const; + + //! Signal that the byte stream has reached its ending + void end_input(); + + //! Indicate that the stream suffered an error. + void set_error() { _error = true; } + //!@} + + //! \name "Output" interface for the reader + //!@{ + + //! Peek at next "len" bytes of the stream + //! \returns a string + std::string peek_output(const size_t len) const; + + //! Remove bytes from the buffer + void pop_output(const size_t len); + + //! Read (i.e., copy and then pop) the next "len" bytes of the stream + //! \returns a string + std::string read(const size_t len); + + //! \returns `true` if the stream input has ended + bool input_ended() const; + + //! \returns `true` if the stream has suffered an error + bool error() const { return _error; } + + //! \returns the maximum amount that can currently be read from the stream + size_t buffer_size() const; + + //! \returns `true` if the buffer is empty + bool buffer_empty() const; + + //! \returns `true` if the output has reached the ending + bool eof() const; + //!@} + + //! \name General accounting + //!@{ + + //! Total number of bytes written + size_t bytes_written() const; + + //! Total number of bytes popped + size_t bytes_read() const; + //!@} +}; + +#endif // SPONGE_LIBSPONGE_BYTE_STREAM_HH diff --git a/libsponge/util/address.cc b/libsponge/util/address.cc new file mode 100644 index 0000000..7c2acd1 --- /dev/null +++ b/libsponge/util/address.cc @@ -0,0 +1,134 @@ +#include "address.hh" + +#include "util.hh" + +#include +#include +#include +#include +#include +#include + +using namespace std; + +//! Converts Raw to `sockaddr *`. +Address::Raw::operator sockaddr *() { return reinterpret_cast(&storage); } + +//! Converts Raw to `const sockaddr *`. +Address::Raw::operator const sockaddr *() const { return reinterpret_cast(&storage); } + +//! \param[in] addr points to a raw socket address +//! \param[in] size is `addr`'s length +Address::Address(const sockaddr *addr, const size_t size) : _size(size) { + // make sure proposed sockaddr can fit + if (size > sizeof(_address.storage)) { + throw runtime_error("invalid sockaddr size"); + } + + memcpy(&_address.storage, addr, size); +} + +//! Error category for getaddrinfo and getnameinfo failures. +class gai_error_category : public error_category { + public: + //! The name of the wrapped error + const char *name() const noexcept override { return "gai_error_category"; } + //! \brief An error message + //! \param[in] return_value the error return value from [getaddrinfo(3)](\ref man3::getaddrinfo) + //! or [getnameinfo(3)](\ref man3::getnameinfo) + string message(const int return_value) const noexcept override { return gai_strerror(return_value); } +}; + +//! \param[in] node is the hostname or dotted-quad address +//! \param[in] service is the service name or numeric string +//! \param[in] hints are criteria for resolving the supplied name +Address::Address(const string &node, const string &service, const addrinfo &hints) : _size() { + // prepare for the answer + addrinfo *resolved_address = nullptr; + + // look up the name or names + const int gai_ret = getaddrinfo(node.c_str(), service.c_str(), &hints, &resolved_address); + if (gai_ret != 0) { + throw tagged_error(gai_error_category(), "getaddrinfo(" + node + ", " + service + ")", gai_ret); + } + + // if success, should always have at least one entry + if (resolved_address == nullptr) { + throw runtime_error("getaddrinfo returned successfully but with no results"); + } + + // put resolved_address in a wrapper so it will get freed if we have to throw an exception + auto addrinfo_deleter = [](addrinfo *const x) { freeaddrinfo(x); }; + unique_ptr wrapped_address(resolved_address, move(addrinfo_deleter)); + + // assign to our private members (making sure size fits) + *this = Address(wrapped_address->ai_addr, wrapped_address->ai_addrlen); +} + +//! \brief Build a `struct addrinfo` containing hints for [getaddrinfo(3)](\ref man3::getaddrinfo) +//! \param[in] ai_flags is the value of the `ai_flags` field in the [struct addrinfo](\ref man3::getaddrinfo) +//! \param[in] ai_family is the value of the `ai_family` field in the [struct addrinfo](\ref man3::getaddrinfo) +static inline addrinfo make_hints(const int ai_flags, const int ai_family) { + addrinfo hints{}; // value initialized to all zeros + hints.ai_flags = ai_flags; + hints.ai_family = ai_family; + return hints; +} + +//! \param[in] hostname to resolve +//! \param[in] service name (from `/etc/services`, e.g., "http" is port 80) +Address::Address(const string &hostname, const string &service) + : Address(hostname, service, make_hints(AI_ALL, AF_INET)) {} + +//! \param[in] ip address as a dotted quad ("1.1.1.1") +//! \param[in] port number +Address::Address(const string &ip, const uint16_t port) + // tell getaddrinfo that we don't want to resolve anything + : Address(ip, ::to_string(port), make_hints(AI_NUMERICHOST | AI_NUMERICSERV, AF_INET)) {} + +// accessors +pair Address::ip_port() const { + array ip{}; + array port{}; + + const int gni_ret = + getnameinfo(_address, _size, ip.data(), ip.size(), port.data(), port.size(), NI_NUMERICHOST | NI_NUMERICSERV); + if (gni_ret != 0) { + throw tagged_error(gai_error_category(), "getnameinfo", gni_ret); + } + + return {ip.data(), stoi(port.data())}; +} + +string Address::to_string() const { + const auto ip_and_port = ip_port(); + return ip_and_port.first + ":" + ::to_string(ip_and_port.second); +} + +uint32_t Address::ipv4_numeric() const { + if (_address.storage.ss_family != AF_INET or _size != sizeof(sockaddr_in)) { + throw runtime_error("ipv4_numeric called on non-IPV4 address"); + } + + sockaddr_in ipv4_addr{}; + memcpy(&ipv4_addr, &_address.storage, _size); + + return be32toh(ipv4_addr.sin_addr.s_addr); +} + +Address Address::from_ipv4_numeric(const uint32_t ip_address) { + sockaddr_in ipv4_addr{}; + ipv4_addr.sin_family = AF_INET; + ipv4_addr.sin_addr.s_addr = htobe32(ip_address); + + return {reinterpret_cast(&ipv4_addr), sizeof(ipv4_addr)}; +} + +// equality +bool Address::operator==(const Address &other) const { + if (_size != other._size) { + return false; + } + + return 0 == memcmp(&_address, &other._address, _size); +} diff --git a/libsponge/util/address.hh b/libsponge/util/address.hh new file mode 100644 index 0000000..a9cfc33 --- /dev/null +++ b/libsponge/util/address.hh @@ -0,0 +1,85 @@ +#ifndef SPONGE_LIBSPONGE_ADDRESS_HH +#define SPONGE_LIBSPONGE_ADDRESS_HH + +#include +#include +#include +#include +#include +#include +#include + +//! Wrapper around [IPv4 addresses](@ref man7::ip) and DNS operations. +class Address { + public: + //! \brief Wrapper around [sockaddr_storage](@ref man7::socket). + //! \details A `sockaddr_storage` is enough space to store any socket address (IPv4 or IPv6). + class Raw { + public: + sockaddr_storage storage{}; //!< The wrapped struct itself. + operator sockaddr *(); + operator const sockaddr *() const; + }; + + private: + socklen_t _size; //!< Size of the wrapped address. + Raw _address{}; //!< A wrapped [sockaddr_storage](@ref man7::socket) containing the address. + + //! Constructor from ip/host, service/port, and hints to the resolver. + Address(const std::string &node, const std::string &service, const addrinfo &hints); + + public: + //! Construct by resolving a hostname and servicename. + Address(const std::string &hostname, const std::string &service); + + //! Construct from dotted-quad string ("18.243.0.1") and numeric port. + Address(const std::string &ip, const std::uint16_t port = 0); + + //! Construct from a [sockaddr *](@ref man7::socket). + Address(const sockaddr *addr, const std::size_t size); + + //! Equality comparison. + bool operator==(const Address &other) const; + bool operator!=(const Address &other) const { return not operator==(other); } + + //! \name Conversions + //!@{ + + //! Dotted-quad IP address string ("18.243.0.1") and numeric port. + std::pair ip_port() const; + //! Dotted-quad IP address string ("18.243.0.1"). + std::string ip() const { return ip_port().first; } + //! Numeric port (host byte order). + uint16_t port() const { return ip_port().second; } + //! Numeric IP address as an integer (i.e., in [host byte order](\ref man3::byteorder)). + uint32_t ipv4_numeric() const; + //! Create an Address from a 32-bit raw numeric IP address + static Address from_ipv4_numeric(const uint32_t ip_address); + //! Human-readable string, e.g., "8.8.8.8:53". + std::string to_string() const; + //!@} + + //! \name Low-level operations + //!@{ + + //! Size of the underlying address storage. + socklen_t size() const { return _size; } + //! Const pointer to the underlying socket address storage. + operator const sockaddr *() const { return _address; } + //!@} +}; + +//! \class Address +//! For example, you can do DNS lookups: +//! +//! \include address_example_1.cc +//! +//! or you can specify an IP address and port number: +//! +//! \include address_example_2.cc +//! +//! Once you have an address, you can convert it to other useful representations, e.g., +//! +//! \include address_example_3.cc + +#endif // SPONGE_LIBSPONGE_ADDRESS_HH diff --git a/libsponge/util/buffer.cc b/libsponge/util/buffer.cc new file mode 100644 index 0000000..dd08f4a --- /dev/null +++ b/libsponge/util/buffer.cc @@ -0,0 +1,104 @@ +#include "buffer.hh" + +using namespace std; + +void Buffer::remove_prefix(const size_t n) { + if (n > str().size()) { + throw out_of_range("Buffer::remove_prefix"); + } + _starting_offset += n; + if (_storage and _starting_offset == _storage->size()) { + _storage.reset(); + } +} + +void BufferList::append(const BufferList &other) { + for (const auto &buf : other._buffers) { + _buffers.push_back(buf); + } +} + +BufferList::operator Buffer() const { + switch (_buffers.size()) { + case 0: + return {}; + case 1: + return _buffers[0]; + default: { + throw runtime_error( + "BufferList: please use concatenate() to combine a multi-Buffer BufferList into one Buffer"); + } + } +} + +string BufferList::concatenate() const { + std::string ret; + ret.reserve(size()); + for (const auto &buf : _buffers) { + ret.append(buf); + } + return ret; +} + +size_t BufferList::size() const { + size_t ret = 0; + for (const auto &buf : _buffers) { + ret += buf.size(); + } + return ret; +} + +void BufferList::remove_prefix(size_t n) { + while (n > 0) { + if (_buffers.empty()) { + throw std::out_of_range("BufferList::remove_prefix"); + } + + if (n < _buffers.front().str().size()) { + _buffers.front().remove_prefix(n); + n = 0; + } else { + n -= _buffers.front().str().size(); + _buffers.pop_front(); + } + } +} + +BufferViewList::BufferViewList(const BufferList &buffers) { + for (const auto &x : buffers.buffers()) { + _views.push_back(x); + } +} + +void BufferViewList::remove_prefix(size_t n) { + while (n > 0) { + if (_views.empty()) { + throw std::out_of_range("BufferListView::remove_prefix"); + } + + if (n < _views.front().size()) { + _views.front().remove_prefix(n); + n = 0; + } else { + n -= _views.front().size(); + _views.pop_front(); + } + } +} + +size_t BufferViewList::size() const { + size_t ret = 0; + for (const auto &buf : _views) { + ret += buf.size(); + } + return ret; +} + +vector BufferViewList::as_iovecs() const { + vector ret; + ret.reserve(_views.size()); + for (const auto &x : _views) { + ret.push_back({const_cast(x.data()), x.size()}); + } + return ret; +} diff --git a/libsponge/util/buffer.hh b/libsponge/util/buffer.hh new file mode 100644 index 0000000..22bed85 --- /dev/null +++ b/libsponge/util/buffer.hh @@ -0,0 +1,130 @@ +#ifndef SPONGE_LIBSPONGE_BUFFER_HH +#define SPONGE_LIBSPONGE_BUFFER_HH + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//! \brief A reference-counted read-only string that can discard bytes from the front +class Buffer { + private: + std::shared_ptr _storage{}; + size_t _starting_offset{}; + + public: + Buffer() = default; + + //! \brief Construct by taking ownership of a string + Buffer(std::string &&str) noexcept : _storage(std::make_shared(std::move(str))) {} + + //! \name Expose contents as a std::string_view + //!@{ + std::string_view str() const { + if (not _storage) { + return {}; + } + return {_storage->data() + _starting_offset, _storage->size() - _starting_offset}; + } + + operator std::string_view() const { return str(); } + //!@} + + //! \brief Get character at location `n` + uint8_t at(const size_t n) const { return str().at(n); } + + //! \brief Size of the string + size_t size() const { return str().size(); } + + //! \brief Make a copy to a new std::string + std::string copy() const { return std::string(str()); } + + //! \brief Discard the first `n` bytes of the string (does not require a copy or move) + //! \note Doesn't free any memory until the whole string has been discarded in all copies of the Buffer. + void remove_prefix(const size_t n); +}; + +//! \brief A reference-counted discontiguous string that can discard bytes from the front +//! \note Used to model packets that contain multiple sets of headers +//! + a payload. This allows us to prepend headers (e.g., to +//! encapsulate a TCP payload in a TCPSegment, and then encapsulate +//! the TCPSegment in an IPv4Datagram) without copying the payload. +class BufferList { + private: + std::deque _buffers{}; + + public: + //! \name Constructors + //!@{ + + BufferList() = default; + + //! \brief Construct from a Buffer + BufferList(Buffer buffer) : _buffers{buffer} {} + + //! \brief Construct by taking ownership of a std::string + BufferList(std::string &&str) noexcept { + Buffer buf{std::move(str)}; + append(buf); + } + //!@} + + //! \brief Access the underlying queue of Buffers + const std::deque &buffers() const { return _buffers; } + + //! \brief Append a BufferList + void append(const BufferList &other); + + //! \brief Transform to a Buffer + //! \note Throws an exception unless BufferList is contiguous + operator Buffer() const; + + //! \brief Discard the first `n` bytes of the string (does not require a copy or move) + void remove_prefix(size_t n); + + //! \brief Size of the string + size_t size() const; + + //! \brief Make a copy to a new std::string + std::string concatenate() const; +}; + +//! \brief A non-owning temporary view (similar to std::string_view) of a discontiguous string +class BufferViewList { + std::deque _views{}; + + public: + //! \name Constructors + //!@{ + + //! \brief Construct from a std::string + BufferViewList(const std::string &str) : BufferViewList(std::string_view(str)) {} + + //! \brief Construct from a C string (must be NULL-terminated) + BufferViewList(const char *s) : BufferViewList(std::string_view(s)) {} + + //! \brief Construct from a BufferList + BufferViewList(const BufferList &buffers); + + //! \brief Construct from a std::string_view + BufferViewList(std::string_view str) { _views.push_back({const_cast(str.data()), str.size()}); } + //!@} + + //! \brief Discard the first `n` bytes of the string (does not require a copy or move) + void remove_prefix(size_t n); + + //! \brief Size of the string + size_t size() const; + + //! \brief Convert to a vector of `iovec` structures + //! \note used for system calls that write discontiguous buffers, + //! e.g. [writev(2)](\ref man2::writev) and [sendmsg(2)](\ref man2::sendmsg) + std::vector as_iovecs() const; +}; + +#endif // SPONGE_LIBSPONGE_BUFFER_HH diff --git a/libsponge/util/eventloop.cc b/libsponge/util/eventloop.cc new file mode 100644 index 0000000..befb0c4 --- /dev/null +++ b/libsponge/util/eventloop.cc @@ -0,0 +1,145 @@ +#include "eventloop.hh" + +#include "util.hh" + +#include +#include +#include +#include +#include + +using namespace std; + +unsigned int EventLoop::Rule::service_count() const { + return direction == Direction::In ? fd.read_count() : fd.write_count(); +} + +//! \param[in] fd is the FileDescriptor to be polled +//! \param[in] direction indicates whether to poll for reading (Direction::In) or writing (Direction::Out) +//! \param[in] callback is called when `fd` is ready. +//! \param[in] interest is called by EventLoop::wait_next_event. If it returns `true`, `fd` will +//! be polled, otherwise `fd` will be ignored only for this execution of `wait_next_event. +//! \param[in] cancel is called when the rule is cancelled (e.g. on hangup, EOF, or closure). +void EventLoop::add_rule(const FileDescriptor &fd, + const Direction direction, + const CallbackT &callback, + const InterestT &interest, + const CallbackT &cancel) { + _rules.push_back({fd.duplicate(), direction, callback, interest, cancel}); +} + +//! \param[in] timeout_ms is the timeout value passed to [poll(2)](\ref man2::poll); `wait_next_event` +//! returns Result::Timeout if no fd is ready after the timeout expires. +//! \returns Eventloop::Result indicating success, timeout, or no more Rule objects to poll. +//! +//! For each Rule, this function first calls Rule::interest; if `true`, Rule::fd is added to the +//! list of file descriptors to be polled for readability (if Rule::direction == Direction::In) or +//! writability (if Rule::direction == Direction::Out) unless Rule::fd has reached EOF, in which case +//! the Rule is canceled (i.e., deleted from EventLoop::_rules). +//! +//! Next, this function calls [poll(2)](\ref man2::poll) with timeout value `timeout_ms`. +//! +//! Then, for each ready file descriptor, this function calls Rule::callback. If fd reaches EOF or +//! if the Rule was registered using EventLoop::add_cancelable_rule and Rule::callback returns true, +//! this Rule is canceled. +//! +//! If an error occurs during polling, this function throws a std::runtime_error. +//! +//! If a [signal(7)](\ref man7::signal) was caught during polling or if EventLoop::_rules becomes empty, +//! this function returns Result::Exit. +//! +//! If a timeout occurred while polling (i.e., no fd became ready), this function returns Result::Timeout. +//! +//! Otherwise, this function returns Result::Success. +//! +//! \b IMPORTANT: every call to Rule::callback must read from or write to Rule::fd, or the `interest` +//! callback must stop returning true after the callback completes. +//! If none of these conditions occur, EventLoop::wait_next_event will throw std::runtime_error. This is +//! because [poll(2)](\ref man2::poll) is level triggered, so failing to act on a ready file descriptor +//! will result in a busy loop (poll returns on a ready file descriptor; file descriptor is not read or +//! written, so it is still ready; the next call to poll will immediately return). +EventLoop::Result EventLoop::wait_next_event(const int timeout_ms) { + vector pollfds{}; + pollfds.reserve(_rules.size()); + bool something_to_poll = false; + + // set up the pollfd for each rule + for (auto it = _rules.cbegin(); it != _rules.cend();) { // NOTE: it gets erased or incremented in loop body + const auto &this_rule = *it; + if (this_rule.direction == Direction::In && this_rule.fd.eof()) { + // no more reading on this rule, it's reached eof + this_rule.cancel(); + it = _rules.erase(it); + continue; + } + + if (this_rule.fd.closed()) { + this_rule.cancel(); + it = _rules.erase(it); + continue; + } + + if (this_rule.interest()) { + pollfds.push_back({this_rule.fd.fd_num(), static_cast(this_rule.direction), 0}); + something_to_poll = true; + } else { + pollfds.push_back({this_rule.fd.fd_num(), 0, 0}); // placeholder --- we still want errors + } + ++it; + } + + // quit if there is nothing left to poll + if (not something_to_poll) { + return Result::Exit; + } + + // call poll -- wait until one of the fds satisfies one of the rules (writeable/readable) + try { + if (0 == SystemCall("poll", ::poll(pollfds.data(), pollfds.size(), timeout_ms))) { + return Result::Timeout; + } + } catch (unix_error const &e) { + if (e.code().value() == EINTR) { + return Result::Exit; + } + } + + // go through the poll results + + for (auto [it, idx] = make_pair(_rules.begin(), size_t(0)); it != _rules.end(); ++idx) { + const auto &this_pollfd = pollfds[idx]; + + const auto poll_error = static_cast(this_pollfd.revents & (POLLERR | POLLNVAL)); + if (poll_error) { + throw runtime_error("EventLoop: error on polled file descriptor"); + } + + const auto &this_rule = *it; + const auto poll_ready = static_cast(this_pollfd.revents & this_pollfd.events); + const auto poll_hup = static_cast(this_pollfd.revents & POLLHUP); + if (poll_hup && this_pollfd.events && !poll_ready) { + // if we asked for the status, and the _only_ condition was a hangup, this FD is defunct: + // - if it was POLLIN and nothing is readable, no more will ever be readable + // - if it was POLLOUT, it will not be writable again + this_rule.cancel(); + it = _rules.erase(it); + continue; + } + + if (poll_ready) { + // we only want to call callback if revents includes the event we asked for + const auto count_before = this_rule.service_count(); + this_rule.callback(); + + // only check for busy wait if we're not canceling or exiting + if (count_before == this_rule.service_count() and this_rule.interest()) { + throw runtime_error( + "EventLoop: busy wait detected: callback did not read/write fd and is still interested"); + } + } + + ++it; // if we got here, it means we didn't call _rules.erase() + } + + return Result::Success; +} diff --git a/libsponge/util/eventloop.hh b/libsponge/util/eventloop.hh new file mode 100644 index 0000000..0ca0216 --- /dev/null +++ b/libsponge/util/eventloop.hh @@ -0,0 +1,76 @@ +#ifndef SPONGE_LIBSPONGE_EVENTLOOP_HH +#define SPONGE_LIBSPONGE_EVENTLOOP_HH + +#include "file_descriptor.hh" + +#include +#include +#include +#include + +//! Waits for events on file descriptors and executes corresponding callbacks. +class EventLoop { + public: + //! Indicates interest in reading (In) or writing (Out) a polled fd. + enum class Direction : short { + In = POLLIN, //!< Callback will be triggered when Rule::fd is readable. + Out = POLLOUT //!< Callback will be triggered when Rule::fd is writable. + }; + + private: + using CallbackT = std::function; //!< Callback for ready Rule::fd + using InterestT = std::function; //!< `true` return indicates Rule::fd should be polled. + + //! \brief Specifies a condition and callback that an EventLoop should handle. + //! \details Created by calling EventLoop::add_rule() or EventLoop::add_cancelable_rule(). + class Rule { + public: + FileDescriptor fd; //!< FileDescriptor to monitor for activity. + Direction direction; //!< Direction::In for reading from fd, Direction::Out for writing to fd. + CallbackT callback; //!< A callback that reads or writes fd. + InterestT interest; //!< A callback that returns `true` whenever fd should be polled. + CallbackT cancel; //!< A callback that is called when the rule is cancelled (e.g. on hangup) + + //! Returns the number of times fd has been read or written, depending on the value of Rule::direction. + //! \details This function is used internally by EventLoop; you will not need to call it + unsigned int service_count() const; + }; + + std::list _rules{}; //!< All rules that have been added and not canceled. + + public: + //! Returned by each call to EventLoop::wait_next_event. + enum class Result { + Success, //!< At least one Rule was triggered. + Timeout, //!< No rules were triggered before timeout. + Exit //!< All rules have been canceled or were uninterested; make no further calls to EventLoop::wait_next_event. + }; + + //! Add a rule whose callback will be called when `fd` is ready in the specified Direction. + void add_rule(const FileDescriptor &fd, + const Direction direction, + const CallbackT &callback, + const InterestT &interest = [] { return true; }, + const CallbackT &cancel = [] {}); + + //! Calls [poll(2)](\ref man2::poll) and then executes callback for each ready fd. + Result wait_next_event(const int timeout_ms); +}; + +using Direction = EventLoop::Direction; + +//! \class EventLoop +//! +//! An EventLoop holds a std::list of Rule objects. Each time EventLoop::wait_next_event is +//! executed, the EventLoop uses the Rule objects to construct a call to [poll(2)](\ref man2::poll). +//! +//! When a Rule is installed using EventLoop::add_rule, it will be polled for the specified Rule::direction +//! whenver the Rule::interest callback returns `true`, until Rule::fd is no longer readable +//! (for Rule::direction == Direction::In) or writable (for Rule::direction == Direction::Out). +//! Once this occurs, the Rule is canceled, i.e., the EventLoop deletes it. +//! +//! A Rule installed using EventLoop::add_cancelable_rule will be polled and canceled under the +//! same conditions, with the additional condition that if Rule::callback returns `true`, the +//! Rule will be canceled. + +#endif // SPONGE_LIBSPONGE_EVENTLOOP_HH diff --git a/libsponge/util/file_descriptor.cc b/libsponge/util/file_descriptor.cc new file mode 100644 index 0000000..1968894 --- /dev/null +++ b/libsponge/util/file_descriptor.cc @@ -0,0 +1,110 @@ +#include "file_descriptor.hh" + +#include "util.hh" + +#include +#include +#include +#include +#include +#include + +using namespace std; + +//! \param[in] fd is the file descriptor number returned by [open(2)](\ref man2::open) or similar +FileDescriptor::FDWrapper::FDWrapper(const int fd) : _fd(fd) { + if (fd < 0) { + throw runtime_error("invalid fd number:" + to_string(fd)); + } +} + +void FileDescriptor::FDWrapper::close() { + SystemCall("close", ::close(_fd)); + _eof = _closed = true; +} + +FileDescriptor::FDWrapper::~FDWrapper() { + try { + if (_closed) { + return; + } + close(); + } catch (const exception &e) { + // don't throw an exception from the destructor + std::cerr << "Exception destructing FDWrapper: " << e.what() << std::endl; + } +} + +//! \param[in] fd is the file descriptor number returned by [open(2)](\ref man2::open) or similar +FileDescriptor::FileDescriptor(const int fd) : _internal_fd(make_shared(fd)) {} + +//! Private constructor used by duplicate() +FileDescriptor::FileDescriptor(shared_ptr other_shared_ptr) : _internal_fd(move(other_shared_ptr)) {} + +//! \returns a copy of this FileDescriptor +FileDescriptor FileDescriptor::duplicate() const { return FileDescriptor(_internal_fd); } + +//! \param[in] limit is the maximum number of bytes to read; fewer bytes may be returned +//! \param[out] str is the string to be read +void FileDescriptor::read(std::string &str, const size_t limit) { + constexpr size_t BUFFER_SIZE = 1024 * 1024; // maximum size of a read + const size_t size_to_read = min(BUFFER_SIZE, limit); + str.resize(size_to_read); + + ssize_t bytes_read = SystemCall("read", ::read(fd_num(), str.data(), size_to_read)); + if (limit > 0 && bytes_read == 0) { + _internal_fd->_eof = true; + } + if (bytes_read > static_cast(size_to_read)) { + throw runtime_error("read() read more than requested"); + } + str.resize(bytes_read); + + register_read(); +} + +//! \param[in] limit is the maximum number of bytes to read; fewer bytes may be returned +//! \returns a vector of bytes read +string FileDescriptor::read(const size_t limit) { + string ret; + + read(ret, limit); + + return ret; +} + +size_t FileDescriptor::write(BufferViewList buffer, const bool write_all) { + size_t total_bytes_written = 0; + + do { + auto iovecs = buffer.as_iovecs(); + + const ssize_t bytes_written = SystemCall("writev", ::writev(fd_num(), iovecs.data(), iovecs.size())); + if (bytes_written == 0 and buffer.size() != 0) { + throw runtime_error("write returned 0 given non-empty input buffer"); + } + + if (bytes_written > ssize_t(buffer.size())) { + throw runtime_error("write wrote more than length of input buffer"); + } + + register_write(); + + buffer.remove_prefix(bytes_written); + + total_bytes_written += bytes_written; + } while (write_all and buffer.size()); + + return total_bytes_written; +} + +void FileDescriptor::set_blocking(const bool blocking_state) { + int flags = SystemCall("fcntl", fcntl(fd_num(), F_GETFL)); + if (blocking_state) { + flags ^= (flags & O_NONBLOCK); + } else { + flags |= O_NONBLOCK; + } + + SystemCall("fcntl", fcntl(fd_num(), F_SETFL, flags)); +} diff --git a/libsponge/util/file_descriptor.hh b/libsponge/util/file_descriptor.hh new file mode 100644 index 0000000..757c4b4 --- /dev/null +++ b/libsponge/util/file_descriptor.hh @@ -0,0 +1,117 @@ +#ifndef SPONGE_LIBSPONGE_FILE_DESCRIPTOR_HH +#define SPONGE_LIBSPONGE_FILE_DESCRIPTOR_HH + +#include "buffer.hh" + +#include +#include +#include +#include + +//! A reference-counted handle to a file descriptor +class FileDescriptor { + //! \brief A handle on a kernel file descriptor. + //! \details FileDescriptor objects contain a std::shared_ptr to a FDWrapper. + class FDWrapper { + public: + int _fd; //!< The file descriptor number returned by the kernel + bool _eof = false; //!< Flag indicating whether FDWrapper::_fd is at EOF + bool _closed = false; //!< Flag indicating whether FDWrapper::_fd has been closed + unsigned _read_count = 0; //!< The number of times FDWrapper::_fd has been read + unsigned _write_count = 0; //!< The numberof times FDWrapper::_fd has been written + + //! Construct from a file descriptor number returned by the kernel + explicit FDWrapper(const int fd); + //! Closes the file descriptor upon destruction + ~FDWrapper(); + //! Calls [close(2)](\ref man2::close) on FDWrapper::_fd + void close(); + + //! \name + //! An FDWrapper cannot be copied or moved + + //!@{ + FDWrapper(const FDWrapper &other) = delete; + FDWrapper &operator=(const FDWrapper &other) = delete; + FDWrapper(FDWrapper &&other) = delete; + FDWrapper &operator=(FDWrapper &&other) = delete; + //!@} + }; + + //! A reference-counted handle to a shared FDWrapper + std::shared_ptr _internal_fd; + + // private constructor used to duplicate the FileDescriptor (increase the reference count) + explicit FileDescriptor(std::shared_ptr other_shared_ptr); + + protected: + void register_read() { ++_internal_fd->_read_count; } //!< increment read count + void register_write() { ++_internal_fd->_write_count; } //!< increment write count + + public: + //! Construct from a file descriptor number returned by the kernel + explicit FileDescriptor(const int fd); + + //! Free the std::shared_ptr; the FDWrapper destructor calls close() when the refcount goes to zero. + ~FileDescriptor() = default; + + //! Read up to `limit` bytes + std::string read(const size_t limit = std::numeric_limits::max()); + + //! Read up to `limit` bytes into `str` (caller can allocate storage) + void read(std::string &str, const size_t limit = std::numeric_limits::max()); + + //! Write a string, possibly blocking until all is written + size_t write(const char *str, const bool write_all = true) { return write(BufferViewList(str), write_all); } + + //! Write a string, possibly blocking until all is written + size_t write(const std::string &str, const bool write_all = true) { return write(BufferViewList(str), write_all); } + + //! Write a buffer (or list of buffers), possibly blocking until all is written + size_t write(BufferViewList buffer, const bool write_all = true); + + //! Close the underlying file descriptor + void close() { _internal_fd->close(); } + + //! Copy a FileDescriptor explicitly, increasing the FDWrapper refcount + FileDescriptor duplicate() const; + + //! Set blocking(true) or non-blocking(false) + void set_blocking(const bool blocking_state); + + //! \name FDWrapper accessors + //!@{ + + //! underlying descriptor number + int fd_num() const { return _internal_fd->_fd; } + + //! EOF flag state + bool eof() const { return _internal_fd->_eof; } + + //! closed flag state + bool closed() const { return _internal_fd->_closed; } + + //! number of reads + unsigned int read_count() const { return _internal_fd->_read_count; } + + //! number of writes + unsigned int write_count() const { return _internal_fd->_write_count; } + //!@} + + //! \name Copy/move constructor/assignment operators + //! FileDescriptor can be moved, but cannot be copied (but see duplicate()) + //!@{ + FileDescriptor(const FileDescriptor &other) = delete; //!< \brief copy construction is forbidden + FileDescriptor &operator=(const FileDescriptor &other) = delete; //!< \brief copy assignment is forbidden + FileDescriptor(FileDescriptor &&other) = default; //!< \brief move construction is allowed + FileDescriptor &operator=(FileDescriptor &&other) = default; //!< \brief move assignment is allowed + //!@} +}; + +//! \class FileDescriptor +//! In addition, FileDescriptor tracks EOF state and calls to FileDescriptor::read and +//! FileDescriptor::write, which EventLoop uses to detect busy loop conditions. +//! +//! For an example of FileDescriptor use, see the EventLoop class documentation. + +#endif // SPONGE_LIBSPONGE_FILE_DESCRIPTOR_HH diff --git a/libsponge/util/parser.cc b/libsponge/util/parser.cc new file mode 100644 index 0000000..fd16b6f --- /dev/null +++ b/libsponge/util/parser.cc @@ -0,0 +1,72 @@ +#include "parser.hh" + +using namespace std; + +//! \param[in] r is the ParseResult to show +//! \returns a string representation of the ParseResult +string as_string(const ParseResult r) { + static constexpr const char *_names[] = { + "NoError", + "BadChecksum", + "PacketTooShort", + "WrongIPVersion", + "HeaderTooShort", + "TruncatedPacket", + }; + + return _names[static_cast(r)]; +} + +void NetParser::_check_size(const size_t size) { + if (size > _buffer.size()) { + set_error(ParseResult::PacketTooShort); + } +} + +template +T NetParser::_parse_int() { + constexpr size_t len = sizeof(T); + _check_size(len); + if (error()) { + return 0; + } + + T ret = 0; + for (size_t i = 0; i < len; i++) { + ret <<= 8; + ret += uint8_t(_buffer.at(i)); + } + + _buffer.remove_prefix(len); + + return ret; +} + +void NetParser::remove_prefix(const size_t n) { + _check_size(n); + if (error()) { + return; + } + _buffer.remove_prefix(n); +} + +template +void NetUnparser::_unparse_int(string &s, T val) { + constexpr size_t len = sizeof(T); + for (size_t i = 0; i < len; ++i) { + const uint8_t the_byte = (val >> ((len - i - 1) * 8)) & 0xff; + s.push_back(the_byte); + } +} + +uint32_t NetParser::u32() { return _parse_int(); } + +uint16_t NetParser::u16() { return _parse_int(); } + +uint8_t NetParser::u8() { return _parse_int(); } + +void NetUnparser::u32(string &s, const uint32_t val) { return _unparse_int(s, val); } + +void NetUnparser::u16(string &s, const uint16_t val) { return _unparse_int(s, val); } + +void NetUnparser::u8(string &s, const uint8_t val) { return _unparse_int(s, val); } diff --git a/libsponge/util/parser.hh b/libsponge/util/parser.hh new file mode 100644 index 0000000..0a8393b --- /dev/null +++ b/libsponge/util/parser.hh @@ -0,0 +1,79 @@ +#ifndef SPONGE_LIBSPONGE_PARSER_HH +#define SPONGE_LIBSPONGE_PARSER_HH + +#include "buffer.hh" + +#include +#include +#include +#include + +//! The result of parsing or unparsing an IP datagram, TCP segment, Ethernet frame, or ARP message +enum class ParseResult { + NoError = 0, //!< Success + BadChecksum, //!< Bad checksum + PacketTooShort, //!< Not enough data to finish parsing + WrongIPVersion, //!< Got a version of IP other than 4 + HeaderTooShort, //!< Header length is shorter than minimum required + TruncatedPacket, //!< Packet length is shorter than header claims + Unsupported //!< Packet uses unsupported features +}; + +//! Output a string representation of a ParseResult +std::string as_string(const ParseResult r); + +class NetParser { + private: + Buffer _buffer; + ParseResult _error = ParseResult::NoError; //!< Result of parsing so far + + //! Check that there is sufficient data to parse the next token + void _check_size(const size_t size); + + //! Generic integer parsing method (used by u32, u16, u8) + template + T _parse_int(); + + public: + NetParser(Buffer buffer) : _buffer(buffer) {} + + Buffer buffer() const { return _buffer; } + + //! Get the current value stored in BaseParser::_error + ParseResult get_error() const { return _error; } + + //! \brief Set BaseParser::_error + //! \param[in] res is the value to store in BaseParser::_error + void set_error(ParseResult res) { _error = res; } + + //! Returns `true` if there has been an error + bool error() const { return get_error() != ParseResult::NoError; } + + //! Parse a 32-bit integer in network byte order from the data stream + uint32_t u32(); + + //! Parse a 16-bit integer in network byte order from the data stream + uint16_t u16(); + + //! Parse an 8-bit integer in network byte order from the data stream + uint8_t u8(); + + //! Remove n bytes from the buffer + void remove_prefix(const size_t n); +}; + +struct NetUnparser { + template + static void _unparse_int(std::string &s, T val); + + //! Write a 32-bit integer into the data stream in network byte order + static void u32(std::string &s, const uint32_t val); + + //! Write a 16-bit integer into the data stream in network byte order + static void u16(std::string &s, const uint16_t val); + + //! Write an 8-bit integer into the data stream in network byte order + static void u8(std::string &s, const uint8_t val); +}; + +#endif // SPONGE_LIBSPONGE_PARSER_HH diff --git a/libsponge/util/socket.cc b/libsponge/util/socket.cc new file mode 100644 index 0000000..9c25ea5 --- /dev/null +++ b/libsponge/util/socket.cc @@ -0,0 +1,168 @@ +#include "socket.hh" + +#include "util.hh" + +#include +#include +#include + +using namespace std; + +// default constructor for socket of (subclassed) domain and type +//! \param[in] domain is as described in [socket(7)](\ref man7::socket), probably `AF_INET` or `AF_UNIX` +//! \param[in] type is as described in [socket(7)](\ref man7::socket) +Socket::Socket(const int domain, const int type) : FileDescriptor(SystemCall("socket", socket(domain, type, 0))) {} + +// construct from file descriptor +//! \param[in] fd is the FileDescriptor from which to construct +//! \param[in] domain is `fd`'s domain; throws std::runtime_error if wrong value is supplied +//! \param[in] type is `fd`'s type; throws std::runtime_error if wrong value is supplied +Socket::Socket(FileDescriptor &&fd, const int domain, const int type) : FileDescriptor(move(fd)) { + int actual_value; + socklen_t len; + + // verify domain + len = sizeof(actual_value); + SystemCall("getsockopt", getsockopt(fd_num(), SOL_SOCKET, SO_DOMAIN, &actual_value, &len)); + if ((len != sizeof(actual_value)) or (actual_value != domain)) { + throw runtime_error("socket domain mismatch"); + } + + // verify type + len = sizeof(actual_value); + SystemCall("getsockopt", getsockopt(fd_num(), SOL_SOCKET, SO_TYPE, &actual_value, &len)); + if ((len != sizeof(actual_value)) or (actual_value != type)) { + throw runtime_error("socket type mismatch"); + } +} + +// get the local or peer address the socket is connected to +//! \param[in] name_of_function is the function to call (string passed to SystemCall()) +//! \param[in] function is a pointer to the function +//! \returns the requested Address +Address Socket::get_address(const string &name_of_function, + const function &function) const { + Address::Raw address; + socklen_t size = sizeof(address); + + SystemCall(name_of_function, function(fd_num(), address, &size)); + + return {address, size}; +} + +//! \returns the local Address of the socket +Address Socket::local_address() const { return get_address("getsockname", getsockname); } + +//! \returns the socket's peer's Address +Address Socket::peer_address() const { return get_address("getpeername", getpeername); } + +// bind socket to a specified local address (usually to listen/accept) +//! \param[in] address is a local Address to bind +void Socket::bind(const Address &address) { SystemCall("bind", ::bind(fd_num(), address, address.size())); } + +// connect socket to a specified peer address +//! \param[in] address is the peer's Address +void Socket::connect(const Address &address) { SystemCall("connect", ::connect(fd_num(), address, address.size())); } + +// shut down a socket in the specified way +//! \param[in] how can be `SHUT_RD`, `SHUT_WR`, or `SHUT_RDWR`; see [shutdown(2)](\ref man2::shutdown) +void Socket::shutdown(const int how) { + SystemCall("shutdown", ::shutdown(fd_num(), how)); + switch (how) { + case SHUT_RD: + register_read(); + break; + case SHUT_WR: + register_write(); + break; + case SHUT_RDWR: + register_read(); + register_write(); + break; + default: + throw runtime_error("Socket::shutdown() called with invalid `how`"); + } +} + +//! \note If `mtu` is too small to hold the received datagram, this method throws a std::runtime_error +void UDPSocket::recv(received_datagram &datagram, const size_t mtu) { + // receive source address and payload + Address::Raw datagram_source_address; + datagram.payload.resize(mtu); + + socklen_t fromlen = sizeof(datagram_source_address); + + const ssize_t recv_len = SystemCall( + "recvfrom", + ::recvfrom( + fd_num(), datagram.payload.data(), datagram.payload.size(), MSG_TRUNC, datagram_source_address, &fromlen)); + + if (recv_len > ssize_t(mtu)) { + throw runtime_error("recvfrom (oversized datagram)"); + } + + register_read(); + datagram.source_address = {datagram_source_address, fromlen}; + datagram.payload.resize(recv_len); +} + +UDPSocket::received_datagram UDPSocket::recv(const size_t mtu) { + received_datagram ret{{nullptr, 0}, ""}; + recv(ret, mtu); + return ret; +} + +void sendmsg_helper(const int fd_num, + const sockaddr *destination_address, + const socklen_t destination_address_len, + const BufferViewList &payload) { + auto iovecs = payload.as_iovecs(); + + msghdr message{}; + message.msg_name = const_cast(destination_address); + message.msg_namelen = destination_address_len; + message.msg_iov = iovecs.data(); + message.msg_iovlen = iovecs.size(); + + const ssize_t bytes_sent = SystemCall("sendmsg", ::sendmsg(fd_num, &message, 0)); + + if (size_t(bytes_sent) != payload.size()) { + throw runtime_error("datagram payload too big for sendmsg()"); + } +} + +void UDPSocket::sendto(const Address &destination, const BufferViewList &payload) { + sendmsg_helper(fd_num(), destination, destination.size(), payload); + register_write(); +} + +void UDPSocket::send(const BufferViewList &payload) { + sendmsg_helper(fd_num(), nullptr, 0, payload); + register_write(); +} + +// mark the socket as listening for incoming connections +//! \param[in] backlog is the number of waiting connections to queue (see [listen(2)](\ref man2::listen)) +void TCPSocket::listen(const int backlog) { SystemCall("listen", ::listen(fd_num(), backlog)); } + +// accept a new incoming connection +//! \returns a new TCPSocket connected to the peer. +//! \note This function blocks until a new connection is available +TCPSocket TCPSocket::accept() { + register_read(); + return TCPSocket(FileDescriptor(SystemCall("accept", ::accept(fd_num(), nullptr, nullptr)))); +} + +// set socket option +//! \param[in] level The protocol level at which the argument resides +//! \param[in] option A single option to set +//! \param[in] option_value The value to set +//! \details See [setsockopt(2)](\ref man2::setsockopt) for details. +template +void Socket::setsockopt(const int level, const int option, const option_type &option_value) { + SystemCall("setsockopt", ::setsockopt(fd_num(), level, option, &option_value, sizeof(option_value))); +} + +// allow local address to be reused sooner, at the cost of some robustness +//! \note Using `SO_REUSEADDR` may reduce the robustness of your application +void Socket::set_reuseaddr() { setsockopt(SOL_SOCKET, SO_REUSEADDR, int(true)); } diff --git a/libsponge/util/socket.hh b/libsponge/util/socket.hh new file mode 100644 index 0000000..68ada2a --- /dev/null +++ b/libsponge/util/socket.hh @@ -0,0 +1,124 @@ +#ifndef SPONGE_LIBSPONGE_SOCKET_HH +#define SPONGE_LIBSPONGE_SOCKET_HH + +#include "address.hh" +#include "file_descriptor.hh" + +#include +#include +#include +#include + +//! \brief Base class for network sockets (TCP, UDP, etc.) +//! \details Socket is generally used via a subclass. See TCPSocket and UDPSocket for usage examples. +class Socket : public FileDescriptor { + private: + //! Get the local or peer address the socket is connected to + Address get_address(const std::string &name_of_function, + const std::function &function) const; + + protected: + //! Construct via [socket(2)](\ref man2::socket) + Socket(const int domain, const int type); + + //! Construct from a file descriptor. + Socket(FileDescriptor &&fd, const int domain, const int type); + + //! Wrapper around [setsockopt(2)](\ref man2::setsockopt) + template + void setsockopt(const int level, const int option, const option_type &option_value); + + public: + //! Bind a socket to a specified address with [bind(2)](\ref man2::bind), usually for listen/accept + void bind(const Address &address); + + //! Connect a socket to a specified peer address with [connect(2)](\ref man2::connect) + void connect(const Address &address); + + //! Shut down a socket via [shutdown(2)](\ref man2::shutdown) + void shutdown(const int how); + + //! Get local address of socket with [getsockname(2)](\ref man2::getsockname) + Address local_address() const; + //! Get peer address of socket with [getpeername(2)](\ref man2::getpeername) + Address peer_address() const; + + //! Allow local address to be reused sooner via [SO_REUSEADDR](\ref man7::socket) + void set_reuseaddr(); +}; + +//! A wrapper around [UDP sockets](\ref man7::udp) +class UDPSocket : public Socket { + protected: + //! \brief Construct from FileDescriptor (used by TCPOverUDPSocketAdapter) + //! \param[in] fd is the FileDescriptor from which to construct + explicit UDPSocket(FileDescriptor &&fd) : Socket(std::move(fd), AF_INET, SOCK_DGRAM) {} + + public: + //! Default: construct an unbound, unconnected UDP socket + UDPSocket() : Socket(AF_INET, SOCK_DGRAM) {} + + //! Returned by UDPSocket::recv; carries received data and information about the sender + struct received_datagram { + Address source_address; //!< Address from which this datagram was received + std::string payload; //!< UDP datagram payload + }; + + //! Receive a datagram and the Address of its sender + received_datagram recv(const size_t mtu = 65536); + + //! Receive a datagram and the Address of its sender (caller can allocate storage) + void recv(received_datagram &datagram, const size_t mtu = 65536); + + //! Send a datagram to specified Address + void sendto(const Address &destination, const BufferViewList &payload); + + //! Send datagram to the socket's connected address (must call connect() first) + void send(const BufferViewList &payload); +}; + +//! \class UDPSocket +//! Functions in this class are essentially wrappers over their POSIX eponyms. +//! +//! Example: +//! +//! \include socket_example_1.cc + +//! A wrapper around [TCP sockets](\ref man7::tcp) +class TCPSocket : public Socket { + private: + //! \brief Construct from FileDescriptor (used by accept()) + //! \param[in] fd is the FileDescriptor from which to construct + explicit TCPSocket(FileDescriptor &&fd) : Socket(std::move(fd), AF_INET, SOCK_STREAM) {} + + public: + //! Default: construct an unbound, unconnected TCP socket + TCPSocket() : Socket(AF_INET, SOCK_STREAM) {} + + //! Mark a socket as listening for incoming connections + void listen(const int backlog = 16); + + //! Accept a new incoming connection + TCPSocket accept(); +}; + +//! \class TCPSocket +//! Functions in this class are essentially wrappers over their POSIX eponyms. +//! +//! Example: +//! +//! \include socket_example_2.cc + +//! A wrapper around [Unix-domain stream sockets](\ref man7::unix) +class LocalStreamSocket : public Socket { + public: + //! Construct from a file descriptor + explicit LocalStreamSocket(FileDescriptor &&fd) : Socket(std::move(fd), AF_UNIX, SOCK_STREAM) {} +}; + +//! \class LocalStreamSocket +//! Example: +//! +//! \include socket_example_3.cc + +#endif // SPONGE_LIBSPONGE_SOCKET_HH diff --git a/libsponge/util/tun.cc b/libsponge/util/tun.cc new file mode 100644 index 0000000..80418a1 --- /dev/null +++ b/libsponge/util/tun.cc @@ -0,0 +1,36 @@ +#include "tun.hh" + +#include "util.hh" + +#include +#include +#include +#include +#include + +static constexpr const char *CLONEDEV = "/dev/net/tun"; + +using namespace std; + +//! \param[in] devname is the name of the TUN or TAP device, specified at its creation. +//! \param[in] is_tun is `true` for a TUN device (expects IP datagrams), or `false` for a TAP device (expects Ethernet frames) +//! +//! To create a TUN device, you should already have run +//! +//! ip tuntap add mode tun user `username` name `devname` +//! +//! as root before calling this function. + +TunTapFD::TunTapFD(const string &devname, const bool is_tun) + : FileDescriptor(SystemCall("open", open(CLONEDEV, O_RDWR))) { + struct ifreq tun_req {}; + + tun_req.ifr_flags = (is_tun ? IFF_TUN : IFF_TAP) | IFF_NO_PI; // tun device with no packetinfo + + // copy devname to ifr_name, making sure to null terminate + + strncpy(static_cast(tun_req.ifr_name), devname.data(), IFNAMSIZ - 1); + tun_req.ifr_name[IFNAMSIZ - 1] = '\0'; + + SystemCall("ioctl", ioctl(fd_num(), TUNSETIFF, static_cast(&tun_req))); +} diff --git a/libsponge/util/tun.hh b/libsponge/util/tun.hh new file mode 100644 index 0000000..0057f14 --- /dev/null +++ b/libsponge/util/tun.hh @@ -0,0 +1,29 @@ +#ifndef SPONGE_LIBSPONGE_TUN_HH +#define SPONGE_LIBSPONGE_TUN_HH + +#include "file_descriptor.hh" + +#include + +//! A FileDescriptor to a [Linux TUN/TAP](https://www.kernel.org/doc/Documentation/networking/tuntap.txt) device +class TunTapFD : public FileDescriptor { + public: + //! Open an existing persistent [TUN or TAP device](https://www.kernel.org/doc/Documentation/networking/tuntap.txt). + explicit TunTapFD(const std::string &devname, const bool is_tun); +}; + +//! A FileDescriptor to a [Linux TUN](https://www.kernel.org/doc/Documentation/networking/tuntap.txt) device +class TunFD : public TunTapFD { + public: + //! Open an existing persistent [TUN device](https://www.kernel.org/doc/Documentation/networking/tuntap.txt). + explicit TunFD(const std::string &devname) : TunTapFD(devname, true) {} +}; + +//! A FileDescriptor to a [Linux TAP](https://www.kernel.org/doc/Documentation/networking/tuntap.txt) device +class TapFD : public TunTapFD { + public: + //! Open an existing persistent [TAP device](https://www.kernel.org/doc/Documentation/networking/tuntap.txt). + explicit TapFD(const std::string &devname) : TunTapFD(devname, false) {} +}; + +#endif // SPONGE_LIBSPONGE_TUN_HH diff --git a/libsponge/util/util.cc b/libsponge/util/util.cc new file mode 100644 index 0000000..6724e68 --- /dev/null +++ b/libsponge/util/util.cc @@ -0,0 +1,144 @@ +#include "util.hh" + +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +//! \returns the number of milliseconds since the program started +uint64_t timestamp_ms() { + using time_point = std::chrono::steady_clock::time_point; + static const time_point program_start = std::chrono::steady_clock::now(); + const time_point now = std::chrono::steady_clock::now(); + return std::chrono::duration_cast(now - program_start).count(); +} + +//! \param[in] attempt is the name of the syscall to try (for error reporting) +//! \param[in] return_value is the return value of the syscall +//! \param[in] errno_mask is any errno value that is acceptable, e.g., `EAGAIN` when reading a non-blocking fd +//! \details This function works for any syscall that returns less than 0 on error and sets errno: +//! +//! For example, to wrap a call to [open(2)](\ref man2::open), you might say: +//! +//! ~~~{.cc} +//! const int foo_fd = SystemCall("open", ::open("/tmp/foo", O_RDWR)); +//! ~~~ +//! +//! If you don't have permission to open the file, SystemCall will throw a std::runtime_error. +//! If you don't want to throw in that case, you can pass `EACCESS` in `errno_mask`: +//! +//! ~~~{.cc} +//! // open a file, or print an error if permission was denied +//! const int foo_fd = SystemCall("open", ::open("/tmp/foo", O_RDWR), EACCESS); +//! if (foo_fd < 0) { +//! std::cerr << "Access to /tmp/foo was denied." << std::endl; +//! } +//! ~~~ +int SystemCall(const char *attempt, const int return_value, const int errno_mask) { + if (return_value >= 0 || errno == errno_mask) { + return return_value; + } + + throw unix_error(attempt); +} + +//! \param[in] attempt is the name of the syscall to try (for error reporting) +//! \param[in] return_value is the return value of the syscall +//! \param[in] errno_mask is any errno value that is acceptable, e.g., `EAGAIN` when reading a non-blocking fd +//! \details see the other SystemCall() documentation for more details +int SystemCall(const string &attempt, const int return_value, const int errno_mask) { + return SystemCall(attempt.c_str(), return_value, errno_mask); +} + +//! \details A properly seeded mt19937 generator takes a lot of entropy! +//! +//! This code borrows from the following: +//! +//! - https://kristerw.blogspot.com/2017/05/seeding-stdmt19937-random-number-engine.html +//! - http://www.pcg-random.org/posts/cpps-random_device.html +mt19937 get_random_generator() { + auto rd = random_device(); + array seed_data{}; + generate(seed_data.begin(), seed_data.end(), [&] { return rd(); }); + seed_seq seed(seed_data.begin(), seed_data.end()); + return mt19937(seed); +} + +//! \note This class returns the checksum in host byte order. +//! See https://commandcenter.blogspot.com/2012/04/byte-order-fallacy.html for rationale +//! \details This class can be used to either check or compute an Internet checksum +//! (e.g., for an IP datagram header or a TCP segment). +//! +//! The Internet checksum is defined such that evaluating inet_cksum() on a TCP segment (IP datagram, etc) +//! containing a correct checksum header will return zero. In other words, if you read a correct TCP segment +//! off the wire and pass it untouched to inet_cksum(), the return value will be 0. +//! +//! Meanwhile, to compute the checksum for an outgoing TCP segment (IP datagram, etc.), you must first set +//! the checksum header to zero, then call inet_cksum(), and finally set the checksum header to the return +//! value. +//! +//! For more information, see the [Wikipedia page](https://en.wikipedia.org/wiki/IPv4_header_checksum) +//! on the Internet checksum, and consult the [IP](\ref rfc::rfc791) and [TCP](\ref rfc::rfc793) RFCs. +InternetChecksum::InternetChecksum(const uint32_t initial_sum) : _sum(initial_sum) {} + +void InternetChecksum::add(std::string_view data) { + for (size_t i = 0; i < data.size(); i++) { + uint16_t val = uint8_t(data[i]); + if (not _parity) { + val <<= 8; + } + _sum += val; + _parity = !_parity; + } +} + +uint16_t InternetChecksum::value() const { + uint32_t ret = _sum; + + while (ret > 0xffff) { + ret = (ret >> 16) + (ret & 0xffff); + } + + return ~ret; +} + +//! \param[in] data is a pointer to the bytes to show +//! \param[in] len is the number of bytes to show +//! \param[in] indent is the number of spaces to indent +void hexdump(const uint8_t *data, const size_t len, const size_t indent) { + const auto flags(cout.flags()); + const string indent_string(indent, ' '); + int printed = 0; + stringstream pchars(" "); + cout << hex << setfill('0'); + for (unsigned i = 0; i < len; ++i) { + if ((printed & 0xf) == 0) { + if (printed != 0) { + cout << " " << pchars.str() << "\n"; + pchars.str(" "); + } + cout << indent_string << setw(8) << printed << ": "; + } else if ((printed & 1) == 0) { + cout << ' '; + } + cout << setw(2) << +data[i]; + pchars << (static_cast(isprint(data[i])) ? static_cast(data[i]) : '.'); + printed += 1; + } + const int print_rem = (16 - (printed & 0xf)) % 16; // extra spacing before final chars + cout << string(2 * print_rem + print_rem / 2 + 4, ' ') << pchars.str(); + cout << '\n' << endl; + cout.flags(flags); +} + +//! \param[in] data is a pointer to the bytes to show +//! \param[in] len is the number of bytes to show +//! \param[in] indent is the number of spaces to indent +void hexdump(const char *data, const size_t len, const size_t indent) { + hexdump(reinterpret_cast(data), len, indent); +} diff --git a/libsponge/util/util.hh b/libsponge/util/util.hh new file mode 100644 index 0000000..7b43301 --- /dev/null +++ b/libsponge/util/util.hh @@ -0,0 +1,72 @@ +#ifndef SPONGE_LIBSPONGE_UTIL_HH +#define SPONGE_LIBSPONGE_UTIL_HH + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//! std::system_error plus the name of what was being attempted +class tagged_error : public std::system_error { + private: + std::string _attempt_and_error; //!< What was attempted, and what happened + + public: + //! \brief Construct from a category, an attempt, and an error code + //! \param[in] category is the category of error + //! \param[in] attempt is what was supposed to happen + //! \param[in] error_code is the resulting error + tagged_error(const std::error_category &category, const std::string &attempt, const int error_code) + : system_error(error_code, category), _attempt_and_error(attempt + ": " + std::system_error::what()) {} + + //! Returns a C string describing the error + const char *what() const noexcept override { return _attempt_and_error.c_str(); } +}; + +//! a tagged_error for syscalls +class unix_error : public tagged_error { + public: + //! brief Construct from a syscall name and the resulting errno + //! \param[in] attempt is the name of the syscall attempted + //! \param[in] error is the [errno(3)](\ref man3::errno) that resulted + explicit unix_error(const std::string &attempt, const int error = errno) + : tagged_error(std::system_category(), attempt, error) {} +}; + +//! Error-checking wrapper for most syscalls +int SystemCall(const char *attempt, const int return_value, const int errno_mask = 0); + +//! Version of SystemCall that takes a C++ std::string +int SystemCall(const std::string &attempt, const int return_value, const int errno_mask = 0); + +//! Seed a fast random generator +std::mt19937 get_random_generator(); + +//! Get the time in milliseconds since the program began. +uint64_t timestamp_ms(); + +//! The internet checksum algorithm +class InternetChecksum { + private: + uint32_t _sum; + bool _parity{}; + + public: + InternetChecksum(const uint32_t initial_sum = 0); + void add(std::string_view data); + uint16_t value() const; +}; + +//! Hexdump the contents of a packet (or any other sequence of bytes) +void hexdump(const char *data, const size_t len, const size_t indent = 0); + +//! Hexdump the contents of a packet (or any other sequence of bytes) +void hexdump(const uint8_t *data, const size_t len, const size_t indent = 0); + +#endif // SPONGE_LIBSPONGE_UTIL_HH diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..d16a8f0 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,13 @@ +add_library (spongechecks STATIC byte_stream_test_harness.cc) + +macro (add_test_exec exec_name) + add_executable ("${exec_name}" "${exec_name}.cc") + target_link_libraries ("${exec_name}" spongechecks ${ARGN}) + target_link_libraries ("${exec_name}" sponge ${ARGN}) +endmacro (add_test_exec) + +add_test_exec (byte_stream_construction) +add_test_exec (byte_stream_one_write) +add_test_exec (byte_stream_two_writes) +add_test_exec (byte_stream_capacity) +add_test_exec (byte_stream_many_writes) diff --git a/tests/byte_stream_capacity.cc b/tests/byte_stream_capacity.cc new file mode 100644 index 0000000..70d953b --- /dev/null +++ b/tests/byte_stream_capacity.cc @@ -0,0 +1,113 @@ +#include "byte_stream.hh" +#include "byte_stream_test_harness.hh" + +#include +#include + +using namespace std; + +int main() { + try { + { + ByteStreamTestHarness test{"overwrite", 2}; + + test.execute(Write{"cat"}.with_bytes_written(2)); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{2}); + test.execute(RemainingCapacity{0}); + test.execute(BufferSize{2}); + test.execute(Peek{"ca"}); + + test.execute(Write{"t"}.with_bytes_written(0)); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{2}); + test.execute(RemainingCapacity{0}); + test.execute(BufferSize{2}); + test.execute(Peek{"ca"}); + } + + { + ByteStreamTestHarness test{"overwrite-clear-overwrite", 2}; + + test.execute(Write{"cat"}.with_bytes_written(2)); + test.execute(Pop{2}); + test.execute(Write{"tac"}.with_bytes_written(2)); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{2}); + test.execute(BytesWritten{4}); + test.execute(RemainingCapacity{0}); + test.execute(BufferSize{2}); + test.execute(Peek{"ta"}); + } + + { + ByteStreamTestHarness test{"overwrite-pop-overwrite", 2}; + + test.execute(Write{"cat"}.with_bytes_written(2)); + test.execute(Pop{1}); + test.execute(Write{"tac"}.with_bytes_written(1)); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{1}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{0}); + test.execute(BufferSize{2}); + test.execute(Peek{"at"}); + } + + { + ByteStreamTestHarness test{"long-stream", 3}; + + test.execute(Write{"abcdef"}.with_bytes_written(3)); + test.execute(Peek{"abc"}); + test.execute(Pop{1}); + + for (unsigned int i = 0; i < 99997; i++) { + test.execute(RemainingCapacity{1}); + test.execute(BufferSize{2}); + test.execute(Write{"abc"}.with_bytes_written(1)); + test.execute(RemainingCapacity{0}); + test.execute(Peek{"bca"}); + test.execute(Pop{1}); + + test.execute(RemainingCapacity{1}); + test.execute(BufferSize{2}); + test.execute(Write{"bca"}.with_bytes_written(1)); + test.execute(RemainingCapacity{0}); + test.execute(Peek{"cab"}); + test.execute(Pop{1}); + + test.execute(RemainingCapacity{1}); + test.execute(BufferSize{2}); + test.execute(Write{"cab"}.with_bytes_written(1)); + test.execute(RemainingCapacity{0}); + test.execute(Peek{"abc"}); + test.execute(Pop{1}); + } + + test.execute(EndInput{}); + test.execute(Peek{"bc"}); + test.execute(Pop{2}); + test.execute(Eof{true}); + } + + } catch (const exception &e) { + cerr << "Exception: " << e.what() << endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/tests/byte_stream_construction.cc b/tests/byte_stream_construction.cc new file mode 100644 index 0000000..aed9d2a --- /dev/null +++ b/tests/byte_stream_construction.cc @@ -0,0 +1,40 @@ +#include "byte_stream.hh" +#include "byte_stream_test_harness.hh" + +#include +#include + +using namespace std; + +int main() { + try { + { + ByteStreamTestHarness test{"construction", 15}; + test.execute(InputEnded{false}); + test.execute(BufferEmpty{true}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{0}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + } + + { + ByteStreamTestHarness test{"construction-end", 15}; + test.execute(EndInput{}); + test.execute(InputEnded{true}); + test.execute(BufferEmpty{true}); + test.execute(Eof{true}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{0}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + } + + } catch (const exception &e) { + cerr << "Exception: " << e.what() << endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/tests/byte_stream_many_writes.cc b/tests/byte_stream_many_writes.cc new file mode 100644 index 0000000..e5e4176 --- /dev/null +++ b/tests/byte_stream_many_writes.cc @@ -0,0 +1,46 @@ +#include "byte_stream.hh" +#include "byte_stream_test_harness.hh" +#include "util.hh" + +#include +#include + +using namespace std; + +int main() { + try { + auto rd = get_random_generator(); + const size_t NREPS = 1000; + const size_t MIN_WRITE = 10; + const size_t MAX_WRITE = 200; + const size_t CAPACITY = MAX_WRITE * NREPS; + + { + ByteStreamTestHarness test{"many writes", CAPACITY}; + + size_t acc = 0; + for (size_t i = 0; i < NREPS; ++i) { + const size_t size = MIN_WRITE + (rd() % (MAX_WRITE - MIN_WRITE)); + string d(size, 0); + generate(d.begin(), d.end(), [&] { return 'a' + (rd() % 26); }); + + test.execute(Write{d}.with_bytes_written(size)); + acc += size; + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{acc}); + test.execute(RemainingCapacity{CAPACITY - acc}); + test.execute(BufferSize{acc}); + } + } + + } catch (const exception &e) { + cerr << "Exception: " << e.what() << endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/tests/byte_stream_one_write.cc b/tests/byte_stream_one_write.cc new file mode 100644 index 0000000..1946dc7 --- /dev/null +++ b/tests/byte_stream_one_write.cc @@ -0,0 +1,134 @@ +#include "byte_stream.hh" +#include "byte_stream_test_harness.hh" + +#include +#include + +using namespace std; + +int main() { + try { + { + ByteStreamTestHarness test{"write-end-pop", 15}; + + test.execute(Write{"cat"}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{12}); + test.execute(BufferSize{3}); + test.execute(Peek{"cat"}); + + test.execute(EndInput{}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{12}); + test.execute(BufferSize{3}); + test.execute(Peek{"cat"}); + + test.execute(Pop{3}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{true}); + test.execute(Eof{true}); + test.execute(BytesRead{3}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + } + + { + ByteStreamTestHarness test{"write-pop-end", 15}; + + test.execute(Write{"cat"}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{12}); + test.execute(BufferSize{3}); + test.execute(Peek{"cat"}); + + test.execute(Pop{3}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{true}); + test.execute(Eof{false}); + test.execute(BytesRead{3}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + + test.execute(EndInput{}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{true}); + test.execute(Eof{true}); + test.execute(BytesRead{3}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + } + + { + ByteStreamTestHarness test{"write-pop2-end", 15}; + + test.execute(Write{"cat"}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{12}); + test.execute(BufferSize{3}); + test.execute(Peek{"cat"}); + + test.execute(Pop{1}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{1}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{13}); + test.execute(BufferSize{2}); + test.execute(Peek{"at"}); + + test.execute(Pop{2}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{true}); + test.execute(Eof{false}); + test.execute(BytesRead{3}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + + test.execute(EndInput{}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{true}); + test.execute(Eof{true}); + test.execute(BytesRead{3}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + } + + } catch (const exception &e) { + cerr << "Exception: " << e.what() << endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/tests/byte_stream_test_harness.cc b/tests/byte_stream_test_harness.cc new file mode 100644 index 0000000..da9aea5 --- /dev/null +++ b/tests/byte_stream_test_harness.cc @@ -0,0 +1,184 @@ +#include "byte_stream_test_harness.hh" + +#include +#include + +using namespace std; + +// ByteStreamTestStep + +ByteStreamTestStep::operator std::string() const { return "ByteStreamTestStep"; } + +void ByteStreamTestStep::execute(ByteStream &) const {} + +ByteStreamTestStep::~ByteStreamTestStep() {} + +// ByteStreamExpectationViolation + +ByteStreamExpectationViolation::ByteStreamExpectationViolation(const std::string &msg) : std::runtime_error(msg) {} + +template +ByteStreamExpectationViolation ByteStreamExpectationViolation::property(const std::string &property_name, + const T &expected, + const T &actual) { + return ByteStreamExpectationViolation("The ByteStream should have had " + property_name + " equal to " + + to_string(expected) + " but instead it was " + to_string(actual)); +} + +// ByteStreamExpectation + +ByteStreamExpectation::operator std::string() const { return "Expectation: " + description(); } + +std::string ByteStreamExpectation::description() const { return "description missing"; } + +void ByteStreamExpectation::execute(ByteStream &) const {} + +ByteStreamExpectation::~ByteStreamExpectation() {} + +// ByteStreamAction + +ByteStreamAction::operator std::string() const { return " Action: " + description(); } + +std::string ByteStreamAction::description() const { return "description missing"; } + +void ByteStreamAction::execute(ByteStream &) const {} + +ByteStreamAction::~ByteStreamAction() {} + +ByteStreamTestHarness::ByteStreamTestHarness(const std::string &test_name, const size_t capacity) + : _test_name(test_name), _byte_stream(capacity) { + std::ostringstream ss; + ss << "Initialized with (" + << "capacity=" << capacity << ")"; + _steps_executed.emplace_back(ss.str()); +} + +void ByteStreamTestHarness::execute(const ByteStreamTestStep &step) { + try { + step.execute(_byte_stream); + _steps_executed.emplace_back(step); + } catch (const ByteStreamExpectationViolation &e) { + std::cerr << "Test Failure on expectation:\n\t" << std::string(step); + std::cerr << "\n\nFailure message:\n\t" << e.what(); + std::cerr << "\n\nList of steps that executed successfully:"; + for (const std::string &s : _steps_executed) { + std::cerr << "\n\t" << s; + } + std::cerr << std::endl << std::endl; + throw ByteStreamExpectationViolation("The test \"" + _test_name + "\" failed"); + } catch (const exception &e) { + std::cerr << "Test Failure on expectation:\n\t" << std::string(step); + std::cerr << "\n\nException:\n\t" << e.what(); + std::cerr << "\n\nList of steps that executed successfully:"; + for (const std::string &s : _steps_executed) { + std::cerr << "\n\t" << s; + } + std::cerr << std::endl << std::endl; + throw ByteStreamExpectationViolation("The test \"" + _test_name + + "\" caused your implementation to throw an exception!"); + } +} + +// EndInput +std::string EndInput::description() const { return "end input"; } +void EndInput::execute(ByteStream &bs) const { bs.end_input(); } + +// Write +Write::Write(const std::string &data) : _data(data) {} +Write &Write::with_bytes_written(const size_t bytes_written) { + _bytes_written = bytes_written; + return *this; +} +std::string Write::description() const { return "write \"" + _data + "\" to the stream"; } +void Write::execute(ByteStream &bs) const { + auto bytes_written = bs.write(_data); + if (_bytes_written and bytes_written != _bytes_written.value()) { + throw ByteStreamExpectationViolation::property("bytes_written", _bytes_written.value(), bytes_written); + } +} + +// Pop +Pop::Pop(const size_t len) : _len(len) {} +std::string Pop::description() const { return "pop " + to_string(_len); } +void Pop::execute(ByteStream &bs) const { bs.pop_output(_len); } + +// InputEnded +InputEnded::InputEnded(const bool input_ended) : _input_ended(input_ended) {} +std::string InputEnded::description() const { return "input_ended: " + to_string(_input_ended); } +void InputEnded::execute(ByteStream &bs) const { + auto input_ended = bs.input_ended(); + if (input_ended != _input_ended) { + throw ByteStreamExpectationViolation::property("input_ended", _input_ended, input_ended); + } +} + +// BufferEmpty +BufferEmpty::BufferEmpty(const bool buffer_empty) : _buffer_empty(buffer_empty) {} +std::string BufferEmpty::description() const { return "buffer_empty: " + to_string(_buffer_empty); } +void BufferEmpty::execute(ByteStream &bs) const { + auto buffer_empty = bs.buffer_empty(); + if (buffer_empty != _buffer_empty) { + throw ByteStreamExpectationViolation::property("buffer_empty", _buffer_empty, buffer_empty); + } +} + +// Eof +Eof::Eof(const bool eof) : _eof(eof) {} +std::string Eof::description() const { return "eof: " + to_string(_eof); } +void Eof::execute(ByteStream &bs) const { + auto eof = bs.eof(); + if (eof != _eof) { + throw ByteStreamExpectationViolation::property("eof", _eof, eof); + } +} + +// BufferSize +BufferSize::BufferSize(const size_t buffer_size) : _buffer_size(buffer_size) {} +std::string BufferSize::description() const { return "buffer_size: " + to_string(_buffer_size); } +void BufferSize::execute(ByteStream &bs) const { + auto buffer_size = bs.buffer_size(); + if (buffer_size != _buffer_size) { + throw ByteStreamExpectationViolation::property("buffer_size", _buffer_size, buffer_size); + } +} + +// RemainingCapacity +RemainingCapacity::RemainingCapacity(const size_t remaining_capacity) : _remaining_capacity(remaining_capacity) {} +std::string RemainingCapacity::description() const { return "remaining_capacity: " + to_string(_remaining_capacity); } +void RemainingCapacity::execute(ByteStream &bs) const { + auto remaining_capacity = bs.remaining_capacity(); + if (remaining_capacity != _remaining_capacity) { + throw ByteStreamExpectationViolation::property("remaining_capacity", _remaining_capacity, remaining_capacity); + } +} + +// BytesWritten +BytesWritten::BytesWritten(const size_t bytes_written) : _bytes_written(bytes_written) {} +std::string BytesWritten::description() const { return "bytes_written: " + to_string(_bytes_written); } +void BytesWritten::execute(ByteStream &bs) const { + auto bytes_written = bs.bytes_written(); + if (bytes_written != _bytes_written) { + throw ByteStreamExpectationViolation::property("bytes_written", _bytes_written, bytes_written); + } +} + +// BytesRead +BytesRead::BytesRead(const size_t bytes_read) : _bytes_read(bytes_read) {} +std::string BytesRead::description() const { return "bytes_read: " + to_string(_bytes_read); } +void BytesRead::execute(ByteStream &bs) const { + auto bytes_read = bs.bytes_read(); + if (bytes_read != _bytes_read) { + throw ByteStreamExpectationViolation::property("bytes_read", _bytes_read, bytes_read); + } +} + +// Peek +Peek::Peek(const std::string &output) : _output(output) {} +std::string Peek::description() const { return "\"" + _output + "\" at the front of the stream"; } +void Peek::execute(ByteStream &bs) const { + auto output = bs.peek_output(_output.size()); + if (output != _output) { + throw ByteStreamExpectationViolation("Expected \"" + _output + "\" at the front of the stream, but found \"" + + output + "\""); + } +} diff --git a/tests/byte_stream_test_harness.hh b/tests/byte_stream_test_harness.hh new file mode 100644 index 0000000..4b4dbbf --- /dev/null +++ b/tests/byte_stream_test_harness.hh @@ -0,0 +1,142 @@ +#ifndef SPONGE_BYTE_STREAM_HARNESS_HH +#define SPONGE_BYTE_STREAM_HARNESS_HH + +#include "byte_stream.hh" +#include "util.hh" + +#include +#include +#include +#include +#include +#include + +struct ByteStreamTestStep { + virtual operator std::string() const; + virtual void execute(ByteStream &) const; + virtual ~ByteStreamTestStep(); +}; + +class ByteStreamExpectationViolation : public std::runtime_error { + public: + ByteStreamExpectationViolation(const std::string &msg); + + template + static ByteStreamExpectationViolation property(const std::string &property_name, + const T &expected, + const T &actual); +}; + +struct ByteStreamExpectation : public ByteStreamTestStep { + operator std::string() const override; + virtual std::string description() const; + virtual void execute(ByteStream &) const override; + virtual ~ByteStreamExpectation() override; +}; + +struct ByteStreamAction : public ByteStreamTestStep { + operator std::string() const override; + virtual std::string description() const; + virtual void execute(ByteStream &) const override; + virtual ~ByteStreamAction() override; +}; + +struct EndInput : public ByteStreamAction { + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct Write : public ByteStreamAction { + std::string _data; + std::optional _bytes_written{}; + + Write(const std::string &data); + Write &with_bytes_written(const size_t bytes_written); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct Pop : public ByteStreamAction { + size_t _len; + + Pop(const size_t len); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct InputEnded : public ByteStreamExpectation { + bool _input_ended; + + InputEnded(const bool input_ended); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct BufferEmpty : public ByteStreamExpectation { + bool _buffer_empty; + + BufferEmpty(const bool buffer_empty); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct Eof : public ByteStreamExpectation { + bool _eof; + + Eof(const bool eof); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct BufferSize : public ByteStreamExpectation { + size_t _buffer_size; + + BufferSize(const size_t buffer_size); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct BytesWritten : public ByteStreamExpectation { + size_t _bytes_written; + + BytesWritten(const size_t bytes_written); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct BytesRead : public ByteStreamExpectation { + size_t _bytes_read; + + BytesRead(const size_t bytes_read); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct RemainingCapacity : public ByteStreamExpectation { + size_t _remaining_capacity; + + RemainingCapacity(const size_t remaining_capacity); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +struct Peek : public ByteStreamExpectation { + std::string _output; + + Peek(const std::string &output); + std::string description() const override; + void execute(ByteStream &) const override; +}; + +class ByteStreamTestHarness { + std::string _test_name; + ByteStream _byte_stream; + std::vector _steps_executed{}; + + public: + ByteStreamTestHarness(const std::string &test_name, const size_t capacity); + + void execute(const ByteStreamTestStep &step); +}; + +#endif // SPONGE_BYTE_STREAM_HARNESS_HH diff --git a/tests/byte_stream_two_writes.cc b/tests/byte_stream_two_writes.cc new file mode 100644 index 0000000..1007f52 --- /dev/null +++ b/tests/byte_stream_two_writes.cc @@ -0,0 +1,133 @@ +#include "byte_stream.hh" +#include "byte_stream_test_harness.hh" + +#include +#include + +using namespace std; + +int main() { + try { + { + ByteStreamTestHarness test{"write-write-end-pop-pop", 15}; + + test.execute(Write{"cat"}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{12}); + test.execute(BufferSize{3}); + test.execute(Peek{"cat"}); + + test.execute(Write{"tac"}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{6}); + test.execute(RemainingCapacity{9}); + test.execute(BufferSize{6}); + test.execute(Peek{"cattac"}); + + test.execute(EndInput{}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{6}); + test.execute(RemainingCapacity{9}); + test.execute(BufferSize{6}); + test.execute(Peek{"cattac"}); + + test.execute(Pop{2}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{2}); + test.execute(BytesWritten{6}); + test.execute(RemainingCapacity{11}); + test.execute(BufferSize{4}); + test.execute(Peek{"ttac"}); + + test.execute(Pop{4}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{true}); + test.execute(Eof{true}); + test.execute(BytesRead{6}); + test.execute(BytesWritten{6}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + } + + { + ByteStreamTestHarness test{"write-pop-write-end-pop", 15}; + + test.execute(Write{"cat"}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{0}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{12}); + test.execute(BufferSize{3}); + test.execute(Peek{"cat"}); + + test.execute(Pop{2}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{2}); + test.execute(BytesWritten{3}); + test.execute(RemainingCapacity{14}); + test.execute(BufferSize{1}); + test.execute(Peek{"t"}); + + test.execute(Write{"tac"}); + + test.execute(InputEnded{false}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{2}); + test.execute(BytesWritten{6}); + test.execute(RemainingCapacity{11}); + test.execute(BufferSize{4}); + test.execute(Peek{"ttac"}); + + test.execute(EndInput{}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{false}); + test.execute(Eof{false}); + test.execute(BytesRead{2}); + test.execute(BytesWritten{6}); + test.execute(RemainingCapacity{11}); + test.execute(BufferSize{4}); + test.execute(Peek{"ttac"}); + + test.execute(Pop{4}); + + test.execute(InputEnded{true}); + test.execute(BufferEmpty{true}); + test.execute(Eof{true}); + test.execute(BytesRead{6}); + test.execute(BytesWritten{6}); + test.execute(RemainingCapacity{15}); + test.execute(BufferSize{0}); + } + + } catch (const exception &e) { + cerr << "Exception: " << e.what() << endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/tests/test_err_if.hh b/tests/test_err_if.hh new file mode 100644 index 0000000..9c734ad --- /dev/null +++ b/tests/test_err_if.hh @@ -0,0 +1,18 @@ +#ifndef SPONGE_TESTS_TEST_ERR_IF_HH +#define SPONGE_TESTS_TEST_ERR_IF_HH + +#include +#include + +static int err_num = 1; + +#define test_err_if(c, s) _test_err_if(c, s, __LINE__) + +static void _test_err_if(const bool err_condition, const std::string &err_string, const int lineno) { + if (err_condition) { + throw std::runtime_error(err_string + " (at line " + std::to_string(lineno) + ")"); + } + ++err_num; +} + +#endif // SPONGE_TESTS_TEST_ERR_IF_HH diff --git a/tests/test_should_be.hh b/tests/test_should_be.hh new file mode 100644 index 0000000..14eb2a8 --- /dev/null +++ b/tests/test_should_be.hh @@ -0,0 +1,28 @@ +#ifndef SPONGE_TESTS_TEST_SHOULD_BE_HH +#define SPONGE_TESTS_TEST_SHOULD_BE_HH + +#include "string_conversions.hh" + +#include +#include +#include +#include + +#define test_should_be(act, exp) _test_should_be(act, exp, #act, #exp, __LINE__) + +template +static void _test_should_be(const T &actual, + const T &expected, + const char *actual_s, + const char *expected_s, + const int lineno) { + if (actual != expected) { + std::ostringstream ss; + ss << "`" << actual_s << "` should have been `" << expected_s << "`, but the former is\n\t" << to_string(actual) + << "\nand the latter is\n\t" << to_string(expected) << " (difference of " << expected - actual << ")\n" + << " (at line " << lineno << ")\n"; + throw std::runtime_error(ss.str()); + } +} + +#endif // SPONGE_TESTS_TEST_SHOULD_BE_HH diff --git a/tests/webget_t.sh b/tests/webget_t.sh new file mode 100755 index 0000000..192e754 --- /dev/null +++ b/tests/webget_t.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +WEB_HASH=`./apps/webget cs144.keithw.org /nph-hasher/xyzzy | tee /dev/stderr | tail -n 1` +CORRECT_HASH="7SmXqWkrLKzVBCEalbSPqBcvs11Pw263K7x4Wv3JckI" + +if [ "${WEB_HASH}" != "${CORRECT_HASH}" ]; then + echo ERROR: webget returned output that did not match the test\'s expectations + exit 1 +fi +exit 0 diff --git a/writeups/lab0.md b/writeups/lab0.md new file mode 100644 index 0000000..92f08ce --- /dev/null +++ b/writeups/lab0.md @@ -0,0 +1,20 @@ +Lab 0 Writeup +============= + +My name: [your name here] + +My SUNet ID: [your sunetid here] + +I collaborated with: [list sunetids here] + +This lab took me about [n] hours to do. I [did/did not] attend the lab session. + +My secret code from section 2.1 was: [code here] + +- Optional: I had unexpected difficulty with: [describe] + +- Optional: I think you could make this lab better by: [describe] + +- Optional: I was surprised by: [describe] + +- Optional: I'm not sure about: [describe]