0% found this document useful (0 votes)
2 views

The GNU C++ Reference Library Manual (version 15.1)

The document is a Doxygen-generated reference for the libstdc++ library, detailing various components such as algorithms, atomics, concurrency, containers, and more. It includes sections on diagnostics, extensions, filesystem, I/O, iterators, locales, numerics, regular expressions, and strings, along with detailed descriptions and function documentation. The document serves as a comprehensive guide for developers using the libstdc++ library.

Uploaded by

pinomerlino
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

The GNU C++ Reference Library Manual (version 15.1)

The document is a Doxygen-generated reference for the libstdc++ library, detailing various components such as algorithms, atomics, concurrency, containers, and more. It includes sections on diagnostics, extensions, filesystem, I/O, iterators, locales, numerics, regular expressions, and strings, along with detailed descriptions and function documentation. The document serves as a comprehensive guide for developers using the libstdc++ library.

Uploaded by

pinomerlino
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3749

libstdc++

Generated by Doxygen 1.12.0


i

1 Deprecated List 2

2 Todo List 3

3 Topic Documentation 5
3.1 Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Generalized Numeric operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.3 Mutating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.4 Non-Mutating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.5 Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2 Atomics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.2.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.2.3 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.2.4 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.2.5 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.3 Concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.3.2 Condition Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.3.3 Futures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.3.4 Mutexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
3.3.5 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.4 Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.4.2 Associative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.4.3 Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.4.4 Unordered Associative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.5 Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.5.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.5.3 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.6 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.6.2 Dynamic Bitset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.6.3 Policy-Based Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3.6.4 SGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.7 Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.7.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Generated by Doxygen
ii

3.7.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162


3.7.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
3.8 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
3.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.8.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.9 Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
3.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
3.9.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
3.9.3 Iterator Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.10 Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.10.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.11 Numerics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.11.2 Bit manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.11.3 Complex Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.11.4 Decimal Floating-Point Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.11.5 Mathematical Special Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.11.6 Numeric Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
3.11.7 Random Number Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
3.11.8 TR1 Mathematical Special Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
3.12 Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
3.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
3.12.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
3.12.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
3.12.4 Base and Implementation Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
3.13 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
3.13.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
3.13.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
3.14 Technical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
3.14.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
3.14.2 Filesystem TS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
3.14.3 Library Fundamentals TS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
3.14.4 Parallelism TS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
3.15 Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
3.15.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
3.15.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
3.15.3 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
3.15.4 Function Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

Generated by Doxygen
iii

3.15.5 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313


3.15.6 Metaprogramming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
3.15.7 Rational Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
3.15.8 Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

4 Namespace Documentation 377


4.1 __gnu_cxx Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
4.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
4.1.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
4.1.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
4.2 __gnu_cxx::__detail Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
4.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
4.2.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
4.3 __gnu_cxx::typelist Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
4.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
4.3.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
4.4 __gnu_debug Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
4.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
4.4.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
4.4.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
4.4.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
4.5 __gnu_internal Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
4.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
4.6 __gnu_parallel Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
4.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
4.6.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
4.6.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
4.6.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
4.6.5 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
4.7 __gnu_pbds Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
4.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
4.8 __gnu_sequential Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
4.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
4.9 abi Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
4.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
4.10 std Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
4.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
4.10.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
4.10.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

Generated by Doxygen
iv

4.10.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575


4.10.5 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
4.11 std::__debug Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
4.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
4.11.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
4.12 std::__detail Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
4.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
4.12.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
4.13 std::__parallel Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
4.13.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
4.13.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
4.14 std::chrono Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
4.14.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
4.15 std::decimal Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
4.15.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
4.15.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
4.16 std::experimental Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
4.16.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
4.16.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
4.16.3 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
4.17 std::filesystem Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
4.17.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
4.18 std::literals Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
4.18.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
4.19 std::literals::chrono_literals Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
4.19.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
4.20 std::placeholders Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
4.20.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
4.21 std::regex_constants Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
4.21.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
4.21.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
4.21.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
4.21.4 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
4.22 std::rel_ops Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
4.22.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
4.22.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
4.23 std::this_thread Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
4.23.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
4.23.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716

Generated by Doxygen
v

4.24 std::tr1 Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716


4.24.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
4.25 std::tr1::__detail Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
4.25.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
4.26 std::tr2 Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
4.26.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
4.27 std::tr2::__detail Namespace Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
4.27.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720

5 Class Documentation 721


5.1 __gnu_parallel::__accumulate_binop_reduct< _BinOp > Struct Template Reference . . . . . . . . . . . . 721
5.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
5.2 __gnu_parallel::__accumulate_selector< _It > Struct Template Reference . . . . . . . . . . . . . . . . . 721
5.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
5.2.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
5.2.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
5.3 __gnu_parallel::__adjacent_difference_selector< _It > Struct Template Reference . . . . . . . . . . . . . 722
5.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
5.3.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
5.4 __gnu_parallel::__adjacent_find_selector Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . 723
5.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
5.4.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
5.5 __gnu_cxx::__alloc_traits< _Alloc, typename > Struct Template Reference . . . . . . . . . . . . . . . . . 725
5.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
5.5.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
5.5.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
5.6 std::__basic_future< _Res > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 729
5.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
5.6.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
5.7 __gnu_parallel::__binder1st< _Operation, _FirstArgumentType, _SecondArgumentType, _ResultType >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
5.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
5.7.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
5.8 __gnu_parallel::__binder2nd< _Operation, _FirstArgumentType, _SecondArgumentType, _ResultType >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
5.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
5.8.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
5.9 std::__codecvt_abstract_base< _InternT, _ExternT, _StateT > Class Template Reference . . . . . . . . . 733
5.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
5.9.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735

Generated by Doxygen
vi

5.10 __gnu_cxx::__common_pool_policy< _PoolTp, _Thread > Struct Template Reference . . . . . . . . . . 738


5.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
5.11 __gnu_parallel::__count_if_selector< _It, _Diff > Struct Template Reference . . . . . . . . . . . . . . . 738
5.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
5.11.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
5.11.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
5.12 __gnu_parallel::__count_selector< _It, _Diff > Struct Template Reference . . . . . . . . . . . . . . . . 739
5.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
5.12.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
5.12.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . 741
5.13.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
5.13.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
5.13.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
5.14 std::tr2::__dynamic_bitset_base< _WordT, _Alloc > Struct Template Reference . . . . . . . . . . . . . . 755
5.14.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
5.14.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
5.15 __gnu_parallel::__fill_selector< _It > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 757
5.15.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
5.15.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
5.15.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
5.16 __gnu_parallel::__find_first_of_selector< _FIterator > Struct Template Reference . . . . . . . . . . . . 758
5.16.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
5.16.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
5.17 __gnu_parallel::__find_if_selector Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
5.17.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
5.17.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
5.18 __gnu_parallel::__for_each_selector< _It > Struct Template Reference . . . . . . . . . . . . . . . . . . 761
5.18.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
5.18.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
5.18.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
5.19 __cxxabiv1::__forced_unwind Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
5.19.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
5.20 __gnu_parallel::__generate_selector< _It > Struct Template Reference . . . . . . . . . . . . . . . . . . 763
5.20.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
5.20.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
5.20.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
5.21 __gnu_parallel::__generic_find_selector Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . 764
5.21.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764

Generated by Doxygen
vii

5.22 __gnu_parallel::__generic_for_each_selector< _It > Struct Template Reference . . . . . . . . . . . . . 764


5.22.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
5.22.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
5.23 __gnu_parallel::__identity_selector< _It > Struct Template Reference . . . . . . . . . . . . . . . . . . . 766
5.23.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
5.23.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
5.23.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
5.24 __gnu_parallel::__inner_product_selector< _It, _It2, _Tp > Struct Template Reference . . . . . . . . . . 767
5.24.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
5.24.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
5.24.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
5.24.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
5.25 std::__is_fast_hash< _Hash > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 769
5.25.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
5.26 std::__is_location_invariant< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 769
5.26.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
5.27 __gnu_parallel::__max_element_reduct< _Compare, _It > Struct Template Reference . . . . . . . . . . 770
5.27.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
5.28 __gnu_parallel::__min_element_reduct< _Compare, _It > Struct Template Reference . . . . . . . . . . 770
5.28.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
5.29 __gnu_cxx::__detail::__mini_vector< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . 770
5.29.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
5.30 __gnu_parallel::__mismatch_selector Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
5.30.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
5.30.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
5.31 __gnu_cxx::__mt_alloc< _Tp, _Poolp > Class Template Reference . . . . . . . . . . . . . . . . . . . . 773
5.31.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
5.32 __gnu_cxx::__mt_alloc_base< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 774
5.32.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
5.33 __gnu_parallel::__multiway_merge_3_variant_sentinel_switch< __sentinels, _RAIterIterator, _RAIter3,
_DifferenceTp, _Compare > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 775
5.33.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
5.34 __gnu_parallel::__multiway_merge_3_variant_sentinel_switch< true, _RAIterIterator, _RAIter3, _←-
DifferenceTp, _Compare > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
5.34.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
5.35 __gnu_parallel::__multiway_merge_4_variant_sentinel_switch< __sentinels, _RAIterIterator, _RAIter3,
_DifferenceTp, _Compare > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 776
5.35.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
5.36 __gnu_parallel::__multiway_merge_4_variant_sentinel_switch< true, _RAIterIterator, _RAIter3, _←-
DifferenceTp, _Compare > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

Generated by Doxygen
viii

5.36.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776


5.37 __gnu_parallel::__multiway_merge_k_variant_sentinel_switch< __sentinels, __stable, _RAIterIterator,
_RAIter3, _DifferenceTp, _Compare > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 776
5.37.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
5.38 __gnu_parallel::__multiway_merge_k_variant_sentinel_switch< false, __stable, _RAIterIterator, _←-
RAIter3, _DifferenceTp, _Compare > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 777
5.38.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
5.39 std::__new_allocator< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 777
5.39.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
5.40 std::__numeric_limits_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
5.40.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
5.40.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
5.41 __gnu_cxx::__per_type_pool_policy< _Tp, _PoolTp, _Thread > Struct Template Reference . . . . . . . 782
5.41.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
5.42 __gnu_cxx::__pool< _Thread > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 783
5.42.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
5.43 __gnu_cxx::__pool< false > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
5.43.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
5.44 __gnu_cxx::__pool< true > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
5.44.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
5.45 __gnu_cxx::__pool_alloc< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 785
5.45.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
5.46 __gnu_cxx::__pool_alloc_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
5.46.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
5.47 __gnu_cxx::__pool_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
5.47.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
5.48 __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc > Class Template Reference . . . . . . . . . . . 788
5.48.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
5.49 std::tr2::__reflection_typelist< _Elements > Struct Template Reference . . . . . . . . . . . . . . . . . . 790
5.49.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
5.50 std::tr2::__reflection_typelist< _First, _Rest... > Struct Template Reference . . . . . . . . . . . . . . . . 790
5.50.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
5.51 std::tr2::__reflection_typelist<> Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
5.51.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
5.52 __gnu_parallel::__replace_if_selector< _It, _Op, _Tp > Struct Template Reference . . . . . . . . . . . . 791
5.52.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
5.52.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
5.52.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
5.52.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
5.53 __gnu_parallel::__replace_selector< _It, _Tp > Struct Template Reference . . . . . . . . . . . . . . . . 792

Generated by Doxygen
ix

5.53.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793


5.53.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
5.53.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
5.53.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
5.54 __gnu_cxx::__scoped_lock Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
5.54.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
5.55 __gnu_parallel::__transform1_selector< _It > Struct Template Reference . . . . . . . . . . . . . . . . . 794
5.55.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
5.55.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
5.55.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
5.56 __gnu_parallel::__transform2_selector< _It > Struct Template Reference . . . . . . . . . . . . . . . . . 796
5.56.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
5.56.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
5.56.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
5.57 __gnu_parallel::__unary_negate< _Predicate, argument_type > Class Template Reference . . . . . . . 797
5.57.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
5.57.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference . . . . . . . . 798
5.58.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
5.58.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
5.58.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
5.58.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
5.59 __gnu_debug::_After_nth_from< _Iterator > Class Template Reference . . . . . . . . . . . . . . . . . . 851
5.59.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
5.60 std::_Base_bitset< _Nw > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
5.60.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
5.60.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
5.61 std::_Base_bitset< 0 > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
5.61.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
5.62 std::_Base_bitset< 1 > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
5.62.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
5.63 __gnu_debug::_BeforeBeginHelper< _Sequence > Struct Template Reference . . . . . . . . . . . . . . 854
5.63.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
5.64 std::_Bind< _Signature > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
5.64.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
5.65 std::_Bind_result< _Result, _Signature > Class Template Reference . . . . . . . . . . . . . . . . . . . 855
5.65.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
5.66 __gnu_cxx::__detail::_Bitmap_counter< _Tp > Class Template Reference . . . . . . . . . . . . . . . . 855
5.66.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855

Generated by Doxygen
x

5.67 std::__detail::_BracketMatcher< _TraitsT, __icase, __collate > Struct Template Reference . . . . . . . . 856
5.67.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
5.68 __gnu_cxx::_Caster< _ToType > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 856
5.68.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
5.69 __gnu_cxx::_Char_types< _CharT > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 857
5.69.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
5.70 __gnu_pbds::detail::pat_trie_base::_CIter< Node, Leaf, Head, Inode, Is_Forward_Iterator > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
5.70.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
5.71 std::__detail::_Compiler< _TraitsT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 859
5.71.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
5.72 std::__parallel::_CRandNumber< _MustBeInt > Struct Template Reference . . . . . . . . . . . . . . . . 859
5.72.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
5.73 std::_Deque_base< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 859
5.73.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
5.73.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
5.74 std::_Deque_iterator< _Tp, _Ref, _Ptr > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 861
5.74.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
5.74.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
5.75 __gnu_parallel::_DRandomShufflingGlobalData< _RAIter > Struct Template Reference . . . . . . . . . 863
5.75.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
5.75.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
5.75.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
5.76 __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator > Struct Template Reference . . 865
5.76.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
5.76.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
5.77 __gnu_parallel::_DummyReduct Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
5.77.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
5.78 __gnu_debug::_Equal_to< _Type > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 866
5.78.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
5.79 __gnu_parallel::_EqualFromLess< _T1, _T2, _Compare > Class Template Reference . . . . . . . . . . 866
5.79.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
5.79.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
5.80 __gnu_parallel::_EqualTo< _T1, _T2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 868
5.80.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
5.80.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
5.81 std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode > Class Template Reference . . . . . . . 869
5.81.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
5.82 __gnu_cxx::_ExtPtr_allocator< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 869

Generated by Doxygen
xi

5.82.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870


5.83 __gnu_cxx::__detail::_Ffit_finder< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . 870
5.83.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
5.84 std::_Function_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
5.84.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
5.85 std::_Fwd_list_base< _Tp, _Alloc > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 872
5.85.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
5.86 std::_Fwd_list_const_iterator< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 873
5.86.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
5.86.2 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
5.87 std::_Fwd_list_iterator< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 874
5.87.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
5.87.2 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
5.88 std::_Fwd_list_node< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 875
5.88.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
5.89 std::_Fwd_list_node_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
5.89.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
5.90 __gnu_parallel::_GuardedIterator< _RAIter, _Compare > Class Template Reference . . . . . . . . . . . 877
5.90.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
5.90.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
5.90.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
5.90.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
5.91 __gnu_pbds::detail::pat_trie_base::_Head< _ATraits, Metadata > Struct Template Reference . . . . . . 880
5.91.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
5.92 __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata > Struct Template Reference . . . . . . 881
5.92.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
5.93 __gnu_cxx::_Invalid_type Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
5.93.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
5.94 __gnu_pbds::detail::pat_trie_base::_Iter< Node, Leaf, Head, Inode, Is_Forward_Iterator > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
5.94.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
5.95 std::__fwdlist::_Iterator< _Const, _Ptr > Class Template Reference . . . . . . . . . . . . . . . . . . . . 884
5.95.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
5.95.2 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
5.96 __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory > Class Template Reference . . . 885
5.96.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
5.96.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
5.96.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
5.96.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887

Generated by Doxygen
xii

5.96.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887


5.97 __gnu_parallel::_IteratorTriple< _Iterator1, _Iterator2, _Iterator3, _IteratorCategory > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
5.97.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
5.98 __gnu_parallel::_Job< _DifferenceTp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 888
5.98.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
5.98.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
5.99 __gnu_pbds::detail::pat_trie_base::_Leaf< _ATraits, Metadata > Struct Template Reference . . . . . . . 889
5.99.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
5.100 __gnu_parallel::_Less< _T1, _T2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 891
5.100.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891
5.100.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891
5.101 __gnu_parallel::_Lexicographic< _T1, _T2, _Compare > Class Template Reference . . . . . . . . . . 892
5.101.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
5.101.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
5.102 __gnu_parallel::_LexicographicReverse< _T1, _T2, _Compare > Class Template Reference . . . . . . 893
5.102.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
5.102.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
5.103 std::_List_base< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 894
5.103.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
5.104 std::_List_const_iterator< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 895
5.104.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
5.105 std::_List_iterator< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
5.105.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
5.106 std::_List_node< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
5.106.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
5.107 std::__detail::_List_node_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
5.107.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
5.108 std::__detail::_List_node_header Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
5.108.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
5.109 __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser Struct Reference . . . . . . . . . . . . . 900
5.109.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
5.109.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
5.110 __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare >::_Loser Struct Reference . . . . . . . . . . 901
5.110.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
5.111 __gnu_parallel::_LoserTree< __stable, _Tp, _Compare > Class Template Reference . . . . . . . . . . 901
5.111.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
5.111.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
5.111.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903

Generated by Doxygen
xiii

5.112 __gnu_parallel::_LoserTree< false, _Tp, _Compare > Class Template Reference . . . . . . . . . . . . 903
5.112.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
5.112.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
5.113 __gnu_parallel::_LoserTreeBase< _Tp, _Compare > Class Template Reference . . . . . . . . . . . . . 905
5.113.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
5.113.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
5.113.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
5.113.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
5.114 __gnu_parallel::_LoserTreePointer< __stable, _Tp, _Compare > Class Template Reference . . . . . . 907
5.114.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
5.115 __gnu_parallel::_LoserTreePointer< false, _Tp, _Compare > Class Template Reference . . . . . . . . 908
5.115.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
5.116 __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare > Class Template Reference . . . . . . . . . 909
5.116.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
5.117 __gnu_parallel::_LoserTreePointerUnguarded< __stable, _Tp, _Compare > Class Template Reference 910
5.117.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
5.118 __gnu_parallel::_LoserTreePointerUnguarded< false, _Tp, _Compare > Class Template Reference . . 911
5.118.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
5.119 __gnu_parallel::_LoserTreePointerUnguardedBase< _Tp, _Compare > Class Template Reference . . . 912
5.119.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
5.120 __gnu_parallel::_LoserTreeTraits< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . 913
5.120.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
5.120.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
5.121 __gnu_parallel::_LoserTreeUnguarded< __stable, _Tp, _Compare > Class Template Reference . . . . 914
5.121.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
5.122 __gnu_parallel::_LoserTreeUnguarded< false, _Tp, _Compare > Class Template Reference . . . . . . 915
5.122.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
5.123 __gnu_parallel::_LoserTreeUnguardedBase< _Tp, _Compare > Class Template Reference . . . . . . . 916
5.123.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
5.124 __gnu_pbds::detail::pat_trie_base::_Metadata< Metadata, _Alloc > Struct Template Reference . . . . . 917
5.124.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
5.125 __gnu_pbds::detail::pat_trie_base::_Metadata< null_type, _Alloc > Struct Template Reference . . . . . 917
5.125.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
5.126 __gnu_parallel::_Multiplies< _Tp1, _Tp2, _Result > Struct Template Reference . . . . . . . . . . . . . 918
5.126.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
5.126.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
5.127 std::__fwdlist::_Node< _ValPtr > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 919
5.127.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
5.128 __gnu_pbds::detail::pat_trie_base::_Node_base< _ATraits, Metadata > Struct Template Reference . . . 920

Generated by Doxygen
xiv

5.128.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921


5.129 std::__fwdlist::_Node_base< _VoidPtr > Struct Template Reference . . . . . . . . . . . . . . . . . . . 921
5.129.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
5.130 __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc
> Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
5.130.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
5.130.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
5.130.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
5.131 std::_Node_handle< _Key, _Value, _NodeAlloc > Class Template Reference . . . . . . . . . . . . . . 924
5.131.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
5.132 std::_Node_handle< _Value, _Value, _NodeAlloc > Class Template Reference . . . . . . . . . . . . . 926
5.132.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
5.133 std::_Node_handle_common< _Val, _NodeAlloc > Class Template Reference . . . . . . . . . . . . . . 927
5.133.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
5.134 std::_Node_insert_return< _Iterator, _NodeHandle > Struct Template Reference . . . . . . . . . . . . 927
5.134.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
5.135 __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
5.135.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
5.135.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
5.135.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
5.136 __gnu_debug::_Not_equal_to< _Type > Class Template Reference . . . . . . . . . . . . . . . . . . . 930
5.136.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
5.137 std::_Not_fn< _Fn > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
5.137.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
5.138 __gnu_parallel::_Nothing Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
5.138.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
5.138.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
5.139 __gnu_parallel::_Piece< _DifferenceTp > Struct Template Reference . . . . . . . . . . . . . . . . . . 932
5.139.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
5.139.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
5.140 std::_Placeholder< _Num > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 933
5.140.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
5.141 __gnu_parallel::_Plus< _Tp1, _Tp2, _Result > Struct Template Reference . . . . . . . . . . . . . . . . 933
5.141.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
5.141.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
5.142 __gnu_parallel::_PMWMSSortingData< _RAIter > Struct Template Reference . . . . . . . . . . . . . . 934
5.142.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
5.142.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
5.143 __gnu_cxx::_Pointer_adapter< _Storage_policy > Class Template Reference . . . . . . . . . . . . . . 936

Generated by Doxygen
xv

5.143.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937


5.144 __gnu_parallel::_PseudoSequence< _Tp, _DifferenceTp > Class Template Reference . . . . . . . . . 938
5.144.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
5.144.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
5.144.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
5.145 __gnu_parallel::_PseudoSequenceIterator< _Tp, _DifferenceTp > Class Template Reference . . . . . 939
5.145.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
5.146 __gnu_parallel::_QSBThreadLocal< _RAIter > Struct Template Reference . . . . . . . . . . . . . . . 940
5.146.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
5.146.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
5.146.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
5.146.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
5.147 std::__detail::_Quoted_string< _String, _CharT > Struct Template Reference . . . . . . . . . . . . . . 941
5.147.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
5.148 __gnu_parallel::_RandomNumber Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
5.148.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
5.148.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
5.148.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
5.149 __gnu_cxx::_Relative_pointer_impl< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . 943
5.149.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
5.150 __gnu_cxx::_Relative_pointer_impl< const _Tp > Class Template Reference . . . . . . . . . . . . . . 943
5.150.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
5.151 __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp > Class Template Reference . . . . . . . 944
5.151.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
5.151.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
5.151.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
5.152 __gnu_debug::_Safe_container< _SafeContainer, _Alloc, _SafeBase, _IsCxx11AllocatorAware >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
5.152.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
5.153 __gnu_debug::_Safe_forward_list< _SafeSequence > Class Template Reference . . . . . . . . . . . . 946
5.153.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
5.153.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
5.153.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
5.154 __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category > Class Template Reference . . . . . 949
5.154.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
5.154.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
5.154.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
5.154.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
5.155 __gnu_debug::_Safe_iterator_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 959

Generated by Doxygen
xvi

5.155.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960


5.155.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960
5.155.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
5.155.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
5.156 __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence > Class Template Reference . . . . . . . . 963
5.156.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
5.156.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
5.156.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966
5.156.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
5.157 __gnu_debug::_Safe_local_iterator_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 972
5.157.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
5.157.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
5.157.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
5.157.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975
5.158 __gnu_debug::_Safe_node_sequence< _Sequence > Class Template Reference . . . . . . . . . . . . 976
5.158.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
5.158.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
5.158.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
5.159 __gnu_debug::_Safe_sequence< _Sequence > Class Template Reference . . . . . . . . . . . . . . . 979
5.159.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980
5.159.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980
5.159.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
5.160 __gnu_debug::_Safe_sequence_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 981
5.160.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
5.160.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
5.160.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
5.160.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
5.161 __gnu_debug::_Safe_unordered_container< _Container > Class Template Reference . . . . . . . . . 984
5.161.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
5.161.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
5.161.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 987
5.162 __gnu_debug::_Safe_unordered_container_base Class Reference . . . . . . . . . . . . . . . . . . . . 988
5.162.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
5.162.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
5.162.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
5.162.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990
5.163 __gnu_debug::_Safe_vector< _SafeSequence, _BaseSequence > Class Template Reference . . . . . 991
5.163.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
5.164 __gnu_parallel::_SamplingSorter< __stable, _RAIter, _StrictWeakOrdering > Struct Template Reference992

Generated by Doxygen
xvii

5.164.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992


5.165 __gnu_parallel::_SamplingSorter< false, _RAIter, _StrictWeakOrdering > Struct Template Reference . 992
5.165.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
5.166 std::__detail::_Scanner< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 992
5.166.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
5.166.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
5.167 __gnu_debug::_Sequence_traits< _Sequence > Struct Template Reference . . . . . . . . . . . . . . . 994
5.167.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
5.168 __gnu_parallel::_Settings Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
5.168.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
5.168.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
5.168.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
5.169 std::_Sp_ebo_helper< _Nm, _Tp, false > Struct Template Reference . . . . . . . . . . . . . . . . . 1. 000
5.169.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 000
5.170 std::_Sp_ebo_helper< _Nm, _Tp, true > Struct Template Reference . . . . . . . . . . . . . . . . . . 1. 001
5.170.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 001
5.171 __gnu_parallel::_SplitConsistently< __exact, _RAIter, _Compare, _SortingPlacesIterator > Struct Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 001
5.171.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 001
5.172 __gnu_parallel::_SplitConsistently< false, _RAIter, _Compare, _SortingPlacesIterator > Struct Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 001
5.172.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 001
5.173 __gnu_parallel::_SplitConsistently< true, _RAIter, _Compare, _SortingPlacesIterator > Struct Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 002
5.173.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 002
5.174 std::__detail::_StateSeq< _TraitsT > Class Template Reference . . . . . . . . . . . . . . . . . . . . 1. 002
5.174.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 002
5.175 __gnu_cxx::_Std_pointer_impl< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 003
5.175.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 003
5.176 std::_Temporary_buffer< _ForwardIterator, _Tp > Class Template Reference . . . . . . . . . . . . . 1. 003
5.176.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 004
5.176.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 004
5.176.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 004
5.177 __gnu_cxx::_Unqualified_type< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . 1. 005
5.177.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 005
5.178 std::_Vector_base< _Tp, _Alloc > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 005
5.178.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 007
5.179 std::add_const< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 007
5.179.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 007
5.180 std::add_cv< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 007

Generated by Doxygen
xviii

5.180.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 008


5.181 std::add_lvalue_reference< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 008
5.181.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 008
5.182 std::add_pointer< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 008
5.182.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 008
5.183 std::add_rvalue_reference< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 008
5.183.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 009
5.184 std::add_volatile< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 009
5.184.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 009
5.185 std::adopt_lock_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 009
5.185.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 009
5.186 std::aligned_storage< _Len, _Align > Struct Template Reference . . . . . . . . . . . . . . . . . . . 1. 009
5.186.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 009
5.187 std::aligned_union< _Len, _Types > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 1. 010
5.187.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 010
5.188 std::alignment_of< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 010
5.188.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 011
5.189 std::allocator< typename > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 011
5.189.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 012
5.190 std::allocator< void > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 013
5.190.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 013
5.191 std::allocator_traits< typename > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 1. 013
5.191.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 014
5.191.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 014
5.191.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 016
5.192 std::allocator_traits< allocator< _Tp > > Struct Template Reference . . . . . . . . . . . . . . . . . . 1. 018
5.192.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 019
5.192.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 019
5.192.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 020
5.193 std::allocator_traits< allocator< void > > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . 1. 024
5.193.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 024
5.193.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 025
5.193.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 026
5.194 std::allocator_traits< pmr::polymorphic_allocator< _Tp > > Struct Template Reference . . . . . . . . 1. 027
5.194.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 028
5.194.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 028
5.194.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 029
5.195 __gnu_cxx::limit_condition::always_adjustor Struct Reference . . . . . . . . . . . . . . . . . . . . . . 1. 032
5.195.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 032

Generated by Doxygen
xix

5.196 __gnu_cxx::random_condition::always_adjustor Struct Reference . . . . . . . . . . . . . . . . . . . . 1. 032


5.196.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 032
5.197 __gnu_cxx::annotate_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 032
5.197.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 033
5.198 std::experimental::fundamentals_v1::any Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1. 033
5.198.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 034
5.198.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 034
5.198.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 034
5.199 std::array< _Tp, _Nm > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 035
5.199.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 036
5.200 __gnu_pbds::associative_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 037
5.200.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 037
5.201 std::atomic< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 037
5.201.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 038
5.202 std::atomic< _Tp ∗ > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 038
5.202.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 039
5.203 std::atomic< bool > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 039
5.203.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 040
5.204 std::atomic< char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 040
5.204.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 041
5.205 std::atomic< char16_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 041
5.205.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 041
5.206 std::atomic< char32_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 041
5.206.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 041
5.207 std::atomic< int > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 041
5.207.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 042
5.208 std::atomic< long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 042
5.208.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 042
5.209 std::atomic< long long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 042
5.209.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 043
5.210 std::atomic< short > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 043
5.210.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 043
5.211 std::atomic< signed char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 043
5.211.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 043
5.212 std::atomic< unsigned char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 043
5.212.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 044
5.213 std::atomic< unsigned int > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 044
5.213.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 044
5.214 std::atomic< unsigned long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 044

Generated by Doxygen
xx

5.214.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 045


5.215 std::atomic< unsigned long long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 045
5.215.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 045
5.216 std::atomic< unsigned short > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 045
5.216.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 045
5.217 std::atomic< wchar_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 045
5.217.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 046
5.218 std::atomic_flag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 046
5.218.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 046
5.219 std::auto_ptr< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 046
5.219.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 047
5.219.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 047
5.219.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 048
5.219.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 049
5.220 std::auto_ptr_ref< _Tp1 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 051
5.220.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 051
5.221 std::back_insert_iterator< _Container > Class Template Reference . . . . . . . . . . . . . . . . . . 1. 051
5.221.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 052
5.221.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 052
5.221.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 053
5.221.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 053
5.222 std::bad_alloc Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 053
5.222.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 054
5.222.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 054
5.223 std::experimental::fundamentals_v1::bad_any_cast Class Reference . . . . . . . . . . . . . . . . . . 1. 054
5.223.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 055
5.223.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 055
5.224 std::bad_cast Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 055
5.224.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 056
5.224.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 056
5.225 std::bad_exception Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 056
5.225.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 057
5.225.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 057
5.226 std::bad_function_call Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 057
5.226.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 058
5.226.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 058
5.227 std::experimental::fundamentals_v1::bad_optional_access Class Reference . . . . . . . . . . . . . . 1. 058
5.227.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 058
5.227.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 059

Generated by Doxygen
xxi

5.228 std::bad_typeid Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 059


5.228.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 059
5.228.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 059
5.229 std::bad_weak_ptr Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 059
5.229.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 060
5.229.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 060
5.230 __gnu_parallel::balanced_quicksort_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . 1. 060
5.230.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 061
5.230.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 061
5.231 __gnu_parallel::balanced_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 062
5.231.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 062
5.231.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 062
5.232 std::tr2::bases< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 063
5.232.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 063
5.233 __gnu_pbds::basic_branch< Key, Mapped, Tag, Node_Update, Policy_Tl, _Alloc > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 063
5.233.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 064
5.234 __gnu_pbds::basic_branch_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 064
5.234.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 064
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . . 1. 064
5.235.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 067
5.235.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 068
5.235.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 068
5.235.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 082
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 084
5.236.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 091
5.236.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 091
5.236.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 092
5.236.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 092
5.236.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 093
5.236.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 128
5.237 __gnu_pbds::basic_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, Tag,
Policy_Tl, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 132
5.237.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 133
5.238 __gnu_pbds::basic_hash_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 134
5.238.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 134
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 135
5.239.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 140
5.239.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 140
5.239.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 141

Generated by Doxygen
xxii

5.239.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 141


5.239.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 142
5.239.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 168
5.240 __gnu_pbds::basic_invalidation_guarantee Struct Reference . . . . . . . . . . . . . . . . . . . . . . 1. 173
5.240.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 173
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 1. 173
5.241.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 176
5.241.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 177
5.241.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 179
5.241.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 179
5.241.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 180
5.241.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 191
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 196
5.242.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 201
5.242.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 201
5.242.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 202
5.242.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 203
5.242.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 203
5.242.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 237
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 241
5.243.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 246
5.243.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 246
5.243.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 247
5.243.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 248
5.243.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 248
5.243.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 273
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference . . . . . . . . . . . . . 1. 278
5.244.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 283
5.244.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 283
5.244.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 285
5.244.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 285
5.244.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 286
5.244.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 311
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 316
5.245.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 320
5.245.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 321
5.245.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 322
5.245.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 322
5.245.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 323

Generated by Doxygen
xxiii

5.245.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 344


5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 348
5.246.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 352
5.246.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 353
5.246.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 354
5.246.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 354
5.246.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 354
5.246.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 374
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference . . . . . . . . . . . . 1. 379
5.247.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 384
5.247.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 384
5.247.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 385
5.247.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 385
5.247.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 386
5.247.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 407
5.248 std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference . . . . . . . . . . . . . . . . . 1. 411
5.248.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 413
5.248.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 413
5.248.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 416
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . . 1. 420
5.249.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 423
5.249.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 424
5.249.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 425
5.249.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 425
5.249.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 437
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference . . . . . . . . . 1. 437
5.250.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 444
5.250.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 444
5.250.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 482
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . 1. 482
5.251.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 490
5.251.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 491
5.251.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 500
5.251.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 599
5.252 std::basic_string_view< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . 1. 599
5.252.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 601
5.253 std::experimental::fundamentals_v1::basic_string_view< _CharT, _Traits > Class Template Reference 1. 601
5.253.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 603
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference . . . . . . . . . . . . . . . 1. 603

Generated by Doxygen
xxiv

5.254.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 606


5.254.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 606
5.254.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 607
5.254.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 620
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference . . . . . . . . . . . . . 1. 621
5.255.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 627
5.255.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 628
5.255.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 629
5.255.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 629
5.255.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 630
5.255.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 664
5.256 std::bernoulli_distribution Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 669
5.256.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 669
5.256.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 669
5.256.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 670
5.256.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 670
5.256.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 671
5.257 std::bidirectional_iterator_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 671
5.257.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 672
5.258 __gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer,
Reference, Const_Reference, Is_Forward_Iterator, _Alloc > Class Template Reference . . . . . . . . 1. 672
5.258.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 674
5.259 __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > Class
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 674
5.259.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 675
5.259.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 675
5.259.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 676
5.260 __gnu_pbds::detail::bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, Is_Forward_Iterator, _Alloc > Class Template Reference . . . . . . . . . . . 1. 677
5.260.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 678
5.261 __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 678
5.261.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 679
5.261.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 679
5.261.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 680
5.262 __gnu_pbds::detail::bin_search_tree_traits< Key, Mapped, Cmp_Fn, Node_Update, Node, _Alloc >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 681
5.262.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 682
5.262.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 682
5.263 __gnu_pbds::detail::bin_search_tree_traits< Key, null_type, Cmp_Fn, Node_Update, Node, _Alloc >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 682

Generated by Doxygen
xxv

5.263.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 683


5.263.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 683
5.264 __gnu_cxx::binary_compose< _Operation1, _Operation2, _Operation3 > Class Template Reference . 1. 683
5.264.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 684
5.264.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 684
5.265 std::binary_function< _Arg1, _Arg2, _Result > Struct Template Reference . . . . . . . . . . . . . . . 1. 684
5.265.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 685
5.265.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 685
5.266 __gnu_pbds::detail::binary_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference . . . . 1. 685
5.266.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 687
5.267 __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 688
5.267.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 688
5.267.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 689
5.267.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 689
5.267.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 690
5.268 __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > Class
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 691
5.268.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 692
5.268.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 692
5.268.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 693
5.268.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 693
5.269 __gnu_pbds::binary_heap_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 694
5.269.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 694
5.270 std::binary_negate< _Predicate > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 694
5.270.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 695
5.270.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 695
5.271 std::binder1st< _Operation > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 1. 696
5.271.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 696
5.271.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 697
5.272 std::binder2nd< _Operation > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 1. 697
5.272.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 698
5.272.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 698
5.273 std::binomial_distribution< _IntType > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 698
5.273.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 699
5.273.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 699
5.273.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 699
5.273.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 701
5.274 __gnu_pbds::detail::binomial_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference . . . 1. 702
5.274.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 703

Generated by Doxygen
xxvi

5.275 __gnu_pbds::detail::binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > Class Template Reference 1. 704
5.275.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 705
5.276 __gnu_pbds::binomial_heap_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 706
5.276.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 706
5.277 __gnu_cxx::bitmap_allocator< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . 1. 706
5.277.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 707
5.277.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 707
5.278 std::__debug::bitset< _Nb > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 1. 708
5.278.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 709
5.279 std::bitset< _Nb > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 709
5.279.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 711
5.279.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 712
5.279.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 714
5.280 std::tr2::bool_set Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 719
5.280.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 720
5.280.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 720
5.280.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 720
5.281 __gnu_pbds::detail::branch_policy< Node_CItr, Node_Itr, _Alloc > Struct Template Reference . . . . 1. 721
5.281.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 722
5.282 __gnu_pbds::detail::branch_policy< Node_CItr, Node_CItr, _Alloc > Struct Template Reference . . . 1. 722
5.282.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 722
5.283 std::cauchy_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 722
5.283.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 723
5.283.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 723
5.283.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 723
5.283.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 724
5.284 __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 725
5.284.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 725
5.284.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 725
5.284.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 726
5.284.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 726
5.285 __gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy,
Store_Hash, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 728
5.285.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 729
5.285.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 730
5.286 __gnu_pbds::cc_hash_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 733
5.286.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 733
5.287 __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash←-
_Fn, Resize_Policy > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 733

Generated by Doxygen
xxvii

5.287.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 736


5.287.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 736
5.287.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 736
5.288 __gnu_cxx::char_traits< _CharT > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 738
5.288.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 739
5.289 std::char_traits< _CharT > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 739
5.289.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 740
5.290 std::char_traits< __gnu_cxx::character< _Value, _Int, _St > > Struct Template Reference . . . . . . 1. 740
5.290.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 741
5.291 std::char_traits< char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 741
5.291.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 742
5.292 std::char_traits< wchar_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 742
5.292.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 742
5.293 __gnu_cxx::character< _Value, _Int, _St > Struct Template Reference . . . . . . . . . . . . . . . . . 1. 742
5.293.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 743
5.294 std::chi_squared_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . 1. 743
5.294.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 744
5.294.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 744
5.294.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 744
5.294.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 745
5.295 std::codecvt< _InternT, _ExternT, _StateT > Class Template Reference . . . . . . . . . . . . . . . . 1. 746
5.295.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 748
5.295.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 748
5.296 std::codecvt< _InternT, _ExternT, encoding_state > Class Template Reference . . . . . . . . . . . . 1. 751
5.296.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 753
5.296.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 753
5.297 std::codecvt< char, char, mbstate_t > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 756
5.297.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 758
5.297.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 758
5.298 std::codecvt< char16_t, char, mbstate_t > Class Reference . . . . . . . . . . . . . . . . . . . . . . 1. 761
5.298.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 763
5.298.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 763
5.299 std::codecvt< char32_t, char, mbstate_t > Class Reference . . . . . . . . . . . . . . . . . . . . . . 1. 766
5.299.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 768
5.299.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 768
5.300 std::codecvt< wchar_t, char, mbstate_t > Class Reference . . . . . . . . . . . . . . . . . . . . . . . 1. 771
5.300.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 773
5.300.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 773
5.301 std::codecvt_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 776

Generated by Doxygen
xxviii

5.301.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 777


5.302 std::codecvt_byname< _InternT, _ExternT, _StateT > Class Template Reference . . . . . . . . . . . 1. 777
5.302.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 779
5.302.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 779
5.303 std::__cxx11::collate< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 1. 783
5.303.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 784
5.303.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 784
5.303.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 784
5.303.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 785
5.303.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 788
5.304 std::__cxx11::collate_byname< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . 1. 788
5.304.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 788
5.304.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 788
5.305 std::common_iterator< _It, _Sent > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 788
5.305.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 790
5.306 std::common_type< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 790
5.306.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 790
5.307 std::common_type< chrono::duration< _Rep, _Period > > Struct Template Reference . . . . . . . . 1. 790
5.307.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 790
5.308 std::common_type< chrono::duration< _Rep, _Period >, chrono::duration< _Rep, _Period > > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 790
5.308.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 790
5.309 std::common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration< _Rep2, _Period2 > >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 791
5.309.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 791
5.310 std::common_type< chrono::time_point< _Clock, _Duration > > Struct Template Reference . . . . . 1. 791
5.310.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 791
5.311 std::common_type< chrono::time_point< _Clock, _Duration >, chrono::time_point< _Clock, _Duration
> > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 791
5.311.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 791
5.312 std::common_type< chrono::time_point< _Clock, _Duration1 >, chrono::time_point< _Clock, _←-
Duration2 > > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 791
5.312.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 792
5.313 std::compare_three_way_result< _Tp, _Up > Struct Template Reference . . . . . . . . . . . . . . . 1. 792
5.313.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 792
5.314 std::complex< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 792
5.314.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 793
5.314.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 793
5.314.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 793
5.314.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 793

Generated by Doxygen
xxix

5.315 std::complex< double > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 794


5.315.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 794
5.316 std::complex< float > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 795
5.316.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 795
5.317 std::complex< long double > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 795
5.317.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 796
5.318 __gnu_pbds::detail::cond_dealtor< HT_Map > Class Template Reference . . . . . . . . . . . . . . . 1. 796
5.318.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 797
5.319 __gnu_pbds::detail::ov_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::cond_dtor<
Size_Type > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 797
5.319.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 797
5.320 __gnu_cxx::condition_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 797
5.320.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 798
5.321 std::condition_variable Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 798
5.321.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 799
5.322 std::_V2::condition_variable_any Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 799
5.322.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 799
5.323 std::conditional< _Cond, _Iftrue, _Iffalse > Struct Template Reference . . . . . . . . . . . . . . . . . 1. 799
5.323.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 800
5.324 __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata >::const_iterator Struct Reference . . 1. 800
5.324.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 801
5.325 std::chrono::tzdb_list::const_iterator Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 801
5.325.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 801
5.326 std::const_mem_fun1_ref_t< _Ret, _Tp, _Arg > Class Template Reference . . . . . . . . . . . . . . 1. 802
5.326.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 802
5.326.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 802
5.327 std::const_mem_fun1_t< _Ret, _Tp, _Arg > Class Template Reference . . . . . . . . . . . . . . . . 1. 803
5.327.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 803
5.327.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 803
5.328 std::const_mem_fun_ref_t< _Ret, _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . 1. 804
5.328.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 804
5.328.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 804
5.329 std::const_mem_fun_t< _Ret, _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . 1. 805
5.329.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 805
5.329.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 805
5.330 __gnu_cxx::constant_binary_fun< _Result, _Arg1, _Arg2 > Struct Template Reference . . . . . . . . 1. 806
5.330.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 806
5.331 __gnu_parallel::constant_size_blocks_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . 1. 806
5.331.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 807

Generated by Doxygen
xxx

5.332 __gnu_cxx::constant_unary_fun< _Result, _Argument > Struct Template Reference . . . . . . . . . 1. 807


5.332.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 807
5.333 __gnu_cxx::constant_void_fun< _Result > Struct Template Reference . . . . . . . . . . . . . . . . . 1. 808
5.333.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 808
5.334 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, Tag, Policy_Tl > Struct Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 808
5.334.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 808
5.335 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, binary_heap_tag, null_type >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 808
5.335.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 808
5.335.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 809
5.336 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, binomial_heap_tag, null_type
> Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 809
5.336.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 809
5.336.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 809
5.337 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, pairing_heap_tag, null_type >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 809
5.337.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 809
5.337.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 810
5.338 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, rc_binomial_heap_tag, null_←-
type > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 810
5.338.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 810
5.338.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 810
5.339 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, thin_heap_tag, null_type >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 810
5.339.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 810
5.339.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 811
5.340 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, cc_hash_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 811
5.340.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 811
5.340.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 811
5.341 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, gp_hash_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 811
5.341.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 811
5.341.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 812
5.342 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, list_update_tag, Policy_Tl >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 812
5.342.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 812
5.342.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 812
5.343 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, ov_tree_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 812
5.343.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 812

Generated by Doxygen
xxxi

5.343.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 813


5.344 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, pat_trie_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 813
5.344.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 813
5.345 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, rb_tree_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 813
5.345.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 813
5.345.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 813
5.346 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, splay_tree_tag, Policy_Tl >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 814
5.346.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 814
5.346.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 814
5.347 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, cc_hash_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 814
5.347.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 814
5.347.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 814
5.348 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, gp_hash_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 815
5.348.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 815
5.348.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 815
5.349 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, list_update_tag, Policy_Tl >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 815
5.349.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 815
5.349.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 815
5.350 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, ov_tree_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 816
5.350.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 816
5.350.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 816
5.351 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, pat_trie_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 816
5.351.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 816
5.351.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 816
5.352 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, rb_tree_tag, Policy_Tl > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 817
5.352.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 817
5.353 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, splay_tree_tag, Policy_Tl >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 817
5.353.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 817
5.353.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 817
5.354 __gnu_pbds::container_error Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 817
5.354.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 818
5.354.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 818

Generated by Doxygen
xxxii

5.355 __gnu_pbds::container_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 818


5.355.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 819
5.356 __gnu_pbds::container_traits< Cntnr > Struct Template Reference . . . . . . . . . . . . . . . . . . . 1. 819
5.356.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 820
5.356.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 820
5.357 __gnu_pbds::container_traits_base< _Tag > Struct Template Reference . . . . . . . . . . . . . . . . 1. 820
5.357.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 820
5.358 __gnu_pbds::container_traits_base< binary_heap_tag > Struct Reference . . . . . . . . . . . . . . 1. 820
5.358.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 820
5.359 __gnu_pbds::container_traits_base< binomial_heap_tag > Struct Reference . . . . . . . . . . . . . 1. 821
5.359.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 821
5.360 __gnu_pbds::container_traits_base< cc_hash_tag > Struct Reference . . . . . . . . . . . . . . . . . 1. 821
5.360.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 821
5.361 __gnu_pbds::container_traits_base< gp_hash_tag > Struct Reference . . . . . . . . . . . . . . . . 1. 821
5.361.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 821
5.362 __gnu_pbds::container_traits_base< list_update_tag > Struct Reference . . . . . . . . . . . . . . . 1. 821
5.362.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 822
5.363 __gnu_pbds::container_traits_base< ov_tree_tag > Struct Reference . . . . . . . . . . . . . . . . . 1. 822
5.363.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 822
5.364 __gnu_pbds::container_traits_base< pairing_heap_tag > Struct Reference . . . . . . . . . . . . . . 1. 822
5.364.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 822
5.365 __gnu_pbds::container_traits_base< pat_trie_tag > Struct Reference . . . . . . . . . . . . . . . . . 1. 822
5.365.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 823
5.366 __gnu_pbds::container_traits_base< rb_tree_tag > Struct Reference . . . . . . . . . . . . . . . . . 1. 823
5.366.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 823
5.367 __gnu_pbds::container_traits_base< rc_binomial_heap_tag > Struct Reference . . . . . . . . . . . . 1. 823
5.367.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 823
5.368 __gnu_pbds::container_traits_base< splay_tree_tag > Struct Reference . . . . . . . . . . . . . . . . 1. 823
5.368.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 823
5.369 __gnu_pbds::container_traits_base< thin_heap_tag > Struct Reference . . . . . . . . . . . . . . . . 1. 824
5.369.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 824
5.370 std::contiguous_iterator_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 824
5.370.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 825
5.371 std::counted_iterator< _It > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 825
5.371.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 826
5.372 std::ctype< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 826
5.372.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 828
5.372.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 828
5.372.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 840

Generated by Doxygen
xxxiii

5.373 std::ctype< char > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 840


5.373.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 842
5.373.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 842
5.373.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 842
5.373.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 843
5.373.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 852
5.374 std::ctype< wchar_t > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 852
5.374.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 854
5.374.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 854
5.374.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 854
5.374.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 855
5.374.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 864
5.375 std::ctype_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 865
5.375.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 865
5.376 std::ctype_byname< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 1. 865
5.376.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 867
5.376.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 868
5.376.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 878
5.377 std::ctype_byname< char > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 879
5.377.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 880
5.377.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 881
5.377.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 881
5.377.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 889
5.378 __gnu_cxx::debug_allocator< _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 889
5.378.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 890
5.379 std::decay< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 890
5.379.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 890
5.380 std::decimal::decimal128 Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 891
5.380.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 892
5.380.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 892
5.381 std::decimal::decimal32 Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 892
5.381.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 893
5.381.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 893
5.382 std::decimal::decimal64 Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 894
5.382.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 895
5.382.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 895
5.383 simd_abi::deduce< _Tp, _Np,... > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 895
5.383.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 895
5.384 __gnu_pbds::detail::default_comb_hash_fn Struct Reference . . . . . . . . . . . . . . . . . . . . . . 1. 895

Generated by Doxygen
xxxiv

5.384.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 896


5.384.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 896
5.385 std::default_delete< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 896
5.385.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 896
5.385.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 896
5.385.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 897
5.386 std::default_delete< _Tp[]> Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 897
5.386.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 897
5.386.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 897
5.386.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 898
5.387 __gnu_pbds::detail::default_eq_fn< Key > Struct Template Reference . . . . . . . . . . . . . . . . . 1. 898
5.387.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 898
5.387.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 898
5.388 __gnu_pbds::detail::default_hash_fn< Key > Struct Template Reference . . . . . . . . . . . . . . . . 1. 898
5.388.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 898
5.388.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 899
5.389 __gnu_parallel::default_parallel_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 899
5.389.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 899
5.389.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 899
5.390 __gnu_pbds::detail::default_probe_fn< Comb_Probe_Fn > Struct Template Reference . . . . . . . . 1. 900
5.390.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 900
5.390.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 900
5.391 __gnu_pbds::detail::default_resize_policy< Comb_Hash_Fn > Struct Template Reference . . . . . . 1. 900
5.391.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 900
5.391.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 901
5.392 std::default_sentinel_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 901
5.392.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 901
5.393 __gnu_pbds::detail::default_trie_access_traits< Key > Struct Template Reference . . . . . . . . . . . 1. 901
5.393.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 901
5.394 __gnu_pbds::detail::default_trie_access_traits< std::basic_string< Char, Char_Traits, std::allocator<
char > > > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 901
5.394.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 902
5.394.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 902
5.395 __gnu_pbds::detail::default_update_policy Struct Reference . . . . . . . . . . . . . . . . . . . . . . 1. 902
5.395.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 902
5.395.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 902
5.396 std::defer_lock_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 902
5.396.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 902
5.397 std::__debug::deque< _Tp, _Allocator > Class Template Reference . . . . . . . . . . . . . . . . . . 1. 903

Generated by Doxygen
xxxv

5.397.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 905


5.398 std::deque< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 905
5.398.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 908
5.398.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 910
5.398.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 912
5.399 std::destroying_delete_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 927
5.399.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 927
5.400 std::tr2::direct_bases< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 1. 927
5.400.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 927
5.401 __gnu_pbds::direct_mask_range_hashing< Size_Type > Class Template Reference . . . . . . . . . 1. 928
5.401.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 928
5.401.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 928
5.402 __gnu_pbds::direct_mod_range_hashing< Size_Type > Class Template Reference . . . . . . . . . . 1. 929
5.402.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 929
5.402.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 929
5.403 std::filesystem::directory_entry Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 930
5.403.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 931
5.404 std::filesystem::directory_iterator Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 931
5.404.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 932
5.405 std::discard_block_engine< _RandomNumberEngine, __p, __r > Class Template Reference . . . . . 1. 932
5.405.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 933
5.405.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 933
5.405.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 933
5.405.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 935
5.405.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 936
5.406 std::discrete_distribution< _IntType > Class Template Reference . . . . . . . . . . . . . . . . . . . . 1. 937
5.406.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 938
5.406.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 938
5.406.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 938
5.406.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 939
5.407 std::divides< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 940
5.407.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 941
5.407.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 941
5.408 std::divides< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 941
5.408.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 941
5.409 std::domain_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 942
5.409.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 942
5.409.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 942
5.410 __gnu_pbds::detail::dumnode_const_iterator< Key, Data, _Alloc > Struct Template Reference . . . . 1. 943

Generated by Doxygen
xxxvi

5.410.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 943


5.411 std::chrono::duration< _Rep, _Period > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 943
5.411.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 944
5.412 std::chrono::duration_values< _Rep > Struct Template Reference . . . . . . . . . . . . . . . . . . . 1. 944
5.412.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 944
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . 1. 945
5.413.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 947
5.413.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 948
5.413.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 949
5.414 std::enable_if< bool, _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 1. 958
5.414.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 958
5.415 std::enable_shared_from_this< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . 1. 958
5.415.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 958
5.415.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 958
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 1. 959
5.416.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 962
5.416.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 962
5.416.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 974
5.417 __gnu_cxx::encoding_char_traits< _CharT > Struct Template Reference . . . . . . . . . . . . . . . 1. 977
5.417.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 978
5.418 __gnu_cxx::encoding_state Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 978
5.418.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 979
5.419 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, No_Throw > Struct Template Reference . . 1. 979
5.419.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 979
5.420 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, false > Struct Template Reference . . . . . 1. 979
5.420.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 979
5.421 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, true > Struct Template Reference . . . . . . 1. 979
5.421.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 980
5.421.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 980
5.422 __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, No_Throw > Struct Template Reference . . . . 1. 980
5.422.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 980
5.423 __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, false > Struct Template Reference . . . . . . . 1. 980
5.423.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 980
5.424 __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, true > Struct Template Reference . . . . . . . . 1. 980
5.424.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 981
5.425 __gnu_pbds::detail::eq_by_less< Key, Cmp_Fn > Struct Template Reference . . . . . . . . . . . . . 1. 981
5.425.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 981
5.426 __gnu_parallel::equal_split_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 981
5.426.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 981

Generated by Doxygen
xxxvii

5.427 std::equal_to< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 982


5.427.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 982
5.427.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 982
5.428 std::ranges::equal_to Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 983
5.428.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 983
5.429 std::equal_to< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 983
5.429.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 983
5.430 std::_V2::error_category Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 983
5.430.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 984
5.430.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 984
5.431 std::error_code Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 985
5.431.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 985
5.431.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 986
5.431.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 986
5.432 std::error_condition Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 986
5.432.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 987
5.432.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 987
5.432.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 988
5.433 __gnu_parallel::exact_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 988
5.433.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 989
5.433.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 989
5.434 std::exception Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 989
5.434.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 990
5.434.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 990
5.435 std::__unspecified__::exception_ptr Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 991
5.435.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 991
5.436 std::exponential_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . 1. 991
5.436.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 992
5.436.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 993
5.436.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 993
5.436.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 993
5.436.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 994
5.437 std::extent< typename, _Uint > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 1. 994
5.437.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 995
5.438 std::extreme_value_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . 1. 995
5.438.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 996
5.438.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 996
5.438.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 996
5.438.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 998

Generated by Doxygen
xxxviii

5.439 std::locale::facet Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 998


5.439.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 000
5.439.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 000
5.440 std::filesystem::file_status Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 000
5.440.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 001
5.441 std::experimental::filesystem::v1::filesystem_error Class Reference . . . . . . . . . . . . . . . . . . . 2. 001
5.441.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 002
5.441.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 002
5.442 std::filesystem::filesystem_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 002
5.442.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 003
5.442.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 003
5.443 __gnu_parallel::find_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 004
5.443.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 004
5.444 std::fisher_f_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . . . 2. 004
5.444.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 005
5.444.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 005
5.444.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 006
5.444.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 006
5.445 __gnu_cxx::forced_error Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 007
5.445.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 008
5.445.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 008
5.446 std::forward_iterator_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 008
5.446.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 009
5.447 std::__debug::forward_list< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . 2. 009
5.447.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 012
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 012
5.448.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 014
5.448.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 014
5.448.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 017
5.449 std::fpos< _StateT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 031
5.449.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 031
5.449.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 031
5.449.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 031
5.450 __gnu_cxx::free_list Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 032
5.450.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 033
5.450.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 033
5.451 std::from_chars_result Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 034
5.451.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 034
5.452 std::front_insert_iterator< _Container > Class Template Reference . . . . . . . . . . . . . . . . . . 2. 034

Generated by Doxygen
xxxix

5.452.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 035


5.452.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 035
5.452.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 036
5.452.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 036
5.453 std::function< _Res(_ArgTypes...)> Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 037
5.453.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 038
5.453.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 038
5.453.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 039
5.454 std::future< _Res > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 043
5.454.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 044
5.454.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 044
5.454.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 044
5.455 std::future< _Res & > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 044
5.455.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 045
5.455.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 046
5.455.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 046
5.456 std::future< void > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 046
5.456.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 047
5.456.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 047
5.456.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 047
5.457 std::future_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 047
5.457.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 048
5.457.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 048
5.458 std::gamma_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . . . 2. 048
5.458.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 049
5.458.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 050
5.458.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 050
5.458.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 050
5.458.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 051
5.459 std::geometric_distribution< _IntType > Class Template Reference . . . . . . . . . . . . . . . . . . . 2. 052
5.459.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 053
5.459.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 053
5.459.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 054
5.459.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 055
5.460 __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize←-
_Policy, Store_Hash, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 055
5.460.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 056
5.460.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 056
5.461 __gnu_pbds::gp_hash_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 060

Generated by Doxygen
xl

5.461.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 061


5.462 __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe←-
_Fn, Probe_Fn, Resize_Policy > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 061
5.462.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 063
5.462.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 064
5.462.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 064
5.463 std::chrono::gps_clock Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 066
5.463.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 066
5.464 std::greater< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 066
5.464.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 067
5.464.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 067
5.465 std::ranges::greater Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 068
5.465.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 068
5.466 std::greater< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 068
5.466.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 068
5.467 std::greater_equal< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 068
5.467.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 069
5.467.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 069
5.468 std::ranges::greater_equal Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 070
5.468.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 070
5.469 std::greater_equal< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 070
5.469.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 070
5.470 __gnu_cxx::random_condition::group_adjustor Struct Reference . . . . . . . . . . . . . . . . . . . . 2. 070
5.470.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 071
5.471 __gnu_parallel::growing_blocks_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 071
5.471.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 071
5.472 std::gslice Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 071
5.472.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 072
5.473 std::gslice_array< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 072
5.473.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 073
5.473.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 073
5.473.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 073
5.474 std::has_virtual_destructor< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 075
5.474.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 075
5.475 std::hash< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 075
5.475.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 075
5.476 std::hash< __debug::bitset< _Nb > > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 075
5.476.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 076
5.477 std::hash< __debug::vector< bool, _Alloc > > Struct Template Reference . . . . . . . . . . . . . . . 2. 076

Generated by Doxygen
xli

5.477.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 076


5.478 std::hash< __gnu_cxx::__u16vstring > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 076
5.478.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 076
5.479 std::hash< __gnu_cxx::__u32vstring > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 076
5.479.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 076
5.480 std::hash< __gnu_cxx::__vstring > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 077
5.480.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 077
5.481 std::hash< __gnu_cxx::__wvstring > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 077
5.481.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 077
5.482 std::hash< __gnu_cxx::throw_value_limit > Struct Reference . . . . . . . . . . . . . . . . . . . . . . 2. 077
5.482.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 078
5.482.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 078
5.483 std::hash< __gnu_cxx::throw_value_random > Struct Reference . . . . . . . . . . . . . . . . . . . . 2. 078
5.483.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 079
5.483.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 079
5.484 std::hash< __gnu_debug::basic_string< _CharT > > Struct Template Reference . . . . . . . . . . . 2. 079
5.484.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 079
5.485 std::hash< __shared_ptr< _Tp, _Lp > > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 079
5.485.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 080
5.486 std::hash< _Tp ∗ > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 080
5.486.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 080
5.487 std::hash< basic_string< char, char_traits< char >, _Alloc > > Struct Template Reference . . . . . 2. 080
5.487.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 080
5.488 std::hash< basic_string< char16_t, char_traits< char16_t >, _Alloc > > Struct Template Reference . 2. 080
5.488.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 081
5.489 std::hash< basic_string< char32_t, char_traits< char32_t >, _Alloc > > Struct Template Reference . 2. 081
5.489.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 081
5.490 std::hash< basic_string< wchar_t, char_traits< wchar_t >, _Alloc > > Struct Template Reference . . 2. 081
5.490.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 081
5.491 std::hash< bool > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 081
5.491.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 082
5.492 std::hash< char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 082
5.492.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 082
5.493 std::hash< char16_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 082
5.493.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 082
5.494 std::hash< char32_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 082
5.494.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 082
5.495 std::hash< double > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 083
5.495.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 083

Generated by Doxygen
xlii

5.496 std::hash< error_code > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 083


5.496.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 083
5.497 std::hash< error_condition > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 083
5.497.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 083
5.498 std::hash< experimental::optional< _Tp > > Struct Template Reference . . . . . . . . . . . . . . . . 2. 083
5.498.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 084
5.499 std::hash< experimental::shared_ptr< _Tp > > Struct Template Reference . . . . . . . . . . . . . . 2. 084
5.499.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 084
5.500 std::hash< float > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 084
5.500.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 084
5.501 std::hash< int > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 084
5.501.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 084
5.502 std::hash< long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 085
5.502.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 085
5.503 std::hash< long double > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 085
5.503.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 085
5.504 std::hash< long long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 085
5.504.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 085
5.505 std::hash< shared_ptr< _Tp > > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 085
5.505.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.506 std::hash< short > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.506.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.507 std::hash< signed char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.507.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.508 std::hash< thread::id > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.508.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.509 std::hash< type_index > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 086
5.509.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 087
5.510 std::hash< unique_ptr< _Tp, _Dp > > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 087
5.510.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 087
5.511 std::hash< unsigned char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 087
5.511.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 087
5.512 std::hash< unsigned int > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 087
5.512.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 087
5.513 std::hash< unsigned long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088
5.513.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088
5.514 std::hash< unsigned long long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088
5.514.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088
5.515 std::hash< unsigned short > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088

Generated by Doxygen
xliii

5.515.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088


5.516 std::hash< wchar_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088
5.516.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 088
5.517 std::hash<::bitset< _Nb > > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 089
5.517.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 089
5.518 std::hash<::vector< bool, _Alloc > > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 2. 089
5.518.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 089
5.519 __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, Store_Hash > Struct Template Reference . . . 2. 090
5.519.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 090
5.520 __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, false > Struct Template Reference . . . . . . . 2. 090
5.520.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 090
5.521 __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, true > Struct Template Reference . . . . . . . 2. 091
5.521.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 091
5.522 __gnu_pbds::hash_exponential_size_policy< Size_Type > Class Template Reference . . . . . . . . 2. 091
5.522.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 092
5.522.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 092
5.523 __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 092
5.523.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 093
5.523.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 093
5.523.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 093
5.523.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 094
5.524 __gnu_pbds::detail::hash_load_check_resize_trigger_size_base< Size_Type, Hold_Size > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 094
5.524.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 094
5.525 __gnu_pbds::detail::hash_load_check_resize_trigger_size_base< Size_Type, true > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 095
5.525.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 095
5.526 __gnu_cxx::hash_map< _Key, _Tp, _HashFn, _EqualKey, _Alloc > Class Template Reference . . . . 2. 095
5.526.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 096
5.527 __gnu_cxx::hash_multimap< _Key, _Tp, _HashFn, _EqualKey, _Alloc > Class Template Reference . . 2. 097
5.527.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 098
5.528 __gnu_cxx::hash_multiset< _Value, _HashFcn, _EqualKey, _Alloc > Class Template Reference . . . 2. 098
5.528.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 100
5.529 __gnu_pbds::hash_prime_size_policy Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 100
5.529.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 100
5.529.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 100
5.529.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 100
5.530 __gnu_cxx::hash_set< _Value, _HashFcn, _EqualKey, _Alloc > Class Template Reference . . . . . . 2. 101
5.530.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 102

Generated by Doxygen
xliv

5.531 __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access,


Size_Type > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 102
5.531.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 103
5.531.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 103
5.531.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 104
5.531.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 104
5.532 std::chrono::hh_mm_ss< _Duration > Class Template Reference . . . . . . . . . . . . . . . . . . . 2. 106
5.532.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 106
5.533 std::locale::id Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 106
5.533.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 107
5.533.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 107
5.533.3 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 107
5.534 std::thread::id Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 108
5.534.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 109
5.535 std::identity Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 109
5.535.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 109
5.536 std::experimental::fundamentals_v1::in_place_t Struct Reference . . . . . . . . . . . . . . . . . . . . 2. 109
5.536.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 109
5.537 std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > Class Template Reference2109
5.537.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 110
5.537.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 110
5.537.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 110
5.537.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 112
5.537.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 113
5.538 std::indirect_array< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 114
5.538.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 115
5.538.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 115
5.538.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 115
5.539 std::initializer_list< _E > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 116
5.539.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 117
5.539.2 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 117
5.540 std::input_iterator_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 118
5.540.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 118
5.541 __gnu_pbds::insert_error Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 118
5.541.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 119
5.541.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 119
5.542 std::insert_iterator< _Container > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 119
5.542.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 120
5.542.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 121

Generated by Doxygen
xlv

5.542.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 121


5.542.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 121
5.543 std::integer_sequence< _Tp, _Idx > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 2. 122
5.543.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 122
5.544 std::integral_constant< _Tp, __v > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 123
5.544.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 123
5.545 std::invalid_argument Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 123
5.545.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 124
5.545.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 124
5.546 std::ios_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 124
5.546.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 126
5.546.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 126
5.546.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 128
5.546.4 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 128
5.546.5 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 128
5.546.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 133
5.547 std::is_abstract< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 137
5.547.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 137
5.548 std::is_arithmetic< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 137
5.548.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 137
5.549 std::is_array< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 137
5.549.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 137
5.550 std::is_assignable< _Tp, _Up > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 138
5.550.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 138
5.551 std::is_base_of< _Base, _Derived > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 2. 138
5.551.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 138
5.552 std::is_bind_expression< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 138
5.552.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 138
5.553 std::is_bind_expression< _Bind< _Signature > > Struct Template Reference . . . . . . . . . . . . . 2. 138
5.553.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 139
5.554 std::is_bind_expression< _Bind_result< _Result, _Signature > > Struct Template Reference . . . . 2. 139
5.554.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 139
5.555 std::is_bind_expression< const _Bind< _Signature > > Struct Template Reference . . . . . . . . . . 2. 139
5.555.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 139
5.556 std::is_bind_expression< const _Bind_result< _Result, _Signature > > Struct Template Reference . 2. 139
5.556.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 139
5.557 std::is_bind_expression< const volatile _Bind< _Signature > > Struct Template Reference . . . . . . 2. 139
5.557.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 140

Generated by Doxygen
xlvi

5.558 std::is_bind_expression< const volatile _Bind_result< _Result, _Signature > > Struct Template Refer-
ence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 140
5.558.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 140
5.559 std::is_bind_expression< volatile _Bind< _Signature > > Struct Template Reference . . . . . . . . . 2. 140
5.559.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 140
5.560 std::is_bind_expression< volatile _Bind_result< _Result, _Signature > > Struct Template Reference 2. 140
5.560.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 140
5.561 std::is_class< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 140
5.561.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 141
5.562 std::is_compound< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 141
5.562.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 141
5.563 std::is_const< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 141
5.563.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 141
5.564 std::is_constructible< _Tp, _Args > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 141
5.564.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 141
5.565 std::is_copy_assignable< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 141
5.565.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 142
5.566 std::is_copy_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 142
5.566.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 142
5.567 std::is_default_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 2. 142
5.567.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 142
5.568 std::is_destructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 142
5.568.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 142
5.569 std::is_empty< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 142
5.569.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 143
5.570 std::is_enum< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 143
5.570.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 143
5.571 std::is_error_code_enum< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 143
5.571.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 143
5.572 std::is_error_code_enum< future_errc > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 143
5.572.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 143
5.573 std::is_error_condition_enum< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 143
5.573.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 144
5.574 std::is_floating_point< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 144
5.574.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 144
5.575 std::is_function< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 144
5.575.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 144
5.576 std::is_fundamental< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 144
5.576.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 144

Generated by Doxygen
xlvii

5.577 std::is_integral< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 144


5.577.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 145
5.578 std::is_layout_compatible< _Tp, _Up > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 145
5.578.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 145
5.579 std::is_literal_type< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 145
5.579.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 145
5.580 std::is_lvalue_reference< typename > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 145
5.580.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 145
5.581 std::is_member_function_pointer< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 146
5.581.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 146
5.582 std::is_member_object_pointer< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 146
5.582.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 146
5.583 std::is_member_pointer< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 146
5.583.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 146
5.584 std::is_move_assignable< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 146
5.584.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 146
5.585 std::is_move_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 146
5.585.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 147
5.586 std::is_nothrow_assignable< _Tp, _Up > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 147
5.586.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 147
5.587 std::is_nothrow_constructible< _Tp, _Args > Struct Template Reference . . . . . . . . . . . . . . . . 2. 147
5.587.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 147
5.588 std::is_nothrow_copy_assignable< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 147
5.588.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 147
5.589 std::is_nothrow_copy_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . 2. 147
5.589.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 148
5.590 std::is_nothrow_default_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . 2. 148
5.590.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 148
5.591 std::is_nothrow_destructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . 2. 148
5.591.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 148
5.592 std::is_nothrow_move_assignable< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 148
5.592.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 148
5.593 std::is_nothrow_move_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . 2. 148
5.593.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 149
5.594 std::is_object< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 149
5.594.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 149
5.595 std::is_placeholder< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 149
5.595.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 150
5.596 std::is_placeholder< _Placeholder< _Num > > Struct Template Reference . . . . . . . . . . . . . . 2. 150

Generated by Doxygen
xlviii

5.596.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 151


5.597 std::is_pod< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 151
5.597.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 151
5.598 std::is_pointer< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 151
5.598.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 151
5.599 std::is_pointer_interconvertible_base_of< _Base, _Derived > Struct Template Reference . . . . . . . 2. 151
5.599.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 151
5.600 std::is_polymorphic< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 152
5.600.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 152
5.601 std::is_reference< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 152
5.601.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 152
5.602 std::is_rvalue_reference< typename > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 152
5.602.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 152
5.603 std::is_same< _Tp, _Up > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 152
5.603.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.604 std::is_scalar< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.604.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.605 std::is_signed< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.605.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.606 std::is_standard_layout< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.606.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.607 std::is_trivial< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 153
5.607.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 154
5.608 std::is_trivially_assignable< _Tp, _Up > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 154
5.608.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 154
5.609 std::is_trivially_constructible< _Tp, _Args > Struct Template Reference . . . . . . . . . . . . . . . . 2. 154
5.609.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 154
5.610 std::is_trivially_copy_assignable< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 154
5.610.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 154
5.611 std::is_trivially_copy_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 154
5.611.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 155
5.612 std::is_trivially_copyable< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 155
5.612.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 155
5.613 std::is_trivially_default_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . 2. 155
5.613.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 155
5.614 std::is_trivially_destructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 155
5.614.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 155
5.615 std::is_trivially_move_assignable< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 155
5.615.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 156

Generated by Doxygen
xlix

5.616 std::is_trivially_move_constructible< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . 2. 156


5.616.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 156
5.617 std::is_union< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 156
5.617.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 156
5.618 std::is_unsigned< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 156
5.618.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 156
5.619 std::is_void< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 156
5.619.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 157
5.620 std::is_volatile< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 157
5.620.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 157
5.621 std::istream_iterator< _Tp, _CharT, _Traits, _Dist > Class Template Reference . . . . . . . . . . . . 2. 157
5.621.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 158
5.621.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 158
5.621.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 159
5.621.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 159
5.622 std::istreambuf_iterator< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . . 2. 159
5.622.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 160
5.622.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 161
5.622.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 162
5.622.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 162
5.623 __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata >::iterator Struct Reference . . . . . 2. 163
5.623.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 164
5.624 std::experimental::filesystem::v1::path::iterator Class Reference . . . . . . . . . . . . . . . . . . . . . 2. 164
5.624.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 164
5.625 std::filesystem::path::iterator Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 165
5.625.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 165
5.626 std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference > Struct Template Reference . . . . . 2. 165
5.626.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 166
5.626.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 166
5.627 std::iterator_traits< _Iterator > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 167
5.627.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 167
5.628 std::iterator_traits< _Tp ∗ > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 167
5.628.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 167
5.629 __gnu_pbds::join_error Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 167
5.629.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 168
5.629.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 168
5.630 __gnu_pbds::detail::left_child_next_sibling_heap< Value_Type, Cmp_Fn, Node_Metadata, _Alloc >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 168
5.630.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 170

Generated by Doxygen
l

5.631 __gnu_pbds::detail::left_child_next_sibling_heap_const_iterator_< Node, _Alloc > Class Template Ref-


erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 170
5.631.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 171
5.631.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 171
5.631.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 172
5.631.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 172
5.632 __gnu_pbds::detail::left_child_next_sibling_heap_node_< _Value, _Metadata, _Alloc > Struct Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 173
5.632.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 173
5.633 __gnu_pbds::detail::left_child_next_sibling_heap_node_point_const_iterator_< Node, _Alloc > Class
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 174
5.633.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 175
5.633.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 175
5.633.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 176
5.633.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 176
5.634 std::length_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 177
5.634.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 177
5.634.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 177
5.635 std::less< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 178
5.635.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 178
5.635.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 178
5.636 std::ranges::less Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 179
5.636.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 179
5.637 std::less< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 179
5.637.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 179
5.638 std::less_equal< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 180
5.638.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 180
5.638.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 180
5.639 std::ranges::less_equal Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 181
5.639.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 181
5.640 std::less_equal< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 181
5.640.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 181
5.641 __gnu_cxx::limit_condition::limit_adjustor Struct Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 181
5.641.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 182
5.642 __gnu_cxx::limit_condition Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 182
5.642.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 182
5.643 std::linear_congruential_engine< _UIntType, __a, __c, __m > Class Template Reference . . . . . . . 2. 182
5.643.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 183
5.643.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 183
5.643.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 184

Generated by Doxygen
li

5.643.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 184


5.643.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 186
5.643.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 187
5.644 __gnu_pbds::linear_probe_fn< Size_Type > Class Template Reference . . . . . . . . . . . . . . . . 2. 187
5.644.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 187
5.644.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 188
5.645 std::__debug::list< _Tp, _Allocator > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 188
5.645.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 190
5.646 std::list< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 190
5.646.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 194
5.646.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 194
5.646.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 196
5.647 __gnu_pbds::list_update< Key, Mapped, Eq_Fn, Update_Policy, _Alloc > Class Template Reference . 2. 211
5.647.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 211
5.647.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 212
5.648 __gnu_pbds::list_update_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 212
5.648.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 212
5.649 std::locale Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 212
5.649.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 214
5.649.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 214
5.649.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 214
5.649.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 217
5.649.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 219
5.649.6 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 220
5.650 std::lock_guard< _Mutex > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 221
5.650.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 221
5.651 std::logic_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 221
5.651.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 222
5.651.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 222
5.651.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 222
5.652 std::logical_and< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 223
5.652.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 223
5.652.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 223
5.653 std::logical_and< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 224
5.653.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 224
5.654 std::logical_not< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 224
5.654.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 225
5.654.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 225
5.655 std::logical_not< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 225

Generated by Doxygen
lii

5.655.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 225


5.656 std::logical_or< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 225
5.656.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 226
5.656.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 226
5.657 std::logical_or< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 227
5.657.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 227
5.658 std::lognormal_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . 2. 227
5.658.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 228
5.658.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 228
5.658.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 228
5.658.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 229
5.659 __gnu_pbds::detail::lu_counter_metadata< Size_Type > Class Template Reference . . . . . . . . . . 2. 230
5.659.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 230
5.660 __gnu_pbds::lu_counter_policy< Max_Count, _Alloc > Class Template Reference . . . . . . . . . . 2. 230
5.660.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 231
5.660.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 231
5.660.3 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 232
5.660.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 232
5.661 __gnu_pbds::detail::lu_counter_policy_base< Size_Type > Class Template Reference . . . . . . . . 2. 232
5.661.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 233
5.662 __gnu_pbds::detail::lu_map< Key, Mapped, Eq_Fn, _Alloc, Update_Policy > Class Template Reference2233
5.662.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 235
5.663 __gnu_pbds::lu_move_to_front_policy< _Alloc > Class Template Reference . . . . . . . . . . . . . . 2. 236
5.663.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 236
5.663.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 236
5.663.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 236
5.664 std::make_signed< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 237
5.664.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 237
5.665 std::make_unsigned< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 237
5.665.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 237
5.666 __gnu_cxx::malloc_allocator< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 237
5.666.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 238
5.667 std::__debug::map< _Key, _Tp, _Cmp, _Allocator > Class Template Reference . . . . . . . . . . . . 2. 238
5.667.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 241
5.667.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 241
5.667.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 242
5.668 std::map< _Key, _Tp, _Compare, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . 2. 243
5.668.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 246
5.668.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 247

Generated by Doxygen
liii

5.668.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 249


5.669 std::mask_array< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 271
5.669.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 272
5.669.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 273
5.669.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 273
5.670 __gnu_pbds::detail::mask_based_range_hashing< Size_Type > Class Template Reference . . . . . 2. 274
5.670.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 275
5.671 std::match_results< _Bi_iter, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . 2. 275
5.671.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 277
5.671.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 277
5.671.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 279
5.672 __gnu_pbds::detail::maybe_null_type< Key, Mapped, _Alloc, Store_Hash > Struct Template Reference2284
5.672.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 284
5.673 __gnu_pbds::detail::maybe_null_type< Key, null_type, _Alloc, Store_Hash > Struct Template Reference2284
5.673.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 284
5.674 std::mem_fun1_ref_t< _Ret, _Tp, _Arg > Class Template Reference . . . . . . . . . . . . . . . . . . 2. 285
5.674.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 285
5.674.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 285
5.675 std::mem_fun1_t< _Ret, _Tp, _Arg > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 286
5.675.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 286
5.675.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 286
5.676 std::mem_fun_ref_t< _Ret, _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 287
5.676.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 287
5.676.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 287
5.677 std::mem_fun_t< _Ret, _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 288
5.677.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 288
5.677.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 288
5.678 std::pmr::memory_resource Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 289
5.678.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 289
5.679 std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l,
__f > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 289
5.679.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 291
5.679.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 291
5.679.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 292
5.679.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 292
5.679.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 293
5.680 std::messages< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 294
5.680.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 295
5.680.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 296

Generated by Doxygen
liv

5.680.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 296


5.680.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 297
5.680.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 297
5.681 std::messages_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 297
5.681.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 298
5.682 std::messages_byname< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 298
5.682.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 299
5.682.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 299
5.682.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 299
5.683 std::minus< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 300
5.683.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 300
5.683.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 300
5.684 std::minus< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 301
5.684.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 301
5.685 __gnu_pbds::detail::mod_based_range_hashing< Size_Type > Class Template Reference . . . . . . 2. 301
5.685.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 301
5.686 std::modulus< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 302
5.686.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 302
5.686.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 302
5.687 std::modulus< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 303
5.687.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 303
5.688 std::money_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 303
5.688.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 304
5.689 std::money_get< _CharT, _InIter > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 304
5.689.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 305
5.689.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 305
5.689.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 306
5.689.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 306
5.689.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 308
5.690 std::money_put< _CharT, _OutIter > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 308
5.690.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 309
5.690.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 309
5.690.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 310
5.690.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 310
5.690.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 312
5.691 std::moneypunct< _CharT, _Intl > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 313
5.691.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 314
5.691.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 314
5.691.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 315

Generated by Doxygen
lv

5.691.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 316


5.691.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 321
5.692 std::moneypunct_byname< _CharT, _Intl > Class Template Reference . . . . . . . . . . . . . . . . . 2. 321
5.692.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 323
5.692.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 323
5.692.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 328
5.693 std::pmr::monotonic_buffer_resource Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 328
5.693.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 329
5.693.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 330
5.694 std::move_iterator< _Iterator > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 330
5.694.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 331
5.695 std::move_only_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noexcept(_Noex)> Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 331
5.695.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 332
5.695.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 332
5.695.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 333
5.695.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 334
5.696 std::move_sentinel< _Sent > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 335
5.696.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 335
5.697 std::__debug::multimap< _Key, _Tp, _Cmp, _Allocator > Class Template Reference . . . . . . . . . . 2. 335
5.697.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 338
5.697.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 338
5.697.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 339
5.698 std::multimap< _Key, _Tp, _Compare, _Alloc > Class Template Reference . . . . . . . . . . . . . . . 2. 340
5.698.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 343
5.698.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 343
5.698.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 346
5.699 std::multiplies< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 363
5.699.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 364
5.699.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 364
5.700 std::multiplies< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 364
5.700.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 364
5.701 std::__debug::multiset< _Key, _Cmp, _Allocator > Class Template Reference . . . . . . . . . . . . . 2. 364
5.701.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 367
5.701.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 367
5.701.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 368
5.702 std::multiset< _Key, _Compare, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . 2. 369
5.702.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 371
5.702.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 372

Generated by Doxygen
lvi

5.702.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 374


5.703 __gnu_parallel::multiway_mergesort_exact_tag Struct Reference . . . . . . . . . . . . . . . . . . . . 2. 388
5.703.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 388
5.703.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 388
5.704 __gnu_parallel::multiway_mergesort_sampling_tag Struct Reference . . . . . . . . . . . . . . . . . . 2. 389
5.704.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 389
5.704.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 389
5.705 __gnu_parallel::multiway_mergesort_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 390
5.705.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 390
5.705.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 390
5.706 std::mutex Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 391
5.706.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 391
5.707 std::negate< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 391
5.707.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 392
5.707.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 392
5.708 std::negate< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 392
5.708.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 393
5.709 std::negative_binomial_distribution< _IntType > Class Template Reference . . . . . . . . . . . . . . 2. 393
5.709.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 394
5.709.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 394
5.709.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 394
5.709.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 395
5.710 std::nested_exception Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 396
5.710.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 396
5.710.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 397
5.710.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 397
5.711 __gnu_cxx::limit_condition::never_adjustor Struct Reference . . . . . . . . . . . . . . . . . . . . . . 2. 397
5.711.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 397
5.712 __gnu_cxx::random_condition::never_adjustor Struct Reference . . . . . . . . . . . . . . . . . . . . 2. 397
5.712.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 397
5.713 __gnu_cxx::new_allocator< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 397
5.713.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 398
5.714 __gnu_pbds::detail::no_throw_copies< Key, Mapped > Struct Template Reference . . . . . . . . . . 2. 399
5.714.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 399
5.715 __gnu_pbds::detail::no_throw_copies< Key, null_type > Struct Template Reference . . . . . . . . . . 2. 399
5.715.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 399
5.716 std::normal_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . . . 2. 399
5.716.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 400
5.716.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 401

Generated by Doxygen
lvii

5.716.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 401


5.716.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 401
5.716.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 402
5.717 std::nostopstate_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 403
5.717.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 403
5.718 std::not_equal_to< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 403
5.718.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 404
5.718.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 404
5.719 std::ranges::not_equal_to Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 405
5.719.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 405
5.720 std::not_equal_to< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 405
5.720.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 405
5.721 __gnu_pbds::null_node_update< _Tp1, _Tp2, _Tp3, _Tp4 > Struct Template Reference . . . . . . . 2. 405
5.721.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 406
5.722 __gnu_pbds::null_type Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 406
5.722.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 406
5.723 std::experimental::fundamentals_v1::nullopt_t Struct Reference . . . . . . . . . . . . . . . . . . . . . 2. 407
5.723.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 407
5.724 std::num_get< _CharT, _InIter > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 407
5.724.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 409
5.724.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 409
5.724.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 409
5.724.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 410
5.724.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 423
5.725 std::num_put< _CharT, _OutIter > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 423
5.725.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 424
5.725.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 425
5.725.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 425
5.725.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 425
5.725.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 435
5.726 std::numeric_limits< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 435
5.726.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 437
5.726.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 437
5.726.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 438
5.727 std::numeric_limits< bool > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 441
5.727.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 442
5.728 std::numeric_limits< char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 442
5.728.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 443
5.729 std::numeric_limits< char16_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 443

Generated by Doxygen
lviii

5.729.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 444


5.730 std::numeric_limits< char32_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 444
5.730.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 445
5.731 std::numeric_limits< double > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 445
5.731.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 446
5.732 std::numeric_limits< float > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 446
5.732.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 446
5.733 std::numeric_limits< int > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 447
5.733.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 447
5.734 std::numeric_limits< long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 447
5.734.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 448
5.735 std::numeric_limits< long double > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 448
5.735.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 449
5.736 std::numeric_limits< long long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 449
5.736.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 450
5.737 std::numeric_limits< short > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 450
5.737.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 451
5.738 std::numeric_limits< signed char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 451
5.738.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 452
5.739 std::numeric_limits< unsigned char > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 452
5.739.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 453
5.740 std::numeric_limits< unsigned int > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 453
5.740.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 454
5.741 std::numeric_limits< unsigned long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 454
5.741.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 455
5.742 std::numeric_limits< unsigned long long > Struct Reference . . . . . . . . . . . . . . . . . . . . . . 2. 455
5.742.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 456
5.743 std::numeric_limits< unsigned short > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 456
5.743.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 457
5.744 std::numeric_limits< wchar_t > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 457
5.744.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 458
5.745 std::numpunct< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 459
5.745.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 460
5.745.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 460
5.745.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 460
5.745.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 461
5.745.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 464
5.746 std::numpunct_byname< _CharT > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 464
5.746.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 465

Generated by Doxygen
lix

5.746.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 465


5.746.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 468
5.747 __gnu_parallel::omp_loop_static_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 468
5.747.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 469
5.747.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 469
5.748 __gnu_parallel::omp_loop_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 469
5.748.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 470
5.748.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 470
5.749 std::once_flag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 470
5.749.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 470
5.749.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 471
5.749.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 471
5.749.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 471
5.750 std::experimental::fundamentals_v1::optional< _Tp > Class Template Reference . . . . . . . . . . . 2. 471
5.750.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 472
5.751 std::ostream_iterator< _Tp, _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . 2. 473
5.751.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 473
5.751.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 474
5.751.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 475
5.751.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 475
5.752 std::experimental::fundamentals_v2::ostream_joiner< _DelimT, _CharT, _Traits > Class Template Ref-
erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 475
5.752.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 476
5.753 std::ostreambuf_iterator< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . 2. 476
5.753.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 477
5.753.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 477
5.753.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 478
5.753.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 478
5.754 std::out_of_range Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 479
5.754.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 480
5.754.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 480
5.755 std::output_iterator_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 480
5.755.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 480
5.756 __gnu_pbds::detail::ov_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 480
5.756.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 483
5.756.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 483
5.757 __gnu_pbds::detail::ov_tree_node_const_it_< Value_Type, Metadata_Type, _Alloc > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 483
5.757.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 485

Generated by Doxygen
lx

5.757.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 485


5.758 __gnu_pbds::detail::ov_tree_node_it_< Value_Type, Metadata_Type, _Alloc > Class Template Reference
2485
5.758.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 487
5.758.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 487
5.759 __gnu_pbds::ov_tree_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 487
5.759.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 488
5.760 std::overflow_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 488
5.760.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 489
5.760.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 489
5.761 std::owner_less< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 490
5.761.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 490
5.762 std::experimental::fundamentals_v2::owner_less< shared_ptr< _Tp > > Struct Template Reference . 2. 490
5.762.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 490
5.762.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 490
5.763 std::owner_less< shared_ptr< _Tp > > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 491
5.763.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 491
5.763.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 491
5.764 std::owner_less< void > Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 491
5.764.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 492
5.764.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 492
5.765 std::experimental::fundamentals_v2::owner_less< weak_ptr< _Tp > > Struct Template Reference . . 2. 492
5.765.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 492
5.765.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 492
5.766 std::owner_less< weak_ptr< _Tp > > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 493
5.766.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 493
5.766.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 493
5.767 std::packaged_task< _Res(_ArgTypes...)> Class Template Reference . . . . . . . . . . . . . . . . . 2. 494
5.767.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 494
5.768 std::pair< _T1, _T2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 494
5.768.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 496
5.768.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 496
5.768.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 496
5.768.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 497
5.768.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 497
5.769 __gnu_pbds::detail::pairing_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference . . . . 2. 498
5.769.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 500
5.770 __gnu_pbds::pairing_heap_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 500
5.770.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 500
5.771 __gnu_parallel::parallel_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 500

Generated by Doxygen
lxi

5.771.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 502


5.771.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 502
5.771.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 502
5.772 std::bernoulli_distribution::param_type Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 502
5.772.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 503
5.773 std::binomial_distribution< _IntType >::param_type Struct Reference . . . . . . . . . . . . . . . . . 2. 503
5.773.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 503
5.774 std::cauchy_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . . . 2. 503
5.774.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 504
5.775 std::chi_squared_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . 2. 504
5.775.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 504
5.776 std::discrete_distribution< _IntType >::param_type Struct Reference . . . . . . . . . . . . . . . . . . 2. 504
5.776.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 505
5.777 std::exponential_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . 2. 505
5.777.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 505
5.778 std::extreme_value_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . 2. 505
5.778.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 506
5.779 std::fisher_f_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . . . 2. 506
5.779.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 506
5.780 std::gamma_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . . . 2. 506
5.780.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 507
5.781 std::geometric_distribution< _IntType >::param_type Struct Reference . . . . . . . . . . . . . . . . . 2. 507
5.781.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 507
5.782 std::lognormal_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . 2. 507
5.782.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 508
5.783 std::negative_binomial_distribution< _IntType >::param_type Struct Reference . . . . . . . . . . . . 2. 508
5.783.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 508
5.784 std::normal_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . . . 2. 508
5.784.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 509
5.785 std::piecewise_constant_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . 2. 509
5.785.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 510
5.786 std::piecewise_linear_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . 2. 510
5.786.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 510
5.787 std::poisson_distribution< _IntType >::param_type Struct Reference . . . . . . . . . . . . . . . . . . 2. 510
5.787.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 511
5.788 std::student_t_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . . 2. 511
5.788.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 511
5.789 std::uniform_int_distribution< _IntType >::param_type Struct Reference . . . . . . . . . . . . . . . . 2. 511
5.789.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 512

Generated by Doxygen
lxii

5.790 std::uniform_real_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . 2. 512


5.790.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 512
5.791 std::weibull_distribution< _RealType >::param_type Struct Reference . . . . . . . . . . . . . . . . . 2. 512
5.791.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 513
5.792 __gnu_pbds::detail::pat_trie_base Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 513
5.792.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 514
5.792.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 514
5.793 __gnu_pbds::detail::pat_trie_map< Key, Mapped, Node_And_It_Traits, _Alloc > Class Template Refer-
ence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 514
5.793.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 516
5.793.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 516
5.793.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 516
5.794 __gnu_pbds::pat_trie_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 517
5.794.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 517
5.795 std::experimental::filesystem::v1::path Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 518
5.795.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 520
5.796 std::filesystem::path Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 520
5.796.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 523
5.796.2 Member Enumeration Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 523
5.796.3 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 523
5.797 std::piecewise_constant_distribution< _RealType > Class Template Reference . . . . . . . . . . . . 2. 524
5.797.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 525
5.797.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 525
5.797.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 525
5.797.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 526
5.798 std::piecewise_construct_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 527
5.798.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 527
5.799 std::piecewise_linear_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . 2. 527
5.799.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 528
5.799.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 529
5.799.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 529
5.799.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 530
5.800 std::plus< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 531
5.800.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 531
5.800.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 532
5.800.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 532
5.801 __gnu_pbds::point_invalidation_guarantee Struct Reference . . . . . . . . . . . . . . . . . . . . . . 2. 532
5.801.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 533
5.802 std::pointer_to_binary_function< _Arg1, _Arg2, _Result > Class Template Reference . . . . . . . . . 2. 533

Generated by Doxygen
lxiii

5.802.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 533


5.802.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 534
5.803 std::pointer_to_unary_function< _Arg, _Result > Class Template Reference . . . . . . . . . . . . . . 2. 534
5.803.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 535
5.803.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 535
5.804 std::pointer_traits< _Ptr > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 535
5.804.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 535
5.804.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 536
5.804.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 536
5.805 std::pointer_traits< _Tp ∗ > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 537
5.805.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 537
5.805.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 537
5.805.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 538
5.806 std::poisson_distribution< _IntType > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 538
5.806.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 539
5.806.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 539
5.806.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 539
5.806.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 541
5.807 std::pmr::polymorphic_allocator< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . 2. 542
5.807.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 542
5.808 std::pmr::pool_options Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 542
5.808.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 543
5.808.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 543
5.809 __gnu_pbds::priority_queue< _Tv, Cmp_Fn, Tag, _Alloc > Class Template Reference . . . . . . . . 2. 543
5.809.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 544
5.809.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 544
5.810 std::priority_queue< _Tp, _Sequence, _Compare > Class Template Reference . . . . . . . . . . . . 2. 545
5.810.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 546
5.810.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 547
5.810.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 547
5.811 __gnu_pbds::priority_queue_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 548
5.811.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 549
5.812 __gnu_pbds::detail::probe_fn_base< _Alloc > Class Template Reference . . . . . . . . . . . . . . . 2. 549
5.812.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 549
5.813 __gnu_cxx::project1st< _Arg1, _Arg2 > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 549
5.813.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 550
5.813.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 550
5.814 __gnu_cxx::project2nd< _Arg1, _Arg2 > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 550
5.814.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 550

Generated by Doxygen
lxiv

5.814.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 550


5.815 std::promise< _Res > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 551
5.815.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 551
5.816 std::promise< _Res & > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 551
5.816.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 552
5.817 std::promise< void > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 552
5.817.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 553
5.818 std::experimental::fundamentals_v2::propagate_const< _Tp > Class Template Reference . . . . . . 2. 553
5.818.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 554
5.819 __gnu_pbds::quadratic_probe_fn< Size_Type > Class Template Reference . . . . . . . . . . . . . . 2. 554
5.819.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 554
5.819.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 554
5.820 std::queue< _Tp, _Sequence > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 554
5.820.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 556
5.820.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 556
5.820.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 556
5.820.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 557
5.821 __gnu_parallel::quicksort_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 558
5.821.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 558
5.821.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 558
5.822 std::random_access_iterator_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 559
5.822.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 559
5.823 __gnu_cxx::random_condition Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 559
5.823.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 560
5.824 std::random_device Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 560
5.824.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 561
5.824.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 561
5.825 std::range_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 561
5.825.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 561
5.825.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 562
5.826 __gnu_pbds::range_invalidation_guarantee Struct Reference . . . . . . . . . . . . . . . . . . . . . . 2. 562
5.826.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 562
5.827 __gnu_pbds::detail::ranged_hash_fn< Key, Hash_Fn, _Alloc, Comb_Hash_Fn, Store_Hash > Class
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 563
5.827.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 563
5.828 __gnu_pbds::detail::ranged_hash_fn< Key, Hash_Fn, _Alloc, Comb_Hash_Fn, false > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 563
5.828.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 563
5.829 __gnu_pbds::detail::ranged_hash_fn< Key, Hash_Fn, _Alloc, Comb_Hash_Fn, true > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 564

Generated by Doxygen
lxv

5.829.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 564


5.830 __gnu_pbds::detail::ranged_hash_fn< Key, null_type, _Alloc, Comb_Hash_Fn, false > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 564
5.830.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 565
5.831 __gnu_pbds::detail::ranged_hash_fn< Key, null_type, _Alloc, Comb_Hash_Fn, true > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 565
5.831.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 565
5.832 __gnu_pbds::detail::ranged_probe_fn< Key, Hash_Fn, _Alloc, Comb_Probe_Fn, Probe_Fn, Store_←-
Hash > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 565
5.832.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 566
5.833 __gnu_pbds::detail::ranged_probe_fn< Key, Hash_Fn, _Alloc, Comb_Probe_Fn, Probe_Fn, false >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 566
5.833.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 566
5.834 __gnu_pbds::detail::ranged_probe_fn< Key, Hash_Fn, _Alloc, Comb_Probe_Fn, Probe_Fn, true >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 566
5.834.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 567
5.835 __gnu_pbds::detail::ranged_probe_fn< Key, null_type, _Alloc, Comb_Probe_Fn, null_type, false >
Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 567
5.835.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 568
5.836 std::rank< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 568
5.836.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 568
5.837 std::ratio< _Num, _Den > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 569
5.837.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 569
5.838 std::ratio_equal< _R1, _R2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 569
5.838.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 570
5.839 std::ratio_greater< _R1, _R2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 570
5.839.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 571
5.840 std::ratio_greater_equal< _R1, _R2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 571
5.840.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 571
5.841 std::ratio_less< _R1, _R2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 572
5.841.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 572
5.842 std::ratio_less_equal< _R1, _R2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 572
5.842.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 572
5.843 std::ratio_not_equal< _R1, _R2 > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 573
5.843.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 573
5.844 std::raw_storage_iterator< _OutputIterator, _Tp > Class Template Reference . . . . . . . . . . . . . 2. 573
5.844.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 574
5.844.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 574
5.845 __gnu_cxx::rb_tree< _Key, _Value, _KeyOfValue, _Compare, _Alloc > Struct Template Reference . . 2. 575
5.845.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 579
5.845.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 579

Generated by Doxygen
lxvi

5.846 __gnu_pbds::detail::rb_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 580
5.846.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 583
5.846.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 583
5.847 __gnu_pbds::detail::rb_tree_node_< Value_Type, Metadata, _Alloc > Struct Template Reference . . . 2. 584
5.847.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 584
5.848 __gnu_pbds::rb_tree_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 584
5.848.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 585
5.849 __gnu_pbds::detail::rc< _Node, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . 2. 585
5.849.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 586
5.850 __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference . 2. 586
5.850.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 588
5.851 __gnu_pbds::rc_binomial_heap_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 588
5.851.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 588
5.852 __gnu_pbds::detail::rebind_traits< _Alloc, T > Struct Template Reference . . . . . . . . . . . . . . . 2. 588
5.852.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 589
5.853 std::filesystem::recursive_directory_iterator Class Reference . . . . . . . . . . . . . . . . . . . . . . 2. 589
5.853.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 590
5.854 __gnu_cxx::recursive_init_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 590
5.854.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 590
5.854.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 590
5.855 std::recursive_mutex Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 591
5.855.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 591
5.856 std::recursive_timed_mutex Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 591
5.856.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 592
5.857 std::bitset< _Nb >::reference Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 592
5.857.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 592
5.858 std::tr2::dynamic_bitset< _WordT, _Alloc >::reference Class Reference . . . . . . . . . . . . . . . . 2. 592
5.858.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 593
5.859 std::reference_wrapper< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 593
5.859.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 593
5.859.2 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 594
5.860 std::regex_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 594
5.860.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 595
5.860.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 595
5.860.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 595
5.861 std::regex_iterator< _Bi_iter, _Ch_type, _Rx_traits > Class Template Reference . . . . . . . . . . . . 2. 596
5.861.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 596
5.861.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 597

Generated by Doxygen
lxvii

5.861.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 597


5.862 std::regex_token_iterator< _Bi_iter, _Ch_type, _Rx_traits > Class Template Reference . . . . . . . . 2. 598
5.862.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 599
5.862.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 599
5.862.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 602
5.863 std::regex_traits< typename > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 603
5.863.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 603
5.863.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 603
5.863.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 604
5.864 std::remove_all_extents< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 609
5.864.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 609
5.865 std::remove_const< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 610
5.865.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 610
5.866 std::remove_cv< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 610
5.866.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 610
5.867 std::remove_extent< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 610
5.867.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 610
5.868 std::remove_pointer< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 610
5.868.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 611
5.869 std::remove_reference< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 611
5.869.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 611
5.870 std::remove_volatile< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 611
5.870.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 611
5.871 __gnu_pbds::resize_error Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 611
5.871.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 612
5.871.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 612
5.872 __gnu_pbds::detail::resize_policy< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . 2. 612
5.872.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 613
5.873 std::result_of< _Signature > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 613
5.873.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 613
5.874 std::reverse_iterator< _Iterator > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 613
5.874.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 615
5.874.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 615
5.874.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 616
5.875 __gnu_cxx::rope< _CharT, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 618
5.875.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 623
5.876 std::runtime_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 623
5.876.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 624
5.876.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 624

Generated by Doxygen
lxviii

5.876.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 624


5.877 __gnu_pbds::sample_probe_fn Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 624
5.877.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 624
5.877.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 625
5.877.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 625
5.878 __gnu_pbds::sample_range_hashing Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 625
5.878.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 625
5.878.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 626
5.878.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 626
5.878.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 626
5.879 __gnu_pbds::sample_ranged_hash_fn Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 626
5.879.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 627
5.879.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 627
5.879.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 627
5.880 __gnu_pbds::sample_ranged_probe_fn Class Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 627
5.880.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 628
5.881 __gnu_pbds::sample_resize_policy Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 628
5.881.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 628
5.881.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 628
5.881.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 629
5.881.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 629
5.882 __gnu_pbds::sample_resize_trigger Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 630
5.882.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 631
5.882.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 631
5.882.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 631
5.882.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 631
5.883 __gnu_pbds::sample_size_policy Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 633
5.883.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 633
5.883.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 634
5.883.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 634
5.883.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 634
5.884 __gnu_pbds::sample_tree_node_update< Const_Node_Iter, Node_Iter, Cmp_Fn, _Alloc > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 634
5.884.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 634
5.885 __gnu_pbds::sample_trie_access_traits Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 635
5.885.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 635
5.885.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 635
5.885.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 635
5.886 __gnu_pbds::sample_trie_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc > Class Template Ref-
erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 635

Generated by Doxygen
lxix

5.886.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 636


5.886.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 636
5.886.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 636
5.887 __gnu_pbds::sample_update_policy Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 636
5.887.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 637
5.887.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 637
5.887.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 637
5.887.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 637
5.888 __gnu_parallel::sampling_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 637
5.888.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 638
5.888.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 638
5.889 std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs > Class Template Reference . . . . . . . 2. 639
5.889.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 640
5.890 std::seed_seq Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 640
5.890.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 640
5.890.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 641
5.890.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 641
5.891 __gnu_cxx::select1st< _Pair > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 641
5.891.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 641
5.891.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 641
5.892 __gnu_cxx::select2nd< _Pair > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 642
5.892.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 642
5.892.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 642
5.893 __gnu_pbds::detail::select_value_type< Key, Mapped > Struct Template Reference . . . . . . . . . . 2. 642
5.893.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 642
5.894 __gnu_pbds::detail::select_value_type< Key, null_type > Struct Template Reference . . . . . . . . . 2. 642
5.894.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 643
5.895 std::basic_istream< _CharT, _Traits >::sentry Class Reference . . . . . . . . . . . . . . . . . . . . . 2. 643
5.895.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 643
5.895.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 643
5.895.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 643
5.895.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 644
5.896 std::basic_ostream< _CharT, _Traits >::sentry Class Reference . . . . . . . . . . . . . . . . . . . . 2. 644
5.896.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 644
5.896.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 645
5.896.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 645
5.897 __gnu_pbds::sequence_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 645
5.897.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 646
5.898 __gnu_parallel::sequential_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 646

Generated by Doxygen
lxx

5.898.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 646


5.899 std::__debug::set< _Key, _Cmp, _Allocator > Class Template Reference . . . . . . . . . . . . . . . . 2. 646
5.899.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 649
5.899.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 649
5.899.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 650
5.900 std::set< _Key, _Compare, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . 2. 651
5.900.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 653
5.900.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 654
5.900.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 656
5.900.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 658
5.901 std::shared_future< _Res > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 673
5.901.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 673
5.901.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 674
5.901.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 674
5.902 std::shared_future< _Res & > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 674
5.902.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 675
5.902.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 675
5.902.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 676
5.903 std::shared_future< void > Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 676
5.903.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 677
5.903.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 677
5.903.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 677
5.904 std::shared_lock< _Mutex > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 678
5.904.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 678
5.905 std::shared_ptr< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 678
5.905.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 681
5.905.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 682
5.905.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 682
5.905.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 688
5.906 std::shared_timed_mutex Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 689
5.906.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 689
5.907 std::shuffle_order_engine< _RandomNumberEngine, __k > Class Template Reference . . . . . . . . 2. 689
5.907.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 690
5.907.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 691
5.907.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 691
5.907.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 692
5.907.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 693
5.908 std::slice Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 694
5.908.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 694

Generated by Doxygen
lxxi

5.908.2 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 695


5.909 std::slice_array< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 695
5.909.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 696
5.909.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 696
5.909.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 696
5.910 __gnu_cxx::slist< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 698
5.910.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 700
5.911 std::experimental::filesystem::v1::space_info Struct Reference . . . . . . . . . . . . . . . . . . . . . 2. 700
5.911.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 700
5.912 std::filesystem::space_info Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 700
5.912.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 700
5.913 __gnu_pbds::detail::splay_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > Class
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 700
5.913.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 703
5.913.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 703
5.914 __gnu_pbds::detail::splay_tree_node_< Value_Type, Metadata, _Alloc > Struct Template Reference . 2. 704
5.914.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 704
5.915 __gnu_pbds::splay_tree_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 705
5.915.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 705
5.916 std::stack< _Tp, _Sequence > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 705
5.916.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 706
5.916.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 707
5.916.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 707
5.917 __gnu_cxx::stdio_filebuf< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . . . . 2. 708
5.917.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 711
5.917.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 711
5.917.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 712
5.917.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 726
5.918 __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits > Class Template Reference . . . . . . . . . . . . . 2. 729
5.918.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 731
5.918.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 731
5.918.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 743
5.919 std::chrono::_V2::steady_clock Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 744
5.919.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 744
5.920 std::stop_callback< _Callback > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 744
5.920.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 745
5.921 std::stop_source Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 745
5.921.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 745
5.922 std::stop_token Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 746

Generated by Doxygen
lxxii

5.922.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 746


5.923 __gnu_pbds::detail::stored_data< _Tv, _Th, Store_Hash > Struct Template Reference . . . . . . . . 2. 746
5.923.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 747
5.924 __gnu_pbds::detail::stored_data< _Tv, _Th, false > Struct Template Reference . . . . . . . . . . . . 2. 747
5.924.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 747
5.925 __gnu_pbds::detail::stored_hash< _Th > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 748
5.925.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 748
5.926 __gnu_pbds::detail::stored_value< _Tv > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 748
5.926.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 749
5.927 __gnu_pbds::string_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 749
5.927.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 750
5.928 std::student_t_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . . 2. 750
5.928.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 751
5.928.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 751
5.928.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 751
5.928.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 752
5.929 std::sub_match< _BiIter > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 2. 753
5.929.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 754
5.929.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 755
5.930 std::ranges::subrange< _It, _Sent, _Kind > Class Template Reference . . . . . . . . . . . . . . . . . 2. 757
5.930.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 758
5.931 std::subtract_with_carry_engine< _UIntType, __w, __s, __r > Class Template Reference . . . . . . . 2. 758
5.931.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 759
5.931.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 760
5.931.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 760
5.931.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 760
5.931.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 761
5.932 __gnu_cxx::subtractive_rng Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 763
5.932.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 764
5.932.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 764
5.932.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 764
5.932.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 764
5.933 __gnu_pbds::detail::synth_access_traits< Type_Traits, Set, _ATraits > Struct Template Reference . . 2. 764
5.933.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 765
5.934 std::chrono::_V2::system_clock Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 765
5.934.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 765
5.935 std::system_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 766
5.935.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 766
5.935.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 766

Generated by Doxygen
lxxiii

5.936 std::chrono::tai_clock Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 766


5.936.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 767
5.937 __gnu_cxx::temporary_buffer< _ForwardIterator, _Tp > Struct Template Reference . . . . . . . . . . 2. 767
5.937.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 768
5.937.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 768
5.937.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 769
5.938 __gnu_pbds::detail::thin_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference . . . . . . 2. 769
5.938.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 771
5.939 __gnu_pbds::thin_heap_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 771
5.939.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 772
5.940 std::thread Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 772
5.940.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 772
5.940.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 773
5.941 __gnu_cxx::throw_allocator_base< _Tp, _Cond > Class Template Reference . . . . . . . . . . . . . 2. 773
5.941.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 774
5.942 __gnu_cxx::throw_allocator_limit< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 774
5.942.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 776
5.943 __gnu_cxx::throw_allocator_random< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . 2. 776
5.943.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 777
5.944 __gnu_cxx::throw_value_base< _Cond > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 778
5.944.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 778
5.945 __gnu_cxx::throw_value_limit Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 778
5.945.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 780
5.946 __gnu_cxx::throw_value_random Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 780
5.946.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 781
5.947 std::time_base Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 781
5.947.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 781
5.948 std::time_get< _CharT, _InIter > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . 2. 781
5.948.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 783
5.948.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 783
5.948.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 784
5.948.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 784
5.948.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 792
5.949 std::time_get_byname< _CharT, _InIter > Class Template Reference . . . . . . . . . . . . . . . . . 2. 793
5.949.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 794
5.949.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 794
5.949.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 803
5.950 std::chrono::time_point< _Clock, _Dur > Class Template Reference . . . . . . . . . . . . . . . . . . 2. 803
5.950.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 804

Generated by Doxygen
lxxiv

5.951 std::time_put< _CharT, _OutIter > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 804


5.951.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 805
5.951.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 805
5.951.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 805
5.951.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 806
5.951.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 807
5.952 std::time_put_byname< _CharT, _OutIter > Class Template Reference . . . . . . . . . . . . . . . . 2. 808
5.952.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 809
5.952.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 809
5.952.3 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 811
5.953 std::timed_mutex Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 811
5.953.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 811
5.954 std::to_chars_result Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 811
5.954.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 812
5.955 std::chrono::treat_as_floating_point< _Rep > Struct Template Reference . . . . . . . . . . . . . . . 2. 812
5.955.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 812
5.956 __gnu_pbds::tree< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc > Class Template Reference . 2. 812
5.956.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 813
5.956.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 814
5.956.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 814
5.957 __gnu_pbds::detail::tree_metadata_helper< Node_Update, _BTp > Struct Template Reference . . . 2. 815
5.957.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 815
5.958 __gnu_pbds::detail::tree_metadata_helper< Node_Update, false > Struct Template Reference . . . . 2. 815
5.958.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 815
5.959 __gnu_pbds::detail::tree_metadata_helper< Node_Update, true > Struct Template Reference . . . . 2. 815
5.959.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 815
5.960 __gnu_pbds::detail::tree_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 815
5.960.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 816
5.961 __gnu_pbds::tree_order_statistics_node_update< Node_CItr, Node_Itr, Cmp_Fn, _Alloc > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 816
5.961.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 817
5.961.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 817
5.962 __gnu_pbds::tree_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 818
5.962.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 818
5.963 __gnu_pbds::detail::tree_traits< Key, Data, Cmp_Fn, Node_Update, Tag, _Alloc > Struct Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 818
5.963.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 818
5.964 __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, ov_tree_tag, _Alloc > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 818

Generated by Doxygen
lxxv

5.964.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 819


5.964.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 819
5.965 __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, rb_tree_tag, _Alloc > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 819
5.965.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 820
5.965.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 820
5.966 __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, splay_tree_tag, _Alloc > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 820
5.966.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 821
5.966.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 822
5.967 __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, ov_tree_tag, _Alloc > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 822
5.967.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 822
5.967.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 822
5.968 __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, rb_tree_tag, _Alloc > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 822
5.968.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 823
5.968.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 824
5.969 __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, splay_tree_tag, _Alloc >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 824
5.969.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 825
5.969.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 825
5.970 __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > Class Template Reference . . 2. 825
5.970.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 826
5.970.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 827
5.970.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 827
5.971 __gnu_pbds::detail::trie_metadata_helper< Node_Update, _BTp > Struct Template Reference . . . . 2. 828
5.971.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 828
5.972 __gnu_pbds::detail::trie_metadata_helper< Node_Update, false > Struct Template Reference . . . . 2. 828
5.972.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 828
5.973 __gnu_pbds::detail::trie_metadata_helper< Node_Update, true > Struct Template Reference . . . . . 2. 828
5.973.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 828
5.974 __gnu_pbds::detail::trie_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >
Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 829
5.974.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 829
5.975 __gnu_pbds::trie_order_statistics_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc > Class Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 829
5.975.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 830
5.975.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 830
5.976 __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc > Class Template Reference
2831
5.976.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 832

Generated by Doxygen
lxxvi

5.976.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 833


5.977 __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc > Class Template
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 833
5.977.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 834
5.977.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 834
5.977.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 835
5.978 __gnu_pbds::trie_string_access_traits< String, Min_E_Val, Max_E_Val, Reverse, _Alloc > Struct Tem-
plate Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 836
5.978.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 836
5.978.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 836
5.978.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 837
5.979 __gnu_pbds::trie_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 837
5.979.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 838
5.980 __gnu_pbds::detail::trie_traits< Key, Data, _ATraits, Node_Update, Tag, _Alloc > Struct Template Ref-
erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 838
5.980.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 838
5.981 __gnu_pbds::detail::trie_traits< Key, Mapped, _ATraits, Node_Update, pat_trie_tag, _Alloc > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 838
5.981.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 839
5.981.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 839
5.982 __gnu_pbds::detail::trie_traits< Key, null_type, _ATraits, Node_Update, pat_trie_tag, _Alloc > Struct
Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 840
5.982.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 840
5.982.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 840
5.983 __gnu_pbds::trivial_iterator_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 841
5.983.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 841
5.984 std::try_to_lock_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 841
5.984.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 841
5.985 std::tuple< _Elements > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 841
5.985.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 843
5.986 std::tuple< _T1, _T2 > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 843
5.986.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 844
5.987 std::tuple_element< __i, _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 845
5.987.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 845
5.988 std::tuple_element< 0, pair< _Tp1, _Tp2 > > Struct Template Reference . . . . . . . . . . . . . . . 2. 845
5.988.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 845
5.989 std::tuple_element< 1, pair< _Tp1, _Tp2 > > Struct Template Reference . . . . . . . . . . . . . . . 2. 845
5.989.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 845
5.990 std::tuple_element< __i, tuple< _Types... > > Struct Template Reference . . . . . . . . . . . . . . . 2. 845
5.990.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 846

Generated by Doxygen
lxxvii

5.991 std::tuple_element< _Ind, array< _Tp, _Nm > > Struct Template Reference . . . . . . . . . . . . . 2. 846
5.991.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 846
5.992 std::tuple_size< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 846
5.992.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 846
5.993 std::tuple_size< array< _Tp, _Nm > > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 846
5.993.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 847
5.994 std::tuple_size< pair< _Tp1, _Tp2 > > Struct Template Reference . . . . . . . . . . . . . . . . . . 2. 847
5.994.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 848
5.995 std::tuple_size< tuple< _Elements... > > Struct Template Reference . . . . . . . . . . . . . . . . . 2. 848
5.995.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 849
5.996 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, false >::type Struct Reference . . . . . . . . 2. 849
5.996.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 850
5.997 std::type_index Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 850
5.997.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 850
5.998 std::type_info Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 850
5.998.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 851
5.998.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 851
5.998.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 851
5.999 __gnu_pbds::detail::types_traits< Key, Mapped, _Alloc, Store_Hash > Struct Template Reference . . 2. 851
5.999.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 852
5.1000 std::chrono::tzdb_list Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 852
5.1000.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 853
5.1000.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 853
5.1001 __gnu_cxx::unary_compose< _Operation1, _Operation2 > Class Template Reference . . . . . . . . 2. 854
5.1001.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 854
5.1001.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 855
5.1002 std::unary_function< _Arg, _Result > Struct Template Reference . . . . . . . . . . . . . . . . . . . 2. 855
5.1002.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 855
5.1002.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 856
5.1003 std::unary_negate< _Predicate > Class Template Reference . . . . . . . . . . . . . . . . . . . . . 2. 856
5.1003.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 857
5.1003.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 857
5.1004 __gnu_parallel::unbalanced_tag Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 857
5.1004.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 857
5.1004.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 857
5.1005 std::underflow_error Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 858
5.1005.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 859
5.1005.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 859
5.1006 std::underlying_type< _Tp > Struct Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 859

Generated by Doxygen
lxxviii

5.1006.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 859


5.1007 std::uniform_int_distribution< _IntType > Class Template Reference . . . . . . . . . . . . . . . . . 2. 859
5.1007.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 860
5.1007.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 860
5.1007.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 860
5.1007.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 861
5.1007.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 861
5.1008 std::uniform_real_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . 2. 862
5.1008.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 862
5.1008.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 863
5.1008.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 863
5.1008.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 863
5.1008.5 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 864
5.1009 std::unique_lock< _Mutex > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 864
5.1009.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 865
5.1009.2 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 865
5.1010 std::unique_ptr< _Tp, _Dp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . 2. 866
5.1010.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 867
5.1010.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 867
5.1010.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 869
5.1011 std::unique_ptr< _Tp[], _Dp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 871
5.1011.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 872
5.1011.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 872
5.1011.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 875
5.1012 std::__debug::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc > Class Template Reference . . . 2. 877
5.1012.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 880
5.1013 std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc > Class Template Reference . . . . . . . . 2. 880
5.1013.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 884
5.1013.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 884
5.1013.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 886
5.1013.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 888
5.1014 std::__debug::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc > Class Template Reference . 2. 910
5.1014.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 913
5.1015 std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc > Class Template Reference . . . . . . 2. 913
5.1015.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 917
5.1015.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 917
5.1015.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 919
5.1015.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 921
5.1016 std::__debug::unordered_multiset< _Value, _Hash, _Pred, _Alloc > Class Template Reference . . . 2. 939

Generated by Doxygen
lxxix

5.1016.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 942


5.1017 std::unordered_multiset< _Value, _Hash, _Pred, _Alloc > Class Template Reference . . . . . . . . 2. 942
5.1017.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 945
5.1017.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 945
5.1017.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 947
5.1017.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 949
5.1018 std::__debug::unordered_set< _Value, _Hash, _Pred, _Alloc > Class Template Reference . . . . . . 2. 965
5.1018.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 968
5.1019 std::unordered_set< _Value, _Hash, _Pred, _Alloc > Class Template Reference . . . . . . . . . . . 2. 968
5.1019.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 971
5.1019.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 972
5.1019.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 974
5.1019.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 976
5.1020 std::pmr::unsynchronized_pool_resource Class Reference . . . . . . . . . . . . . . . . . . . . . . . 2. 993
5.1020.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 993
5.1020.2 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 993
5.1021 std::uses_allocator< typename, typename > Struct Template Reference . . . . . . . . . . . . . . . 2. 994
5.1021.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 994
5.1022 std::uses_allocator< tuple< _Types... >, _Alloc > Struct Template Reference . . . . . . . . . . . . 2. 994
5.1022.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 994
5.1023 std::chrono::utc_clock Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 994
5.1023.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 995
5.1024 std::valarray< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 995
5.1024.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 997
5.1024.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 997
5.1024.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 998
5.1025 std::__debug::vector< _Tp, _Allocator > Class Template Reference . . . . . . . . . . . . . . . . . . 3. 001
5.1025.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 003
5.1025.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 003
5.1026 std::vector< _Tp, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 003
5.1026.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 007
5.1026.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 007
5.1026.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 012
5.1027 std::vector< bool, _Alloc > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 026
5.1027.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 028
5.1028 std::ranges::view_interface< _Derived > Class Template Reference . . . . . . . . . . . . . . . . . 3. 029
5.1028.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 030
5.1029 std::wbuffer_convert< _Codecvt, _Elem, _Tr > Class Template Reference . . . . . . . . . . . . . . 3. 030
5.1029.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 032

Generated by Doxygen
lxxx

5.1029.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 032


5.1029.3 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 033
5.1029.4 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 033
5.1029.5 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 045
5.1030 std::weak_ptr< _Tp > Class Template Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 046
5.1030.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 047
5.1031 std::weibull_distribution< _RealType > Class Template Reference . . . . . . . . . . . . . . . . . . 3. 047
5.1031.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 048
5.1031.2 Member Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 048
5.1031.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 049
5.1031.4 Friends And Related Symbol Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 050
5.1032 std::wstring_convert< _Codecvt, _Elem, _Wide_alloc, _Byte_alloc > Class Template Reference . . . 3. 050
5.1032.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 051
5.1032.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 051
5.1032.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 052

6 File Documentation 3053


6.1 compare File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 053
6.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 054
6.2 cxxabi.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 054
6.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 056
6.2.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 056
6.3 exception File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 056
6.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 057
6.4 initializer_list File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 057
6.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 057
6.5 new File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 057
6.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 058
6.5.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 058
6.6 typeinfo File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 059
6.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 059
6.7 algorithm File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 059
6.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 059
6.8 experimental/algorithm File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 060
6.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 060
6.9 ext/algorithm File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 060
6.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 061
6.10 parallel/algorithm File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 061
6.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 061

Generated by Doxygen
lxxxi

6.11 any File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 061


6.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 062
6.12 experimental/any File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 062
6.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 062
6.13 array File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 062
6.13.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 063
6.14 experimental/array File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 063
6.14.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 064
6.15 atomic File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 064
6.15.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 068
6.16 auto_ptr.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 068
6.16.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 068
6.17 backward_warning.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 068
6.17.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 068
6.18 binders.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 068
6.18.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 069
6.19 hash_fun.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 069
6.19.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 069
6.20 hash_map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 069
6.20.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 070
6.21 hash_set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 070
6.21.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 070
6.22 strstream File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 071
6.22.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 071
6.23 barrier File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 071
6.23.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 071
6.24 bit File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 071
6.24.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 071
6.25 bits/algorithmfwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 071
6.25.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 077
6.26 parallel/algorithmfwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 077
6.26.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 085
6.27 align.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 085
6.27.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 085
6.28 bits/alloc_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 085
6.28.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 085
6.29 ext/alloc_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 086
6.29.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 086
6.30 allocated_ptr.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 086

Generated by Doxygen
lxxxii

6.30.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 086


6.31 allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 086
6.31.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 086
6.32 atomic_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 086
6.32.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 087
6.33 atomic_futex.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 087
6.33.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 087
6.34 atomic_lockfree_defines.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 087
6.34.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 088
6.35 atomic_timed_wait.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 088
6.35.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 089
6.36 atomic_wait.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 089
6.36.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 090
6.37 basic_ios.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 090
6.37.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 090
6.38 basic_ios.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 090
6.38.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 090
6.39 basic_string.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 091
6.39.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 093
6.40 basic_string.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 094
6.40.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 094
6.41 boost_concept_check.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 094
6.41.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 095
6.42 c++0x_warning.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 095
6.42.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 095
6.43 char_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 095
6.43.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 095
6.44 charconv.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 095
6.44.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 096
6.45 chrono.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 096
6.45.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 099
6.46 chrono_io.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 099
6.46.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 103
6.47 codecvt.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 103
6.47.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 103
6.48 concept_check.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 103
6.48.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 103
6.49 cow_string.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 103
6.49.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 104

Generated by Doxygen
lxxxiii

6.50 cpp_type_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 104


6.50.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 104
6.51 cxxabi_forced.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 104
6.51.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 104
6.52 cxxabi_init_exception.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 104
6.52.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 105
6.53 deque.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 105
6.53.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 106
6.54 enable_special_members.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 106
6.54.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 106
6.55 erase_if.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 107
6.55.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 107
6.56 exception.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 107
6.56.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 107
6.57 exception_defines.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 107
6.57.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 107
6.58 exception_ptr.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 107
6.58.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 108
6.59 formatfwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 108
6.59.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 108
6.60 forward_list.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 108
6.60.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 109
6.61 forward_list.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 109
6.61.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 109
6.62 bits/fs_dir.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 109
6.62.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 109
6.63 experimental/bits/fs_dir.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 109
6.63.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 110
6.64 bits/fs_fwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 110
6.64.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 112
6.65 experimental/bits/fs_fwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 112
6.65.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 113
6.66 bits/fs_ops.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 113
6.66.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 116
6.67 experimental/bits/fs_ops.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 116
6.67.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 118
6.68 bits/fs_path.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 118
6.68.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 118
6.69 experimental/bits/fs_path.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 119

Generated by Doxygen
lxxxiv

6.69.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 119


6.70 fstream.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 119
6.70.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 119
6.71 functexcept.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 119
6.71.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 120
6.72 functional_hash.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 120
6.72.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 121
6.73 gslice.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 121
6.73.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 121
6.74 gslice_array.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 121
6.74.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 121
6.75 hash_bytes.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 121
6.75.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 121
6.76 backward/hashtable.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 122
6.76.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 122
6.77 bits/hashtable.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 122
6.77.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 122
6.78 hashtable_policy.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 122
6.78.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 122
6.79 indirect_array.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 122
6.79.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 123
6.80 invoke.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 123
6.80.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 123
6.81 ios_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 123
6.81.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 125
6.82 istream.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 125
6.82.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 125
6.83 iterator_concepts.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 125
6.83.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 126
6.84 list.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 126
6.84.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 126
6.85 locale_classes.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 126
6.85.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 126
6.86 locale_classes.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 126
6.86.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 127
6.87 locale_conv.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 127
6.87.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 128
6.88 locale_facets.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 128
6.88.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 129

Generated by Doxygen
lxxxv

6.89 locale_facets.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 129


6.89.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 129
6.90 locale_facets_nonio.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 130
6.90.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 130
6.91 locale_facets_nonio.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 130
6.91.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 130
6.92 localefwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 130
6.92.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 131
6.93 mask_array.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 131
6.93.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 131
6.94 max_size_type.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 131
6.94.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 131
6.95 memory_resource.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 132
6.95.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 132
6.96 memoryfwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 132
6.96.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 132
6.97 mofunc_impl.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 132
6.97.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 132
6.98 monostate.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 133
6.98.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 133
6.99 move.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 133
6.99.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 134
6.100 move_only_function.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 134
6.100.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 134
6.101 nested_exception.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 134
6.101.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 134
6.102 bits/new_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 134
6.102.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 134
6.103 ext/new_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 135
6.103.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 135
6.104 node_handle.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 135
6.104.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 135
6.105 ostream.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 135
6.105.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 136
6.106 ostream.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137
6.106.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137
6.107 ostream_insert.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137
6.107.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137
6.108 out_ptr.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137

Generated by Doxygen
lxxxvi

6.108.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137


6.109 parse_numbers.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137
6.109.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 137
6.110 postypes.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 138
6.110.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 138
6.111 predefined_ops.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 138
6.111.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 139
6.112 ptr_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 139
6.112.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 139
6.113 quoted_string.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 140
6.113.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 140
6.114 random.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 140
6.114.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 143
6.115 bits/random.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 143
6.115.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 146
6.116 ext/random.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 146
6.116.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 148
6.117 range_access.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 148
6.117.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 150
6.118 ranges_algo.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 150
6.118.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 153
6.119 ranges_algobase.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 153
6.119.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 153
6.120 ranges_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 153
6.120.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 153
6.121 ranges_cmp.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 153
6.121.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 154
6.122 ranges_uninitialized.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 154
6.122.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 154
6.123 ranges_util.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 154
6.123.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 155
6.124 refwrap.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 155
6.124.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 155
6.125 regex.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 155
6.125.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 158
6.126 regex.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 158
6.126.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 158
6.127 regex_automaton.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 158
6.127.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159

Generated by Doxygen
lxxxvii

6.128 regex_automaton.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159


6.128.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159
6.129 regex_compiler.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159
6.129.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159
6.130 regex_compiler.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159
6.130.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159
6.131 regex_constants.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 159
6.131.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 161
6.132 regex_error.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 161
6.132.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.133 regex_executor.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.133.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.134 regex_executor.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.134.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.135 regex_scanner.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.135.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.136 regex_scanner.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 162
6.136.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.137 requires_hosted.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.137.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.138 sat_arith.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.138.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.139 semaphore_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.139.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.140 bits/shared_ptr.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 163
6.140.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 164
6.141 experimental/bits/shared_ptr.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 164
6.141.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 166
6.142 shared_ptr_atomic.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 166
6.142.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 168
6.143 shared_ptr_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 168
6.143.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 168
6.144 slice_array.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 169
6.144.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 169
6.145 specfun.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 169
6.145.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 171
6.146 sstream.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 171
6.146.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 171
6.147 std_abs.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 171

Generated by Doxygen
lxxxviii

6.147.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 172


6.148 std_function.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 172
6.148.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 172
6.149 std_mutex.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 172
6.149.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 173
6.150 std_thread.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 173
6.150.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 173
6.151 stl_algo.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 173
6.151.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 182
6.152 stl_algobase.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 182
6.152.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 188
6.153 stl_bvector.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 188
6.153.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 188
6.154 stl_construct.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 188
6.154.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 189
6.155 stl_deque.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 189
6.155.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 190
6.155.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 190
6.156 stl_function.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 190
6.156.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 192
6.157 stl_heap.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 192
6.157.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 193
6.158 bits/stl_iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 193
6.158.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 196
6.159 debug/stl_iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 196
6.159.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 197
6.160 stl_iterator_base_funcs.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 197
6.160.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 198
6.161 stl_iterator_base_types.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 198
6.161.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 199
6.162 stl_list.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 199
6.162.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 199
6.163 stl_map.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 200
6.163.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 200
6.164 stl_multimap.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 200
6.164.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 201
6.165 stl_multiset.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 201
6.165.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 202
6.166 stl_numeric.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 202

Generated by Doxygen
lxxxix

6.166.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 203


6.167 stl_pair.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 203
6.167.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 204
6.168 stl_queue.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 204
6.168.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 205
6.169 stl_raw_storage_iter.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 205
6.169.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 206
6.170 stl_relops.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 206
6.170.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 206
6.171 stl_set.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 206
6.171.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 207
6.172 stl_stack.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 207
6.172.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 208
6.173 stl_tempbuf.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 208
6.173.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 208
6.174 stl_tree.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 208
6.174.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 209
6.175 stl_uninitialized.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 209
6.175.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 210
6.176 stl_vector.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 210
6.176.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 210
6.177 stream_iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 210
6.177.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 211
6.178 streambuf.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 211
6.178.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 211
6.179 streambuf_iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 211
6.179.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 212
6.180 bits/string_view.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 212
6.180.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 212
6.181 experimental/bits/string_view.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 212
6.181.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 212
6.182 stringfwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 212
6.182.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 213
6.183 text_encoding-data.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 213
6.183.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 213
6.184 this_thread_sleep.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 213
6.184.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 213
6.185 unicode-data.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 213
6.185.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 214

Generated by Doxygen
xc

6.186 unicode.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 214


6.186.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 215
6.187 uniform_int_dist.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 215
6.187.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 215
6.188 unique_lock.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 215
6.188.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 215
6.189 unique_ptr.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 216
6.189.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 217
6.190 unordered_map.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 217
6.190.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 219
6.191 unordered_set.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 219
6.191.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 221
6.192 uses_allocator_args.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 221
6.192.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 221
6.193 utility.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 222
6.193.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 223
6.194 valarray_after.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 223
6.194.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 232
6.195 valarray_array.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 232
6.195.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 240
6.196 valarray_array.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 240
6.196.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 241
6.197 valarray_before.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 241
6.197.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 241
6.198 vector.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 241
6.198.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 241
6.199 version.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 241
6.199.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 244
6.200 bitset File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 244
6.200.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 245
6.201 debug/bitset File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 245
6.201.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.202 cassert File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.202.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.203 ccomplex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.203.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.204 tr1/ccomplex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.204.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.205 cctype File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246

Generated by Doxygen
xci

6.205.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246


6.206 tr1/cctype File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 246
6.206.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.207 cerrno File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.207.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.208 cfenv File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.208.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.209 tr1/cfenv File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.209.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.210 cfloat File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.210.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.211 tr1/cfloat File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 247
6.211.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 248
6.212 charconv File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 248
6.212.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 249
6.213 chrono File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 249
6.213.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 252
6.214 experimental/chrono File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 252
6.214.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 252
6.215 cinttypes File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 252
6.215.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 252
6.216 tr1/cinttypes File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 252
6.216.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.217 ciso646 File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.217.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.218 climits File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.218.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.219 tr1/climits File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.219.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.220 clocale File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.220.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 253
6.221 cmath File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 254
6.221.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 260
6.222 ext/cmath File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 260
6.222.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 260
6.223 tr1/cmath File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 260
6.223.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 262
6.224 codecvt File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 262
6.224.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 262

Generated by Doxygen
xcii

6.225 complex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 262


6.225.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 267
6.226 tr1/complex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 267
6.226.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 267
6.227 complex.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 268
6.227.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 268
6.228 concepts File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 268
6.228.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 268
6.229 condition_variable File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 268
6.229.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 268
6.230 csetjmp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 268
6.230.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.231 csignal File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.231.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.232 cstdalign File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.232.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.233 cstdarg File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.233.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.234 tr1/cstdarg File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 269
6.234.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.235 cstdbool File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.235.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.236 tr1/cstdbool File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.236.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.237 cstddef File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.237.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.238 cstdint File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.238.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 270
6.239 tr1/cstdint File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 271
6.239.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 271
6.240 cstdio File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 271
6.240.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 271
6.241 tr1/cstdio File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 271
6.241.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 271
6.242 cstdlib File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 271
6.242.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 272
6.243 tr1/cstdlib File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 272
6.243.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 272
6.244 cstring File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 272

Generated by Doxygen
xciii

6.244.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 272


6.245 ctgmath File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 272
6.245.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 272
6.246 tr1/ctgmath File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.246.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.247 ctime File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.247.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.248 tr1/ctime File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.248.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.249 cuchar File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.249.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.250 cwchar File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 273
6.250.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 274
6.251 tr1/cwchar File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 274
6.251.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 274
6.252 cwctype File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 274
6.252.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 274
6.253 tr1/cwctype File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 274
6.253.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 275
6.254 assertions.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 275
6.254.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 275
6.255 debug.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 275
6.255.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 276
6.256 formatter.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 276
6.256.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 276
6.257 functions.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 276
6.257.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 278
6.258 helper_functions.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 278
6.258.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 280
6.259 macros.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 280
6.259.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 281
6.259.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 281
6.260 map.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 283
6.260.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 284
6.261 multimap.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 284
6.261.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 284
6.262 multiset.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 285
6.262.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 285
6.263 safe_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 285

Generated by Doxygen
xciv

6.263.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 286


6.264 safe_container.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 286
6.264.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 286
6.265 safe_iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 286
6.265.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 287
6.266 safe_iterator.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 287
6.266.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 288
6.267 safe_local_iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 288
6.267.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 288
6.268 safe_local_iterator.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 289
6.268.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 289
6.269 safe_sequence.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 289
6.269.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 289
6.270 safe_sequence.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 289
6.270.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 289
6.271 safe_unordered_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 289
6.271.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 290
6.272 safe_unordered_container.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 290
6.272.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 290
6.273 safe_unordered_container.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 290
6.273.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 290
6.274 set.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 290
6.274.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 291
6.275 decimal File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 291
6.275.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 300
6.276 debug/deque File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 300
6.276.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 301
6.277 deque File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 301
6.277.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 301
6.278 experimental/deque File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 301
6.278.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.279 expected File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.279.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.280 lfts_config.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.280.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.281 ext/numeric_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.281.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.282 propagate_const File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 302
6.282.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 304

Generated by Doxygen
xcv

6.283 simd File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 304


6.283.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 304
6.284 aligned_buffer.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 304
6.284.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 304
6.285 atomicity.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 304
6.285.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 305
6.286 bitmap_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 305
6.286.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 305
6.286.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 305
6.287 cast.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 306
6.287.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 306
6.288 codecvt_specializations.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 306
6.288.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 306
6.289 concurrence.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 307
6.289.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 307
6.290 debug_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 307
6.290.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 307
6.291 enc_filebuf.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 307
6.291.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 307
6.292 extptr_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 308
6.292.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 308
6.293 malloc_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 308
6.293.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 308
6.294 mt_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 308
6.294.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 309
6.295 assoc_container.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 309
6.295.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 309
6.296 bin_search_tree_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 309
6.296.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 310
6.297 bin_search_tree_/node_iterators.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 310
6.297.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 310
6.298 ov_tree_map_/node_iterators.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 310
6.298.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 310
6.299 point_iterators.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.299.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.300 bin_search_tree_/r_erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.300.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.301 pat_trie_/r_erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.301.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311

Generated by Doxygen
xcvi

6.302 bin_search_tree_/rotate_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311


6.302.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.303 pat_trie_/rotate_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.303.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.304 bin_search_tree_/traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 311
6.304.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.305 branch_policy/traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.305.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.306 ov_tree_map_/traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.306.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.307 pat_trie_/traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.307.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.308 rb_tree_map_/traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 312
6.308.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 313
6.309 splay_tree_/traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 313
6.309.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 313
6.310 binary_heap_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 313
6.310.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 313
6.311 binary_heap_/const_iterator.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 313
6.311.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.312 left_child_next_sibling_heap_/const_iterator.hpp File Reference . . . . . . . . . . . . . . . . . . . . . 3. 314
6.312.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.313 unordered_iterator/const_iterator.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.313.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.314 bin_search_tree_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 314
6.314.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.315 binary_heap_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . 3. 314
6.315.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.316 binomial_heap_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . 3. 314
6.316.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.317 binomial_heap_base_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . 3. 314
6.317.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 314
6.318 left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . 3. 315
6.318.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.319 ov_tree_map_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . 3. 315
6.319.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.320 pairing_heap_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . 3. 315
6.320.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.321 pat_trie_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . 3. 315

Generated by Doxygen
xcvii

6.321.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315


6.322 rb_tree_map_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . 3. 315
6.322.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.323 rc_binomial_heap_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . 3. 315
6.323.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.324 splay_tree_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 315
6.324.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.325 thin_heap_/constructors_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 315
6.325.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.326 bin_search_tree_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.326.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.327 binary_heap_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.327.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 315
6.328 binomial_heap_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.328.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.329 binomial_heap_base_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.329.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.330 cc_hash_table_map_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.330.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.331 gp_hash_table_map_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.331.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.332 left_child_next_sibling_heap_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 316
6.332.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.333 list_update_map_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.333.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.334 ov_tree_map_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.334.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.335 pairing_heap_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.335.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.336 pat_trie_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.336.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.337 rb_tree_map_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.337.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 316
6.338 rc_binomial_heap_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.338.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.339 splay_tree_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.339.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.340 thin_heap_/debug_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.340.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317

Generated by Doxygen
xcviii

6.341 entry_cmp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317


6.341.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.342 entry_pred.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.342.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.343 bin_search_tree_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.343.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 317
6.344 binary_heap_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.344.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.345 binomial_heap_base_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.345.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.346 cc_hash_table_map_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.346.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.347 gp_hash_table_map_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.347.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.348 left_child_next_sibling_heap_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 318
6.348.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.349 list_update_map_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.349.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.350 ov_tree_map_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.350.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.351 pairing_heap_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.351.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.352 pat_trie_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.352.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.353 rb_tree_map_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.353.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 318
6.354 rc_binomial_heap_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.354.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.355 splay_tree_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.355.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.356 thin_heap_/erase_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.356.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.357 bin_search_tree_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.357.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.358 binary_heap_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.358.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.359 binomial_heap_base_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.359.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.360 cc_hash_table_map_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319

Generated by Doxygen
xcix

6.360.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319


6.361 gp_hash_table_map_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.361.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.362 list_update_map_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.362.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.363 pairing_heap_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.363.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 319
6.364 pat_trie_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.364.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.365 rb_tree_map_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.365.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.366 splay_tree_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.366.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.367 thin_heap_/find_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.367.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.368 bin_search_tree_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.368.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.369 binary_heap_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.369.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.370 cc_hash_table_map_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.370.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.371 gp_hash_table_map_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.371.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.372 left_child_next_sibling_heap_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . 3. 320
6.372.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.373 list_update_map_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.373.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 320
6.374 ov_tree_map_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.374.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.375 pat_trie_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.375.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.376 rb_tree_map_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.376.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.377 splay_tree_/info_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.377.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.378 bin_search_tree_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.378.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.379 binary_heap_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.379.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321

Generated by Doxygen
c

6.380 binomial_heap_base_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 321


6.380.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.381 cc_hash_table_map_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.381.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.382 gp_hash_table_map_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.382.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.383 left_child_next_sibling_heap_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 321
6.383.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 321
6.384 list_update_map_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.384.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.385 ov_tree_map_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.385.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.386 pairing_heap_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.386.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.387 rb_tree_map_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.387.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.388 rc_binomial_heap_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.388.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.389 splay_tree_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.389.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.390 thin_heap_/insert_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.390.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.391 bin_search_tree_/iterators_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.391.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.392 binary_heap_/iterators_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.392.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.393 cc_hash_table_map_/iterators_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.393.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 322
6.394 left_child_next_sibling_heap_/iterators_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . 3. 323
6.394.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.395 list_update_map_/iterators_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.395.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.396 ov_tree_map_/iterators_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.396.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.397 pat_trie_/iterators_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.397.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.398 binary_heap_/point_const_iterator.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.398.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323
6.399 left_child_next_sibling_heap_/point_const_iterator.hpp File Reference . . . . . . . . . . . . . . . . . 3. 323

Generated by Doxygen
ci

6.399.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 323


6.400 unordered_iterator/point_const_iterator.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.400.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.401 bin_search_tree_/policy_access_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.401.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.402 binary_heap_/policy_access_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.402.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.403 cc_hash_table_map_/policy_access_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 324
6.403.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.404 gp_hash_table_map_/policy_access_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 324
6.404.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.405 left_child_next_sibling_heap_/policy_access_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 324
6.405.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.406 ov_tree_map_/policy_access_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.406.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.407 pat_trie_/policy_access_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.407.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.408 resize_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 324
6.408.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.409 bin_search_tree_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.409.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.410 binary_heap_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.410.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.411 binomial_heap_base_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.411.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.412 ov_tree_map_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.412.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.413 pairing_heap_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.413.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.414 rb_tree_map_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.414.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.415 rc_binomial_heap_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.415.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.416 splay_tree_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.416.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 325
6.417 thin_heap_/split_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.417.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.418 binary_heap_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.418.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326

Generated by Doxygen
cii

6.419 cc_hash_table_map_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326


6.419.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.420 gp_hash_table_map_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.420.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.421 left_child_next_sibling_heap_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 326
6.421.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.422 list_update_map_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.422.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.423 pat_trie_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.423.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.424 rc_binomial_heap_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.424.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.425 thin_heap_/trace_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.425.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.426 binomial_heap_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 326
6.426.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 327
6.427 binomial_heap_base_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 327
6.427.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 327
6.428 branch_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 327
6.428.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 327
6.429 null_node_metadata.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 327
6.429.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.430 cc_ht_map_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.430.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.431 cmp_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.431.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.432 cond_key_dtor_entry_dealtor.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.432.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.433 cc_hash_table_map_/constructor_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 328
6.433.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 328
6.434 gp_hash_table_map_/constructor_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 329
6.434.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329
6.435 list_update_map_/constructor_destructor_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 329
6.436 cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp File Reference . . . . . . . 3. 329
6.436.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329
6.437 gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp File Reference . . . . . . 3. 329
6.437.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329
6.438 cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp File Reference . . . . . . . . . 3. 329
6.438.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329

Generated by Doxygen
ciii

6.439 gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp File Reference . . . . . . . . 3. 329


6.439.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329
6.440 cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 329
6.440.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329
6.441 gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 329
6.441.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329
6.442 cc_hash_table_map_/debug_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 329
6.442.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 329
6.443 gp_hash_table_map_/debug_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 330
6.443.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.444 entry_list_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.444.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.445 cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . 3. 330
6.445.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.446 gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 330
6.446.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.447 cc_hash_table_map_/erase_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . 3. 330
6.447.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.448 gp_hash_table_map_/erase_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 330
6.448.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.449 cc_hash_table_map_/find_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . 3. 330
6.449.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.450 gp_hash_table_map_/find_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . 3. 330
6.450.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.451 cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . 3. 330
6.451.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.452 gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 330
6.452.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 330
6.453 cc_hash_table_map_/insert_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . 3. 331
6.453.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.454 gp_hash_table_map_/insert_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 331
6.454.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.455 cc_hash_table_map_/resize_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.455.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.456 gp_hash_table_map_/resize_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.456.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.457 cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 331
6.457.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.458 gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . 3. 331

Generated by Doxygen
civ

6.458.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331


6.459 cc_hash_table_map_/resize_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 331
6.459.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.460 gp_hash_table_map_/resize_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . 3. 331
6.460.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.461 size_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.461.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.462 cond_dealtor.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 331
6.462.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 332
6.463 container_base_dispatch.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 332
6.463.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 332
6.464 debug_map_base.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 332
6.464.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 332
6.465 eq_by_less.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 333
6.465.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 333
6.466 hash_eq_fn.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 333
6.466.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 333
6.467 find_no_store_hash_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 333
6.467.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 333
6.468 gp_ht_map_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 333
6.468.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.469 iterator_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.469.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.470 direct_mask_range_hashing_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.470.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.471 direct_mod_range_hashing_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.471.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.472 linear_probe_fn_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.472.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.473 mask_based_range_hashing.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.473.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.474 mod_based_range_hashing.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.474.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 334
6.475 probe_fn_base.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 335
6.475.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 335
6.476 quadratic_probe_fn_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 335
6.476.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 335
6.477 ranged_hash_fn.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 335
6.477.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 335

Generated by Doxygen
cv

6.478 ranged_probe_fn.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 335


6.478.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 336
6.479 sample_probe_fn.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 336
6.479.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 336
6.480 sample_range_hashing.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 336
6.480.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 336
6.481 sample_ranged_hash_fn.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 336
6.481.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 336
6.482 sample_ranged_probe_fn.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 337
6.482.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 337
6.483 left_child_next_sibling_heap_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 337
6.483.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 337
6.484 left_child_next_sibling_heap_/node.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 337
6.484.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 337
6.485 rb_tree_map_/node.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 337
6.485.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.486 splay_tree_/node.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.486.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.487 entry_metadata_base.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.487.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.488 lu_map_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.488.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.489 lu_counter_metadata.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 338
6.489.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 339
6.490 sample_update_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 339
6.490.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 339
6.491 ov_tree_map_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 339
6.491.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 339
6.492 pairing_heap_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 339
6.492.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 340
6.493 insert_join_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 340
6.493.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 340
6.494 pat_trie_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 340
6.494.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 340
6.495 pat_trie_base.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 340
6.495.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 341
6.496 split_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 341
6.496.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 341
6.497 synth_access_traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 341

Generated by Doxygen
cvi

6.497.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 341


6.498 update_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 341
6.498.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 341
6.499 priority_queue_base_dispatch.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 342
6.499.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 342
6.500 rb_tree_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 342
6.500.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 342
6.501 rc.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 342
6.501.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.502 rc_binomial_heap_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.502.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.503 cc_hash_max_collision_check_resize_trigger_imp.hpp File Reference . . . . . . . . . . . . . . . . . 3. 343
6.503.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.504 hash_exponential_size_policy_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.504.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.505 hash_load_check_resize_trigger_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.505.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.506 hash_load_check_resize_trigger_size_base.hpp File Reference . . . . . . . . . . . . . . . . . . . . 3. 343
6.506.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 343
6.507 hash_prime_size_policy_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.507.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.508 hash_standard_resize_policy_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.508.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.509 sample_resize_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.509.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.510 sample_resize_trigger.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.510.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.511 sample_size_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.511.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 344
6.512 splay_fn_imps.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 345
6.512.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 345
6.513 splay_tree_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 345
6.513.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 345
6.514 standard_policies.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 345
6.514.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 346
6.514.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 346
6.515 thin_heap_.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 346
6.515.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 346
6.516 tree_policy/node_metadata_selector.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . 3. 346

Generated by Doxygen
cvii

6.516.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 346


6.517 trie_policy/node_metadata_selector.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.517.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.518 tree_policy/order_statistics_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.518.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.519 trie_policy/order_statistics_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.519.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.520 sample_tree_node_update.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.520.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.521 tree_trace_base.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.521.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.522 prefix_search_node_update_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.522.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 347
6.523 sample_trie_access_traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.523.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.524 sample_trie_node_update.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.524.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.525 trie_policy_base.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.525.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.526 trie_string_access_traits_imp.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.526.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.527 type_utils.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 348
6.527.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 349
6.528 types_traits.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 349
6.528.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 349
6.529 iterator.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 349
6.529.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 349
6.530 point_iterator.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 349
6.530.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 349
6.531 exception.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 350
6.531.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 350
6.532 hash_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 350
6.532.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 351
6.533 list_update_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 351
6.533.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 351
6.534 priority_queue.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 351
6.534.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 351
6.535 tag_and_trait.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 352
6.535.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 353

Generated by Doxygen
cviii

6.536 tree_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 353


6.536.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 353
6.537 trie_policy.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 353
6.537.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 353
6.538 pod_char_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 353
6.538.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 354
6.539 pointer.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 354
6.539.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 356
6.540 pool_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 356
6.540.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 356
6.541 rb_tree File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 356
6.541.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 356
6.542 rc_string_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 356
6.542.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 357
6.543 rope File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 357
6.543.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 360
6.544 ropeimpl.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 360
6.544.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 366
6.545 slist File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 367
6.545.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 367
6.546 sso_string_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 367
6.546.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 368
6.547 stdio_filebuf.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 368
6.547.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 368
6.548 stdio_sync_filebuf.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 368
6.548.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 368
6.549 string_conversions.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 368
6.549.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 368
6.550 throw_allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 369
6.550.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 370
6.551 type_traits.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 370
6.551.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 370
6.552 typelist.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 370
6.552.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 371
6.553 vstring.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 371
6.553.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 374
6.554 vstring.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 374
6.554.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 375
6.555 vstring_fwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 375

Generated by Doxygen
cix

6.555.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 375


6.556 vstring_util.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 375
6.556.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 375
6.557 fenv.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.557.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.558 experimental/filesystem File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.558.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.559 filesystem File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.559.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.560 flat_map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.560.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.561 flat_set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.561.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.562 format File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 376
6.562.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 377
6.563 debug/forward_list File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 377
6.563.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 377
6.564 experimental/forward_list File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 377
6.564.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 378
6.565 forward_list File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 378
6.565.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 378
6.566 fstream File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 378
6.566.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 379
6.567 experimental/functional File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 379
6.567.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 380
6.568 ext/functional File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 380
6.568.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 381
6.569 functional File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 381
6.569.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 383
6.570 future File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 383
6.570.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 384
6.571 generator File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 384
6.571.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 384
6.572 iomanip File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 384
6.572.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 386
6.573 ios File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 386
6.573.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 386
6.574 iosfwd File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 386
6.574.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 387

Generated by Doxygen
cx

6.575 iostream File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 387


6.575.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 387
6.576 istream File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 388
6.576.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 388
6.577 experimental/iterator File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 389
6.577.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 389
6.578 ext/iterator File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 389
6.578.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 389
6.579 iterator File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 389
6.579.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 390
6.580 latch File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 390
6.580.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 390
6.581 limits File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 390
6.581.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 391
6.582 debug/list File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 391
6.582.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 392
6.583 experimental/list File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 392
6.583.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 392
6.584 list File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 392
6.584.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 393
6.585 locale File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 393
6.585.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 393
6.586 debug/map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 393
6.586.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 393
6.587 experimental/map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 393
6.587.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 394
6.588 map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 394
6.588.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 394
6.589 math.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 395
6.589.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 395
6.590 experimental/memory File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 395
6.590.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 395
6.591 ext/memory File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 395
6.591.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 396
6.592 memory File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 396
6.592.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 397
6.593 experimental/memory_resource File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 397
6.593.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 398
6.593.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 398

Generated by Doxygen
cxi

6.594 memory_resource File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 398


6.594.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 398
6.594.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 399
6.595 mutex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 399
6.595.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 399
6.596 numbers File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 399
6.596.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 400
6.597 experimental/numeric File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 400
6.597.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 400
6.598 ext/numeric File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 400
6.598.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 400
6.599 numeric File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 401
6.599.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 402
6.600 parallel/numeric File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 402
6.600.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 404
6.601 experimental/optional File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 404
6.601.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 404
6.602 optional File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 405
6.602.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 405
6.603 ostream File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 405
6.603.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 405
6.604 algo.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 405
6.604.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 414
6.605 algobase.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 415
6.605.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 417
6.606 balanced_quicksort.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 417
6.606.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 417
6.607 base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 417
6.607.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 418
6.608 basic_iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 418
6.608.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 418
6.609 checkers.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 418
6.609.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 418
6.610 compiletime_settings.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 419
6.610.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 419
6.610.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 419
6.611 equally_split.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 420
6.611.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 420
6.612 features.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 420

Generated by Doxygen
cxii

6.612.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 420


6.612.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 421
6.613 find.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 422
6.613.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 422
6.614 find_selectors.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 423
6.614.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 423
6.615 for_each.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 423
6.615.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 423
6.616 for_each_selectors.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 423
6.616.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 424
6.617 iterator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 424
6.617.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 424
6.618 list_partition.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 424
6.618.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 424
6.619 losertree.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 425
6.619.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 425
6.620 merge.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 425
6.620.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 426
6.621 multiseq_selection.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 426
6.621.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 426
6.622 multiway_merge.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 426
6.622.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 429
6.622.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 429
6.623 multiway_mergesort.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 429
6.623.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 430
6.624 numericfwd.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 430
6.624.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 431
6.625 omp_loop.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 431
6.625.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 431
6.626 omp_loop_static.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 432
6.626.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 432
6.627 par_loop.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 432
6.627.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 432
6.628 parallel.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 432
6.628.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 432
6.629 partial_sum.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 432
6.629.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 433
6.630 partition.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 433
6.630.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 433

Generated by Doxygen
cxiii

6.630.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 433


6.631 queue.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 433
6.631.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 434
6.631.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 434
6.632 quicksort.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 434
6.632.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 434
6.633 random_number.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 434
6.633.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 434
6.634 random_shuffle.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 434
6.634.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 435
6.635 search.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 435
6.635.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 435
6.636 set_operations.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 435
6.636.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 436
6.637 settings.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 436
6.637.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 436
6.637.2 Deciding whether to run an algorithm in parallel. . . . . . . . . . . . . . . . . . . . . . . . . . 3. 436
6.637.3 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 437
6.638 sort.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 437
6.638.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 438
6.639 tags.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 438
6.639.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 438
6.640 types.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 438
6.640.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 439
6.641 unique_copy.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 439
6.641.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 439
6.642 workstealing.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 439
6.642.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 440
6.643 print File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 440
6.643.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 440
6.644 queue File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 440
6.644.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 440
6.645 experimental/random File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 440
6.645.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 441
6.646 random File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 441
6.646.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 441
6.647 ranges File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 441
6.647.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 441
6.648 experimental/ratio File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 441

Generated by Doxygen
cxiv

6.648.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 442


6.649 ratio File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 442
6.649.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 443
6.650 tr2/ratio File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 443
6.650.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 443
6.651 experimental/regex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 443
6.651.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 443
6.652 regex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 444
6.652.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 444
6.653 scoped_allocator File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 444
6.653.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 444
6.654 semaphore File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 444
6.654.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 444
6.655 debug/set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 445
6.655.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 445
6.656 experimental/set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 445
6.656.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 445
6.657 set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 445
6.657.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 446
6.658 shared_mutex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 446
6.658.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 446
6.659 source_location File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 446
6.659.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 446
6.660 span File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 447
6.660.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 447
6.661 sstream File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 447
6.661.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 447
6.662 stack File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 447
6.662.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.663 stdatomic.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.663.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.664 stdbit.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.664.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.665 stdckdint.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.665.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.666 stdexcept File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.666.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.667 stdlib.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448
6.667.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 448

Generated by Doxygen
cxv

6.668 stop_token File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 449


6.668.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 449
6.669 streambuf File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 449
6.669.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 449
6.670 debug/string File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 450
6.670.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 452
6.671 experimental/string File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 452
6.671.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 452
6.672 string File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 452
6.672.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 453
6.673 experimental/string_view File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 453
6.673.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 455
6.674 string_view File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 455
6.674.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 456
6.675 syncstream File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 456
6.675.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 456
6.676 experimental/system_error File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 456
6.676.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 456
6.677 system_error File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 457
6.677.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 457
6.678 text_encoding File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 457
6.678.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 457
6.679 tgmath.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 457
6.679.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 457
6.680 thread File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 457
6.680.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 458
6.681 bool_set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 458
6.681.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 459
6.682 bool_set.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 459
6.682.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 459
6.683 dynamic_bitset File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 459
6.683.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 460
6.684 dynamic_bitset.tcc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 460
6.684.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 460
6.685 experimental/tuple File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 460
6.685.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 461
6.686 tuple File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 461
6.686.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 462
6.687 experimental/type_traits File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 463

Generated by Doxygen
cxvi

6.687.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 466


6.688 tr2/type_traits File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 466
6.688.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 466
6.689 type_traits File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 467
6.689.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 470
6.690 typeindex File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 470
6.690.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 471
6.691 debug/unordered_map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 471
6.691.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 473
6.692 experimental/unordered_map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 473
6.692.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 473
6.693 unordered_map File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 473
6.693.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 474
6.694 debug/unordered_set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 474
6.694.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 476
6.695 experimental/unordered_set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 476
6.695.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 476
6.696 unordered_set File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 476
6.696.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 477
6.697 experimental/utility File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 477
6.697.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 477
6.698 utility File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 477
6.698.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 478
6.699 valarray File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 478
6.699.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 478
6.700 variant File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 479
6.700.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 479
6.701 debug/vector File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 479
6.701.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 479
6.702 experimental/vector File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 480
6.702.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 480
6.703 vector File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 480
6.703.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 480
6.704 atomic_word.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 481
6.704.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 481
6.705 basic_file.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 481
6.705.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 481
6.706 c++allocator.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 481
6.706.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 481

Generated by Doxygen
1

6.707 c++config.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 481


6.707.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 488
6.708 c++io.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 488
6.708.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 488
6.709 c++locale.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 489
6.709.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 489
6.710 c++locale_internal.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 489
6.710.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 489
6.711 parallel/compatibility.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 489
6.711.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.712 x86_64-pc-linux-gnu/bits/compatibility.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.712.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.713 cpu_defines.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.713.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.714 ctype_base.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.714.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.715 ctype_inline.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.715.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.716 cxxabi_tweaks.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 490
6.716.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 491
6.717 error_constants.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 491
6.717.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 491
6.718 extc++.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 491
6.718.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 491
6.719 messages_members.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 491
6.719.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.720 opt_random.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.720.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.721 os_defines.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.721.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.722 stdc++.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.722.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.723 stdtr1c++.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.723.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.724 time_members.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492
6.724.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 492

Index 3493

Generated by Doxygen
2

1 Deprecated List

Module negators

Deprecated in C++17, no longer in the standard since C++20. Use not_fn instead.
Module pointer_adaptors

Deprecated in C++11, no longer in the standard since C++17.


Module ptrmem_adaptors

Deprecated in C++11, no longer in the standard since C++17. Use mem_fn instead.
Struct std::aligned_storage< _Len, _Align >

Deprecated in C++23. Uses can be replaced by an array std::byte[_Len] declared with alignas(←-
_Align).
Struct std::aligned_union< _Len, _Types >

Deprecated in C++23.
Class std::auto_ptr< _Tp >

Deprecated in C++11, no longer in the standard since C++17. Use unique_ptr instead.
Struct std::binary_function< _Arg1, _Arg2, _Result >

Deprecated in C++11, no longer in the standard since C++17.


Member std::get_unexpected () noexcept

Removed from the C++ standard in C++17


Struct std::is_literal_type< _Tp >

Deprecated in C++17, removed in C++20. The idea of a literal type isn't useful.
Struct std::is_pod< _Tp >

Deprecated in C++20. Use is_standard_layout && is_trivial instead.


Struct std::is_trivial< _Tp >

Deprecated in C++26. Use a combination of one or more more specialized type traits instead, such
as is_trivially_default_constructible, is_trivially_copy_constructible, is_←-
trivially_copy_assignable, etc., depending on the exact check(s) needed.
Member std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last)

Since C++17, std::random_shuffle is not part of the C++ standard. Use std::shuffle instead,
which was introduced in C++11.
Member std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _Random←-
NumberGenerator &&__rand)

Since C++17, std::random_shuffle is not part of the C++ standard. Use std::shuffle instead,
which was introduced in C++11.

Generated by Doxygen
2 Todo List 3

Member std::set_unexpected (unexpected_handler) noexcept

Removed from the C++ standard in C++17


Struct std::unary_function< _Arg, _Result >

Deprecated in C++11, no longer in the standard since C++17.


Member std::unexpected ()

Removed from the C++ standard in C++17

2 Todo List

Member __gnu_cxx::distance (_InputIterator __first, _InputIterator __last, _Distance &__n)

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Class __gnu_cxx::hash_map< _Key, _Tp, _HashFn, _EqualKey, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Class __gnu_cxx::hash_multimap< _Key, _Tp, _HashFn, _EqualKey, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Class __gnu_cxx::hash_multiset< _Value, _HashFcn, _EqualKey, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Class __gnu_cxx::hash_set< _Value, _HashFcn, _EqualKey, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Member __gnu_cxx::power (_Tp __x, _Integer __n, _MonoidOperation __monoid_op)

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Member __gnu_cxx::power (_Tp __x, _Integer __n)

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Member __gnu_cxx::random_sample (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __←-
out_first, _RandomAccessIterator __out_last)

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

Generated by Doxygen
4

Member __gnu_cxx::random_sample (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __←-


out_first, _RandomAccessIterator __out_last, _RandomNumberGenerator &__rand)

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Member __gnu_cxx::random_sample_n (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __←-
out, const _Distance __n)

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Member __gnu_cxx::random_sample_n (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __←-
out, const _Distance __n, _RandomNumberGenerator &__rand)

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Struct __gnu_cxx::rb_tree< _Key, _Value, _KeyOfValue, _Compare, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Class __gnu_cxx::rope< _CharT, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Class __gnu_cxx::slist< _Tp, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Module mathsf

Provide accuracy comparisons on a per-function basis for a small number of targets.


Class std::basic_string< _CharT, _Traits, _Alloc >

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
Member std::regex_traits< typename >::transform_primary (_Fwd_iter __first, _Fwd_iter __last) const

Implement this function correctly.

Generated by Doxygen
3 Topic Documentation 5

3 Topic Documentation

3.1 Algorithms

Collaboration diagram for Algorithms:

Mutating

Non-Mutating

Algorithms
Generalized Numeric
operations

Sorting

Topics

• Generalized Numeric operations


• Mutating
• Non-Mutating
• Sorting

3.1.1 Detailed Description

Components for performing algorithmic operations. Includes non-modifying sequence, modifying (mutating) sequence,
sorting, searching, merge, partition, heap, set, minima, maxima, and permutation operations.

Generated by Doxygen
6

3.1.2 Generalized Numeric operations

Collaboration diagram for Generalized Numeric operations:

Generalized Numeric
Algorithms
operations

Functions

• template<typename _InputIterator , typename _Tp >


constexpr _Tp std::accumulate (_InputIterator __first, _InputIterator __last, _Tp __init)
• template<typename _InputIterator , typename _Tp , typename _BinaryOperation >
constexpr _Tp std::accumulate (_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __←-
binary_op)
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator std::adjacent_difference (_InputIterator __first, _InputIterator __last, _OutputIterator ←-
__result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >
constexpr _OutputIterator std::adjacent_difference (_InputIterator __first, _InputIterator __last, _OutputIterator ←-
__result, _BinaryOperation __binary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp >
constexpr _OutputIterator std::exclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _Tp __init)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp , typename _BinaryOperation >
constexpr _OutputIterator std::exclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _Tp __init, _BinaryOperation __binary_op)
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator std::inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >
constexpr _OutputIterator std::inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _BinaryOperation __binary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename _Tp >
constexpr _OutputIterator std::inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _BinaryOperation __binary_op, _Tp __init)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp >
constexpr _Tp std::inner_product (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp
__init)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp , typename _BinaryOperation1 , typename _BinaryOperation2
>
constexpr _Tp std::inner_product (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp
__init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2)

Generated by Doxygen
3.1 Algorithms 7

• template<typename _ForwardIterator , typename _Tp >


constexpr void std::iota (_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator std::partial_sum (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >
constexpr _OutputIterator std::partial_sum (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_BinaryOperation __binary_op)
• template<typename _InputIterator >
constexpr iterator_traits< _InputIterator >::value_type std::reduce (_InputIterator __first, _InputIterator __last)
• template<typename _InputIterator , typename _Tp >
constexpr _Tp std::reduce (_InputIterator __first, _InputIterator __last, _Tp __init)
• template<typename _InputIterator , typename _Tp , typename _BinaryOperation >
constexpr _Tp std::reduce (_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp , typename _BinaryOperation , typename _UnaryOperation >
constexpr _OutputIterator std::transform_exclusive_scan (_InputIterator __first, _InputIterator __last, _Output←-
Iterator __result, _Tp __init, _BinaryOperation __binary_op, _UnaryOperation __unary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename _UnaryOperation >
constexpr _OutputIterator std::transform_inclusive_scan (_InputIterator __first, _InputIterator __last, _Output←-
Iterator __result, _BinaryOperation __binary_op, _UnaryOperation __unary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename _UnaryOperation , typename _Tp >
constexpr _OutputIterator std::transform_inclusive_scan (_InputIterator __first, _InputIterator __last, _Output←-
Iterator __result, _BinaryOperation __binary_op, _UnaryOperation __unary_op, _Tp __init)
• template<typename _InputIterator , typename _Tp , typename _BinaryOperation , typename _UnaryOperation >
constexpr _Tp std::transform_reduce (_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation
__binary_op, _UnaryOperation __unary_op)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp >
constexpr _Tp std::transform_reduce (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_Tp __init)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp , typename _BinaryOperation1 , typename _BinaryOperation2
>
constexpr _Tp std::transform_reduce (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2)

3.1.2.1 Detailed Description

3.1.2.2 Function Documentation

accumulate() [1/2]

template<typename _InputIterator , typename _Tp >


_Tp std::accumulate (
_InputIterator __first,
_InputIterator __last,
_Tp __init) [inline], [constexpr]

Accumulate values in a range.

Accumulates the values in the range [first,last) using operator+(). The initial value is init. The values are processed in
order.

Generated by Doxygen
8

Parameters

__first Start of range.


__last End of range.
__init Starting value to add other values to.

Returns

The final sum.

accumulate() [2/2]

template<typename _InputIterator , typename _Tp , typename _BinaryOperation >


_Tp std::accumulate (
_InputIterator __first,
_InputIterator __last,
_Tp __init,
_BinaryOperation __binary_op) [inline], [constexpr]

Accumulate values in a range with operation.

Accumulates the values in the range [first,last) using the function object __binary_op. The initial value is
__init. The values are processed in order.

Parameters

__first Start of range.


__last End of range.
__init Starting value to add other values to.
__binary_op Function object to accumulate with.

Returns

The final sum.

adjacent_difference() [1/2]

template<typename _InputIterator , typename _OutputIterator >


_OutputIterator std::adjacent_difference (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result) [constexpr]

Return differences between adjacent values.

Computes the difference between adjacent values in the range [first,last) using operator-() and writes the result to
__result.

Generated by Doxygen
3.1 Algorithms 9

Parameters

__first Start of input range.


__last End of input range.
__result Output sums.

Returns

Iterator pointing just beyond the values written to result.

adjacent_difference() [2/2]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >


_OutputIterator std::adjacent_difference (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryOperation __binary_op) [constexpr]

Return differences between adjacent values.

Computes the difference between adjacent values in the range [__first,__last) using the function object __binary_op
and writes the result to __result.

Parameters

__first Start of input range.


__last End of input range.
__result Output sum.
__binary_op Function object.

Returns

Iterator pointing just beyond the values written to result.

exclusive_scan() [1/2]

template<typename _InputIterator , typename _OutputIterator , typename _Tp >


_OutputIterator std::exclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_Tp __init) [inline], [constexpr]

Output the cumulative sum of one range to a second range.

Generated by Doxygen
10

Parameters

__first Start of input range.


__last End of input range.
__result Start of output range.
__init Initial value.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements (and the initial value), using std::plus<> for summation.

This function generates an "exclusive" scan, meaning the Nth element of the output range is the sum of the first N-1
input elements, so the Nth input element is not included.

exclusive_scan() [2/2]

template<typename _InputIterator , typename _OutputIterator , typename _Tp , typename _Binary←-


Operation >
_OutputIterator std::exclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_Tp __init,
_BinaryOperation __binary_op) [constexpr]

Output the cumulative sum of one range to a second range.

Parameters

__first Start of input range.


__last End of input range.
__result Start of output range.
__init Initial value.
__binary_op Function to perform summation.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements (and the initial value), using binary_op for summation.

This function generates an "exclusive" scan, meaning the Nth element of the output range is the sum of the first N-1
input elements, so the Nth input element is not included.

Generated by Doxygen
3.1 Algorithms 11

inclusive_scan() [1/3]

template<typename _InputIterator , typename _OutputIterator >


_OutputIterator std::inclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result) [inline], [constexpr]

Output the cumulative sum of one range to a second range.

Parameters

__first Start of input range.


__last End of input range.
__result Start of output range.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements, using std::plus<> for summation.

This function generates an "inclusive" scan, meaning the Nth element of the output range is the sum of the first N input
elements, so the Nth input element is included.

inclusive_scan() [2/3]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >


_OutputIterator std::inclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryOperation __binary_op) [constexpr]

Output the cumulative sum of one range to a second range.

Parameters

__first Start of input range.


__last End of input range.
__result Start of output range.
__binary_op Function to perform summation.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements, using binary_op for summation.

This function generates an "inclusive" scan, meaning the Nth element of the output range is the sum of the first N input
elements, so the Nth input element is included.

Generated by Doxygen
12

inclusive_scan() [3/3]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename


_Tp >
_OutputIterator std::inclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryOperation __binary_op,
_Tp __init) [constexpr]

Output the cumulative sum of one range to a second range.

Parameters

__first Start of input range.


__last End of input range.
__result Start of output range.
__binary_op Function to perform summation.
__init Initial value.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements (and the initial value), using binary_op for summation.
This function generates an "inclusive" scan, meaning the Nth element of the output range is the sum of the first N input
elements, so the Nth input element is included.

inner_product() [1/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp >


_Tp std::inner_product (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_Tp __init) [inline], [constexpr]

Compute inner product of two ranges.


Starting with an initial value of __init, multiplies successive elements from the two ranges and adds each product
into the accumulated value using operator+(). The values in the ranges are processed in order.

Parameters

__first1 Start of range 1.


__last1 End of range 1.
__first2 Start of range 2.
__init Starting value to add other values to.

Returns

The final inner product.

Generated by Doxygen
3.1 Algorithms 13

inner_product() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp , typename _Binary←-


Operation1 , typename _BinaryOperation2 >
_Tp std::inner_product (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_Tp __init,
_BinaryOperation1 __binary_op1,
_BinaryOperation2 __binary_op2) [inline], [constexpr]

Compute inner product of two ranges.

Starting with an initial value of __init, applies __binary_op2 to successive elements from the two ranges and
accumulates each result into the accumulated value using __binary_op1. The values in the ranges are processed
in order.

Parameters

__first1 Start of range 1.


__last1 End of range 1.
__first2 Start of range 2.
__init Starting value to add other values to.
__binary_op1 Function object to accumulate with.
__binary_op2 Function object to apply to pairs of input values.

Returns

The final inner product.

iota()

template<typename _ForwardIterator , typename _Tp >


void std::iota (
_ForwardIterator __first,
_ForwardIterator __last,
_Tp __value) [constexpr]

Create a range of sequentially increasing values.

For each element in the range [first,last) assigns value and increments value as if by ++value.

Parameters

__first Start of range.


__last End of range.
__value Starting value.

Returns

Nothing.

Generated by Doxygen
14

partial_sum() [1/2]

template<typename _InputIterator , typename _OutputIterator >


_OutputIterator std::partial_sum (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result) [constexpr]

Return list of partial sums.

Accumulates the values in the range [first,last) using the + operator. As each successive input value is added into the
total, that partial sum is written to __result. Therefore, the first value in __result is the first value of the input, the
second value in __result is the sum of the first and second input values, and so on.

Parameters

__first Start of input range.


__last End of input range.
__result Output sum.

Returns

Iterator pointing just beyond the values written to __result.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs_pu(), and __gnu_parallel::__sequential_random_shuffle().

partial_sum() [2/2]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >


_OutputIterator std::partial_sum (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryOperation __binary_op) [constexpr]

Return list of partial sums.

Accumulates the values in the range [first,last) using __binary_op. As each successive input value is added into the
total, that partial sum is written to __result. Therefore, the first value in __result is the first value of the input, the
second value in __result is the sum of the first and second input values, and so on.

Parameters

__first Start of input range.


__last End of input range.
__result Output sum.
__binary_op Function object.

Returns

Iterator pointing just beyond the values written to __result.

Generated by Doxygen
3.1 Algorithms 15

reduce() [1/3]

template<typename _InputIterator >


iterator_traits< _InputIterator >::value_type std::reduce (
_InputIterator __first,
_InputIterator __last) [inline], [constexpr]

Calculate reduction of values in a range.

Parameters

__first Start of range.


__last End of range.

Returns

The final sum.

Reduce the values in the range [first,last) using addition, with an initial value of T{}, where T is the iterator's
value type. Equivalent to calling std::reduce(first, last, T{}, std::plus<>()).

reduce() [2/3]

template<typename _InputIterator , typename _Tp >


_Tp std::reduce (
_InputIterator __first,
_InputIterator __last,
_Tp __init) [inline], [constexpr]

Calculate reduction of values in a range.

Parameters

__first Start of range.


__last End of range.
__init Starting value to add other values to.

Returns

The final sum.

Reduce the values in the range [first,last) using addition. Equivalent to calling std::reduce(first,
last, init, std::plus<>()).

reduce() [3/3]

template<typename _InputIterator , typename _Tp , typename _BinaryOperation >


_Tp std::reduce (
_InputIterator __first,
_InputIterator __last,
_Tp __init,
_BinaryOperation __binary_op) [constexpr]

Calculate reduction of values in a range.

Generated by Doxygen
16

Parameters

__first Start of range.


__last End of range.
__init Starting value to add other values to.
__binary_op A binary function object.

Returns

The final sum.

Reduce the values in the range [first,last) using a binary operation. The initial value is init. The values are
not necessarily processed in order.

This algorithm is similar to std::accumulate but is not required to perform the operations in order from first to last.
For operations that are commutative and associative the result will be the same as for std::accumulate, but for
other operations (such as floating point arithmetic) the result can be different.

transform_exclusive_scan()

template<typename _InputIterator , typename _OutputIterator , typename _Tp , typename _Binary←-


Operation , typename _UnaryOperation >
_OutputIterator std::transform_exclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_Tp __init,
_BinaryOperation __binary_op,
_UnaryOperation __unary_op) [constexpr]

Output the cumulative sum of one range to a second range.

Parameters

__first Start of input range.


__last End of input range.
__result Start of output range.
__init Initial value.
__binary_op Function to perform summation.
__unary_op Function to transform elements of the input range.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements (and the initial value), using __unary_op to transform the input
elements and using __binary_op for summation.

This function generates an "exclusive" scan, meaning the Nth element of the output range is the sum of the first N-1
input elements, so the Nth input element is not included.

Generated by Doxygen
3.1 Algorithms 17

transform_inclusive_scan() [1/2]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename


_UnaryOperation >
_OutputIterator std::transform_inclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryOperation __binary_op,
_UnaryOperation __unary_op) [constexpr]

Output the cumulative sum of one range to a second range.

Parameters

__first Start of input range.


__last End of input range.
__result Start of output range.
__binary_op Function to perform summation.
__unary_op Function to transform elements of the input range.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements, using __unary_op to transform the input elements and using
__binary_op for summation.

This function generates an "inclusive" scan, meaning the Nth element of the output range is the sum of the first N input
elements, so the Nth input element is included.

transform_inclusive_scan() [2/2]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename


_UnaryOperation , typename _Tp >
_OutputIterator std::transform_inclusive_scan (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryOperation __binary_op,
_UnaryOperation __unary_op,
_Tp __init) [constexpr]

Output the cumulative sum of one range to a second range.

Parameters

__first Start of input range.

Generated by Doxygen
18

__last End of input range.


__result Start of output range.
__binary_op Function to perform summation.
__unary_op Function to transform elements of the input range.
__init Initial value.

Returns

The end of the output range.

Write the cumulative sum (aka prefix sum, aka scan) of the input range to the output range. Each element of the output
range contains the running total of all earlier elements (and the initial value), using __unary_op to transform the input
elements and using __binary_op for summation.

This function generates an "inclusive" scan, meaning the Nth element of the output range is the sum of the first N input
elements, so the Nth input element is included.

transform_reduce() [1/3]

template<typename _InputIterator , typename _Tp , typename _BinaryOperation , typename _Unary←-


Operation >
_Tp std::transform_reduce (
_InputIterator __first,
_InputIterator __last,
_Tp __init,
_BinaryOperation __binary_op,
_UnaryOperation __unary_op) [constexpr]

Transform the elements of a range and reduce.

Parameters

__first Start of range.


__last End of range.
__init Starting value to add other values to.
__binary_op The function used to perform reduction.
__unary_op The function used to transform values from the range.

Returns

The final sum.

Call unary_op(first[n]) for each n in [0,last-first) and then use binary_op to reduce the values
returned by unary_op to a single value of type T.

Generated by Doxygen
3.1 Algorithms 19

transform_reduce() [2/3]

template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp >


_Tp std::transform_reduce (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_Tp __init) [inline], [constexpr]

Combine elements from two ranges and reduce.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__init Starting value to add other values to.

Returns

The final sum.

Call first1[n]∗first2[n] for each n in [0,last1-first1) and then use addition to sum those products to
a single value of type T.

The range beginning at first2 must contain at least last1-first1 elements.

transform_reduce() [3/3]

template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp , typename _Binary←-


Operation1 , typename _BinaryOperation2 >
_Tp std::transform_reduce (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_Tp __init,
_BinaryOperation1 __binary_op1,
_BinaryOperation2 __binary_op2) [constexpr]

Combine elements from two ranges and reduce.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__init Starting value to add other values to.
__binary_op1 The function used to perform reduction.
__binary_op2 The function used to combine values from the ranges.

Generated by Doxygen
20

Returns

The final sum.

Call binary_op2(first1[n],first2[n]) for each n in [0,last1-first1) and then use binary_op1


to reduce the values returned by binary_op2 to a single value of type T.

The range beginning at first2 must contain at least last1-first1 elements.

3.1.3 Mutating

Collaboration diagram for Mutating:

Algorithms Mutating

Functions

• template<typename _II , typename _OI >


constexpr _OI std::copy (_II __first, _II __last, _OI __result)
• template<typename _BI1 , typename _BI2 >
constexpr _BI2 std::copy_backward (_BI1 __first, _BI1 __last, _BI2 __result)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate >
constexpr _OutputIterator std::copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _←-
Predicate __pred)
• template<typename _InputIterator , typename _Size , typename _OutputIterator >
constexpr _OutputIterator std::copy_n (_InputIterator __first, _Size __n, _OutputIterator __result)
• template<typename _ForwardIterator , typename _Tp >
constexpr void std::fill (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
• template<typename _OI , typename _Size , typename _Tp >
constexpr _OI std::fill_n (_OI __first, _Size __n, const _Tp &__value)
• template<typename _ForwardIterator , typename _Generator >
constexpr void std::generate (_ForwardIterator __first, _ForwardIterator __last, _Generator __gen)
• template<typename _OutputIterator , typename _Size , typename _Generator >
constexpr _OutputIterator std::generate_n (_OutputIterator __first, _Size __n, _Generator __gen)
• template<typename _InputIterator , typename _Predicate >
constexpr bool std::is_partitioned (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr void std::iter_swap (_ForwardIterator1 __a, _ForwardIterator2 __b)
• template<typename _II , typename _OI >
constexpr _OI std::move (_II __first, _II __last, _OI __result)
• template<typename _BI1 , typename _BI2 >
constexpr _BI2 std::move_backward (_BI1 __first, _BI1 __last, _BI2 __result)

Generated by Doxygen
3.1 Algorithms 21

• template<typename _ForwardIterator , typename _Predicate >


constexpr _ForwardIterator std::partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _OutputIterator1 , typename _OutputIterator2 , typename _Predicate >
constexpr pair< _OutputIterator1, _OutputIterator2 > std::partition_copy (_InputIterator __first, _InputIterator ←-
__last, _OutputIterator1 __out_true, _OutputIterator2 __out_false, _Predicate __pred)
• template<typename _ForwardIterator , typename _Predicate >
constexpr _ForwardIterator std::partition_point (_ForwardIterator __first, _ForwardIterator __last, _Predicate _←-
_pred)
• template<typename _RandomAccessIterator >
void std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _RandomNumberGenerator >
void std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumber←-
Generator &&__rand)
• template<typename _ForwardIterator , typename _Tp >
constexpr _ForwardIterator std::remove (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp >
constexpr _OutputIterator std::remove_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
const _Tp &__value)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate >
constexpr _OutputIterator std::remove_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _Predicate __pred)
• template<typename _ForwardIterator , typename _Predicate >
constexpr _ForwardIterator std::remove_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _ForwardIterator , typename _Tp >
constexpr void std::replace (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__old_value, const _Tp
&__new_value)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate , typename _Tp >
constexpr _OutputIterator std::replace_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _Predicate __pred, const _Tp &__new_value)
• template<typename _ForwardIterator , typename _Predicate , typename _Tp >
constexpr void std::replace_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp
&__new_value)
• template<typename _BidirectionalIterator >
constexpr void std::reverse (_BidirectionalIterator __first, _BidirectionalIterator __last)
• template<typename _BidirectionalIterator , typename _OutputIterator >
constexpr _OutputIterator std::reverse_copy (_BidirectionalIterator __first, _BidirectionalIterator __last, _Output←-
Iterator __result)
• template<typename _ForwardIterator >
constexpr _ForwardIterator std::rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator _←-
_last)
• template<typename _ForwardIterator , typename _OutputIterator >
constexpr _OutputIterator std::rotate_copy (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator
__last, _OutputIterator __result)
• template<typename _RandomAccessIterator , typename _UniformRandomNumberGenerator >
void std::shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _UniformRandomNumber←-
Generator &&__g)
• template<typename _ForwardIterator , typename _Predicate >
_ForwardIterator std::stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr _ForwardIterator2 std::swap_ranges (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _←-
ForwardIterator2 __first2)
• template<typename _InputIterator , typename _OutputIterator , typename _UnaryOperation >
constexpr _OutputIterator std::transform (_InputIterator __first, _InputIterator __last, _OutputIterator __result, ←-
_UnaryOperation __unary_op)

Generated by Doxygen
22

• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _BinaryOperation >


constexpr _OutputIterator std::transform (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_OutputIterator __result, _BinaryOperation __binary_op)
• template<typename _ForwardIterator >
constexpr _ForwardIterator std::unique (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _BinaryPredicate >
constexpr _ForwardIterator std::unique (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __←-
binary_pred)
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator std::unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryPredicate >
constexpr _OutputIterator std::unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_BinaryPredicate __binary_pred)

3.1.3.1 Detailed Description

3.1.3.2 Function Documentation

copy()

template<typename _II , typename _OI >


_OI std::copy (
_II __first,
_II __last,
_OI __result) [inline], [constexpr]

Copies the range [first,last) into result.

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.

Returns

result + (last - first)

This inline function will boil down to a call to memmove whenever possible. Failing that, if random access iterators
are passed, then the loop count will be known (and therefore a candidate for compiler optimizations such as unrolling).
Result may not be contained within [first,last); the copy_backward function should be used instead.
Note that the end of the output range is permitted to be contained within [first,last).

copy_backward()

template<typename _BI1 , typename _BI2 >


_BI2 std::copy_backward (
_BI1 __first,
_BI1 __last,
_BI2 __result) [inline], [constexpr]

Copies the range [first,last) into result.

Generated by Doxygen
3.1 Algorithms 23

Parameters

__first A bidirectional iterator.


__last A bidirectional iterator.
__result A bidirectional iterator.

Returns

result - (last - first)

The function has the same effect as copy, but starts at the end of the range and works its way to the start, returning the
start of the result. This inline function will boil down to a call to memmove whenever possible. Failing that, if random
access iterators are passed, then the loop count will be known (and therefore a candidate for compiler optimizations
such as unrolling).

Result may not be in the range (first,last]. Use copy instead. Note that the start of the output range may overlap
[first,last).

copy_if()

template<typename _InputIterator , typename _OutputIterator , typename _Predicate >


_OutputIterator std::copy_if (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_Predicate __pred) [constexpr]

Copy the elements of a sequence for which a predicate is true.

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.
__pred A predicate.

Returns

An iterator designating the end of the resulting sequence.

Copies each element in the range [__first,__last) for which __pred returns true to the range beginning at __result.

copy_if() is stable, so the relative order of elements that are copied is unchanged.

copy_n()

template<typename _InputIterator , typename _Size , typename _OutputIterator >


_OutputIterator std::copy_n (
_InputIterator __first,
_Size __n,
_OutputIterator __result) [inline], [constexpr]

Copies the range [first,first+n) into [result,result+n).

Generated by Doxygen
24

Parameters

__first An input iterator.


__n The number of elements to copy.
__result An output iterator.

Returns

result+n.

This inline function will boil down to a call to memmove whenever possible. Failing that, if random access iterators are
passed, then the loop count will be known (and therefore a candidate for compiler optimizations such as unrolling).

References std::move().

fill()

template<typename _ForwardIterator , typename _Tp >


void std::fill (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __value) [inline], [constexpr]

Fills the range [first,last) with copies of value.

Parameters

__first A forward iterator.


__last A forward iterator.
__value A reference-to-const of arbitrary type.

Returns

Nothing.

This function fills a range with copies of the same value. For char types filling contiguous areas of memory, this becomes
an inline call to memset or wmemset.

fill_n()

template<typename _OI , typename _Size , typename _Tp >


_OI std::fill_n (
_OI __first,
_Size __n,
const _Tp & __value) [inline], [constexpr]

Fills the range [first,first+n) with copies of value.

Generated by Doxygen
3.1 Algorithms 25

Parameters

__first An output iterator.


__n The count of copies to perform.
__value A reference-to-const of arbitrary type.

Returns

The iterator at first+n.

This function fills a range with copies of the same value. For char types filling contiguous areas of memory, this becomes
an inline call to memset or wmemset.

If __n is negative, the function does nothing.

References std::__iterator_category().

generate()

template<typename _ForwardIterator , typename _Generator >


void std::generate (
_ForwardIterator __first,
_ForwardIterator __last,
_Generator __gen) [constexpr]

Assign the result of a function object to each value in a sequence.

Parameters

__first A forward iterator.


__last A forward iterator.
__gen A function object callable with no arguments.

Returns

generate() returns no value.

Performs the assignment ∗i = __gen() for each i in the range [__first, __last).

generate_n()

template<typename _OutputIterator , typename _Size , typename _Generator >


_OutputIterator std::generate_n (
_OutputIterator __first,
_Size __n,
_Generator __gen) [constexpr]

Assign the result of a function object to each value in a sequence.

Generated by Doxygen
26

Parameters

__first A forward iterator.


__n The length of the sequence.
__gen A function object callable with no arguments.

Returns

The end of the sequence, i.e., __first + __n

Performs the assignment ∗i = __gen() for each i in the range [__first, __first + __n).

If __n is negative, the function does nothing and returns __first.

is_partitioned()

template<typename _InputIterator , typename _Predicate >


bool std::is_partitioned (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Checks whether the sequence is partitioned.

Parameters

__first An input iterator.


__last An input iterator.
__pred A predicate.

Returns

True if the range [__first,__last) is partioned by __pred, i.e. if all elements that satisfy __pred appear before
those that do not.

iter_swap()

template<typename _ForwardIterator1 , typename _ForwardIterator2 >


void std::iter_swap (
_ForwardIterator1 __a,
_ForwardIterator2 __b) [inline], [constexpr]

Swaps the contents of two iterators.

Generated by Doxygen
3.1 Algorithms 27

Parameters
_←- An iterator.
_a
_←- Another iterator.
_b

Returns

Nothing.

This function swaps the values pointed to by two iterators, not the iterators themselves.

move()

template<typename _II , typename _OI >


_OI std::move (
_II __first,
_II __last,
_OI __result) [inline], [constexpr]

Moves the range [first,last) into result.

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.

Returns

result + (last - first)

This inline function will boil down to a call to memmove whenever possible. Failing that, if random access iterators
are passed, then the loop count will be known (and therefore a candidate for compiler optimizations such as unrolling).
Result may not be contained within [first,last); the move_backward function should be used instead.

Note that the end of the output range is permitted to be contained within [first,last).

move_backward()

template<typename _BI1 , typename _BI2 >


_BI2 std::move_backward (
_BI1 __first,
_BI1 __last,
_BI2 __result) [inline], [constexpr]

Moves the range [first,last) into result.

Generated by Doxygen
28

Parameters

__first A bidirectional iterator.


__last A bidirectional iterator.
__result A bidirectional iterator.

Returns

result - (last - first)

The function has the same effect as move, but starts at the end of the range and works its way to the start, returning
the start of the result. This inline function will boil down to a call to memmove whenever possible. Failing that, if random
access iterators are passed, then the loop count will be known (and therefore a candidate for compiler optimizations
such as unrolling).

Result may not be in the range (first,last]. Use move instead. Note that the start of the output range may overlap
[first,last).

partition()

template<typename _ForwardIterator , typename _Predicate >


_ForwardIterator std::partition (
_ForwardIterator __first,
_ForwardIterator __last,
_Predicate __pred) [inline], [constexpr]

Move elements for which a predicate is true to the beginning of a sequence.

Parameters

__first A forward iterator.


__last A forward iterator.
__pred A predicate functor.

Returns

An iterator middle such that __pred(i) is true for each iterator i in the range [__first, middle) and
false for each i in the range [middle, __last).

__pred must not modify its operand. partition() does not preserve the relative ordering of elements in each
group, use stable_partition() if this is needed.

References std::__iterator_category(), and std::__partition().

Generated by Doxygen
3.1 Algorithms 29

partition_copy()

template<typename _InputIterator , typename _OutputIterator1 , typename _OutputIterator2 , typename


_Predicate >
pair< _OutputIterator1, _OutputIterator2 > std::partition_copy (
_InputIterator __first,
_InputIterator __last,
_OutputIterator1 __out_true,
_OutputIterator2 __out_false,
_Predicate __pred) [constexpr]

Copy the elements of a sequence to separate output sequences depending on the truth value of a predicate.

Generated by Doxygen
30

Parameters

__first An input iterator.


__last An input iterator.
__out_true An output iterator.
__out_false An output iterator.
__pred A predicate.

Returns

A pair designating the ends of the resulting sequences.

Copies each element in the range [__first,__last) for which __pred returns true to the range beginning at out_true
and each element for which __pred returns false to __out_false.

partition_point()

template<typename _ForwardIterator , typename _Predicate >


_ForwardIterator std::partition_point (
_ForwardIterator __first,
_ForwardIterator __last,
_Predicate __pred) [nodiscard], [constexpr]

Find the partition point of a partitioned range.

Parameters

__first An iterator.
__last Another iterator.
__pred A predicate.

Returns

An iterator mid such that all_of(__first, mid, __pred) and none_of(mid, __last, __←-
pred) are both true.

References std::advance(), and std::distance().

random_shuffle() [1/2]

template<typename _RandomAccessIterator >


void std::random_shuffle (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline]

Randomly shuffle the elements of a sequence.

Generated by Doxygen
3.1 Algorithms 31

Parameters

__first A forward iterator.


__last A forward iterator.

Returns

Nothing.

Reorder the elements in the range [__first, __last) using a random distribution, so that every possible ordering
of the sequence is equally likely.

Deprecated Since C++17, std::random_shuffle is not part of the C++ standard. Use std::shuffle in-
stead, which was introduced in C++11.

random_shuffle() [2/2]

template<typename _RandomAccessIterator , typename _RandomNumberGenerator >


void std::random_shuffle (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_RandomNumberGenerator && __rand)

Shuffle the elements of a sequence using a random number generator.

Parameters

__first A forward iterator.


__last A forward iterator.
__rand The RNG functor or function.

Returns

Nothing.

Reorders the elements in the range [__first, __last) using __rand to provide a random distribution. Calling
__rand(N) for a positive integer N should return a randomly chosen integer from the range [0, N).

Deprecated Since C++17, std::random_shuffle is not part of the C++ standard. Use std::shuffle in-
stead, which was introduced in C++11.

remove()

template<typename _ForwardIterator , typename _Tp >


_ForwardIterator std::remove (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __value) [inline], [nodiscard], [constexpr]

Remove elements from a sequence.

Generated by Doxygen
32

Parameters

__first An input iterator.


__last An input iterator.
__value The value to be removed.

Returns

An iterator designating the end of the resulting sequence.

All elements equal to __value are removed from the range [__first,__last).

remove() is stable, so the relative order of elements that are not removed is unchanged.

Elements between the end of the resulting sequence and __last are still present, but their value is unspecified.

remove_copy()

template<typename _InputIterator , typename _OutputIterator , typename _Tp >


_OutputIterator std::remove_copy (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
const _Tp & __value) [inline], [constexpr]

Copy a sequence, removing elements of a given value.

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.
__value The value to be removed.

Returns

An iterator designating the end of the resulting sequence.

Copies each element in the range [__first,__last) not equal to __value to the range beginning at __result.
remove_copy() is stable, so the relative order of elements that are copied is unchanged.

remove_copy_if()

template<typename _InputIterator , typename _OutputIterator , typename _Predicate >


_OutputIterator std::remove_copy_if (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_Predicate __pred) [inline], [constexpr]

Copy a sequence, removing elements for which a predicate is true.

Generated by Doxygen
3.1 Algorithms 33

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.
__pred A predicate.

Returns

An iterator designating the end of the resulting sequence.

Copies each element in the range [__first,__last) for which __pred returns false to the range beginning at __result.

remove_copy_if() is stable, so the relative order of elements that are copied is unchanged.

remove_if()

template<typename _ForwardIterator , typename _Predicate >


_ForwardIterator std::remove_if (
_ForwardIterator __first,
_ForwardIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Remove elements from a sequence using a predicate.

Parameters

__first A forward iterator.


__last A forward iterator.
__pred A predicate.

Returns

An iterator designating the end of the resulting sequence.

All elements for which __pred returns true are removed from the range [__first,__last).

remove_if() is stable, so the relative order of elements that are not removed is unchanged.

Elements between the end of the resulting sequence and __last are still present, but their value is unspecified.

replace()

template<typename _ForwardIterator , typename _Tp >


void std::replace (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __old_value,
const _Tp & __new_value) [constexpr]

Replace each occurrence of one value in a sequence with another value.

Generated by Doxygen
34

Parameters

__first A forward iterator.


__last A forward iterator.
__old_value The value to be replaced.
__new_value The replacement value.

Returns

replace() returns no value.

For each iterator i in the range [__first,__last) if ∗i == __old_value then the assignment ∗i = __←-
new_value is performed.

replace_copy_if()

template<typename _InputIterator , typename _OutputIterator , typename _Predicate , typename _Tp


>
_OutputIterator std::replace_copy_if (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_Predicate __pred,
const _Tp & __new_value) [inline], [constexpr]

Copy a sequence, replacing each value for which a predicate returns true with another value.

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.
__pred A predicate.
__new_value The replacement value.

Returns

The end of the output sequence, __result+(__last-__first).

Copies each element in the range [__first,__last) to the range [__result,__result+(__last-__first)) replacing elements for
which __pred returns true with __new_value.

replace_if()

template<typename _ForwardIterator , typename _Predicate , typename _Tp >


void std::replace_if (
_ForwardIterator __first,
_ForwardIterator __last,
_Predicate __pred,
const _Tp & __new_value) [constexpr]

Replace each value in a sequence for which a predicate returns true with another value.

Generated by Doxygen
3.1 Algorithms 35

Parameters

__first A forward iterator.


__last A forward iterator.
__pred A predicate.
__new_value The replacement value.

Returns

replace_if() returns no value.

For each iterator i in the range [__first,__last) if __pred(∗i) is true then the assignment ∗i = __new←-
_value is performed.

reverse()

template<typename _BidirectionalIterator >


void std::reverse (
_BidirectionalIterator __first,
_BidirectionalIterator __last) [inline], [constexpr]

Reverse a sequence.

Parameters

__first A bidirectional iterator.


__last A bidirectional iterator.

Returns

reverse() returns no value.

Reverses the order of the elements in the range [__first,__last), so that the first element becomes the last etc. For every
i such that 0<=i<=(__last-__first)/2), reverse() swaps ∗(__first+i) and ∗(__last-(i+1))

References std::__iterator_category(), and std::__reverse().

reverse_copy()

template<typename _BidirectionalIterator , typename _OutputIterator >


_OutputIterator std::reverse_copy (
_BidirectionalIterator __first,
_BidirectionalIterator __last,
_OutputIterator __result) [constexpr]

Copy a sequence, reversing its elements.

Generated by Doxygen
36

Parameters

__first A bidirectional iterator.


__last A bidirectional iterator.
__result An output iterator.

Returns

An iterator designating the end of the resulting sequence.

Copies the elements in the range [__first,__last) to the range [__result,__result+(__last-__first)) such that the order of
the elements is reversed. For every i such that 0<=i<=(__last-__first), reverse_copy() performs the assignment
∗(__result+(__last-__first)-1-i) = ∗(__first+i). The ranges [__first,__last) and [__result,__result+(__last-__first)) must not
overlap.

rotate()

template<typename _ForwardIterator >


_ForwardIterator std::_V2::rotate (
_ForwardIterator __first,
_ForwardIterator __middle,
_ForwardIterator __last) [inline], [constexpr]

Rotate the elements of a sequence.

Parameters

__first A forward iterator.


__middle A forward iterator.
__last A forward iterator.

Returns

first + (last - middle).

Rotates the elements of the range [__first,__last) by (__middle - __first) positions so that the element at __middle is
moved to __first, the element at __middle+1 is moved to __first+1 and so on for each element in the range
[__first,__last).
This effectively swaps the ranges [__first,__middle) and [__middle,__last).
Performs ∗(__first+(n+(__last-__middle))%(__last-__first))=∗(__first+n) for each n in the range [0,__last-__first).
References std::__iterator_category(), and std::__rotate().

rotate_copy()

template<typename _ForwardIterator , typename _OutputIterator >


_OutputIterator std::rotate_copy (
_ForwardIterator __first,
_ForwardIterator __middle,
_ForwardIterator __last,
_OutputIterator __result) [inline], [constexpr]

Copy a sequence, rotating its elements.

Generated by Doxygen
3.1 Algorithms 37

Parameters

__first A forward iterator.


__middle A forward iterator.
__last A forward iterator.
__result An output iterator.

Returns

An iterator designating the end of the resulting sequence.

Copies the elements of the range [__first,__last) to the range beginning at

Returns

, rotating the copied elements by (__middle-__first) positions so that the element at __middle is moved to ←-
__result, the element at __middle+1 is moved to __result+1 and so on for each element in the range
[__first,__last).

Performs ∗(__result+(n+(__last-__middle))%(__last-__first))=∗(__first+n) for each n in the range [0,__last-__first).

shuffle()

template<typename _RandomAccessIterator , typename _UniformRandomNumberGenerator >


void std::shuffle (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_UniformRandomNumberGenerator && __g)

Shuffle the elements of a sequence using a uniform random number generator.

Parameters

__first A forward iterator.


__last A forward iterator.
__g A UniformRandomNumberGenerator (26.5.1.3).

Returns

Nothing.

Reorders the elements in the range [__first,__last) using __g to provide random numbers.
References std::__gen_two_uniform_ints(), std::pair< _T1, _T2 >::first, and std::pair< _T1, _T2 >::second.

stable_partition()

template<typename _ForwardIterator , typename _Predicate >


_ForwardIterator std::stable_partition (
_ForwardIterator __first,
_ForwardIterator __last,
_Predicate __pred) [inline]

Move elements for which a predicate is true to the beginning of a sequence, preserving relative ordering.

Generated by Doxygen
38

Parameters

__first A forward iterator.


__last A forward iterator.
__pred A predicate functor.

Returns

An iterator middle such that __pred(i) is true for each iterator i in the range [first,middle) and false for each
i in the range [middle,last).

Performs the same function as partition() with the additional guarantee that the relative ordering of elements in
each group is preserved, so any two elements x and y in the range [__first,__last) such that __pred(x)==__←-
pred(y) will have the same relative ordering after calling stable_partition().

swap_ranges()

template<typename _ForwardIterator1 , typename _ForwardIterator2 >


_ForwardIterator2 std::swap_ranges (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2) [constexpr]

Swap the elements of two sequences.

Parameters

__first1 A forward iterator.


__last1 A forward iterator.
__first2 A forward iterator.

Returns

An iterator equal to first2+(last1-first1).

Swaps each element in the range [first1,last1) with the corresponding element in the range [first2,(last1-first1)). The
ranges must not overlap.

transform() [1/2]

template<typename _InputIterator , typename _OutputIterator , typename _UnaryOperation >


_OutputIterator std::transform (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_UnaryOperation __unary_op) [constexpr]

Perform an operation on a sequence.

Generated by Doxygen
3.1 Algorithms 39

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.
__unary_op A unary operator.

Returns

An output iterator equal to __result+(__last-__first).

Applies the operator to each element in the input range and assigns the results to successive elements of the output
sequence. Evaluates ∗(__result+N)=unary_op(∗(__first+N)) for each N in the range [0,__last-__first).

unary_op must not alter its argument.

transform() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename


_BinaryOperation >
_OutputIterator std::transform (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_OutputIterator __result,
_BinaryOperation __binary_op) [constexpr]

Perform an operation on corresponding elements of two sequences.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__result An output iterator.
__binary_op A binary operator.

Returns

An output iterator equal to result+(last-first).

Applies the operator to the corresponding elements in the two input ranges and assigns the results to successive
elements of the output sequence. Evaluates (__result+N)=__binary_op(∗(__first1+N),(__first2+N)) for
each N in the range [0,__last1-__first1).

binary_op must not alter either of its arguments.

Generated by Doxygen
40

unique() [1/2]

template<typename _ForwardIterator >


_ForwardIterator std::unique (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [nodiscard], [constexpr]

Remove consecutive duplicate values from a sequence.

Generated by Doxygen
3.1 Algorithms 41

Parameters

__first A forward iterator.


__last A forward iterator.

Returns

An iterator designating the end of the resulting sequence.

Removes all but the first element from each group of consecutive values that compare equal. unique() is stable, so the
relative order of elements that are not removed is unchanged. Elements between the end of the resulting sequence and
__last are still present, but their value is unspecified.

unique() [2/2]

template<typename _ForwardIterator , typename _BinaryPredicate >


_ForwardIterator std::unique (
_ForwardIterator __first,
_ForwardIterator __last,
_BinaryPredicate __binary_pred) [inline], [nodiscard], [constexpr]

Remove consecutive values from a sequence using a predicate.

Parameters

__first A forward iterator.


__last A forward iterator.
__binary_pred A binary predicate.

Returns

An iterator designating the end of the resulting sequence.

Removes all but the first element from each group of consecutive values for which __binary_pred returns true.
unique() is stable, so the relative order of elements that are not removed is unchanged. Elements between the end of
the resulting sequence and __last are still present, but their value is unspecified.

unique_copy() [1/2]

template<typename _InputIterator , typename _OutputIterator >


_OutputIterator std::unique_copy (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result) [inline], [constexpr]

Copy a sequence, removing consecutive duplicate values.

Generated by Doxygen
42

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.

Returns

An iterator designating the end of the resulting sequence.

Copies each element in the range [__first, __last) to the range beginning at __result, except that only the
first element is copied from groups of consecutive elements that compare equal. unique_copy() is stable, so the
relative order of elements that are copied is unchanged.

References std::__iterator_category(), and std::__unique_copy().

unique_copy() [2/2]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryPredicate >


_OutputIterator std::unique_copy (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryPredicate __binary_pred) [inline], [constexpr]

Copy a sequence, removing consecutive values using a predicate.

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.
__binary_pred A binary predicate.

Returns

An iterator designating the end of the resulting sequence.

Copies each element in the range [__first, __last) to the range beginning at __result, except that only the
first element is copied from groups of consecutive elements for which __binary_pred returns true. unique_←-
copy() is stable, so the relative order of elements that are copied is unchanged.

References std::__iterator_category(), and std::__unique_copy().

Generated by Doxygen
3.1 Algorithms 43

3.1.4 Non-Mutating

Collaboration diagram for Non-Mutating:

Algorithms Non-Mutating

Functions

• template<typename _ForwardIterator >


constexpr _ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _BinaryPredicate >
constexpr _ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate
__binary_pred)
• template<typename _InputIterator , typename _Predicate >
constexpr bool std::all_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _Predicate >
constexpr bool std::any_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _Tp >
constexpr iterator_traits< _InputIterator >::difference_type std::count (_InputIterator __first, _InputIterator __last,
const _Tp &__value)
• template<typename _InputIterator , typename _Predicate >
constexpr iterator_traits< _InputIterator >::difference_type std::count_if (_InputIterator __first, _InputIterator _←-
_last, _Predicate __pred)
• template<typename _II1 , typename _II2 >
constexpr bool std::equal (_II1 __first1, _II1 __last1, _II2 __first2)
• template<typename _II1 , typename _II2 >
constexpr bool std::equal (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
• template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
constexpr bool std::equal (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _BinaryPredicate __binary_pred)
• template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
constexpr bool std::equal (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __←-
binary_pred)
• template<typename _InputIterator , typename _Tp >
constexpr _InputIterator std::find (_InputIterator __first, _InputIterator __last, const _Tp &__val)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr _ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _Forward←-
Iterator2 __first2, _ForwardIterator2 __last2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr _ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _Forward←-
Iterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __comp)
• template<typename _InputIterator , typename _ForwardIterator >
constexpr _InputIterator std::find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2,
_ForwardIterator __last2)

Generated by Doxygen
44

• template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate >


constexpr _InputIterator std::find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2,
_ForwardIterator __last2, _BinaryPredicate __comp)
• template<typename _InputIterator , typename _Predicate >
constexpr _InputIterator std::find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _Predicate >
constexpr _InputIterator std::find_if_not (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _Function >
constexpr _Function std::for_each (_InputIterator __first, _InputIterator __last, _Function __f)
• template<typename _InputIterator , typename _Size , typename _Function >
constexpr _InputIterator std::for_each_n (_InputIterator __first, _Size __n, _Function __f)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 _←-
_first2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 _←-
_first2, _BinaryPredicate __pred)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 _←-
_first2, _ForwardIterator2 __last2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 _←-
_first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)
• template<typename _InputIterator1 , typename _InputIterator2 >
constexpr pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1,
_InputIterator2 __first2)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
constexpr pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1,
_InputIterator2 __first2, _BinaryPredicate __binary_pred)
• template<typename _InputIterator1 , typename _InputIterator2 >
constexpr pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1,
_InputIterator2 __first2, _InputIterator2 __last2)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
constexpr pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1,
_InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __binary_pred)
• template<typename _InputIterator , typename _Predicate >
constexpr bool std::none_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr _ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2
__first2, _ForwardIterator2 __last2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr _ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2
__first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate)
• template<typename _ForwardIterator , typename _Integer , typename _Tp >
constexpr _ForwardIterator std::search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count,
const _Tp &__val)
• template<typename _ForwardIterator , typename _Integer , typename _Tp , typename _BinaryPredicate >
constexpr _ForwardIterator std::search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count,
const _Tp &__val, _BinaryPredicate __binary_pred)

Generated by Doxygen
3.1 Algorithms 45

3.1.4.1 Detailed Description

3.1.4.2 Function Documentation

adjacent_find() [1/2]

template<typename _ForwardIterator >


_ForwardIterator std::adjacent_find (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [nodiscard], [constexpr]

Find two adjacent values in a sequence that are equal.

Parameters

__first A forward iterator.


__last A forward iterator.

Returns

The first iterator i such that i and i+1 are both valid iterators in [__first,__last) and such that ∗i == ∗(i+1), or
__last if no such iterator exists.

adjacent_find() [2/2]

template<typename _ForwardIterator , typename _BinaryPredicate >


_ForwardIterator std::adjacent_find (
_ForwardIterator __first,
_ForwardIterator __last,
_BinaryPredicate __binary_pred) [inline], [nodiscard], [constexpr]

Find two adjacent values in a sequence using a predicate.

Parameters

__first A forward iterator.


__last A forward iterator.
__binary_pred A binary predicate.

Returns

The first iterator i such that i and i+1 are both valid iterators in [__first,__last) and such that __binary_←-
pred(∗i,∗(i+1)) is true, or __last if no such iterator exists.

all_of()

template<typename _InputIterator , typename _Predicate >


bool std::all_of (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Checks that a predicate is true for all the elements of a sequence.

Generated by Doxygen
46

Parameters

__first An input iterator.


__last An input iterator.
__pred A predicate.

Returns

True if the check is true, false otherwise.

Returns true if __pred is true for each element in the range [__first,__last), and false otherwise.

any_of()

template<typename _InputIterator , typename _Predicate >


bool std::any_of (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Checks that a predicate is true for at least one element of a sequence.

Parameters

__first An input iterator.


__last An input iterator.
__pred A predicate.

Returns

True if the check is true, false otherwise.

Returns true if an element exists in the range [__first,__last) such that __pred is true, and false otherwise.

count()

template<typename _InputIterator , typename _Tp >


iterator_traits< _InputIterator >::difference_type std::count (
_InputIterator __first,
_InputIterator __last,
const _Tp & __value) [inline], [nodiscard], [constexpr]

Count the number of copies of a value in a sequence.

Generated by Doxygen
3.1 Algorithms 47

Parameters

__first An input iterator.


__last An input iterator.
__value The value to be counted.

Returns

The number of iterators i in the range [__first,__last) for which ∗i == __value

count_if()

template<typename _InputIterator , typename _Predicate >


iterator_traits< _InputIterator >::difference_type std::count_if (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Count the elements of a sequence for which a predicate is true.

Parameters

__first An input iterator.


__last An input iterator.
__pred A predicate.

Returns

The number of iterators i in the range [__first,__last) for which __pred(∗i) is true.

equal() [1/4]

template<typename _II1 , typename _II2 >


bool std::equal (
_II1 __first1,
_II1 __last1,
_II2 __first2) [inline], [nodiscard], [constexpr]

Tests a range for element-wise equality.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.

Returns

A boolean true or false.

This compares the elements of two ranges using == and returns true or false depending on whether all of the corre-
sponding elements of the ranges are equal.

Generated by Doxygen
48

equal() [2/4]

template<typename _II1 , typename _II2 >


bool std::equal (
_II1 __first1,
_II1 __last1,
_II2 __first2,
_II2 __last2) [inline], [nodiscard], [constexpr]

Tests a range for element-wise equality.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.

Returns

A boolean true or false.

This compares the elements of two ranges using == and returns true or false depending on whether all of the corre-
sponding elements of the ranges are equal.

equal() [3/4]

template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >


bool std::equal (
_IIter1 __first1,
_IIter1 __last1,
_IIter2 __first2,
_BinaryPredicate __binary_pred) [inline], [nodiscard], [constexpr]

Tests a range for element-wise equality.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__binary_pred A binary predicate functor.

Returns

A boolean true or false.

This compares the elements of two ranges using the binary_pred parameter, and returns true or false depending on
whether all of the corresponding elements of the ranges are equal.

Generated by Doxygen
3.1 Algorithms 49

equal() [4/4]

template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >


bool std::equal (
_IIter1 __first1,
_IIter1 __last1,
_IIter2 __first2,
_IIter2 __last2,
_BinaryPredicate __binary_pred) [inline], [nodiscard], [constexpr]

Tests a range for element-wise equality.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.
__binary_pred A binary predicate functor.

Returns

A boolean true or false.

This compares the elements of two ranges using the binary_pred parameter, and returns true or false depending on
whether all of the corresponding elements of the ranges are equal.

find()

template<typename _InputIterator , typename _Tp >


_InputIterator std::find (
_InputIterator __first,
_InputIterator __last,
const _Tp & __val) [inline], [nodiscard], [constexpr]

Find the first occurrence of a value in a sequence.

Parameters

__first An input iterator.


__last An input iterator.
__val The value to find.

Returns

The first iterator i in the range [__first,__last) such that ∗i == __val, or __last if no such iterator exists.

References std::to_address().

Generated by Doxygen
50

find_end() [1/2]

template<typename _ForwardIterator1 , typename _ForwardIterator2 >


_ForwardIterator1 std::find_end (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2) [inline], [nodiscard], [constexpr]

Find last matching subsequence in a sequence.

Parameters

__first1 Start of range to search.


__last1 End of range to search.
__first2 Start of sequence to match.
__last2 End of sequence to match.

Returns

The last iterator i in the range [__first1,__last1-(__last2-__first2)) such that ∗(i+N) == ∗(__first2+N) for each N in
the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given
by [__first2,__last2) and returns an iterator to the __first element of the sub-sequence, or __last1 if the sub-sequence
is not found. The sub-sequence will be the last such subsequence contained in [__first1,__last1).

Because the sub-sequence must lie completely within the range [__first1,__last1) it must start at a position less than
__last1-(__last2-__first2) where __last2-__first2 is the length of the sub-sequence. This means that the
returned iterator i will be in the range [__first1,__last1-(__last2-__first2))

References std::__iterator_category().

find_end() [2/2]

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >


_ForwardIterator1 std::find_end (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate __comp) [inline], [nodiscard], [constexpr]

Find last matching subsequence in a sequence using a predicate.

Parameters

__first1 Start of range to search.


__last1 End of range to search.
__first2 Start of sequence to match.
__last2 End of sequence to match.
__comp The predicate to use.

Generated by Doxygen
3.1 Algorithms 51

Returns

The last iterator i in the range [__first1,__last1-(__last2-__first2)) such that predicate(∗(i+N), (__first2+N)) is
true for each N in the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given
by [__first2,__last2) using comp as a predicate and returns an iterator to the first element of the sub-sequence, or
__last1 if the sub-sequence is not found. The sub-sequence will be the last such subsequence contained in [__←-
first,__last1).

Because the sub-sequence must lie completely within the range [__first1,__last1) it must start at a position less than
__last1-(__last2-__first2) where __last2-__first2 is the length of the sub-sequence. This means that the
returned iterator i will be in the range [__first1,__last1-(__last2-__first2))

References std::__iterator_category().

find_first_of() [1/2]

template<typename _InputIterator , typename _ForwardIterator >


_InputIterator std::find_first_of (
_InputIterator __first1,
_InputIterator __last1,
_ForwardIterator __first2,
_ForwardIterator __last2) [nodiscard], [constexpr]

Find element from a set in a sequence.

Parameters

__first1 Start of range to search.


__last1 End of range to search.
__first2 Start of match candidates.
__last2 End of match candidates.

Returns

The first iterator i in the range [__first1,__last1) such that ∗i == ∗(i2) such that i2 is an iterator in [__first2,__last2),
or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for an element that is equal to some element in the range [__first2,__last2). If
found, returns an iterator in the range [__first1,__last1), otherwise returns __last1.

find_first_of() [2/2]

template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate >


_InputIterator std::find_first_of (
_InputIterator __first1,
_InputIterator __last1,
_ForwardIterator __first2,
_ForwardIterator __last2,
_BinaryPredicate __comp) [nodiscard], [constexpr]

Find element from a set in a sequence using a predicate.

Generated by Doxygen
52

Parameters

__first1 Start of range to search.


__last1 End of range to search.
__first2 Start of match candidates.
__last2 End of match candidates.
__comp Predicate to use.

Returns

The first iterator i in the range [__first1,__last1) such that comp(∗i, ∗(i2)) is true and i2 is an iterator in [__first2,←-
__last2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for an element that is equal to some element in the range [__first2,__last2). If
found, returns an iterator in the range [__first1,__last1), otherwise returns __last1.

find_if()

template<typename _InputIterator , typename _Predicate >


_InputIterator std::find_if (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Find the first element in a sequence for which a predicate is true.

Parameters

__first An input iterator.


__last An input iterator.
__pred A predicate.

Returns

The first iterator i in the range [__first,__last) such that __pred(∗i) is true, or __last if no such iterator
exists.

find_if_not()

template<typename _InputIterator , typename _Predicate >


_InputIterator std::find_if_not (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Find the first element in a sequence for which a predicate is false.

Generated by Doxygen
3.1 Algorithms 53

Parameters

__first An input iterator.


__last An input iterator.
__pred A predicate.

Returns

The first iterator i in the range [__first,__last) such that __pred(∗i) is false, or __last if no such iterator
exists.

References std::__find_if_not().

for_each()

template<typename _InputIterator , typename _Function >


_Function std::for_each (
_InputIterator __first,
_InputIterator __last,
_Function __f) [constexpr]

Apply a function to every element of a sequence.

Parameters

__first An input iterator.


__last An input iterator.
__f A unary function object.

Returns

__f

Applies the function object __f to each element in the range [first,last). __f must not modify the order of the sequence.
If __f has a return value it is ignored.

for_each_n()

template<typename _InputIterator , typename _Size , typename _Function >


_InputIterator std::for_each_n (
_InputIterator __first,
_Size __n,
_Function __f) [constexpr]

Apply a function to every element of a sequence.

Generated by Doxygen
54

Parameters

__first An input iterator.


__n A value convertible to an integer.
__f A unary function object.

Returns

__first+__n

Applies the function object __f to each element in the range [first, first+n). __f must not modify the order
of the sequence. If __f has a return value it is ignored.

References std::move().

is_permutation() [1/4]

template<typename _ForwardIterator1 , typename _ForwardIterator2 >


bool std::is_permutation (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2) [inline], [constexpr]

Checks whether a permutation of the second sequence is equal to the first sequence.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.

Returns

true if there exists a permutation of the elements in the range [__first2, __first2 + (__last1 - __first1)), beginning
with ForwardIterator2 begin, such that equal(__first1, __last1, begin) returns true; otherwise, returns false.

is_permutation() [2/4]

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >


bool std::is_permutation (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_BinaryPredicate __pred) [inline], [nodiscard], [constexpr]

Checks whether a permutation of the second sequence is equal to the first sequence.

Generated by Doxygen
3.1 Algorithms 55

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__pred A binary predicate.

Returns

true if there exists a permutation of the elements in the range [__first2, __first2 + (__last1 - __first1)), beginning
with ForwardIterator2 begin, such that equal(__first1, __last1, __begin, __pred) returns true; otherwise, returns
false.

is_permutation() [3/4]

template<typename _ForwardIterator1 , typename _ForwardIterator2 >


bool std::is_permutation (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2) [inline], [nodiscard], [constexpr]

Checks whether a permutaion of the second sequence is equal to the first sequence.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of first range.

Returns

true if there exists a permutation of the elements in the range [__first2, __last2), beginning with ForwardIterator2
begin, such that equal(__first1, __last1, begin) returns true; otherwise, returns false.

is_permutation() [4/4]

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >


bool std::is_permutation (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate __pred) [inline], [nodiscard], [constexpr]

Checks whether a permutation of the second sequence is equal to the first sequence.

Generated by Doxygen
56

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of first range.
__pred A binary predicate.

Returns

true if there exists a permutation of the elements in the range [__first2, __last2), beginning with ForwardIterator2
begin, such that equal(__first1, __last1, __begin, __pred) returns true; otherwise, returns false.

mismatch() [1/4]

template<typename _InputIterator1 , typename _InputIterator2 >


pair< _InputIterator1, _InputIterator2 > std::mismatch (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2) [inline], [nodiscard], [constexpr]

Finds the places in ranges which don't match.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.

Returns

A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using == and returns a pair of iterators. The first iterator points into the first
range, the second iterator points into the second range, and the elements pointed to by the iterators are not equal.

mismatch() [2/4]

template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >


pair< _InputIterator1, _InputIterator2 > std::mismatch (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_BinaryPredicate __binary_pred) [inline], [nodiscard], [constexpr]

Finds the places in ranges which don't match.

Generated by Doxygen
3.1 Algorithms 57

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__binary_pred A binary predicate functor.

Returns

A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using the binary_pred parameter, and returns a pair of iterators. The first
iterator points into the first range, the second iterator points into the second range, and the elements pointed to by the
iterators are not equal.

mismatch() [3/4]

template<typename _InputIterator1 , typename _InputIterator2 >


pair< _InputIterator1, _InputIterator2 > std::mismatch (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2) [inline], [nodiscard], [constexpr]

Finds the places in ranges which don't match.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.

Returns

A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using == and returns a pair of iterators. The first iterator points into the first
range, the second iterator points into the second range, and the elements pointed to by the iterators are not equal.

mismatch() [4/4]

template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >


pair< _InputIterator1, _InputIterator2 > std::mismatch (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_BinaryPredicate __binary_pred) [inline], [nodiscard], [constexpr]

Finds the places in ranges which don't match.

Generated by Doxygen
58

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.
__binary_pred A binary predicate functor.

Returns

A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using the binary_pred parameter, and returns a pair of iterators. The first
iterator points into the first range, the second iterator points into the second range, and the elements pointed to by the
iterators are not equal.

none_of()

template<typename _InputIterator , typename _Predicate >


bool std::none_of (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [nodiscard], [constexpr]

Checks that a predicate is false for all the elements of a sequence.

Parameters

__first An input iterator.


__last An input iterator.
__pred A predicate.

Returns

True if the check is true, false otherwise.

Returns true if __pred is false for each element in the range [__first,__last), and false otherwise.

search() [1/2]

template<typename _ForwardIterator1 , typename _ForwardIterator2 >


_ForwardIterator1 std::search (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2) [inline], [nodiscard], [constexpr]

Search a sequence for a matching sub-sequence.

Generated by Doxygen
3.1 Algorithms 59

Parameters

__first1 A forward iterator.


__last1 A forward iterator.
__first2 A forward iterator.
__last2 A forward iterator.

Returns

The first iterator i in the range [__first1,__last1-(__last2-__first2)) such that ∗(i+N) == ∗(__first2+N) for each N in
the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given
by [__first2,__last2) and returns an iterator to the first element of the sub-sequence, or __last1 if the sub-sequence
is not found.

Because the sub-sequence must lie completely within the range [__first1,__last1) it must start at a position less than
__last1-(__last2-__first2) where __last2-__first2 is the length of the sub-sequence.
This means that the returned iterator i will be in the range [__first1,__last1-(__last2-__first2))

search() [2/2]

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >


_ForwardIterator1 std::search (
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate __predicate) [inline], [constexpr]

Search a sequence for a matching sub-sequence using a predicate.

Parameters

__first1 A forward iterator.


__last1 A forward iterator.
__first2 A forward iterator.
__last2 A forward iterator.
__predicate A binary predicate.

Returns

The first iterator i in the range [__first1,__last1-(__last2-__first2)) such that __predicate(∗(i+N),∗(__first2+N))


is true for each N in the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given
by [__first2,__last2), using __predicate to determine equality, and returns an iterator to the first element of the
sub-sequence, or __last1 if no such iterator exists.

See also

search(_ForwardIter1, _ForwardIter1, _ForwardIter2, _ForwardIter2)

Generated by Doxygen
60

search_n() [1/2]

template<typename _ForwardIterator , typename _Integer , typename _Tp >


_ForwardIterator std::search_n (
_ForwardIterator __first,
_ForwardIterator __last,
_Integer __count,
const _Tp & __val) [inline], [nodiscard], [constexpr]

Search a sequence for a number of consecutive values.

Parameters

__first A forward iterator.


__last A forward iterator.
__count The number of consecutive values.
__val The value to find.

Returns

The first iterator i in the range [__first,__last-__count) such that ∗(i+N) == __val for each N in the range [0,_←-
_count), or __last if no such iterator exists.

Searches the range [__first,__last) for count consecutive elements equal to __val.

search_n() [2/2]

template<typename _ForwardIterator , typename _Integer , typename _Tp , typename _BinaryPredicate


>
_ForwardIterator std::search_n (
_ForwardIterator __first,
_ForwardIterator __last,
_Integer __count,
const _Tp & __val,
_BinaryPredicate __binary_pred) [inline], [nodiscard], [constexpr]

Search a sequence for a number of consecutive values using a predicate.

Parameters

__first A forward iterator.


__last A forward iterator.
__count The number of consecutive values.
__val The value to find.
__binary_pred A binary predicate.

Returns

The first iterator i in the range [__first,__last-__count) such that __binary_pred(∗(i+N),__val) is true for each
N in the range [0,__count), or __last if no such iterator exists.

Searches the range [__first,__last) for __count consecutive elements for which the predicate returns true.

Generated by Doxygen
3.1 Algorithms 61

3.1.5 Sorting

Collaboration diagram for Sorting:

Binary Search

Algorithms Sorting Heap

Set Operations

Topics

• Binary Search
• Heap
• Set Operations

Functions

• template<typename _Tp >


constexpr const _Tp & std::clamp (const _Tp &__val, const _Tp &__lo, const _Tp &__hi)
• template<typename _Tp , typename _Compare >
constexpr const _Tp & std::clamp (const _Tp &__val, const _Tp &__lo, const _Tp &__hi, _Compare __comp)
• template<typename _BidirectionalIterator >
void std::inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __←-
last)
• template<typename _BidirectionalIterator , typename _Compare >
void std::inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __←-
last, _Compare __comp)
• template<typename _ForwardIterator >
constexpr bool std::is_sorted (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr bool std::is_sorted (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
• template<typename _ForwardIterator >
constexpr _ForwardIterator std::is_sorted_until (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator std::is_sorted_until (_ForwardIterator __first, _ForwardIterator __last, _Compare _←-
_comp)
• template<typename _II1 , typename _II2 >
constexpr bool std::lexicographical_compare (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)

Generated by Doxygen
62

• template<typename _II1 , typename _II2 , typename _Compare >


constexpr bool std::lexicographical_compare (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _Compare
__comp)
• template<typename _InputIter1 , typename _InputIter2 , typename _Comp >
constexpr auto std::lexicographical_compare_three_way (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 _←-
_first2, _InputIter2 __last2, _Comp __comp) -> decltype(__comp(∗__first1, ∗__first2))
• template<typename _Tp >
constexpr const _Tp & std::max (const _Tp &__a, const _Tp &__b)
• template<typename _Tp , typename _Compare >
constexpr const _Tp & std::max (const _Tp &__a, const _Tp &__b, _Compare __comp)
• template<typename _ForwardIterator >
constexpr _ForwardIterator std::max_element (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator std::max_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __←-
comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator std::merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator std::merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _Tp >
constexpr const _Tp & std::min (const _Tp &__a, const _Tp &__b)
• template<typename _Tp , typename _Compare >
constexpr const _Tp & std::min (const _Tp &__a, const _Tp &__b, _Compare __comp)
• template<typename _ForwardIterator >
constexpr _ForwardIterator std::min_element (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator std::min_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __←-
comp)
• template<typename _Tp >
constexpr pair< const _Tp &, const _Tp & > std::minmax (const _Tp &__a, const _Tp &__b)
• template<typename _Tp , typename _Compare >
constexpr pair< const _Tp &, const _Tp & > std::minmax (const _Tp &__a, const _Tp &__b, _Compare __comp)
• template<typename _ForwardIterator >
constexpr pair< _ForwardIterator, _ForwardIterator > std::minmax_element (_ForwardIterator __first, _←-
ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr pair< _ForwardIterator, _ForwardIterator > std::minmax_element (_ForwardIterator __first, _←-
ForwardIterator __last, _Compare __comp)
• template<typename _BidirectionalIterator >
constexpr bool std::next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
• template<typename _BidirectionalIterator , typename _Compare >
constexpr bool std::next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __←-
comp)
• template<typename _RandomAccessIterator >
constexpr void std::nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _Random←-
AccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void std::nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _Random←-
AccessIterator __last, _Compare __comp)

Generated by Doxygen
3.1 Algorithms 63

• template<typename _RandomAccessIterator >


constexpr void std::partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _Random←-
AccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void std::partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _Random←-
AccessIterator __last, _Compare __comp)
• template<typename _InputIterator , typename _RandomAccessIterator >
constexpr _RandomAccessIterator std::partial_sort_copy (_InputIterator __first, _InputIterator __last, _Random←-
AccessIterator __result_first, _RandomAccessIterator __result_last)
• template<typename _InputIterator , typename _RandomAccessIterator , typename _Compare >
constexpr _RandomAccessIterator std::partial_sort_copy (_InputIterator __first, _InputIterator __last, _Random←-
AccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp)
• template<typename _BidirectionalIterator >
constexpr bool std::prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
• template<typename _BidirectionalIterator , typename _Compare >
constexpr bool std::prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __←-
comp)
• template<typename _RandomAccessIterator >
constexpr void std::sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void std::sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _RandomAccessIterator >
void std::stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
void std::stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)

3.1.5.1 Detailed Description

3.1.5.2 Function Documentation

clamp() [1/2]

template<typename _Tp >


const _Tp & std::clamp (
const _Tp & __val,
const _Tp & __lo,
const _Tp & __hi) [nodiscard], [constexpr]

Returns the value clamped between lo and hi.

Parameters

__val A value of arbitrary type.


__lo A lower limit of arbitrary type.
__hi An upper limit of arbitrary type.

Return values

`__lo` if __val < __lo


`__hi` if __hi < __val
`__val` otherwise.

Generated by Doxygen
64

Precondition

_Tp is LessThanComparable and (__hi < __lo) is false.

References std::max(), and std::min().

clamp() [2/2]

template<typename _Tp , typename _Compare >


const _Tp & std::clamp (
const _Tp & __val,
const _Tp & __lo,
const _Tp & __hi,
_Compare __comp) [nodiscard], [constexpr]

Returns the value clamped between lo and hi.

Parameters

__val A value of arbitrary type.


__lo A lower limit of arbitrary type.
__hi An upper limit of arbitrary type.
__comp A comparison functor.

Return values

`__lo` if __comp(__val, __lo)


`__hi` if __comp(__hi, __val)
`__val` otherwise.

Precondition

__comp(__hi, __lo) is false.

References std::max(), and std::min().

inplace_merge() [1/2]

template<typename _BidirectionalIterator >


void std::inplace_merge (
_BidirectionalIterator __first,
_BidirectionalIterator __middle,
_BidirectionalIterator __last) [inline]

Merges two sorted ranges in place.

Generated by Doxygen
3.1 Algorithms 65

Parameters

__first An iterator.
__middle Another iterator.
__last Another iterator.

Returns

Nothing.

Merges two sorted and consecutive ranges, [__first,__middle) and [__middle,__last), and puts the result in [__first,__←-
last). The output will be sorted. The sort is stable, that is, for equivalent elements in the two ranges, elements from the
first range will always come before elements from the second.
If enough additional memory is available, this takes (__last-__first)-1 comparisons. Otherwise an NlogN algorithm is
used, where N is distance(__first,__last).

inplace_merge() [2/2]

template<typename _BidirectionalIterator , typename _Compare >


void std::inplace_merge (
_BidirectionalIterator __first,
_BidirectionalIterator __middle,
_BidirectionalIterator __last,
_Compare __comp) [inline]

Merges two sorted ranges in place.

Parameters

__first An iterator.
__middle Another iterator.
__last Another iterator.
__comp A functor to use for comparisons.

Returns

Nothing.

Merges two sorted and consecutive ranges, [__first,__middle) and [middle,last), and puts the result in [__first,__last).
The output will be sorted. The sort is stable, that is, for equivalent elements in the two ranges, elements from the first
range will always come before elements from the second.
If enough additional memory is available, this takes (__last-__first)-1 comparisons. Otherwise an NlogN algorithm is
used, where N is distance(__first,__last).
The comparison function should have the same effects on ordering as the function used for the initial sort.

is_sorted() [1/2]

template<typename _ForwardIterator >


bool std::is_sorted (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [nodiscard], [constexpr]

Determines whether the elements of a sequence are sorted.

Generated by Doxygen
66

Parameters

__first An iterator.
__last Another iterator.

Returns

True if the elements are sorted, false otherwise.

is_sorted() [2/2]

template<typename _ForwardIterator , typename _Compare >


bool std::is_sorted (
_ForwardIterator __first,
_ForwardIterator __last,
_Compare __comp) [inline], [nodiscard], [constexpr]

Determines whether the elements of a sequence are sorted according to a comparison functor.

Parameters

__first An iterator.
__last Another iterator.
__comp A comparison functor.

Returns

True if the elements are sorted, false otherwise.

is_sorted_until() [1/2]

template<typename _ForwardIterator >


_ForwardIterator std::is_sorted_until (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [nodiscard], [constexpr]

Determines the end of a sorted sequence.

Parameters

__first An iterator.
__last Another iterator.

Returns

An iterator pointing to the last iterator i in [__first, __last) for which the range [__first, i) is sorted.

Generated by Doxygen
3.1 Algorithms 67

is_sorted_until() [2/2]

template<typename _ForwardIterator , typename _Compare >


_ForwardIterator std::is_sorted_until (
_ForwardIterator __first,
_ForwardIterator __last,
_Compare __comp) [inline], [nodiscard], [constexpr]

Determines the end of a sorted sequence using comparison functor.

Parameters

__first An iterator.
__last Another iterator.
__comp A comparison functor.

Returns

An iterator pointing to the last iterator i in [__first, __last) for which the range [__first, i) is sorted.

lexicographical_compare() [1/2]

template<typename _II1 , typename _II2 >


bool std::lexicographical_compare (
_II1 __first1,
_II1 __last1,
_II2 __first2,
_II2 __last2) [inline], [nodiscard], [constexpr]

Performs dictionary comparison on ranges.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.

Returns

A boolean true or false.

Returns true if the sequence of elements defined by the range [first1,last1) is lexicographically less than the sequence
of elements defined by the range [first2,last2). Returns false otherwise. (Quoted from [25.3.8]/1.) If the iterators are all
character pointers, then this is an inline call to memcmp.

Generated by Doxygen
68

lexicographical_compare() [2/2]

template<typename _II1 , typename _II2 , typename _Compare >


bool std::lexicographical_compare (
_II1 __first1,
_II1 __last1,
_II2 __first2,
_II2 __last2,
_Compare __comp) [inline], [nodiscard], [constexpr]

Performs dictionary comparison on ranges.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.
__comp A comparison functor.

Returns

A boolean true or false.

The same as the four-parameter lexicographical_compare, but uses the comp parameter instead of <.

lexicographical_compare_three_way()

template<typename _InputIter1 , typename _InputIter2 , typename _Comp >


auto std::lexicographical_compare_three_way (
_InputIter1 __first1,
_InputIter1 __last1,
_InputIter2 __first2,
_InputIter2 __last2,
_Comp __comp) -> decltype(__comp(∗__first1, ∗__first2)) [nodiscard], [constexpr]

Performs dictionary comparison on ranges.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.
__comp A comparison functor.

Returns

The comparison category that __comp(∗__first1, ∗__first2) returns.

Referenced by std::operator<=>().

Generated by Doxygen
3.1 Algorithms 69

max() [1/2]

template<typename _Tp >


const _Tp & std::max (
const _Tp & __a,
const _Tp & __b) [inline], [nodiscard], [constexpr]

This does what you think it does.

Parameters

_←- A thing of arbitrary type.


_a
_←- Another thing of arbitrary type.
_b

Returns

The greater of the parameters.

This is the simple classic generic implementation. It will work on temporary expressions, since they are only evaluated
once, unlike a preprocessor macro.

Referenced by __gnu_parallel::__find_template(), __gnu_parallel::__parallel_nth_element(), __gnu_parallel::__parallel_partial_sum_linea


__gnu_parallel::__parallel_partition(), __gnu_parallel::__parallel_random_shuffle_drs(), __gnu_parallel::__qsb_conquer(),
__gnu_parallel::__search_template(), __gnu_parallel::__sequential_random_shuffle(), std::_Deque_base< _Tp, _Alloc >::_M_initialize_m
std::deque< _Tp, _Alloc >::_M_reallocate_map(), std::clamp(), std::clamp(), std::generate_canonical(), __gnu_parallel::multiseq_partition
__gnu_parallel::multiseq_selection(), std::shuffle_order_engine< _RandomNumberEngine, __k >::operator()(), and
std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow().

max() [2/2]

template<typename _Tp , typename _Compare >


const _Tp & std::max (
const _Tp & __a,
const _Tp & __b,
_Compare __comp) [inline], [nodiscard], [constexpr]

This does what you think it does.

Parameters

__a A thing of arbitrary type.


__b Another thing of arbitrary type.
__comp A comparison functor.

Returns

The greater of the parameters.

This will work on temporary expressions, since they are only evaluated once, unlike a preprocessor macro.

Generated by Doxygen
70

max_element() [1/2]

template<typename _ForwardIterator >


_ForwardIterator std::max_element (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [nodiscard], [constexpr]

Return the maximum element in a range.

Parameters

__first Start of range.


__last End of range.

Returns

Iterator referencing the first instance of the largest value.

max_element() [2/2]

template<typename _ForwardIterator , typename _Compare >


_ForwardIterator std::max_element (
_ForwardIterator __first,
_ForwardIterator __last,
_Compare __comp) [inline], [nodiscard], [constexpr]

Return the maximum element in a range using comparison functor.

Parameters

__first Start of range.


__last End of range.
__comp Comparison functor.

Returns

Iterator referencing the first instance of the largest value according to __comp.

merge() [1/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >


_OutputIterator std::merge (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result) [inline], [constexpr]

Merges two sorted ranges.

Generated by Doxygen
3.1 Algorithms 71

Parameters

__first1 An iterator.
__first2 Another iterator.
__last1 Another iterator.
__last2 Another iterator.
__result An iterator pointing to the end of the merged range.

Returns

An output iterator equal to __result + (__last1 - __first1)

• (__last2 - __first2).

Merges the ranges [__first1,__last1) and [__first2,__last2) into the sorted range [__result, __result + (__last1-__first1)
+ (__last2-__first2)). Both input ranges must be sorted, and the output range must not overlap with either of the input
ranges. The sort is stable, that is, for equivalent elements in the two ranges, elements from the first range will always
come before elements from the second.

merge() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename


_Compare >
_OutputIterator std::merge (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result,
_Compare __comp) [inline], [constexpr]

Merges two sorted ranges.

Parameters

__first1 An iterator.
__first2 Another iterator.
__last1 Another iterator.
__last2 Another iterator.
__result An iterator pointing to the end of the merged range.
__comp A functor to use for comparisons.

Returns

An output iterator equal to __result + (__last1 - __first1)

• (__last2 - __first2).

Merges the ranges [__first1,__last1) and [__first2,__last2) into the sorted range [__result, __result + (__last1-__first1)
+ (__last2-__first2)). Both input ranges must be sorted, and the output range must not overlap with either of the input
ranges. The sort is stable, that is, for equivalent elements in the two ranges, elements from the first range will always
come before elements from the second.

The comparison function should have the same effects on ordering as the function used for the initial sort.

Generated by Doxygen
72

min() [1/2]

template<typename _Tp >


const _Tp & std::min (
const _Tp & __a,
const _Tp & __b) [inline], [nodiscard], [constexpr]

This does what you think it does.

Parameters

_←- A thing of arbitrary type.


_a
_←- Another thing of arbitrary type.
_b

Returns

The lesser of the parameters.

This is the simple classic generic implementation. It will work on temporary expressions, since they are only evaluated
once, unlike a preprocessor macro.

Referenced by __gnu_parallel::__find_template(), __gnu_parallel::__find_template(), __gnu_parallel::__for_each_template_random_acce


__gnu_parallel::__parallel_partial_sum_linear(), __gnu_parallel::__parallel_random_shuffle_drs(), __gnu_parallel::__parallel_sort_qs_div
__gnu_parallel::__qsb_conquer(), std::__sample(), __gnu_parallel::__search_template(), __gnu_parallel::__sequential_multiway_merge()
__gnu_parallel::__sequential_random_shuffle(), std::clamp(), std::clamp(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare(), std::basic_string< _CharT, _Traits, _Alloc >::compare(),
std::basic_string< _CharT, _Traits, _Alloc >::compare(), std::basic_string< _CharT, _Traits, _Alloc >::compare(),
std::basic_string< _CharT, _Traits, _Alloc >::compare(), std::basic_string< _CharT, _Traits, _Alloc >::compare(),
std::basic_string< _CharT, _Traits, _Alloc >::compare(), std::basic_string< _CharT, _Traits, _Alloc >::compare(),
std::generate_canonical(), std::basic_string< _CharT, _Traits, _Alloc >::max_size(), __gnu_parallel::multiseq_partition(),
__gnu_parallel::multiseq_selection(), std::shuffle_order_engine< _RandomNumberEngine, __k >::operator()(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), __gnu_parallel::parallel_multiway_merge(), std::basic_istream< _CharT, _Tra
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rfind(), std::basic_string< _CharT, _Traits, _Alloc >::rfind(),
std::basic_streambuf< _CharT, _Traits >::xsgetn(), and std::basic_streambuf< _CharT, _Traits >::xsputn().

min() [2/2]

template<typename _Tp , typename _Compare >


const _Tp & std::min (
const _Tp & __a,
const _Tp & __b,
_Compare __comp) [inline], [nodiscard], [constexpr]

This does what you think it does.

Generated by Doxygen
3.1 Algorithms 73

Parameters

__a A thing of arbitrary type.


__b Another thing of arbitrary type.
__comp A comparison functor.

Returns

The lesser of the parameters.

This will work on temporary expressions, since they are only evaluated once, unlike a preprocessor macro.

min_element() [1/2]

template<typename _ForwardIterator >


_ForwardIterator std::min_element (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [nodiscard], [constexpr]

Return the minimum element in a range.

Parameters

__first Start of range.


__last End of range.

Returns

Iterator referencing the first instance of the smallest value.

min_element() [2/2]

template<typename _ForwardIterator , typename _Compare >


_ForwardIterator std::min_element (
_ForwardIterator __first,
_ForwardIterator __last,
_Compare __comp) [inline], [nodiscard], [constexpr]

Return the minimum element in a range using comparison functor.

Parameters

__first Start of range.


__last End of range.
__comp Comparison functor.

Returns

Iterator referencing the first instance of the smallest value according to __comp.

Generated by Doxygen
74

minmax() [1/2]

template<typename _Tp >


pair< const _Tp &, const _Tp & > std::minmax (
const _Tp & __a,
const _Tp & __b) [inline], [nodiscard], [constexpr]

Determines min and max at once as an ordered pair.

Parameters

_←- A thing of arbitrary type.


_a
_←- Another thing of arbitrary type.
_b

Returns

A pair(__b, __a) if __b is smaller than __a, pair(__a, __b) otherwise.

minmax() [2/2]

template<typename _Tp , typename _Compare >


pair< const _Tp &, const _Tp & > std::minmax (
const _Tp & __a,
const _Tp & __b,
_Compare __comp) [inline], [nodiscard], [constexpr]

Determines min and max at once as an ordered pair.

Parameters

__a A thing of arbitrary type.


__b Another thing of arbitrary type.
__comp A comparison functor .

Returns

A pair(__b, __a) if __b is smaller than __a, pair(__a, __b) otherwise.

minmax_element() [1/2]

template<typename _ForwardIterator >


pair< _ForwardIterator, _ForwardIterator > std::minmax_element (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [nodiscard], [constexpr]

Return a pair of iterators pointing to the minimum and maximum elements in a range.

Generated by Doxygen
3.1 Algorithms 75

Parameters

__first Start of range.


__last End of range.

Returns

make_pair(m, M), where m is the first iterator i in [__first, __last) such that no other element in the range is smaller,
and where M is the last iterator i in [__first, __last) such that no other element in the range is larger.

minmax_element() [2/2]

template<typename _ForwardIterator , typename _Compare >


pair< _ForwardIterator, _ForwardIterator > std::minmax_element (
_ForwardIterator __first,
_ForwardIterator __last,
_Compare __comp) [inline], [nodiscard], [constexpr]

Return a pair of iterators pointing to the minimum and maximum elements in a range.

Parameters

__first Start of range.


__last End of range.
__comp Comparison functor.

Returns

make_pair(m, M), where m is the first iterator i in [__first, __last) such that no other element in the range is smaller,
and where M is the last iterator i in [__first, __last) such that no other element in the range is larger.

next_permutation() [1/2]

template<typename _BidirectionalIterator >


bool std::next_permutation (
_BidirectionalIterator __first,
_BidirectionalIterator __last) [inline], [constexpr]

Permute range into the next dictionary ordering.

Parameters

__first Start of range.


__last End of range.

Returns

False if wrapped to first permutation, true otherwise.

Treats all permutations of the range as a set of dictionary sorted sequences. Permutes the current sequence into the
next one of this set. Returns true if there are more sequences to generate. If the sequence is the largest of the set, the
smallest is generated and false returned.

Generated by Doxygen
76

next_permutation() [2/2]

template<typename _BidirectionalIterator , typename _Compare >


bool std::next_permutation (
_BidirectionalIterator __first,
_BidirectionalIterator __last,
_Compare __comp) [inline], [constexpr]

Permute range into the next dictionary ordering using comparison functor.

Parameters

__first Start of range.


__last End of range.
__comp A comparison functor.

Returns

False if wrapped to first permutation, true otherwise.

Treats all permutations of the range [__first,__last) as a set of dictionary sorted sequences ordered by __comp. Per-
mutes the current sequence into the next one of this set. Returns true if there are more sequences to generate. If the
sequence is the largest of the set, the smallest is generated and false returned.

nth_element() [1/2]

template<typename _RandomAccessIterator >


void std::nth_element (
_RandomAccessIterator __first,
_RandomAccessIterator __nth,
_RandomAccessIterator __last) [inline], [constexpr]

Sort a sequence just enough to find a particular position.

Parameters

__first An iterator.
__nth Another iterator.
__last Another iterator.

Returns

Nothing.

Rearranges the elements in the range [__first, __last) so that ∗__nth is the same element that would have
been in that position had the whole sequence been sorted. The elements either side of ∗__nth are not completely
sorted, but for any iterator i in the range [__first, __nth) and any iterator j in the range [__nth, __last)
it holds that ∗j < ∗i is false.

References std::__lg().

Generated by Doxygen
3.1 Algorithms 77

nth_element() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::nth_element (
_RandomAccessIterator __first,
_RandomAccessIterator __nth,
_RandomAccessIterator __last,
_Compare __comp) [inline], [constexpr]

Sort a sequence just enough to find a particular position using a predicate for comparison.

Parameters

__first An iterator.
__nth Another iterator.
__last Another iterator.
__comp A comparison functor.

Returns

Nothing.

Rearranges the elements in the range [__first, __last) so that ∗__nth is the same element that would have
been in that position had the whole sequence been sorted. The elements either side of ∗__nth are not completely
sorted, but for any iterator i in the range [__first, __nth) and any iterator j in the range [__nth, __last)
it holds that __comp(∗j, ∗i) is false.

References std::__lg().

partial_sort() [1/2]

template<typename _RandomAccessIterator >


void std::partial_sort (
_RandomAccessIterator __first,
_RandomAccessIterator __middle,
_RandomAccessIterator __last) [inline], [constexpr]

Sort the smallest elements of a sequence.

Parameters

__first An iterator.
__middle Another iterator.
__last Another iterator.

Returns

Nothing.

Sorts the smallest (__middle - __first) elements in the range [first, last) and moves them to the
range [__first, __middle). The order of the remaining elements in the range [__middle, __last) is
unspecified. After the sort if i and j are iterators in the range [__first, __middle) such that i precedes j and
k is an iterator in the range [__middle, __last) then ∗j < ∗i and ∗k < ∗i are both false.

Generated by Doxygen
78

partial_sort() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::partial_sort (
_RandomAccessIterator __first,
_RandomAccessIterator __middle,
_RandomAccessIterator __last,
_Compare __comp) [inline], [constexpr]

Sort the smallest elements of a sequence using a predicate for comparison.

Parameters

__first An iterator.
__middle Another iterator.
__last Another iterator.
__comp A comparison functor.

Returns

Nothing.

Sorts the smallest (__middle - __first) elements in the range [__first, __last) and moves them to
the range [__first, __middle). The order of the remaining elements in the range [__middle, __last)
is unspecified. After the sort if i and j are iterators in the range [__first, __middle) such that i precedes
j and k is an iterator in the range [__middle, __last) then ∗__comp(j, ∗i) and __comp(∗k, ∗i) are
both false.

partial_sort_copy() [1/2]

template<typename _InputIterator , typename _RandomAccessIterator >


_RandomAccessIterator std::partial_sort_copy (
_InputIterator __first,
_InputIterator __last,
_RandomAccessIterator __result_first,
_RandomAccessIterator __result_last) [inline], [constexpr]

Copy the smallest elements of a sequence.

Parameters

__first An iterator.
__last Another iterator.
__result_first A random-access iterator.
__result_last Another random-access iterator.

Returns

An iterator indicating the end of the resulting sequence.

Copies and sorts the smallest N values from the range [__first, __last) to the range beginning at __←-
result_first, where the number of elements to be copied, N, is the smaller of (__last - __first) and
(__result_last - __result_first). After the sort if i and j are iterators in the range [__result←-
_first,__result_first + N) such that i precedes j then ∗j < ∗i is false. The value returned is __←-
result_first + N.

Generated by Doxygen
3.1 Algorithms 79

partial_sort_copy() [2/2]

template<typename _InputIterator , typename _RandomAccessIterator , typename _Compare >


_RandomAccessIterator std::partial_sort_copy (
_InputIterator __first,
_InputIterator __last,
_RandomAccessIterator __result_first,
_RandomAccessIterator __result_last,
_Compare __comp) [inline], [constexpr]

Copy the smallest elements of a sequence using a predicate for comparison.

Parameters

__first An input iterator.


__last Another input iterator.
__result_first A random-access iterator.
__result_last Another random-access iterator.
__comp A comparison functor.

Returns

An iterator indicating the end of the resulting sequence.

Copies and sorts the smallest N values from the range [__first, __last) to the range beginning at result←-
_first, where the number of elements to be copied, N, is the smaller of (__last - __first) and (__←-
result_last - __result_first). After the sort if i and j are iterators in the range [__result_first,
__result_first + N) such that i precedes j then __comp(∗j, ∗i) is false. The value returned is __←-
result_first + N.

prev_permutation() [1/2]

template<typename _BidirectionalIterator >


bool std::prev_permutation (
_BidirectionalIterator __first,
_BidirectionalIterator __last) [inline], [constexpr]

Permute range into the previous dictionary ordering.

Parameters

__first Start of range.


__last End of range.

Returns

False if wrapped to last permutation, true otherwise.

Treats all permutations of the range as a set of dictionary sorted sequences. Permutes the current sequence into the
previous one of this set. Returns true if there are more sequences to generate. If the sequence is the smallest of the
set, the largest is generated and false returned.

Generated by Doxygen
80

prev_permutation() [2/2]

template<typename _BidirectionalIterator , typename _Compare >


bool std::prev_permutation (
_BidirectionalIterator __first,
_BidirectionalIterator __last,
_Compare __comp) [inline], [constexpr]

Permute range into the previous dictionary ordering using comparison functor.

Parameters

__first Start of range.


__last End of range.
__comp A comparison functor.

Returns

False if wrapped to last permutation, true otherwise.

Treats all permutations of the range [__first,__last) as a set of dictionary sorted sequences ordered by __comp. Per-
mutes the current sequence into the previous one of this set. Returns true if there are more sequences to generate. If
the sequence is the smallest of the set, the largest is generated and false returned.

sort() [1/2]

template<typename _RandomAccessIterator >


void std::sort (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline], [constexpr]

Sort the elements of a sequence.

Parameters

__first An iterator.
__last Another iterator.

Returns

Nothing.

Sorts the elements in the range [__first, __last) in ascending order, such that for each iterator i in the range
[__first, __last - 1), ∗(i+1) < ∗i is false.
The relative ordering of equivalent elements is not preserved, use stable_sort() if this is needed.

sort() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::sort (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline], [constexpr]

Sort the elements of a sequence using a predicate for comparison.

Generated by Doxygen
3.1 Algorithms 81

Parameters

__first An iterator.
__last Another iterator.
__comp A comparison functor.

Returns

Nothing.

Sorts the elements in the range [__first, __last) in ascending order, such that __comp(∗(i+1), ∗i) is
false for every iterator i in the range [__first, __last - 1).

The relative ordering of equivalent elements is not preserved, use stable_sort() if this is needed.

stable_sort() [1/2]

template<typename _RandomAccessIterator >


void std::stable_sort (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline]

Sort the elements of a sequence, preserving the relative order of equivalent elements.

Parameters

__first An iterator.
__last Another iterator.

Returns

Nothing.

Sorts the elements in the range [__first,__last) in ascending order, such that for each iterator i in the range [__first,_←-
_last-1), ∗(i+1)<∗i is false.

The relative ordering of equivalent elements is preserved, so any two elements x and y in the range [__first,__last) such
that x<y is false and y<x is false will have the same relative ordering after calling stable_sort().

stable_sort() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::stable_sort (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline]

Sort the elements of a sequence using a predicate for comparison, preserving the relative order of equivalent elements.

Generated by Doxygen
82

Parameters

__first An iterator.
__last Another iterator.
__comp A comparison functor.

Returns

Nothing.

Sorts the elements in the range [__first,__last) in ascending order, such that for each iterator i in the range [__first,_←-
_last-1), __comp(∗(i+1),∗i) is false.

The relative ordering of equivalent elements is preserved, so any two elements x and y in the range [__first,__←-
last) such that __comp(x,y) is false and __comp(y,x) is false will have the same relative ordering after calling
stable_sort().

3.1.5.3 Binary Search

Collaboration diagram for Binary Search:

Sorting Binary Search

Functions

• template<typename _ForwardIterator , typename _Tp >


constexpr bool std::binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr bool std::binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare
__comp)
• template<typename _ForwardIterator , typename _Tp >
constexpr pair< _ForwardIterator, _ForwardIterator > std::equal_range (_ForwardIterator __first, _Forward←-
Iterator __last, const _Tp &__val)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr pair< _ForwardIterator, _ForwardIterator > std::equal_range (_ForwardIterator __first, _Forward←-
Iterator __last, const _Tp &__val, _Compare __comp)
• template<typename _ForwardIterator , typename _Tp >
constexpr _ForwardIterator std::lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr _ForwardIterator std::lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val,
_Compare __comp)

Generated by Doxygen
3.1 Algorithms 83

• template<typename _ForwardIterator , typename _Tp >


constexpr _ForwardIterator std::upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__←-
val)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr _ForwardIterator std::upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__←-
val, _Compare __comp)

3.1.5.3.1 Detailed Description

These algorithms are variations of a classic binary search, and all assume that the sequence being searched is already
sorted.

The number of comparisons will be logarithmic (and as few as possible). The number of steps through the sequence
will be logarithmic for random-access iterators (e.g., pointers), and linear otherwise.

The LWG has passed Defect Report 270, which notes: The proposed resolution reinterprets binary search. Instead of
thinking about searching for a value in a sorted range, we view that as an important special case of a more general
algorithm: searching for the partition point in a partitioned range. We also add a guarantee that the old wording did
not: we ensure that the upper bound is no earlier than the lower bound, that the pair returned by equal_range is a valid
range, and that the first part of that pair is the lower bound.

The actual effect of the first sentence is that a comparison functor passed by the user doesn't necessarily need to induce
a strict weak ordering relation. Rather, it partitions the range.

3.1.5.3.2 Function Documentation

binary_search() [1/2]

template<typename _ForwardIterator , typename _Tp >


bool std::binary_search (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val) [nodiscard], [constexpr]

Determines whether an element exists in a range.

Parameters

__first An iterator.
__last Another iterator.
__val The search term.

Returns

True if __val (or its equivalent) is in [__first,__last ].

Note that this does not actually return an iterator to __val. For that, use std::find or a container's specialized find
member functions.

Generated by Doxygen
84

binary_search() [2/2]

template<typename _ForwardIterator , typename _Tp , typename _Compare >


bool std::binary_search (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val,
_Compare __comp) [nodiscard], [constexpr]

Determines whether an element exists in a range.

Parameters

__first An iterator.
__last Another iterator.
__val The search term.
__comp A functor to use for comparisons.

Returns

True if __val (or its equivalent) is in [__first,__last].

Note that this does not actually return an iterator to __val. For that, use std::find or a container's specialized find
member functions.

The comparison function should have the same effects on ordering as the function used for the initial sort.

equal_range() [1/2]

template<typename _ForwardIterator , typename _Tp >


pair< _ForwardIterator, _ForwardIterator > std::equal_range (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val) [inline], [nodiscard], [constexpr]

Finds the largest subrange in which __val could be inserted at any place in it without changing the ordering.

Parameters

__first An iterator.
__last Another iterator.
__val The search term.

Returns

An pair of iterators defining the subrange.

This is equivalent to
std::make_pair(lower_bound(__first, __last, __val),
upper_bound(__first, __last, __val))

but does not actually call those functions.

Generated by Doxygen
3.1 Algorithms 85

equal_range() [2/2]

template<typename _ForwardIterator , typename _Tp , typename _Compare >


pair< _ForwardIterator, _ForwardIterator > std::equal_range (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val,
_Compare __comp) [inline], [nodiscard], [constexpr]

Finds the largest subrange in which __val could be inserted at any place in it without changing the ordering.

Parameters

__first An iterator.
__last Another iterator.
__val The search term.
__comp A functor to use for comparisons.

Returns

An pair of iterators defining the subrange.

This is equivalent to
std::make_pair(lower_bound(__first, __last, __val, __comp),
upper_bound(__first, __last, __val, __comp))

but does not actually call those functions.

lower_bound() [1/2]

template<typename _ForwardIterator , typename _Tp >


_ForwardIterator std::lower_bound (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val) [inline], [nodiscard], [constexpr]

Finds the first position in which val could be inserted without changing the ordering.

Parameters

__first An iterator.
__last Another iterator.
__val The search term.

Returns

An iterator pointing to the first element not less than val, or end() if every element is less than val.

Generated by Doxygen
86

lower_bound() [2/2]

template<typename _ForwardIterator , typename _Tp , typename _Compare >


_ForwardIterator std::lower_bound (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val,
_Compare __comp) [inline], [nodiscard], [constexpr]

Finds the first position in which __val could be inserted without changing the ordering.

Parameters

__first An iterator to the start of a sorted range.


__last A past-the-end iterator for the sorted range.
__val The search term.
__comp A functor to use for comparisons.

Returns

An iterator pointing to the first element not less than __val, or end() if every element is less than __val.

The comparison function should have the same effects on ordering as the function used for the initial sort.

upper_bound() [1/2]

template<typename _ForwardIterator , typename _Tp >


_ForwardIterator std::upper_bound (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val) [inline], [nodiscard], [constexpr]

Finds the last position in which __val could be inserted without changing the ordering.

Parameters

__first An iterator.
__last Another iterator.
__val The search term.

Returns

An iterator pointing to the first element greater than __val, or end() if no elements are greater than __val.

upper_bound() [2/2]

template<typename _ForwardIterator , typename _Tp , typename _Compare >


_ForwardIterator std::upper_bound (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __val,
_Compare __comp) [inline], [nodiscard], [constexpr]

Finds the last position in which __val could be inserted without changing the ordering.

Generated by Doxygen
3.1 Algorithms 87

Parameters

__first An iterator.
__last Another iterator.
__val The search term.
__comp A functor to use for comparisons.

Returns

An iterator pointing to the first element greater than __val, or end() if no elements are greater than __val.

The comparison function should have the same effects on ordering as the function used for the initial sort.

3.1.5.4 Heap

Collaboration diagram for Heap:

Sorting Heap

Functions

• template<typename _RandomAccessIterator >


constexpr bool std::is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr bool std::is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _RandomAccessIterator >
constexpr _RandomAccessIterator std::is_heap_until (_RandomAccessIterator __first, _RandomAccessIterator
__last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr _RandomAccessIterator std::is_heap_until (_RandomAccessIterator __first, _RandomAccessIterator
__last, _Compare __comp)
• template<typename _RandomAccessIterator >
constexpr void std::make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void std::make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare _←-
_comp)
• template<typename _RandomAccessIterator >
constexpr void std::pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)

Generated by Doxygen
88

• template<typename _RandomAccessIterator , typename _Compare >


constexpr void std::pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __←-
comp)
• template<typename _RandomAccessIterator >
constexpr void std::push_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void std::push_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __←-
comp)
• template<typename _RandomAccessIterator >
constexpr void std::sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void std::sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __←-
comp)

3.1.5.4.1 Detailed Description

3.1.5.4.2 Function Documentation

is_heap() [1/2]

template<typename _RandomAccessIterator >


bool std::is_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline], [nodiscard], [constexpr]

Determines whether a range is a heap.

Parameters

__first Start of range.


__last End of range.

Returns

True if range is a heap, false otherwise.

is_heap() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


bool std::is_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline], [nodiscard], [constexpr]

Determines whether a range is a heap using comparison functor.

Generated by Doxygen
3.1 Algorithms 89

Parameters

__first Start of range.


__last End of range.
__comp Comparison functor to use.

Returns

True if range is a heap, false otherwise.

References std::distance().

is_heap_until() [1/2]

template<typename _RandomAccessIterator >


_RandomAccessIterator std::is_heap_until (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline], [nodiscard], [constexpr]

Search the end of a heap.

Parameters

__first Start of range.


__last End of range.

Returns

An iterator pointing to the first element not in the heap.

This operation returns the last iterator i in [__first, __last) for which the range [__first, i) is a heap.

References std::distance().

is_heap_until() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


_RandomAccessIterator std::is_heap_until (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline], [nodiscard], [constexpr]

Search the end of a heap using comparison functor.

Generated by Doxygen
90

Parameters

__first Start of range.


__last End of range.
__comp Comparison functor to use.

Returns

An iterator pointing to the first element not in the heap.

This operation returns the last iterator i in [__first, __last) for which the range [__first, i) is a heap. Comparisons are
made using __comp.

References std::distance().

make_heap() [1/2]

template<typename _RandomAccessIterator >


void std::make_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline], [constexpr]

Construct a heap over a range.

Parameters

__first Start of heap.


__last End of heap.

This operation makes the elements in [__first,__last) into a heap.

make_heap() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::make_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline], [constexpr]

Construct a heap over a range using comparison functor.

Parameters

__first Start of heap.


__last End of heap.
__comp Comparison functor to use.

This operation makes the elements in [__first,__last) into a heap. Comparisons are made using __comp.

Generated by Doxygen
3.1 Algorithms 91

pop_heap() [1/2]

template<typename _RandomAccessIterator >


void std::pop_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline], [constexpr]

Pop an element off a heap.

Parameters

__first Start of heap.


__last End of heap.

Precondition

[__first, __last) is a valid, non-empty range.

This operation pops the top of the heap. The elements __first and __last-1 are swapped and [__first,__last-1) is made
into a heap.

pop_heap() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::pop_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline], [constexpr]

Pop an element off a heap using comparison functor.

Parameters

__first Start of heap.


__last End of heap.
__comp Comparison functor to use.

This operation pops the top of the heap. The elements __first and __last-1 are swapped and [__first,__last-1) is made
into a heap. Comparisons are made using comp.

push_heap() [1/2]

template<typename _RandomAccessIterator >


void std::push_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline], [constexpr]

Push an element onto a heap.

Generated by Doxygen
92

Parameters

__first Start of heap.


__last End of heap + element.

This operation pushes the element at last-1 onto the valid heap over the range [__first,__last-1). After completion,
[__first,__last) is a valid heap.

push_heap() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::push_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline], [constexpr]

Push an element onto a heap using comparison functor.

Parameters

__first Start of heap.


__last End of heap + element.
__comp Comparison functor.

This operation pushes the element at __last-1 onto the valid heap over the range [__first,__last-1). After completion,
[__first,__last) is a valid heap. Compare operations are performed using comp.

sort_heap() [1/2]

template<typename _RandomAccessIterator >


void std::sort_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last) [inline], [constexpr]

Sort a heap.

Parameters

__first Start of heap.


__last End of heap.

This operation sorts the valid heap in the range [__first,__last).

sort_heap() [2/2]

template<typename _RandomAccessIterator , typename _Compare >


void std::sort_heap (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp) [inline], [constexpr]

Sort a heap using comparison functor.

Generated by Doxygen
3.1 Algorithms 93

Parameters

__first Start of heap.


__last End of heap.
__comp Comparison functor to use.

This operation sorts the valid heap in the range [__first,__last). Comparisons are made using __comp.

3.1.5.5 Set Operations

Collaboration diagram for Set Operations:

Sorting Set Operations

Functions

• template<typename _InputIterator1 , typename _InputIterator2 >


constexpr bool std::includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Input←-
Iterator2 __last2)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Compare >
constexpr bool std::includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Input←-
Iterator2 __last2, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator std::set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 _←-
_first2, _InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator std::set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 _←-
_first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator std::set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2
__first2, _InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator std::set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2
__first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator std::set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _←-
InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator std::set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _←-
InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)

Generated by Doxygen
94

• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >


constexpr _OutputIterator std::set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator std::set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2, _OutputIterator __result, _Compare __comp)

3.1.5.5.1 Detailed Description

These algorithms are common set operations performed on sequences that are already sorted. The number of compar-
isons will be linear.

3.1.5.5.2 Function Documentation

includes() [1/2]

template<typename _InputIterator1 , typename _InputIterator2 >


bool std::includes (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2) [inline], [nodiscard], [constexpr]

Determines whether all elements of a sequence exists in a range.

Parameters

__first1 Start of search range.


__last1 End of search range.
__first2 Start of sequence
__last2 End of sequence.

Returns

True if each element in [__first2,__last2) is contained in order within [__first1,__last1). False otherwise.

This operation expects both [__first1,__last1) and [__first2,__last2) to be sorted. Searches for the presence of each
element in [__first2,__last2) within [__first1,__last1). The iterators over each range only move forward, so this is a linear
algorithm. If an element in [__first2,__last2) is not found before the search iterator reaches __last2, false is returned.

includes() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _Compare >


bool std::includes (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_Compare __comp) [inline], [nodiscard], [constexpr]

Determines whether all elements of a sequence exists in a range using comparison.

Generated by Doxygen
3.1 Algorithms 95

Parameters

__first1 Start of search range.


__last1 End of search range.
__first2 Start of sequence
__last2 End of sequence.
__comp Comparison function to use.

Returns

True if each element in [__first2,__last2) is contained in order within [__first1,__last1) according to comp. False
otherwise.

This operation expects both [__first1,__last1) and [__first2,__last2) to be sorted. Searches for the presence of each
element in [__first2,__last2) within [__first1,__last1), using comp to decide. The iterators over each range only move
forward, so this is a linear algorithm. If an element in [__first2,__last2) is not found before the search iterator reaches
__last2, false is returned.

set_difference() [1/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >


_OutputIterator std::set_difference (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result) [inline], [constexpr]

Return the difference of two sorted ranges.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of second range.
__result Start of output range.

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in the first range but not the second in order to
the output range. Iterators increment for each range. When the current element of the first range is less than the
second, that element is copied and the iterator advances. If the current element of the second range is less, the iterator
advances, but no element is copied. If an element is contained in both ranges, no elements are copied and both ranges
advance. The output range may not overlap either input range.

Generated by Doxygen
96

set_difference() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename


_Compare >
_OutputIterator std::set_difference (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result,
_Compare __comp) [inline], [constexpr]

Return the difference of two sorted ranges using comparison functor.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of second range.
__result Start of output range.
__comp The comparison functor.

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in the first range but not the second in order to the
output range. Iterators increment for each range. When the current element of the first range is less than the second
according to __comp, that element is copied and the iterator advances. If the current element of the second range is
less, no element is copied and the iterator advances. If an element is contained in both ranges according to __comp,
no elements are copied and both ranges advance. The output range may not overlap either input range.

set_intersection() [1/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >


_OutputIterator std::set_intersection (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result) [inline], [constexpr]

Return the intersection of two sorted ranges.

Parameters

__first1 Start of first range.


__last1 End of first range.

Generated by Doxygen
3.1 Algorithms 97

__first2 Start of second range.


__last2 End of second range.
__result Start of output range.

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in both ranges in order to the output range. Iterators
increment for each range. When the current element of one range is less than the other, that iterator advances. If an
element is contained in both ranges, the element from the first range is copied and both ranges advance. The output
range may not overlap either input range.

set_intersection() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename


_Compare >
_OutputIterator std::set_intersection (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result,
_Compare __comp) [inline], [constexpr]

Return the intersection of two sorted ranges using comparison functor.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of second range.
__result Start of output range.
__comp The comparison functor.

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in both ranges in order to the output range. Iterators
increment for each range. When the current element of one range is less than the other according to __comp, that
iterator advances. If an element is contained in both ranges according to __comp, the element from the first range is
copied and both ranges advance. The output range may not overlap either input range.

Generated by Doxygen
98

set_symmetric_difference() [1/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >


_OutputIterator std::set_symmetric_difference (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result) [inline], [constexpr]

Return the symmetric difference of two sorted ranges.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of second range.
__result Start of output range.

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in one range but not the other in order to the output
range. Iterators increment for each range. When the current element of one range is less than the other, that element
is copied and the iterator advances. If an element is contained in both ranges, no elements are copied and both ranges
advance. The output range may not overlap either input range.

set_symmetric_difference() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename


_Compare >
_OutputIterator std::set_symmetric_difference (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result,
_Compare __comp) [inline], [constexpr]

Return the symmetric difference of two sorted ranges using comparison functor.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of second range.
__result Start of output range.
__comp The comparison functor.

Generated by Doxygen
3.1 Algorithms 99

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in one range but not the other in order to the output
range. Iterators increment for each range. When the current element of one range is less than the other according
to comp, that element is copied and the iterator advances. If an element is contained in both ranges according to
__comp, no elements are copied and both ranges advance. The output range may not overlap either input range.

set_union() [1/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >


_OutputIterator std::set_union (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result) [inline], [constexpr]

Return the union of two sorted ranges.

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of second range.
__result Start of output range.

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in each range in order to the output range. Iterators
increment for each range. When the current element of one range is less than the other, that element is copied and the
iterator advanced. If an element is contained in both ranges, the element from the first range is copied and both ranges
advance. The output range may not overlap either input range.

set_union() [2/2]

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename


_Compare >
_OutputIterator std::set_union (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result,
_Compare __comp) [inline], [constexpr]

Return the union of two sorted ranges using a comparison functor.

Generated by Doxygen
100

Parameters

__first1 Start of first range.


__last1 End of first range.
__first2 Start of second range.
__last2 End of second range.
__result Start of output range.
__comp The comparison functor.

Returns

End of the output range.

This operation iterates over both ranges, copying elements present in each range in order to the output range. Iterators
increment for each range. When the current element of one range is less than the other according to __comp, that
element is copied and the iterator advanced. If an equivalent element according to __comp is contained in both
ranges, the element from the first range is copied and both ranges advance. The output range may not overlap either
input range.

3.2 Atomics

Classes

• struct std::atomic< _Tp >


• struct std::atomic< _Tp ∗ >
• struct std::atomic< bool >
• struct std::atomic< char >
• struct std::atomic< char16_t >
• struct std::atomic< char32_t >
• struct std::atomic< int >
• struct std::atomic< long >
• struct std::atomic< long long >
• struct std::atomic< short >
• struct std::atomic< signed char >
• struct std::atomic< unsigned char >
• struct std::atomic< unsigned int >
• struct std::atomic< unsigned long >
• struct std::atomic< unsigned long long >
• struct std::atomic< unsigned short >
• struct std::atomic< wchar_t >
• struct std::atomic_flag

Generated by Doxygen
3.2 Atomics 101

Macros

• #define ATOMIC_BOOL_LOCK_FREE
• #define ATOMIC_CHAR16_T_LOCK_FREE
• #define ATOMIC_CHAR32_T_LOCK_FREE
• #define ATOMIC_CHAR_LOCK_FREE
• #define ATOMIC_FLAG_INIT
• #define ATOMIC_INT_LOCK_FREE
• #define ATOMIC_LLONG_LOCK_FREE
• #define ATOMIC_LONG_LOCK_FREE
• #define ATOMIC_POINTER_LOCK_FREE
• #define ATOMIC_SHORT_LOCK_FREE
• #define ATOMIC_VAR_INIT(_VI)
• #define ATOMIC_WCHAR_T_LOCK_FREE

Typedefs

• typedef unsigned char std::__atomic_flag_data_type


• typedef atomic< bool > std::atomic_bool
• typedef atomic< char > std::atomic_char
• typedef atomic< char16_t > std::atomic_char16_t
• typedef atomic< char32_t > std::atomic_char32_t
• typedef atomic< int > std::atomic_int
• typedef atomic< int16_t > std::atomic_int16_t
• typedef atomic< int32_t > std::atomic_int32_t
• typedef atomic< int64_t > std::atomic_int64_t
• typedef atomic< int8_t > std::atomic_int8_t
• typedef atomic< int_fast16_t > std::atomic_int_fast16_t
• typedef atomic< int_fast32_t > std::atomic_int_fast32_t
• typedef atomic< int_fast64_t > std::atomic_int_fast64_t
• typedef atomic< int_fast8_t > std::atomic_int_fast8_t
• typedef atomic< int_least16_t > std::atomic_int_least16_t
• typedef atomic< int_least32_t > std::atomic_int_least32_t
• typedef atomic< int_least64_t > std::atomic_int_least64_t
• typedef atomic< int_least8_t > std::atomic_int_least8_t
• typedef atomic< intmax_t > std::atomic_intmax_t
• typedef atomic< intptr_t > std::atomic_intptr_t
• typedef atomic< long long > std::atomic_llong
• typedef atomic< long > std::atomic_long
• typedef atomic< ptrdiff_t > std::atomic_ptrdiff_t
• typedef atomic< signed char > std::atomic_schar
• typedef atomic< short > std::atomic_short
• typedef atomic< size_t > std::atomic_size_t
• typedef atomic< unsigned char > std::atomic_uchar
• typedef atomic< unsigned int > std::atomic_uint
• typedef atomic< uint16_t > std::atomic_uint16_t
• typedef atomic< uint32_t > std::atomic_uint32_t
• typedef atomic< uint64_t > std::atomic_uint64_t
• typedef atomic< uint8_t > std::atomic_uint8_t
• typedef atomic< uint_fast16_t > std::atomic_uint_fast16_t

Generated by Doxygen
102

• typedef atomic< uint_fast32_t > std::atomic_uint_fast32_t


• typedef atomic< uint_fast64_t > std::atomic_uint_fast64_t
• typedef atomic< uint_fast8_t > std::atomic_uint_fast8_t
• typedef atomic< uint_least16_t > std::atomic_uint_least16_t
• typedef atomic< uint_least32_t > std::atomic_uint_least32_t
• typedef atomic< uint_least64_t > std::atomic_uint_least64_t
• typedef atomic< uint_least8_t > std::atomic_uint_least8_t
• typedef atomic< uintmax_t > std::atomic_uintmax_t
• typedef atomic< uintptr_t > std::atomic_uintptr_t
• typedef atomic< unsigned long long > std::atomic_ullong
• typedef atomic< unsigned long > std::atomic_ulong
• typedef atomic< unsigned short > std::atomic_ushort
• typedef atomic< wchar_t > std::atomic_wchar_t

Enumerations

• enum class std::memory_order : int {


relaxed , consume , acquire , release ,
acq_rel , seq_cst }

Functions

• template<typename _ITp >


bool std::atomic_compare_exchange_strong (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, __←-
atomic_val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool std::atomic_compare_exchange_strong (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1,
__atomic_val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool std::atomic_compare_exchange_strong_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1,
__atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
• template<typename _ITp >
bool std::atomic_compare_exchange_strong_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp
> ∗__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
• template<typename _ITp >
bool std::atomic_compare_exchange_weak (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, __←-
atomic_val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool std::atomic_compare_exchange_weak (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1,
__atomic_val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool std::atomic_compare_exchange_weak_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1,
__atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
• template<typename _ITp >
bool std::atomic_compare_exchange_weak_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp >
∗__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
• template<typename _ITp >
_ITp std::atomic_exchange (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_exchange (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept

Generated by Doxygen
3.2 Atomics 103

• template<typename _ITp >


_ITp std::atomic_exchange_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order __m)
noexcept
• template<typename _ITp >
_ITp std::atomic_exchange_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_add (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_add (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_add_explicit (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i, memory_order __m)
noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_add_explicit (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_and (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_and (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_and_explicit (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_and_explicit (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_or (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_or (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_or_explicit (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_or_explicit (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_sub (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_sub (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_sub_explicit (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i, memory_order __m)
noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_sub_explicit (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_xor (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_xor (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp std::atomic_fetch_xor_explicit (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept

Generated by Doxygen
104

• template<typename _ITp >


_ITp std::atomic_fetch_xor_explicit (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• void std::atomic_flag_clear (atomic_flag ∗__a) noexcept
• void std::atomic_flag_clear (volatile atomic_flag ∗__a) noexcept
• void std::atomic_flag_clear_explicit (atomic_flag ∗__a, memory_order __m) noexcept
• void std::atomic_flag_clear_explicit (volatile atomic_flag ∗__a, memory_order __m) noexcept
• bool std::atomic_flag_test_and_set (atomic_flag ∗__a) noexcept
• bool std::atomic_flag_test_and_set (volatile atomic_flag ∗__a) noexcept
• bool std::atomic_flag_test_and_set_explicit (atomic_flag ∗__a, memory_order __m) noexcept
• bool std::atomic_flag_test_and_set_explicit (volatile atomic_flag ∗__a, memory_order __m) noexcept
• template<typename _ITp >
void std::atomic_init (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
void std::atomic_init (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
bool std::atomic_is_lock_free (const atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
bool std::atomic_is_lock_free (const volatile atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
_ITp std::atomic_load (const atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
_ITp std::atomic_load (const volatile atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
_ITp std::atomic_load_explicit (const atomic< _ITp > ∗__a, memory_order __m) noexcept
• template<typename _ITp >
_ITp std::atomic_load_explicit (const volatile atomic< _ITp > ∗__a, memory_order __m) noexcept
• void std::atomic_signal_fence (memory_order __m) noexcept
• template<typename _ITp >
void std::atomic_store (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
void std::atomic_store (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
void std::atomic_store_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order __m) noex-
cept
• template<typename _ITp >
void std::atomic_store_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order
__m) noexcept
• void std::atomic_thread_fence (memory_order __m) noexcept
• template<typename _Tp >
_Tp std::kill_dependency (_Tp __y) noexcept
• constexpr memory_order std::operator& (memory_order __m, __memory_order_modifier __mod) noexcept
• constexpr memory_order std::operator| (memory_order __m, __memory_order_modifier __mod) noexcept

Variables

• constexpr memory_order std::memory_order_acq_rel


• constexpr memory_order std::memory_order_acquire
• constexpr memory_order std::memory_order_consume
• constexpr memory_order std::memory_order_relaxed
• constexpr memory_order std::memory_order_release
• constexpr memory_order std::memory_order_seq_cst

Generated by Doxygen
3.2 Atomics 105

3.2.1 Detailed Description

Components for performing atomic operations.

3.2.2 Macro Definition Documentation

ATOMIC_BOOL_LOCK_FREE

#define ATOMIC_BOOL_LOCK_FREE

Lock-free property.

0 indicates that the types are never lock-free. 1 indicates that the types are sometimes lock-free. 2 indicates that the
types are always lock-free.

3.2.3 Typedef Documentation

atomic_bool

typedef atomic<bool> std::atomic_bool

atomic_bool

atomic_char

typedef atomic<char> std::atomic_char

atomic_char

atomic_char16_t

typedef atomic<char16_t> std::atomic_char16_t

atomic_char16_t

atomic_char32_t

typedef atomic<char32_t> std::atomic_char32_t

atomic_char32_t

Generated by Doxygen
106

atomic_int

typedef atomic<int> std::atomic_int

atomic_int

atomic_int16_t

typedef atomic<int16_t> std::atomic_int16_t

atomic_int16_t

atomic_int32_t

typedef atomic<int32_t> std::atomic_int32_t

atomic_int32_t

atomic_int64_t

typedef atomic<int64_t> std::atomic_int64_t

atomic_int64_t

atomic_int8_t

typedef atomic<int8_t> std::atomic_int8_t

atomic_int8_t

atomic_int_fast16_t

typedef atomic<int_fast16_t> std::atomic_int_fast16_t

atomic_int_fast16_t

atomic_int_fast32_t

typedef atomic<int_fast32_t> std::atomic_int_fast32_t

atomic_int_fast32_t

Generated by Doxygen
3.2 Atomics 107

atomic_int_fast64_t

typedef atomic<int_fast64_t> std::atomic_int_fast64_t

atomic_int_fast64_t

atomic_int_fast8_t

typedef atomic<int_fast8_t> std::atomic_int_fast8_t

atomic_int_fast8_t

atomic_int_least16_t

typedef atomic<int_least16_t> std::atomic_int_least16_t

atomic_int_least16_t

atomic_int_least32_t

typedef atomic<int_least32_t> std::atomic_int_least32_t

atomic_int_least32_t

atomic_int_least64_t

typedef atomic<int_least64_t> std::atomic_int_least64_t

atomic_int_least64_t

atomic_int_least8_t

typedef atomic<int_least8_t> std::atomic_int_least8_t

atomic_int_least8_t

atomic_intmax_t

typedef atomic<intmax_t> std::atomic_intmax_t

atomic_intmax_t

Generated by Doxygen
108

atomic_intptr_t

typedef atomic<intptr_t> std::atomic_intptr_t

atomic_intptr_t

atomic_llong

typedef atomic<long long> std::atomic_llong

atomic_llong

atomic_long

typedef atomic<long> std::atomic_long

atomic_long

atomic_ptrdiff_t

typedef atomic<ptrdiff_t> std::atomic_ptrdiff_t

atomic_ptrdiff_t

atomic_schar

typedef atomic<signed char> std::atomic_schar

atomic_schar

atomic_short

typedef atomic<short> std::atomic_short

atomic_short

atomic_size_t

typedef atomic<size_t> std::atomic_size_t

atomic_size_t

Generated by Doxygen
3.2 Atomics 109

atomic_uchar

typedef atomic<unsigned char> std::atomic_uchar

atomic_uchar

atomic_uint

typedef atomic<unsigned int> std::atomic_uint

atomic_uint

atomic_uint16_t

typedef atomic<uint16_t> std::atomic_uint16_t

atomic_uint16_t

atomic_uint32_t

typedef atomic<uint32_t> std::atomic_uint32_t

atomic_uint32_t

atomic_uint64_t

typedef atomic<uint64_t> std::atomic_uint64_t

atomic_uint64_t

atomic_uint8_t

typedef atomic<uint8_t> std::atomic_uint8_t

atomic_uint8_t

atomic_uint_fast16_t

typedef atomic<uint_fast16_t> std::atomic_uint_fast16_t

atomic_uint_fast16_t

Generated by Doxygen
110

atomic_uint_fast32_t

typedef atomic<uint_fast32_t> std::atomic_uint_fast32_t

atomic_uint_fast32_t

atomic_uint_fast64_t

typedef atomic<uint_fast64_t> std::atomic_uint_fast64_t

atomic_uint_fast64_t

atomic_uint_fast8_t

typedef atomic<uint_fast8_t> std::atomic_uint_fast8_t

atomic_uint_fast8_t

atomic_uint_least16_t

typedef atomic<uint_least16_t> std::atomic_uint_least16_t

atomic_uint_least16_t

atomic_uint_least32_t

typedef atomic<uint_least32_t> std::atomic_uint_least32_t

atomic_uint_least32_t

atomic_uint_least64_t

typedef atomic<uint_least64_t> std::atomic_uint_least64_t

atomic_uint_least64_t

atomic_uint_least8_t

typedef atomic<uint_least8_t> std::atomic_uint_least8_t

atomic_uint_least8_t

Generated by Doxygen
3.2 Atomics 111

atomic_uintmax_t

typedef atomic<uintmax_t> std::atomic_uintmax_t

atomic_uintmax_t

atomic_uintptr_t

typedef atomic<uintptr_t> std::atomic_uintptr_t

atomic_uintptr_t

atomic_ullong

typedef atomic<unsigned long long> std::atomic_ullong

atomic_ullong

atomic_ulong

typedef atomic<unsigned long> std::atomic_ulong

atomic_ulong

atomic_ushort

typedef atomic<unsigned short> std::atomic_ushort

atomic_ushort

atomic_wchar_t

typedef atomic<wchar_t> std::atomic_wchar_t

atomic_wchar_t

3.2.4 Enumeration Type Documentation

memory_order

enum class std::memory_order : int [strong]

Enumeration for memory_order.

Generated by Doxygen
112

3.2.5 Function Documentation

kill_dependency()

template<typename _Tp >


_Tp std::kill_dependency (
_Tp __y) [inline], [noexcept]

kill_dependency

3.3 Concurrency

Collaboration diagram for Concurrency:

Condition Variables

Futures

Concurrency
Mutexes

Threads

Topics

• Condition Variables
• Futures
• Mutexes
• Threads

3.3.1 Detailed Description

Components for concurrent operations, including threads, mutexes, and condition variables.

Generated by Doxygen
3.3 Concurrency 113

3.3.2 Condition Variables

Collaboration diagram for Condition Variables:

Concurrency Condition Variables

Classes

• class std::condition_variable

Enumerations

• enum class std::cv_status { no_timeout , timeout }

Functions

• void std::notify_all_at_thread_exit (condition_variable &, unique_lock< mutex >)

3.3.2.1 Detailed Description

Classes for condition_variable support.

3.3.2.2 Enumeration Type Documentation

cv_status

enum class std::cv_status [strong]

cv_status

Generated by Doxygen
114

3.3.3 Futures

Collaboration diagram for Futures:

std::future_error
Concurrency Futures Exceptions

Classes

• class std::__basic_future< _Res >


• class std::future< _Res >
• class std::future< _Res & >
• class std::future< void >
• class std::future_error
• struct std::is_error_code_enum< future_errc >
• class std::packaged_task< _Res(_ArgTypes...)>
• class std::promise< _Res >
• class std::promise< _Res & >
• class std::promise< void >
• class std::shared_future< _Res >
• class std::shared_future< _Res & >
• class std::shared_future< void >

Enumerations

• enum class std::future_errc { future_already_retrieved , promise_already_satisfied , no_state , broken_←-


promise }
• enum class std::future_status { ready , timeout , deferred }
• enum class std::launch { async , deferred }

Functions

• std::__basic_future< _Res >::__basic_future (const shared_future< _Res > &) noexcept


• std::__basic_future< _Res >::__basic_future (future< _Res > &&) noexcept
• std::__basic_future< _Res >::__basic_future (shared_future< _Res > &&) noexcept
• template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > std::async (_Fn &&__fn, _Args &&... __args)
• template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > std::async (launch __policy, _Fn &&__fn, _Args &&... __args)
• const error_category & std::future_category () noexcept
• error_code std::make_error_code (future_errc __errc) noexcept
• error_condition std::make_error_condition (future_errc __errc) noexcept

Generated by Doxygen
3.3 Concurrency 115

• constexpr launch std::operator& (launch __x, launch __y) noexcept


• constexpr launch & std::operator&= (launch &__x, launch __y) noexcept
• constexpr launch std::operator∧ (launch __x, launch __y) noexcept
• constexpr launch & std::operator∧ = (launch &__x, launch __y) noexcept
• constexpr launch std::operator| (launch __x, launch __y) noexcept
• constexpr launch & std::operator|= (launch &__x, launch __y) noexcept
• constexpr launch std::operator∼ (launch __x) noexcept
• template<typename _Fun , typename _Signature = __function_guide_t<_Fun, decltype(&_Fun::operator())>>
std::packaged_task (_Fun) -> packaged_task< _Signature >
• template<typename _Res , typename... _ArgTypes>
std::packaged_task (_Res(∗)(_ArgTypes...)) -> packaged_task< _Res(_ArgTypes...)>
• shared_future< _Res > std::future< _Res >::share () noexcept
• shared_future< _Res & > std::future< _Res & >::share () noexcept
• shared_future< void > std::future< void >::share () noexcept
• template<typename _Res , typename... _ArgTypes>
void std::swap (packaged_task< _Res(_ArgTypes...)> &__x, packaged_task< _Res(_ArgTypes...)> &__y) noex-
cept
• template<typename _Res >
void std::swap (promise< _Res > &__x, promise< _Res > &__y) noexcept

3.3.3.1 Detailed Description

Futures and promises provide support for retrieving the result from an asynchronous function, e.g. one that is running
in another thread. A std::future represents an asynchronous result that will become ready at some later time. A
consumer can wait on a future until the result is ready to be accessed.

Since

C++11

3.3.3.2 Enumeration Type Documentation

future_errc

enum class std::future_errc [strong]

Error code for futures.

future_status

enum class std::future_status [strong]

Status code for futures.

Generated by Doxygen
116

launch

enum class std::launch [strong]

Launch code for futures.

3.3.3.3 Function Documentation

async() [1/2]

template<typename _Fn , typename... _Args>


future< __async_result_of< _Fn, _Args... > > std::async (
_Fn && __fn,
_Args &&... __args) [inline], [nodiscard]

async, potential overload

async() [2/2]

template<typename _Fn , typename... _Args>


future< __async_result_of< _Fn, _Args... > > std::async (
launch __policy,
_Fn && __fn,
_Args &&... __args) [nodiscard]

async

future_category()

const error_category & std::future_category () [noexcept]

Points to a statically-allocated object derived from error_category.

make_error_code()

error_code std::make_error_code (
future_errc __errc) [inline], [noexcept]

Overload of make_error_code for future_errc.

Referenced by std::filesystem::filesystem_error::what().

Generated by Doxygen
3.3 Concurrency 117

make_error_condition()

error_condition std::make_error_condition (
future_errc __errc) [inline], [noexcept]

Overload of make_error_condition for future_errc.

swap()

template<typename _Res , typename... _ArgTypes>


void std::swap (
packaged_task< _Res(_ArgTypes...)> & __x,
packaged_task< _Res(_ArgTypes...)> & __y) [inline], [noexcept]

swap

3.3.4 Mutexes

Collaboration diagram for Mutexes:

Concurrency Mutexes

Classes

• struct std::adopt_lock_t
• struct std::defer_lock_t
• class std::lock_guard< _Mutex >
• class std::mutex
• struct std::once_flag
• class std::recursive_mutex
• class std::recursive_timed_mutex
• class std::shared_lock< _Mutex >
• class std::shared_timed_mutex
• class std::timed_mutex
• struct std::try_to_lock_t
• class std::unique_lock< _Mutex >

Generated by Doxygen
118

Functions

• void std::__once_proxy (void)


• template<typename _Callable , typename... _Args>
void std::call_once (once_flag &__once, _Callable &&__f, _Args &&... __args)
• template<typename _L1 , typename _L2 , typename... _L3>
void std::lock (_L1 &__l1, _L2 &__l2, _L3 &... __l3)
• template<typename _L1 , typename _L2 , typename... _L3>
int std::try_lock (_L1 &__l1, _L2 &__l2, _L3 &... __l3)

Variables

• constexpr adopt_lock_t std::adopt_lock


• constexpr defer_lock_t std::defer_lock
• constexpr try_to_lock_t std::try_to_lock

3.3.4.1 Detailed Description

Classes for mutex support.

3.3.4.2 Function Documentation

call_once()

template<typename _Callable , typename... _Args>


void std::call_once (
once_flag & __once,
_Callable && __f,
_Args &&... __args)

Invoke a callable and synchronize with other calls using the same flag.

lock()

template<typename _L1 , typename _L2 , typename... _L3>


void std::lock (
_L1 & __l1,
_L2 & __l2,
_L3 &... __l3)

Generic lock.

Parameters

_←- Meets Lockable requirements (try_lock() may throw).


_l1
_←- Meets Lockable requirements (try_lock() may throw).
_l2
_←- Meets Lockable requirements (try_lock() may throw).
_l3

Generated by Doxygen
3.3 Concurrency 119

Exceptions

An exception thrown by an argument's lock() or try_lock() member.

Postcondition

All arguments are locked.

All arguments are locked via a sequence of calls to lock(), try_lock() and unlock(). If this function exits via an exception
any locks that were obtained will be released.

try_lock()

template<typename _L1 , typename _L2 , typename... _L3>


int std::try_lock (
_L1 & __l1,
_L2 & __l2,
_L3 &... __l3) [inline], [nodiscard]

Generic try_lock.

Parameters

_←- Meets Lockable requirements (try_lock() may throw).


_l1
_←- Meets Lockable requirements (try_lock() may throw).
_l2
_←- Meets Lockable requirements (try_lock() may throw).
_l3

Returns

Returns -1 if all try_lock() calls return true. Otherwise returns a 0-based index corresponding to the argument that
returned false.

Postcondition

Either all arguments are locked, or none will be.

Sequentially calls try_lock() on each argument.

3.3.4.3 Variable Documentation

adopt_lock

adopt_lock_t std::adopt_lock [inline], [constexpr]

Tag used to make a scoped lock take ownership of a locked mutex.

Generated by Doxygen
120

defer_lock

defer_lock_t std::defer_lock [inline], [constexpr]

Tag used to prevent a scoped lock from acquiring ownership of a mutex.

try_to_lock

try_to_lock_t std::try_to_lock [inline], [constexpr]

Tag used to prevent a scoped lock from blocking if a mutex is locked.

3.3.5 Threads

Collaboration diagram for Threads:

Concurrency Threads

Namespaces

• namespace std::this_thread

Classes

• struct std::hash< thread::id >


• class std::thread

Functions

• bool operator== (thread::id __x, thread::id __y) noexcept


• void swap (thread &__x, thread &__y) noexcept

• strong_ordering operator (thread::id __x, thread::id __y) noexcept


• template<class _CharT , class _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__out, thread::id __id)

Generated by Doxygen
3.4 Containers 121

3.3.5.1 Detailed Description

Since

C++11

Classes for thread support.

3.4 Containers

Collaboration diagram for Containers:

Associative

Containers Sequences

Unordered Associative

Topics

• Associative
• Sequences
• Unordered Associative

3.4.1 Detailed Description

Containers are collections of objects.

A container may hold any type which meets certain requirements, but the type of contained object is chosen at compile
time, and all objects in a given container must be of the same type. (Polymorphism is possible by declaring a container
of pointers to a base class and then populating it with pointers to instances of derived classes. Variant value types such
as the any class from Boost can also be used.

All contained types must be Assignable and CopyConstructible. Specific containers may place additional
requirements on the types of their contained objects.

Containers manage memory allocation and deallocation themselves when storing your objects. The objects are de-
stroyed when the container is itself destroyed. Note that if you are storing pointers in a container, delete is not
automatically called on the pointers before destroying them.

All containers must meet certain requirements, summarized in tables.

The standard containers are further refined into Sequences and Associative Containers. Unordered Associative Containers.

Generated by Doxygen
122

3.4.2 Associative

Collaboration diagram for Associative:

Containers Associative Node handles

Topics

• Node handles

Classes

• class std::map< _Key, _Tp, _Compare, _Alloc >


• class std::multimap< _Key, _Tp, _Compare, _Alloc >
• class std::multiset< _Key, _Compare, _Alloc >
• class std::set< _Key, _Compare, _Alloc >

3.4.2.1 Detailed Description

Associative containers allow fast retrieval of data based on keys.

Each container type is parameterized on a Key type, and an ordering relation used to sort the elements of the container.

All associative containers must meet certain requirements, summarized in tables.

3.4.2.2 Node handles

Collaboration diagram for Node handles:

Associative Node handles

Generated by Doxygen
3.4 Containers 123

Classes

• class std::_Node_handle< _Key, _Value, _NodeAlloc >


• class std::_Node_handle< _Value, _Value, _NodeAlloc >
• class std::_Node_handle_common< _Val, _NodeAlloc >
• struct std::_Node_insert_return< _Iterator, _NodeHandle >

3.4.2.2.1 Detailed Description

Since

C++17

The associative containers (map, set, multimap and multiset) support extracting and re-inserting nodes from the
container. Those operations use the container's node_handle type, which is an alias for a _Node_handle<...>
type. You should always use the container's node_handle type (e.g. std::set<int>::node_handle) to
refer to these types, not the non-standard internal _Node_handle names.

3.4.3 Sequences

Collaboration diagram for Sequences:

std::experimental::
fundamentals_v1::basic
_string_view Library Fundamentals TS

std::basic_string
Containers Sequences std::basic_string_view
std::experimental::
fundamentals_v1::basic
_string_view
Strings

Classes

• struct std::array< _Tp, _Nm >


• class std::basic_string< _CharT, _Traits, _Alloc >
• class std::basic_string_view< _CharT, _Traits >
• class std::experimental::fundamentals_v1::basic_string_view< _CharT, _Traits >
• class std::deque< _Tp, _Alloc >
• class std::forward_list< _Tp, _Alloc >
• class std::list< _Tp, _Alloc >
• class std::priority_queue< _Tp, _Sequence, _Compare >
• class std::queue< _Tp, _Sequence >
• class std::stack< _Tp, _Sequence >
• class std::vector< _Tp, _Alloc >
• class std::vector< bool, _Alloc >

Generated by Doxygen
124

3.4.3.1 Detailed Description

Sequences arrange a collection of objects into a strictly linear order.

The differences between sequences are usually due to one or both of the following:

• memory management

• algorithmic complexity

As an example of the first case, vector is required to use a contiguous memory layout, while other sequences such
as deque are not.

The prime reason for choosing one sequence over another should be based on the second category of differences,
algorithmic complexity. For example, if you need to perform many inserts and removals from the middle of a sequence,
list would be ideal. But if you need to perform constant-time access to random elements of the sequence, then list
should not be used.

All sequences must meet certain requirements, summarized in tables.

3.4.4 Unordered Associative

Collaboration diagram for Unordered Associative:

Containers Unordered Associative

Classes

• class std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >


• class std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >
• class std::unordered_multiset< _Value, _Hash, _Pred, _Alloc >
• class std::unordered_set< _Value, _Hash, _Pred, _Alloc >

3.4.4.1 Detailed Description

Unordered associative containers allow fast retrieval of data based on keys.

Each container type is parameterized on a Key type, a Hash type providing a hashing functor, and an ordering relation
used to sort the elements of the container.

All unordered associative containers must meet certain requirements, summarized in tables.

Generated by Doxygen
3.5 Diagnostics 125

3.5 Diagnostics

Collaboration diagram for Diagnostics:

Diagnostics Exceptions

Topics

• Exceptions

Classes

• class std::_V2::error_category
• class std::error_code
• class std::error_condition
• struct std::is_error_code_enum< _Tp >
• struct std::is_error_condition_enum< _Tp >

Functions

• const error_category & std::generic_category () noexcept


• error_code make_error_code (errc __e) noexcept
• error_condition make_error_condition (errc __e) noexcept
• strong_ordering operator (const error_code &__lhs, const error_code &__rhs) noexcept
• strong_ordering operator (const error_condition &__lhs, const error_condition &__rhs) noexcept
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const error_code
&__e)
• bool operator== (const error_code &__lhs, const error_code &__rhs) noexcept
• bool operator== (const error_code &__lhs, const error_condition &__rhs) noexcept
• bool operator== (const error_condition &__lhs, const error_condition &__rhs) noexcept
• const error_category & std::system_category () noexcept

Variables

• template<typename _Tp >


constexpr bool std::is_error_code_enum_v
• template<typename _Tp >
constexpr bool std::is_error_condition_enum_v

Generated by Doxygen
126

3.5.1 Detailed Description

Components for error handling, reporting, and diagnostic operations.

3.5.2 Function Documentation

generic_category()

const error_category & std::_V2::generic_category () [noexcept]

Error category for errno error codes.

make_error_code()

error_code make_error_code (
errc __e) [related]

Create an error_code representing a standard errc condition.

The std::errc constants correspond to errno macros and so use the generic category.

Since

C++11

make_error_condition()

error_condition make_error_condition (
errc __e) [related]

Create an error_condition representing a standard errc condition.

The std::errc constants correspond to errno macros and so use the generic category.

Since

C++11

operator() [1/2]

strong_ordering operator<=> (
const error_code & __lhs,
const error_code & __rhs) [related]

Ordered comparison for std::error_code.

This defines a total order by comparing the categories, and then if they are equal comparing the values.

Since

C++11

Generated by Doxygen
3.5 Diagnostics 127

operator() [2/2]

strong_ordering operator<=> (
const error_condition & __lhs,
const error_condition & __rhs) [related]

Ordered comparison for std::error_condition.

This defines a total order by comparing the categories, and then if they are equal comparing the values.

Since

C++11

operator<<()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & operator<< (
basic_ostream< _CharT, _Traits > & __os,
const error_code & __e) [related]

Write a std::error_code to an ostream.

Since

C++11

operator==() [1/3]

bool operator== (
const error_code & __lhs,
const error_code & __rhs) [related]

Equality comparison for std::error_code.

Returns true only if they have the same category and the same value.

Since

C++11

Generated by Doxygen
128

operator==() [2/3]

bool operator== (
const error_code & __lhs,
const error_condition & __rhs) [related]

Equality comparison for std::error_code and std::error_condition.

Uses each category's equivalent member function to check whether the values correspond to an equivalent error
in that category.

Since

C++11

operator==() [3/3]

bool operator== (
const error_condition & __lhs,
const error_condition & __rhs) [related]

Equality comparison for std::error_condition.

Returns true only if they have the same category and the same value.

Since

C++11

system_category()

const error_category & std::_V2::system_category () [noexcept]

Error category for other error codes defined by the OS.

3.5.3 Exceptions

Collaboration diagram for Exceptions:

std::experimental::
fundamentals_v1::bad
Type-safe container
_any_cast
of any type

std::future_error Futures

Diagnostics Exceptions std::experimental::


fundamentals_v1::bad
_optional_access
Optional values
std::regex_error
Regular Expressions

Generated by Doxygen
3.5 Diagnostics 129

Classes

• class __cxxabiv1::__forced_unwind
• class std::bad_alloc
• class std::experimental::fundamentals_v1::bad_any_cast
• class std::bad_cast
• class std::bad_exception
• class std::bad_function_call
• class std::experimental::fundamentals_v1::bad_optional_access
• class std::bad_typeid
• class std::bad_weak_ptr
• class std::domain_error
• class std::exception
• class std::__unspecified__::exception_ptr
• struct __gnu_cxx::forced_error
• class std::future_error
• class std::invalid_argument
• class std::length_error
• class std::logic_error
• class std::nested_exception
• class std::out_of_range
• class std::overflow_error
• class std::range_error
• class __gnu_cxx::recursive_init_error
• class std::regex_error
• class std::runtime_error
• class std::system_error
• class std::underflow_error

Typedefs

• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags std::ios_base::fmtflags


• typedef void(∗ std::terminate_handler) ()
• typedef void(∗ std::unexpected_handler) ()

Functions

• void __gnu_cxx::__verbose_terminate_handler ()
• exception_ptr std::current_exception () noexcept
• terminate_handler std::get_terminate () noexcept
• unexpected_handler std::get_unexpected () noexcept
• template<typename _Ex >
exception_ptr std::make_exception_ptr (_Ex __ex) noexcept
• void std::rethrow_exception (exception_ptr)
• template<typename _Ex >
void std::rethrow_if_nested (const _Ex &__ex)
• terminate_handler std::set_terminate (terminate_handler) noexcept
• unexpected_handler std::set_unexpected (unexpected_handler) noexcept
• void std::terminate () noexcept
• template<typename _Tp >
void std::throw_with_nested (_Tp &&__t)
• bool std::uncaught_exception () noexcept
• void std::unexpected ()

Generated by Doxygen
130

3.5.3.1 Detailed Description

Since

C++98

Classes and functions for reporting errors via exceptions.

3.5.3.2 Typedef Documentation

fmtflags

class __attribute ((__abi_tag__ ("cxx11"))) failure typedef _Ios_Fmtflags std::ios_base::fmtflags

These are thrown to indicate problems with io.

27.4.2.1.1 Class ios_base::failure

This is a bitmask type.

_Ios_Fmtflags is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type fmtflags are:

• boolalpha

• dec

• fixed

• hex

• internal

• left

• oct

• right

• scientific

• showbase

• showpoint

• showpos

• skipws

• unitbuf

• uppercase

• adjustfield

• basefield

• floatfield

Generated by Doxygen
3.5 Diagnostics 131

terminate_handler

typedef void(∗ std::terminate_handler) ()

If you write a replacement terminate handler, it must be of this type.

unexpected_handler

typedef void(∗ std::unexpected_handler) ()

If you write a replacement unexpected handler, it must be of this type.

3.5.3.3 Function Documentation

__verbose_terminate_handler()

void __gnu_cxx::__verbose_terminate_handler ()

A replacement for the standard terminate_handler which prints more information about the terminating exception (if any)
on stderr.

Call
std::set_terminate(__gnu_cxx::__verbose_terminate_handler)

to use. For more info, see http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.←-


html

In 3.4 and later, this is on by default.

References __gnu_cxx::__verbose_terminate_handler().

Referenced by __gnu_cxx::__verbose_terminate_handler().

current_exception()

exception_ptr std::current_exception () [noexcept]

Obtain an exception_ptr to the currently handled exception.

If there is none, or the currently handled exception is foreign, return the null value.

Since

C++11

Referenced by std::make_exception_ptr().

Generated by Doxygen
132

get_terminate()

terminate_handler std::get_terminate () [noexcept]

Return the current terminate handler.

get_unexpected()

unexpected_handler std::get_unexpected () [noexcept]

Return the current unexpected handler.

Since

C++11

Deprecated Removed from the C++ standard in C++17

make_exception_ptr()

template<typename _Ex >


exception_ptr std::make_exception_ptr (
_Ex __ex) [noexcept]

Obtain an exception_ptr pointing to a copy of the supplied object.

References std::current_exception().

rethrow_exception()

void std::rethrow_exception (
exception_ptr )

Throw the object pointed to by the exception_ptr.

References std::rethrow_exception().

Referenced by std::rethrow_exception(), and std::nested_exception::rethrow_nested().

Generated by Doxygen
3.5 Diagnostics 133

rethrow_if_nested()

template<typename _Ex >


void std::rethrow_if_nested (
const _Ex & __ex) [inline]

Rethrow a nested exception

If __ex contains a std::nested_exception object, call its rethrow_nested() member to rethrow the stored
exception.

After catching an exception thrown by a call to std::throw_with_nested this function can be used to rethrow
the exception that was active when std::throw_with_nested was called.

Since

C++11

set_terminate()

terminate_handler std::set_terminate (
terminate_handler ) [noexcept]

Takes a new handler function as an argument, returns the old function.

set_unexpected()

unexpected_handler std::set_unexpected (
unexpected_handler ) [noexcept]

Takes a new handler function as an argument, returns the old function.

Deprecated Removed from the C++ standard in C++17

terminate()

void std::terminate () [noexcept]

The runtime will call this function if exception handling must be abandoned for any reason. It can also be called by the
user.

Referenced by std::nested_exception::rethrow_nested().

Generated by Doxygen
134

throw_with_nested()

template<typename _Tp >


void std::throw_with_nested (
_Tp && __t) [inline]

Throw an exception that also stores the currently active exception.

If _Tp is derived from std::nested_exception or is not usable as a base-class, throws a copy of __t. Other-
wise, throws an object of an implementation-defined type derived from both _Tp and std::nested_exception,
containing a copy of __t and the result of std::current_exception().

In other words, throws the argument as a new exception that contains the currently active exception nested within it.
This is intended for use in a catch handler to replace the caught exception with a different type, while still preserving
the original exception. When the new exception is caught, the nested exception can be rethrown by using std←-
::rethrow_if_nested.

This can be used at API boundaries, for example to catch a library's internal exception type and rethrow it nested with a
std::runtime_error, or vice versa.

Since

C++11

References std::forward().

uncaught_exception()

bool std::uncaught_exception () [noexcept]

[18.6.4]/1: 'Returns true after completing evaluation of a throw-expression until either completing initialization of
the exception-declaration in the matching handler or entering unexpected() due to the throw; or after entering
terminate() for any reason other than an explicit call to terminate(). [Note: This includes stack unwinding
[15.2]. end note]'

2: 'When uncaught_exception() is true, throwing an exception can result in a call of 1terminate()‘ (15.5.1).’

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry().

unexpected()

void std::unexpected ()

The runtime will call this function if an exception is thrown which violates the function's exception specification.

Deprecated Removed from the C++ standard in C++17

Generated by Doxygen
3.6 Extensions 135

3.6 Extensions

Collaboration diagram for Extensions:

SGI

Extensions Dynamic Bitset.

Policy-Based Data Structures

Topics
• Dynamic Bitset.
• Policy-Based Data Structures
• SGI

Namespaces
• namespace __gnu_cxx
• namespace std::tr2

Classes
• class __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >

3.6.1 Detailed Description

Components generally useful that are not part of any standard.

3.6.2 Dynamic Bitset.

Collaboration diagram for Dynamic Bitset.:

Extensions Dynamic Bitset.

Generated by Doxygen
136

Classes
• struct std::tr2::__dynamic_bitset_base< _WordT, _Alloc >
• class std::tr2::dynamic_bitset< _WordT, _Alloc >

Functions
• template<typename _CharT , typename _Traits , typename _Alloc1 >
void std::tr2::dynamic_bitset< _WordT, _Alloc >::_M_copy_to_string (std::basic_string< _CharT, _Traits, ←-
_Alloc1 > &__str, _CharT __zero=_CharT('0'), _CharT __one=_CharT('1')) const
• template<typename _CharT , typename _Traits , typename _WordT , typename _Alloc >
std::basic_ostream< _CharT, _Traits > & std::tr2::operator<< (std::basic_ostream< _CharT, _Traits > &__os,
const dynamic_bitset< _WordT, _Alloc > &__x)
• template<typename _CharT , typename _Traits , typename _WordT , typename _Alloc >
std::basic_istream< _CharT, _Traits > & std::tr2::operator>> (std::basic_istream< _CharT, _Traits > &__←-
is, dynamic_bitset< _WordT, _Alloc > &__x)

• template<typename _WordT , typename _Alloc >


bool std::tr2::operator!= (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _Alloc
> &__rhs)
• template<typename _WordT , typename _Alloc >
bool std::tr2::operator<= (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _←-
Alloc > &__rhs)
• template<typename _WordT , typename _Alloc >
bool std::tr2::operator> (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _Alloc
> &__rhs)
• template<typename _WordT , typename _Alloc >
bool std::tr2::operator>= (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _←-
Alloc > &__rhs)

• template<typename _WordT , typename _Alloc >


dynamic_bitset< _WordT, _Alloc > std::tr2::operator& (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)
• template<typename _WordT , typename _Alloc >
dynamic_bitset< _WordT, _Alloc > std::tr2::operator| (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)
• template<typename _WordT , typename _Alloc >
dynamic_bitset< _WordT, _Alloc > std::tr2::operator∧ (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)
• template<typename _WordT , typename _Alloc >
dynamic_bitset< _WordT, _Alloc > std::tr2::operator- (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)

3.6.2.1 Detailed Description

3.6.2.2 Function Documentation

operator"!=()

template<typename _WordT , typename _Alloc >


bool std::tr2::operator!= (
const dynamic_bitset< _WordT, _Alloc > & __lhs,
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]

These comparisons for equality/inequality are, well, bitwise.

Generated by Doxygen
3.6 Extensions 137

operator&()

template<typename _WordT , typename _Alloc >


dynamic_bitset< _WordT, _Alloc > std::tr2::operator& (
const dynamic_bitset< _WordT, _Alloc > & __x,
const dynamic_bitset< _WordT, _Alloc > & __y) [inline]

Global bitwise operations on bitsets.

Parameters
_←- A bitset.
_x
_←- A bitset of the same size as __x.
_y

Returns

A new bitset.

These should be self-explanatory.

operator-()

template<typename _WordT , typename _Alloc >


dynamic_bitset< _WordT, _Alloc > std::tr2::operator- (
const dynamic_bitset< _WordT, _Alloc > & __x,
const dynamic_bitset< _WordT, _Alloc > & __y) [inline]

Global bitwise operations on bitsets.

Parameters
_←- A bitset.
_x
_←- A bitset of the same size as __x.
_y

Returns

A new bitset.

These should be self-explanatory.

Generated by Doxygen
138

operator<<()

template<typename _CharT , typename _Traits , typename _WordT , typename _Alloc >


std::basic_ostream< _CharT, _Traits > & std::tr2::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const dynamic_bitset< _WordT, _Alloc > & __x) [inline]

Stream output operator for dynamic_bitset.

operator<=()

template<typename _WordT , typename _Alloc >


bool std::tr2::operator<= (
const dynamic_bitset< _WordT, _Alloc > & __lhs,
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]

These comparisons for equality/inequality are, well, bitwise.

operator>()

template<typename _WordT , typename _Alloc >


bool std::tr2::operator> (
const dynamic_bitset< _WordT, _Alloc > & __lhs,
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]

These comparisons for equality/inequality are, well, bitwise.

operator>=()

template<typename _WordT , typename _Alloc >


bool std::tr2::operator>= (
const dynamic_bitset< _WordT, _Alloc > & __lhs,
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]

These comparisons for equality/inequality are, well, bitwise.

operator>>()

template<typename _CharT , typename _Traits , typename _WordT , typename _Alloc >


std::basic_istream< _CharT, _Traits > & std::tr2::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
dynamic_bitset< _WordT, _Alloc > & __x)

Stream input operator for dynamic_bitset.

Input will skip whitespace and only accept '0' and '1' characters. The dynamic_bitset will grow as necessary to hold the
string of bits.

References std::basic_string< _CharT, _Traits, _Alloc >::empty(), std::basic_string< _CharT, _Traits, _Alloc >::push_back(),
std::basic_ios< _CharT, _Traits >::rdbuf(), std::basic_string< _CharT, _Traits, _Alloc >::reserve(), std::tr2::dynamic_bitset< _WordT, _Al
std::basic_ios< _CharT, _Traits >::setstate(), std::basic_string< _CharT, _Traits, _Alloc >::size(), std::tr2::dynamic_bitset< _WordT, _Allo
and std::basic_ios< _CharT, _Traits >::widen().

Generated by Doxygen
3.6 Extensions 139

operator∧ ()

template<typename _WordT , typename _Alloc >


dynamic_bitset< _WordT, _Alloc > std::tr2::operator∧ (
const dynamic_bitset< _WordT, _Alloc > & __x,
const dynamic_bitset< _WordT, _Alloc > & __y) [inline]

Global bitwise operations on bitsets.

Parameters
_←- A bitset.
_x
_←- A bitset of the same size as __x.
_y

Returns

A new bitset.

These should be self-explanatory.

operator"|()

template<typename _WordT , typename _Alloc >


dynamic_bitset< _WordT, _Alloc > std::tr2::operator| (
const dynamic_bitset< _WordT, _Alloc > & __x,
const dynamic_bitset< _WordT, _Alloc > & __y) [inline]

Global bitwise operations on bitsets.

Parameters
_←- A bitset.
_x
_←- A bitset of the same size as __x.
_y

Returns

A new bitset.

These should be self-explanatory.

Generated by Doxygen
140

3.6.3 Policy-Based Data Structures

Collaboration diagram for Policy-Based Data Structures:

Containers

Exceptions

Extensions Policy-Based Data Structures


Tags

Traits

Topics

• Containers
• Exceptions
• Tags
• Traits

Classes

• struct __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, pairing_heap_tag, null_type >

3.6.3.1 Detailed Description

This is a library of policy-based elementary data structures: associative containers and priority queues. It is designed for
high-performance, flexibility, semantic safety, and conformance to the corresponding containers in std (except for some
points where it differs by design).

For details, see: http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html

Generated by Doxygen
3.6 Extensions 141

3.6.3.2 Containers

Collaboration diagram for Containers:

Branch-Based

Hash-Based

Policy-Based Data Structures Containers


Heap-Based

List-Based

Topics

• Branch-Based
• Hash-Based
• Heap-Based
• List-Based

3.6.3.2.1 Detailed Description

3.6.3.2.2 Branch-Based

Collaboration diagram for Branch-Based:

Containers Branch-Based Base and Policy Classes

Topics

• Base and Policy Classes

Generated by Doxygen
142

Classes

• class __gnu_pbds::basic_branch< Key, Mapped, Tag, Node_Update, Policy_Tl, _Alloc >


• class __gnu_pbds::tree< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc >
• class __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >

Macros

• #define PB_DS_BRANCH_BASE
• #define PB_DS_TREE_BASE
• #define PB_DS_TREE_NODE_AND_IT_TRAITS
• #define PB_DS_TRIE_BASE
• #define PB_DS_TRIE_NODE_AND_IT_TRAITS

Detailed Description

Base and Policy Classes

Collaboration diagram for Base and Policy Classes:

Branch-Based Base and Policy Classes

*Classes

• class __gnu_pbds::detail::ov_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >


• class __gnu_pbds::detail::pat_trie_map< Key, Mapped, Node_And_It_Traits, _Alloc >
• class __gnu_pbds::detail::rb_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >
• class __gnu_pbds::detail::splay_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >

Detailed Description

3.6.3.2.3 Hash-Based

Collaboration diagram for Hash-Based:

Containers Hash-Based Base and Policy Classes

Generated by Doxygen
3.6 Extensions 143

Topics

• Base and Policy Classes

Classes

• class __gnu_pbds::basic_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, Tag, Policy_Tl, _Alloc >
• class __gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash, _Alloc >
• class __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy, Store_Hash, _Al

Macros

• #define PB_DS_CC_HASH_BASE
• #define PB_DS_GP_HASH_BASE
• #define PB_DS_HASH_BASE

Detailed Description

Base and Policy Classes

Collaboration diagram for Base and Policy Classes:

Hash-Based Base and Policy Classes

*Classes

• class __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy >
• class __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe_Fn, Probe_Fn, Resize_

Detailed Description

3.6.3.2.4 Heap-Based

Collaboration diagram for Heap-Based:

Containers Heap-Based Base and Policy Classes

Generated by Doxygen
144

Topics

• Base and Policy Classes

Classes

• class __gnu_pbds::priority_queue< _Tv, Cmp_Fn, Tag, _Alloc >

Detailed Description

Base and Policy Classes

Collaboration diagram for Base and Policy Classes:

Heap-Based Base and Policy Classes

*Classes

• class __gnu_pbds::detail::binary_heap< Value_Type, Cmp_Fn, _Alloc >


• class __gnu_pbds::detail::binomial_heap< Value_Type, Cmp_Fn, _Alloc >
• class __gnu_pbds::detail::pairing_heap< Value_Type, Cmp_Fn, _Alloc >
• class __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >
• class __gnu_pbds::detail::thin_heap< Value_Type, Cmp_Fn, _Alloc >

Detailed Description

3.6.3.2.5 List-Based

Collaboration diagram for List-Based:

Containers List-Based

Generated by Doxygen
3.6 Extensions 145

Classes
• class __gnu_pbds::list_update< Key, Mapped, Eq_Fn, Update_Policy, _Alloc >

Macros
• #define PB_DS_LU_BASE

Detailed Description

3.6.3.3 Exceptions

Collaboration diagram for Exceptions:

Policy-Based Data Structures Exceptions

Classes
• struct __gnu_pbds::container_error
• struct __gnu_pbds::insert_error
• struct __gnu_pbds::join_error
• struct __gnu_pbds::resize_error

Functions
• void __gnu_pbds::__throw_container_error ()
• void __gnu_pbds::__throw_insert_error ()
• void __gnu_pbds::__throw_join_error ()
• void __gnu_pbds::__throw_resize_error ()

3.6.3.3.1 Detailed Description

3.6.3.4 Tags

Collaboration diagram for Tags:

Data Structure Type

Policy-Based Data Structures Tags


Invalidation Guarantees

Generated by Doxygen
146

Topics

• Data Structure Type


• Invalidation Guarantees

Classes

• struct __gnu_pbds::trivial_iterator_tag

Typedefs

• typedef void __gnu_pbds::trivial_iterator_difference_type

3.6.3.4.1 Detailed Description

3.6.3.4.2 Typedef Documentation

trivial_iterator_difference_type

typedef void __gnu_pbds::trivial_iterator_difference_type

Prohibit moving trivial iterators.

3.6.3.4.3 Data Structure Type

Collaboration diagram for Data Structure Type:

Tags Data Structure Type

Generated by Doxygen
3.6 Extensions 147

Classes

• struct __gnu_pbds::associative_tag
• struct __gnu_pbds::basic_branch_tag
• struct __gnu_pbds::basic_hash_tag
• struct __gnu_pbds::binary_heap_tag
• struct __gnu_pbds::binomial_heap_tag
• struct __gnu_pbds::cc_hash_tag
• struct __gnu_pbds::container_tag
• struct __gnu_pbds::gp_hash_tag
• struct __gnu_pbds::list_update_tag
• struct __gnu_pbds::ov_tree_tag
• struct __gnu_pbds::pairing_heap_tag
• struct __gnu_pbds::pat_trie_tag
• struct __gnu_pbds::priority_queue_tag
• struct __gnu_pbds::rb_tree_tag
• struct __gnu_pbds::rc_binomial_heap_tag
• struct __gnu_pbds::sequence_tag
• struct __gnu_pbds::splay_tree_tag
• struct __gnu_pbds::string_tag
• struct __gnu_pbds::thin_heap_tag
• struct __gnu_pbds::tree_tag
• struct __gnu_pbds::trie_tag

Detailed Description

3.6.3.4.4 Invalidation Guarantees

Collaboration diagram for Invalidation Guarantees:

Tags Invalidation Guarantees

Classes

• struct __gnu_pbds::basic_invalidation_guarantee
• struct __gnu_pbds::point_invalidation_guarantee
• struct __gnu_pbds::range_invalidation_guarantee

Generated by Doxygen
148

Detailed Description

3.6.3.5 Traits

Collaboration diagram for Traits:

Policy-Based Data Structures Traits

Classes

• struct __gnu_pbds::detail::bin_search_tree_traits< Key, Mapped, Cmp_Fn, Node_Update, Node, _Alloc >


• struct __gnu_pbds::detail::bin_search_tree_traits< Key, null_type, Cmp_Fn, Node_Update, Node, _Alloc >
• struct __gnu_pbds::container_traits< Cntnr >
• struct __gnu_pbds::container_traits_base< _Tag >
• struct __gnu_pbds::container_traits_base< binary_heap_tag >
• struct __gnu_pbds::container_traits_base< binomial_heap_tag >
• struct __gnu_pbds::container_traits_base< cc_hash_tag >
• struct __gnu_pbds::container_traits_base< gp_hash_tag >
• struct __gnu_pbds::container_traits_base< list_update_tag >
• struct __gnu_pbds::container_traits_base< ov_tree_tag >
• struct __gnu_pbds::container_traits_base< pairing_heap_tag >
• struct __gnu_pbds::container_traits_base< pat_trie_tag >
• struct __gnu_pbds::container_traits_base< rb_tree_tag >
• struct __gnu_pbds::container_traits_base< rc_binomial_heap_tag >
• struct __gnu_pbds::container_traits_base< splay_tree_tag >
• struct __gnu_pbds::container_traits_base< thin_heap_tag >
• struct __gnu_pbds::detail::maybe_null_type< Key, Mapped, _Alloc, Store_Hash >
• struct __gnu_pbds::detail::maybe_null_type< Key, null_type, _Alloc, Store_Hash >
• struct __gnu_pbds::detail::no_throw_copies< Key, Mapped >
• struct __gnu_pbds::detail::no_throw_copies< Key, null_type >
• struct __gnu_pbds::null_node_update< _Tp1, _Tp2, _Tp3, _Tp4 >
• struct __gnu_pbds::null_type
• struct __gnu_pbds::detail::rebind_traits< _Alloc, T >
• struct __gnu_pbds::detail::select_value_type< Key, Mapped >
• struct __gnu_pbds::detail::select_value_type< Key, null_type >
• struct __gnu_pbds::detail::stored_data< _Tv, _Th, Store_Hash >
• struct __gnu_pbds::detail::stored_data< _Tv, _Th, false >
• struct __gnu_pbds::detail::stored_hash< _Th >
• struct __gnu_pbds::detail::stored_value< _Tv >
• struct __gnu_pbds::detail::tree_metadata_helper< Node_Update, _BTp >
• struct __gnu_pbds::detail::tree_metadata_helper< Node_Update, false >

Generated by Doxygen
3.6 Extensions 149

• struct __gnu_pbds::detail::tree_metadata_helper< Node_Update, true >


• struct __gnu_pbds::detail::tree_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >
• struct __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, ov_tree_tag, _Alloc >
• struct __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, rb_tree_tag, _Alloc >
• struct __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, splay_tree_tag, _Alloc >
• struct __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, ov_tree_tag, _Alloc >
• struct __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, rb_tree_tag, _Alloc >
• struct __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, splay_tree_tag, _Alloc >
• struct __gnu_pbds::detail::trie_metadata_helper< Node_Update, _BTp >
• struct __gnu_pbds::detail::trie_metadata_helper< Node_Update, false >
• struct __gnu_pbds::detail::trie_metadata_helper< Node_Update, true >
• struct __gnu_pbds::detail::trie_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >
• struct __gnu_pbds::detail::trie_traits< Key, Mapped, _ATraits, Node_Update, pat_trie_tag, _Alloc >
• struct __gnu_pbds::detail::trie_traits< Key, null_type, _ATraits, Node_Update, pat_trie_tag, _Alloc >
• struct __gnu_pbds::detail::types_traits< Key, Mapped, _Alloc, Store_Hash >

Variables

• static null_type __gnu_pbds::detail::maybe_null_type< Key, null_type, _Alloc, Store_Hash >::s_null_type

3.6.3.5.1 Detailed Description

3.6.4 SGI

Collaboration diagram for SGI:

Extensions SGI

Classes

• class __gnu_cxx::binary_compose< _Operation1, _Operation2, _Operation3 >


• struct __gnu_cxx::constant_binary_fun< _Result, _Arg1, _Arg2 >
• struct __gnu_cxx::constant_unary_fun< _Result, _Argument >
• struct __gnu_cxx::constant_void_fun< _Result >
• class __gnu_cxx::hash_map< _Key, _Tp, _HashFn, _EqualKey, _Alloc >
• class __gnu_cxx::hash_multimap< _Key, _Tp, _HashFn, _EqualKey, _Alloc >
• class __gnu_cxx::hash_multiset< _Value, _HashFcn, _EqualKey, _Alloc >
• class __gnu_cxx::hash_set< _Value, _HashFcn, _EqualKey, _Alloc >
• struct __gnu_cxx::project1st< _Arg1, _Arg2 >

Generated by Doxygen
150

• struct __gnu_cxx::project2nd< _Arg1, _Arg2 >


• struct __gnu_cxx::rb_tree< _Key, _Value, _KeyOfValue, _Compare, _Alloc >
• class __gnu_cxx::rope< _CharT, _Alloc >
• struct __gnu_cxx::select1st< _Pair >
• struct __gnu_cxx::select2nd< _Pair >
• class __gnu_cxx::slist< _Tp, _Alloc >
• class __gnu_cxx::subtractive_rng
• struct __gnu_cxx::temporary_buffer< _ForwardIterator, _Tp >
• class __gnu_cxx::unary_compose< _Operation1, _Operation2 >

Functions

• template<typename _Tp >


const _Tp & __gnu_cxx::__median (const _Tp &__a, const _Tp &__b, const _Tp &__c)
• template<typename _Tp , typename _Compare >
const _Tp & __gnu_cxx::__median (const _Tp &__a, const _Tp &__b, const _Tp &__c, _Compare __comp)
• constexpr size_t std::bitset< _Nb >::_Find_first () const noexcept
• constexpr size_t std::bitset< _Nb >::_Find_next (size_t __prev) const noexcept
• template<class _Operation1 , class _Operation2 >
unary_compose< _Operation1, _Operation2 > __gnu_cxx::compose1 (const _Operation1 &__fn1, const _←-
Operation2 &__fn2)
• template<class _Operation1 , class _Operation2 , class _Operation3 >
binary_compose< _Operation1, _Operation2, _Operation3 > __gnu_cxx::compose2 (const _Operation1 &__fn1,
const _Operation2 &__fn2, const _Operation3 &__fn3)
• template<class _Result >
constant_void_fun< _Result > __gnu_cxx::constant0 (const _Result &__val)
• template<class _Result >
constant_unary_fun< _Result, _Result > __gnu_cxx::constant1 (const _Result &__val)
• template<class _Result >
constant_binary_fun< _Result, _Result, _Result > __gnu_cxx::constant2 (const _Result &__val)
• template<typename _InputIterator , typename _Size , typename _OutputIterator >
std::pair< _InputIterator, _OutputIterator > __gnu_cxx::copy_n (_InputIterator __first, _Size __count, _Output←-
Iterator __result)
• template<typename _InputIterator , typename _Distance >
void __gnu_cxx::distance (_InputIterator __first, _InputIterator __last, _Distance &__n)
• template<class _Tp >
_Tp __gnu_cxx::identity_element (std::multiplies< _Tp >)
• template<class _Tp >
_Tp __gnu_cxx::identity_element (std::plus< _Tp >)
• template<typename _InputIterator1 , typename _InputIterator2 >
int __gnu_cxx::lexicographical_compare_3way (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2
__first2, _InputIterator2 __last2)
• template<typename _Tp , typename _Integer >
_Tp __gnu_cxx::power (_Tp __x, _Integer __n)
• template<typename _Tp , typename _Integer , typename _MonoidOperation >
_Tp __gnu_cxx::power (_Tp __x, _Integer __n, _MonoidOperation __monoid_op)
• template<typename _InputIterator , typename _RandomAccessIterator >
_RandomAccessIterator __gnu_cxx::random_sample (_InputIterator __first, _InputIterator __last, _Random←-
AccessIterator __out_first, _RandomAccessIterator __out_last)
• template<typename _InputIterator , typename _RandomAccessIterator , typename _RandomNumberGenerator >
_RandomAccessIterator __gnu_cxx::random_sample (_InputIterator __first, _InputIterator __last, _Random←-
AccessIterator __out_first, _RandomAccessIterator __out_last, _RandomNumberGenerator &__rand)

Generated by Doxygen
3.6 Extensions 151

• template<typename _ForwardIterator , typename _OutputIterator , typename _Distance >


_OutputIterator __gnu_cxx::random_sample_n (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator
__out, const _Distance __n)
• template<typename _ForwardIterator , typename _OutputIterator , typename _Distance , typename _RandomNumberGenerator >
_OutputIterator __gnu_cxx::random_sample_n (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator
__out, const _Distance __n, _RandomNumberGenerator &__rand)
• template<typename _InputIter , typename _Size , typename _ForwardIter >
std::pair< _InputIter, _ForwardIter > __gnu_cxx::uninitialized_copy_n (_InputIter __first, _Size __count, _←-
ForwardIter __result)

• constexpr bitset< _Nb > & std::bitset< _Nb >::_Unchecked_set (size_t __pos) noexcept
• constexpr bitset< _Nb > & std::bitset< _Nb >::_Unchecked_set (size_t __pos, int __val) noexcept
• constexpr bitset< _Nb > & std::bitset< _Nb >::_Unchecked_reset (size_t __pos) noexcept
• constexpr bitset< _Nb > & std::bitset< _Nb >::_Unchecked_flip (size_t __pos) noexcept
• constexpr bool std::bitset< _Nb >::_Unchecked_test (size_t __pos) const noexcept

3.6.4.1 Detailed Description

Because libstdc++ based its implementation of the STL subsections of the library on the SGI 3.3 implementation, we
inherited their extensions as well.

They are additionally documented in the online documentation, a copy of which is also shipped with the library
source code (in .../docs/html/documentation.html). You can also read the documentation on SGI's site, which is
still running even though the code is not maintained.

NB that the following notes are pulled from various comments all over the place, so they may seem stilted.
The identity_element functions are not part of the C++ standard; SGI provided them as an extension. Its ar-
gument is an operation, and its return value is the identity element for that operation. It is overloaded for addition and
multiplication, and you can overload it for your own nefarious operations.
As an extension to the binders, SGI provided composition functors and wrapper functions to aid in their creation. The
unary_compose functor is constructed from two functions/functors, f and g. Calling operator() with a single
argument x returns f(g(x)). The function compose1 takes the two functions and constructs a unary_compose
variable for you.
binary_compose is constructed from three functors, f, g1, and g2. Its operator() returns f(g1(x),g2(x)). The
function compose2 takes f, g1, and g2, and constructs the binary_compose instance for you. For example, if f
returns an int, then
int answer = (compose2(f,g1,g2))(x);
is equivalent to
int temp1 = g1(x);
int temp2 = g2(x);
int answer = f(temp1,temp2);
But the first form is more compact, and can be passed around as a functor to other algorithms.
As an extension, SGI provided a functor called identity. When a functor is required but no operations are desired,
this can be used as a pass-through. Its operator() returns its argument unchanged.
select1st and select2nd are extensions provided by SGI. Their operator()s take a std::pair as an
argument, and return either the first member or the second member, respectively. They can be used (especially with the
composition functors) to strip data from a sequence before performing the remainder of an algorithm.
The operator() of the project1st functor takes two arbitrary arguments and returns the first one, while
project2nd returns the second one. They are extensions provided by SGI.
These three functors are each constructed from a single arbitrary variable/value. Later, their operator()s completely
ignore any arguments passed, and return the stored value.

• constant_void_fun's operator() takes no arguments

Generated by Doxygen
152

• constant_unary_fun's operator() takes one argument (ignored)

• constant_binary_fun's operator() takes two arguments (ignored)

The helper creator functions constant0, constant1, and constant2 each take a result argument and construct
variables of the appropriate functor type.

3.6.4.2 Function Documentation

__median() [1/2]

template<typename _Tp >


const _Tp & __gnu_cxx::__median (
const _Tp & __a,
const _Tp & __b,
const _Tp & __c)
Find the median of three values.

Parameters
_←- A value.
_a
_←- A value.
_b
_←- A value.
_c

Returns

One of a, b or c.

If {l,m,n} is some convolution of {a,b,c} such that l<=m<=n then the value returned will be m. This is an SGI
extension.

__median() [2/2]

template<typename _Tp , typename _Compare >


const _Tp & __gnu_cxx::__median (
const _Tp & __a,
const _Tp & __b,
const _Tp & __c,
_Compare __comp)
Find the median of three values using a predicate for comparison.

Parameters
__a A value.
__b A value.
__c A value.
__comp A binary predicate.

Returns

One of a, b or c.

If {l,m,n} is some convolution of {a,b,c} such that comp(l,m) and comp(m,n) are both true then the value returned
will be m. This is an SGI extension.

Generated by Doxygen
3.6 Extensions 153

_Find_first()

template<size_t _Nb>
size_t std::bitset< _Nb >::_Find_first () const [inline], [constexpr], [noexcept]
Finds the index of the first "on" bit.
Returns

The index of the first bit set, or size() if not found.

See also

_Find_next

_Find_next()

template<size_t _Nb>
size_t std::bitset< _Nb >::_Find_next (
size_t __prev) const [inline], [constexpr], [noexcept]
Finds the index of the next "on" bit after prev.

Returns

The index of the next bit set, or size() if not found.

Parameters
__prev Where to start searching.

See also

_Find_first

_Unchecked_flip()

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::_Unchecked_flip (
size_t __pos) [inline], [constexpr], [noexcept]
These versions of single-bit set, reset, flip, and test are extensions from the SGI version. They do no range checking.

_Unchecked_reset()

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::_Unchecked_reset (
size_t __pos) [inline], [constexpr], [noexcept]
These versions of single-bit set, reset, flip, and test are extensions from the SGI version. They do no range checking.

_Unchecked_set() [1/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::_Unchecked_set (
size_t __pos) [inline], [constexpr], [noexcept]
These versions of single-bit set, reset, flip, and test are extensions from the SGI version. They do no range checking.

Generated by Doxygen
154

_Unchecked_set() [2/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::_Unchecked_set (
size_t __pos,
int __val) [inline], [constexpr], [noexcept]
These versions of single-bit set, reset, flip, and test are extensions from the SGI version. They do no range checking.

_Unchecked_test()

template<size_t _Nb>
bool std::bitset< _Nb >::_Unchecked_test (
size_t __pos) const [inline], [constexpr], [noexcept]
These versions of single-bit set, reset, flip, and test are extensions from the SGI version. They do no range checking.

compose1()

template<class _Operation1 , class _Operation2 >


unary_compose< _Operation1, _Operation2 > __gnu_cxx::compose1 (
const _Operation1 & __fn1,
const _Operation2 & __fn2) [inline]
An SGI extension .

compose2()

template<class _Operation1 , class _Operation2 , class _Operation3 >


binary_compose< _Operation1, _Operation2, _Operation3 > __gnu_cxx::compose2 (
const _Operation1 & __fn1,
const _Operation2 & __fn2,
const _Operation3 & __fn3) [inline]
An SGI extension .

constant0()

template<class _Result >


constant_void_fun< _Result > __gnu_cxx::constant0 (
const _Result & __val) [inline]
An SGI extension .

constant1()

template<class _Result >


constant_unary_fun< _Result, _Result > __gnu_cxx::constant1 (
const _Result & __val) [inline]
An SGI extension .

constant2()

template<class _Result >


constant_binary_fun< _Result, _Result, _Result > __gnu_cxx::constant2 (
const _Result & __val) [inline]
An SGI extension .

Generated by Doxygen
3.6 Extensions 155

copy_n()

template<typename _InputIterator , typename _Size , typename _OutputIterator >


std::pair< _InputIterator, _OutputIterator > __gnu_cxx::copy_n (
_InputIterator __first,
_Size __count,
_OutputIterator __result) [inline]
Copies the range [first,first+count) into [result,result+count).

Parameters

__first An input iterator.


__count The number of elements to copy.
__result An output iterator.

Returns

A std::pair composed of first+count and result+count.

This is an SGI extension. This inline function will boil down to a call to memmove whenever possible. Failing that, if ran-
dom access iterators are passed, then the loop count will be known (and therefore a candidate for compiler optimizations
such as unrolling).

distance()

template<typename _InputIterator , typename _Distance >


void __gnu_cxx::distance (
_InputIterator __first,
_InputIterator __last,
_Distance & __n) [inline]
This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

identity_element() [1/2]

template<class _Tp >


_Tp __gnu_cxx::identity_element (
std::multiplies< _Tp > ) [inline]
An SGI extension .

identity_element() [2/2]

template<class _Tp >


_Tp __gnu_cxx::identity_element (
std::plus< _Tp > ) [inline]
An SGI extension .

lexicographical_compare_3way()

template<typename _InputIterator1 , typename _InputIterator2 >


int __gnu_cxx::lexicographical_compare_3way (
_InputIterator1 __first1,

Generated by Doxygen
156

_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2)
memcmp on steroids.

Parameters

__first1 An input iterator.


__last1 An input iterator.
__first2 An input iterator.
__last2 An input iterator.

Returns

An int, as with memcmp.

The return value will be less than zero if the first range is lexigraphically less than the second, greater than zero if the
second range is lexigraphically less than the first, and zero otherwise. This is an SGI extension.

power() [1/2]

template<typename _Tp , typename _Integer >


_Tp __gnu_cxx::power (
_Tp __x,
_Integer __n) [inline]
This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

power() [2/2]

template<typename _Tp , typename _Integer , typename _MonoidOperation >


_Tp __gnu_cxx::power (
_Tp __x,
_Integer __n,
_MonoidOperation __monoid_op) [inline]
This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

random_sample() [1/2]

template<typename _InputIterator , typename _RandomAccessIterator >


_RandomAccessIterator __gnu_cxx::random_sample (
_InputIterator __first,
_InputIterator __last,
_RandomAccessIterator __out_first,
_RandomAccessIterator __out_last) [inline]
This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

Generated by Doxygen
3.6 Extensions 157

random_sample() [2/2]

template<typename _InputIterator , typename _RandomAccessIterator , typename _RandomNumber←-


Generator >
_RandomAccessIterator __gnu_cxx::random_sample (
_InputIterator __first,
_InputIterator __last,
_RandomAccessIterator __out_first,
_RandomAccessIterator __out_last,
_RandomNumberGenerator & __rand) [inline]
This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

random_sample_n() [1/2]

template<typename _ForwardIterator , typename _OutputIterator , typename _Distance >


_OutputIterator __gnu_cxx::random_sample_n (
_ForwardIterator __first,
_ForwardIterator __last,
_OutputIterator __out,
const _Distance __n)
This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

random_sample_n() [2/2]

template<typename _ForwardIterator , typename _OutputIterator , typename _Distance , typename _←-


RandomNumberGenerator >
_OutputIterator __gnu_cxx::random_sample_n (
_ForwardIterator __first,
_ForwardIterator __last,
_OutputIterator __out,
const _Distance __n,
_RandomNumberGenerator & __rand)
This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

uninitialized_copy_n()

template<typename _InputIter , typename _Size , typename _ForwardIter >


std::pair< _InputIter, _ForwardIter > __gnu_cxx::uninitialized_copy_n (
_InputIter __first,
_Size __count,
_ForwardIter __result) [inline]
Copies the range [first,last) into result.

Generated by Doxygen
158

Parameters

__first An input iterator.


__count Length
__result An output iterator.

Returns

__result + (__first + __count)

Like copy(), but does not require an initialized output range.

3.7 Filesystem
Files

• file filesystem

Classes

• class std::filesystem::directory_entry
• class std::filesystem::directory_iterator
• class std::filesystem::file_status
• class std::filesystem::filesystem_error
• class std::filesystem::path::iterator
• class std::filesystem::path
• class std::filesystem::recursive_directory_iterator
• struct std::filesystem::space_info

Typedefs

• using std::filesystem::file_time_type

Enumerations

• enum class std::filesystem::copy_options : unsigned short {


none , skip_existing , overwrite_existing , update_existing ,
recursive , copy_symlinks , skip_symlinks , directories_only ,
create_symlinks , create_hard_links }
• enum class std::filesystem::directory_options : unsigned char { none , follow_directory_symlink , skip_←-
permission_denied }
• enum class std::filesystem::file_type : signed char {
none , not_found , regular , directory ,
symlink , block , character , fifo ,
socket , unknown }
• enum class std::filesystem::perm_options : unsigned { replace , add , remove , nofollow }
• enum class std::filesystem::perms : unsigned {
none , owner_read , owner_write , owner_exec ,
owner_all , group_read , group_write , group_exec ,
group_all , others_read , others_write , others_exec ,
others_all , all , set_uid , set_gid ,
sticky_bit , mask , unknown }

Generated by Doxygen
3.7 Filesystem 159

Functions

• path std::filesystem::absolute (const path &__p)


• path std::filesystem::absolute (const path &__p, error_code &__ec)
• path & std::filesystem::path::assign (string_type &&__source)
• iterator std::filesystem::path::begin () const noexcept
• path std::filesystem::canonical (const path &__p)
• path std::filesystem::canonical (const path &__p, error_code &__ec)
• int std::filesystem::path::compare (const string_type &__s) const noexcept
• int std::filesystem::path::compare (const value_type ∗__s) const noexcept
• void std::filesystem::copy (const path &__from, const path &__to)
• void std::filesystem::copy (const path &__from, const path &__to, copy_options __options)
• void std::filesystem::copy (const path &__from, const path &__to, copy_options __options, error_code &)
• void std::filesystem::copy (const path &__from, const path &__to, error_code &__ec)
• bool std::filesystem::copy_file (const path &__from, const path &__to)
• bool std::filesystem::copy_file (const path &__from, const path &__to, copy_options __option)
• bool std::filesystem::copy_file (const path &__from, const path &__to, copy_options __option, error_code &)
• bool std::filesystem::copy_file (const path &__from, const path &__to, error_code &__ec)
• void std::filesystem::copy_symlink (const path &__existing_symlink, const path &__new_symlink)
• void std::filesystem::copy_symlink (const path &__existing_symlink, const path &__new_symlink, error_code
&__ec) noexcept
• bool std::filesystem::create_directories (const path &__p)
• bool std::filesystem::create_directories (const path &__p, error_code &__ec)
• bool std::filesystem::create_directory (const path &__p)
• bool std::filesystem::create_directory (const path &__p, const path &__attributes)
• bool std::filesystem::create_directory (const path &__p, const path &__attributes, error_code &__ec) noexcept
• bool std::filesystem::create_directory (const path &__p, error_code &__ec) noexcept
• void std::filesystem::create_directory_symlink (const path &__to, const path &__new_symlink)
• void std::filesystem::create_directory_symlink (const path &__to, const path &__new_symlink, error_code
&__ec) noexcept
• void std::filesystem::create_hard_link (const path &__to, const path &__new_hard_link)
• void std::filesystem::create_hard_link (const path &__to, const path &__new_hard_link, error_code &__ec)
noexcept
• void std::filesystem::create_symlink (const path &__to, const path &__new_symlink)
• void std::filesystem::create_symlink (const path &__to, const path &__new_symlink, error_code &__ec) noex-
cept
• path std::filesystem::current_path ()
• void std::filesystem::current_path (const path &__p)
• void std::filesystem::current_path (const path &__p, error_code &__ec) noexcept
• path std::filesystem::current_path (error_code &__ec)
• iterator std::filesystem::path::end () const noexcept
• bool std::filesystem::equivalent (const path &__p1, const path &__p2)
• bool std::filesystem::equivalent (const path &__p1, const path &__p2, error_code &__ec) noexcept
• bool std::filesystem::exists (const path &__p)
• bool std::filesystem::exists (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::exists (file_status) noexcept
• path std::filesystem::path::extension () const
• uintmax_t std::filesystem::file_size (const path &)
• uintmax_t std::filesystem::file_size (const path &, error_code &) noexcept
• path std::filesystem::path::filename () const
• std::string std::filesystem::path::generic_string () const

Generated by Doxygen
160

• template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>


std::basic_string< _CharT, _Traits, _Allocator > std::filesystem::path::generic_string (const _Allocator &__←-
a=_Allocator()) const
• std::u16string std::filesystem::path::generic_u16string () const
• std::u32string std::filesystem::path::generic_u32string () const
• std::string std::filesystem::path::generic_u8string () const
• std::wstring std::filesystem::path::generic_wstring () const
• uintmax_t std::filesystem::hard_link_count (const path &)
• uintmax_t std::filesystem::hard_link_count (const path &, error_code &) noexcept
• bool std::filesystem::path::has_extension () const noexcept
• bool std::filesystem::path::has_stem () const noexcept
• size_t std::filesystem::hash_value (const path &__p) noexcept
• bool std::filesystem::path::is_absolute () const noexcept
• bool std::filesystem::is_block_file (const path &__p)
• bool std::filesystem::is_block_file (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_block_file (file_status __s) noexcept
• bool std::filesystem::is_character_file (const path &__p)
• bool std::filesystem::is_character_file (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_character_file (file_status __s) noexcept
• bool std::filesystem::is_directory (const path &__p)
• bool std::filesystem::is_directory (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_directory (file_status __s) noexcept
• bool std::filesystem::is_empty (const path &__p)
• bool std::filesystem::is_empty (const path &__p, error_code &__ec)
• bool std::filesystem::is_fifo (const path &__p)
• bool std::filesystem::is_fifo (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_fifo (file_status __s) noexcept
• bool std::filesystem::is_other (const path &__p)
• bool std::filesystem::is_other (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_other (file_status) noexcept
• bool std::filesystem::is_regular_file (const path &__p)
• bool std::filesystem::is_regular_file (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_regular_file (file_status) noexcept
• bool std::filesystem::is_socket (const path &__p)
• bool std::filesystem::is_socket (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_socket (file_status __s) noexcept
• bool std::filesystem::is_symlink (const path &__p)
• bool std::filesystem::is_symlink (const path &__p, error_code &__ec) noexcept
• bool std::filesystem::is_symlink (file_status) noexcept
• file_time_type std::filesystem::last_write_time (const path &)
• file_time_type std::filesystem::last_write_time (const path &, error_code &) noexcept
• void std::filesystem::last_write_time (const path &__p, file_time_type __new_time)
• void std::filesystem::last_write_time (const path &__p, file_time_type __new_time, error_code &__ec) noex-
cept
• path & std::filesystem::path::make_preferred ()
• copy_options & std::filesystem::operator&= (copy_options &__x, copy_options __y) noexcept
• reference std::filesystem::path::iterator::operator∗ () const noexcept
• iterator & std::filesystem::path::iterator::operator++ () noexcept
• template<typename _CharT >
__detail::_Path2< _CharT ∗ > & std::filesystem::path::operator+= (_CharT __x)
• path & std::filesystem::path::operator+= (basic_string_view< value_type > __x)

Generated by Doxygen
3.7 Filesystem 161

• path & std::filesystem::path::operator+= (const string_type &__x)


• path & std::filesystem::path::operator+= (const value_type ∗__x)
• path & std::filesystem::path::operator+= (value_type __x)
• iterator & std::filesystem::path::iterator::operator-- () noexcept
• path & std::filesystem::path::operator= (path &&) noexcept
• path & std::filesystem::path::operator= (string_type &&__source)
• constexpr copy_options std::filesystem::operator∧ (copy_options __x, copy_options __y) noexcept
• copy_options & std::filesystem::operator∧ = (copy_options &__x, copy_options __y) noexcept
• constexpr copy_options std::filesystem::operator| (copy_options __x, copy_options __y) noexcept
• copy_options & std::filesystem::operator|= (copy_options &__x, copy_options __y) noexcept
• constexpr copy_options std::filesystem::operator∼ (copy_options __x) noexcept
• void std::filesystem::permissions (const path &, perms, perm_options, error_code &) noexcept
• void std::filesystem::permissions (const path &__p, perms __prms, error_code &__ec) noexcept
• void std::filesystem::permissions (const path &__p, perms __prms, perm_options __opts=perm_options←-
::replace)
• path std::filesystem::proximate (const path &__p, const path &__base, error_code &__ec)
• path std::filesystem::proximate (const path &__p, const path &__base=current_path())
• path std::filesystem::proximate (const path &__p, error_code &__ec)
• path std::filesystem::read_symlink (const path &__p)
• path std::filesystem::read_symlink (const path &__p, error_code &__ec)
• path std::filesystem::relative (const path &__p, const path &__base, error_code &__ec)
• path std::filesystem::relative (const path &__p, const path &__base=current_path())
• path std::filesystem::relative (const path &__p, error_code &__ec)
• bool std::filesystem::remove (const path &, error_code &) noexcept
• bool std::filesystem::remove (const path &__p)
• uintmax_t std::filesystem::remove_all (const path &)
• uintmax_t std::filesystem::remove_all (const path &, error_code &)
• void std::filesystem::rename (const path &__from, const path &__to)
• void std::filesystem::rename (const path &__from, const path &__to, error_code &__ec) noexcept
• void std::filesystem::resize_file (const path &__p, uintmax_t __size)
• void std::filesystem::resize_file (const path &__p, uintmax_t __size, error_code &__ec) noexcept
• space_info std::filesystem::space (const path &__p)
• space_info std::filesystem::space (const path &__p, error_code &__ec) noexcept
• file_status std::filesystem::status (const path &)
• file_status std::filesystem::status (const path &, error_code &) noexcept
• bool std::filesystem::status_known (file_status) noexcept
• path std::filesystem::path::stem () const
• std::string std::filesystem::path::string () const
• template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > std::filesystem::path::string (const _Allocator &__a) const
• void swap (path &__lhs, path &__rhs) noexcept
• void std::filesystem::path::swap (path &__rhs) noexcept
• file_status std::filesystem::symlink_status (const path &)
• file_status std::filesystem::symlink_status (const path &, error_code &) noexcept
• path std::filesystem::temp_directory_path ()
• path std::filesystem::temp_directory_path (error_code &__ec)
• std::u16string std::filesystem::path::u16string () const
• std::u32string std::filesystem::path::u32string () const
• template<typename _InputIterator , typename _Require = __detail::_Path2<_InputIterator>, typename _CharT = __detail::__value_type←-
_is_char_or_char8_t<_InputIterator>>
path u8path (_InputIterator __first, _InputIterator __last)

Generated by Doxygen
162

• template<typename _Source , typename _Require = __detail::_Path<_Source>, typename _CharT = __detail::__value_type_is_char_or←-


_char8_t<_Source>>
path u8path (const _Source &__source)
• std::string std::filesystem::path::u8string () const
• path std::filesystem::weakly_canonical (const path &__p)
• path std::filesystem::weakly_canonical (const path &__p, error_code &__ec)
• std::wstring std::filesystem::path::wstring () const

• constexpr perms std::filesystem::operator| (perms __x, perms __y) noexcept


• constexpr perms std::filesystem::operator∧ (perms __x, perms __y) noexcept
• constexpr perms std::filesystem::operator∼ (perms __x) noexcept
• perms & std::filesystem::operator&= (perms &__x, perms __y) noexcept
• perms & std::filesystem::operator|= (perms &__x, perms __y) noexcept
• perms & std::filesystem::operator∧ = (perms &__x, perms __y) noexcept

• constexpr perm_options std::filesystem::operator| (perm_options __x, perm_options __y) noexcept


• constexpr perm_options std::filesystem::operator∧ (perm_options __x, perm_options __y) noexcept
• constexpr perm_options std::filesystem::operator∼ (perm_options __x) noexcept
• perm_options & std::filesystem::operator&= (perm_options &__x, perm_options __y) noexcept
• perm_options & std::filesystem::operator|= (perm_options &__x, perm_options __y) noexcept
• perm_options & std::filesystem::operator∧ = (perm_options &__x, perm_options __y) noexcept

• constexpr directory_options std::filesystem::operator| (directory_options __x, directory_options __y) noexcept


• constexpr directory_options std::filesystem::operator∧ (directory_options __x, directory_options __y) noexcept
• constexpr directory_options std::filesystem::operator∼ (directory_options __x) noexcept
• directory_options & std::filesystem::operator&= (directory_options &__x, directory_options __y) noexcept
• directory_options & std::filesystem::operator|= (directory_options &__x, directory_options __y) noexcept
• directory_options & std::filesystem::operator∧ = (directory_options &__x, directory_options __y) noexcept

• directory_iterator begin (directory_iterator __iter) noexcept


• directory_iterator end (directory_iterator) noexcept

• recursive_directory_iterator begin (recursive_directory_iterator __iter) noexcept


• recursive_directory_iterator end (recursive_directory_iterator) noexcept

3.7.1 Detailed Description

3.7.2 Typedef Documentation

file_time_type

using std::filesystem::file_time_type
The type used for file timestamps.

3.7.3 Enumeration Type Documentation

copy_options

enum class std::filesystem::copy_options : unsigned short [strong]


Bitmask type controlling effects of filesystem::copy

directory_options

enum class std::filesystem::directory_options : unsigned char [strong]


Bitmask type controlling directory iteration.

Generated by Doxygen
3.7 Filesystem 163

file_type

enum class std::filesystem::file_type : signed char [strong]


Enumerated type representing the type of a file.

perm_options

enum class std::filesystem::perm_options : unsigned [strong]


Bitmask type controlling changes to permissions.

perms

enum class std::filesystem::perms : unsigned [strong]


Bitmask type representing file access permissions.

3.7.4 Function Documentation

begin() [1/2]

directory_iterator begin (
directory_iterator __iter) [related]
Enable range-based for using directory_iterator.

Since

C++17

e.g. for (auto& entry : std::filesystem::directory_iterator(".")) ...

begin() [2/2]

recursive_directory_iterator begin (
recursive_directory_iterator __iter) [related]
Enable range-based for using recursive_directory_iterator.

Since

C++17

e.g. for (auto& entry : recursive_directory_iterator(".")) ...

end() [1/2]

directory_iterator end (
directory_iterator ) [related]
Return a past-the-end directory_iterator.

end() [2/2]

recursive_directory_iterator end (
recursive_directory_iterator ) [related]
Return a past-the-end recursive_directory_iterator.

u8path() [1/2]

template<typename _InputIterator , typename _Require = __detail::_Path2<_InputIterator>, typename


_CharT = __detail::__value_type_is_char_or_char8_t<_InputIterator>>
path u8path (

Generated by Doxygen
164

_InputIterator __first,
_InputIterator __last) [related]
Create a path from a UTF-8-encoded sequence of char
Since

C++17

u8path() [2/2]

template<typename _Source , typename _Require = __detail::_Path<_Source>, typename _CharT = __←-


detail::__value_type_is_char_or_char8_t<_Source>>
path u8path (
const _Source & __source) [related]
Create a path from a UTF-8-encoded sequence of char
Since

C++17

3.8 I/O
Collaboration diagram for I/O:

std::istreambuf_iterator
std::ostreambuf_iterator
I/O Iterators

Classes

• class std::basic_filebuf< _CharT, _Traits >


• class std::basic_fstream< _CharT, _Traits >
• class std::basic_ifstream< _CharT, _Traits >
• class std::basic_ios< _CharT, _Traits >
• class std::basic_iostream< _CharT, _Traits >
• class std::basic_istream< _CharT, _Traits >
• class std::basic_istringstream< _CharT, _Traits, _Alloc >
• class std::basic_ofstream< _CharT, _Traits >
• class std::basic_ostream< _CharT, _Traits >
• class std::basic_ostringstream< _CharT, _Traits, _Alloc >
• class std::basic_streambuf< _CharT, _Traits >
• class std::basic_stringbuf< _CharT, _Traits, _Alloc >
• class std::basic_stringstream< _CharT, _Traits, _Alloc >
• class std::ios_base
• class std::istreambuf_iterator< _CharT, _Traits >
• class std::ostreambuf_iterator< _CharT, _Traits >
• class __gnu_cxx::stdio_filebuf< _CharT, _Traits >
• class __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >

Generated by Doxygen
3.8 I/O 165

Typedefs

• typedef basic_filebuf< char > std::filebuf


• typedef basic_fstream< char > std::fstream
• typedef basic_ifstream< char > std::ifstream
• typedef basic_ios< char > std::ios
• typedef basic_iostream< char > std::iostream
• typedef basic_istream< char > std::istream
• typedef basic_istringstream< char > std::istringstream
• typedef basic_ofstream< char > std::ofstream
• typedef basic_ostream< char > std::ostream
• typedef basic_ostringstream< char > std::ostringstream
• typedef basic_streambuf< char > std::streambuf
• typedef basic_stringbuf< char > std::stringbuf
• typedef basic_stringstream< char > std::stringstream
• typedef basic_filebuf< wchar_t > std::wfilebuf
• typedef basic_fstream< wchar_t > std::wfstream
• typedef basic_ifstream< wchar_t > std::wifstream
• typedef basic_ios< wchar_t > std::wios
• typedef basic_iostream< wchar_t > std::wiostream
• typedef basic_istream< wchar_t > std::wistream
• typedef basic_istringstream< wchar_t > std::wistringstream
• typedef basic_ofstream< wchar_t > std::wofstream
• typedef basic_ostream< wchar_t > std::wostream
• typedef basic_ostringstream< wchar_t > std::wostringstream
• typedef basic_streambuf< wchar_t > std::wstreambuf
• typedef basic_stringbuf< wchar_t > std::wstringbuf
• typedef basic_stringstream< wchar_t > std::wstringstream

3.8.1 Detailed Description

Nearly all of the I/O classes are parameterized on the type of characters they read and write. (The major exception is
ios_base at the top of the hierarchy.) This is a change from pre-Standard streams, which were not templates.
For ease of use and compatibility, all of the basic_∗ I/O-related classes are given typedef names for both of the builtin
character widths (wide and narrow). The typedefs are the same as the pre-Standard names, for example:
typedef basic_ifstream<char> ifstream;
Because properly forward-declaring these classes can be difficult, you should not do it yourself. Instead, include the
<iosfwd> header, which contains only declarations of all the I/O classes as well as the typedefs. Trying to forward-
declare the typedefs themselves (e.g., class ostream;) is not valid ISO C++.
For more specific declarations, see https://gcc.gnu.org/onlinedocs/libstdc++/manual/io.←-
html#std.io.objects

3.8.2 Typedef Documentation

filebuf

typedef basic_filebuf<char> std::filebuf


Class for char file buffers.

fstream

typedef basic_fstream<char> std::fstream


Class for char mixed input and output file streams.

Generated by Doxygen
166

ifstream

typedef basic_ifstream<char> std::ifstream


Class for char input file streams.

ios

typedef basic_ios<char> std::ios


Base class for char streams.

iostream

typedef basic_iostream<char> std::iostream


Base class for char mixed input and output streams.

istream

typedef basic_istream<char> std::istream


Base class for char input streams.

istringstream

typedef basic_istringstream<char> std::istringstream


Class for char input memory streams.

ofstream

typedef basic_ofstream<char> std::ofstream


Class for char output file streams.

ostream

typedef basic_ostream<char> std::ostream


Base class for char output streams.

ostringstream

typedef basic_ostringstream<char> std::ostringstream


Class for char output memory streams.

streambuf

typedef basic_streambuf<char> std::streambuf


Base class for char buffers.

stringbuf

typedef basic_stringbuf<char> std::stringbuf


Class for char memory buffers.

stringstream

typedef basic_stringstream<char> std::stringstream


Class for char mixed input and output memory streams.

Generated by Doxygen
3.8 I/O 167

wfilebuf

typedef basic_filebuf<wchar_t> std::wfilebuf


Class for wchar_t file buffers.

wfstream

typedef basic_fstream<wchar_t> std::wfstream


Class for wchar_t mixed input and output file streams.

wifstream

typedef basic_ifstream<wchar_t> std::wifstream


Class for wchar_t input file streams.

wios

typedef basic_ios<wchar_t> std::wios


Base class for wchar_t streams.

wiostream

typedef basic_iostream<wchar_t> std::wiostream


Base class for wchar_t mixed input and output streams.

wistream

typedef basic_istream<wchar_t> std::wistream


Base class for wchar_t input streams.

wistringstream

typedef basic_istringstream<wchar_t> std::wistringstream


Class for wchar_t input memory streams.

wofstream

typedef basic_ofstream<wchar_t> std::wofstream


Class for wchar_t output file streams.

wostream

typedef basic_ostream<wchar_t> std::wostream


Base class for wchar_t output streams.

wostringstream

typedef basic_ostringstream<wchar_t> std::wostringstream


Class for wchar_t output memory streams.

wstreambuf

typedef basic_streambuf<wchar_t> std::wstreambuf


Base class for wchar_t buffers.

Generated by Doxygen
168

wstringbuf

typedef basic_stringbuf<wchar_t> std::wstringbuf


Class for wchar_t memory buffers.

wstringstream

typedef basic_stringstream<wchar_t> std::wstringstream


Class for wchar_t mixed input and output memory streams.

3.9 Iterators
Collaboration diagram for Iterators:

std::istreambuf_iterator
std::ostreambuf_iterator I/O

Iterators
Iterator Tags
std::input_iterator_tag

Topics

• Iterator Tags

Classes

• class std::back_insert_iterator< _Container >


• class std::common_iterator< _It, _Sent >
• class std::counted_iterator< _It >
• class std::front_insert_iterator< _Container >
• struct std::input_iterator_tag
• class std::insert_iterator< _Container >
• class std::istream_iterator< _Tp, _CharT, _Traits, _Dist >
• class std::istreambuf_iterator< _CharT, _Traits >
• struct std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >
• struct std::iterator_traits< _Iterator >
• struct std::iterator_traits< _Tp ∗ >
• class std::move_iterator< _Iterator >
• class std::move_sentinel< _Sent >
• class std::ostream_iterator< _Tp, _CharT, _Traits >
• class std::ostreambuf_iterator< _CharT, _Traits >
• class std::reverse_iterator< _Iterator >

Generated by Doxygen
3.9 Iterators 169

Macros

• #define _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter)
• #define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter)

Functions

• template<bool _IsMove, typename _CharT >


__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type std::__←-
copy_move_a2 (_CharT ∗__first, _CharT ∗__last, ostreambuf_iterator< _CharT > __result)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type std::__←-
copy_move_a2 (const _CharT ∗__first, const _CharT ∗__last, ostreambuf_iterator< _CharT > __result)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT ∗ >::__type std::__copy_move_a2
(istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, _CharT ∗__result)
• template<typename _CharT , typename _Size >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT ∗ >::__type std::__copy_n_a (istreambuf_iterator<
_CharT > __it, _Size __n, _CharT ∗__result, bool __strict)
• template<typename _Iter >
constexpr iterator_traits< _Iter >::iterator_category std::__iterator_category (const _Iter &)
• template<typename _Iterator , typename _ReturnType = __conditional_t<__move_if_noexcept_cond <typename iterator_traits<_←-
Iterator>::value_type>::value, _Iterator, move_iterator<_Iterator>>>
constexpr _ReturnType std::__make_move_if_noexcept_iterator (_Iterator __i)
• template<typename _Tp , typename _ReturnType = __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp∗, move_←-
iterator<_Tp∗>>>
constexpr _ReturnType std::__make_move_if_noexcept_iterator (_Tp ∗__i)
• template<typename _Iterator >
constexpr reverse_iterator< _Iterator > std::__make_reverse_iterator (_Iterator __i)
• template<typename _CharT , typename _Distance >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, void >::__type std::advance (istreambuf_iterator<
_CharT > &__i, _Distance __n)
• template<typename _Container >
constexpr back_insert_iterator< _Container > std::back_inserter (_Container &__x)
• template<typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type std::copy
(istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, ostreambuf_iterator< _CharT >
__result)
• template<typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, istreambuf_iterator< _CharT > >::__type std::find
(istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, const _CharT &__val)
• template<typename _Container >
constexpr front_insert_iterator< _Container > std::front_inserter (_Container &__x)
• template<typename _Container >
constexpr insert_iterator< _Container > std::inserter (_Container &__x, std::__detail::__range_iter_t< _←-
Container > __i)
• template<typename _Iterator >
constexpr move_iterator< _Iterator > std::make_move_iterator (_Iterator __i)
• template<typename _Iterator >
constexpr reverse_iterator< _Iterator > std::make_reverse_iterator (_Iterator __i)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() != __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator!= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR
> &__y)

Generated by Doxygen
170

• template<typename _Iterator >


requires requires { { __x.base() + __n } -> same_as<_Iterator>; }
constexpr move_iterator< _Iterator > std::operator+ (typename move_iterator< _Iterator >::difference_type ←-
__n, const move_iterator< _Iterator > &__x)
• template<typename _Iterator >
constexpr reverse_iterator< _Iterator > std::operator+ (typename reverse_iterator< _Iterator >::difference_←-
type __n, const reverse_iterator< _Iterator > &__x)
• template<typename _IteratorL , typename _IteratorR >
constexpr auto std::operator- (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &←-
__y) -> decltype(__x.base() - __y.base())
• template<typename _IteratorL , typename _IteratorR >
constexpr auto std::operator- (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR >
&__y) -> decltype(__y.base() - __x.base())
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator< (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR >
&__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() > __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator< (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR
> &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }
constexpr bool std::operator<= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR >
&__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() >= __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator<= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR
> &__y)
• template<three_way_comparable _Iterator>
constexpr compare_three_way_result_t< _Iterator > std::operator<=> (const move_iterator< _Iterator > &←-
__x, const move_iterator< _Iterator > &__y)
• template<typename _IteratorL , three_way_comparable_with< _IteratorL > _IteratorR>
constexpr compare_three_way_result_t< _IteratorL, _IteratorR > std::operator<=> (const move_iterator< _←-
IteratorL > &__x, const move_iterator< _IteratorR > &__y)
• template<three_way_comparable _Iterator>
constexpr compare_three_way_result_t< _Iterator, _Iterator > std::operator<=> (const reverse_iterator< _←-
Iterator > &__x, const reverse_iterator< _Iterator > &__y)
• template<typename _IteratorL , three_way_comparable_with< _IteratorL > _IteratorR>
constexpr compare_three_way_result_t< _IteratorL, _IteratorR > std::operator<=> (const reverse_iterator<
_IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
• template<typename _CharT , typename _Traits >
bool std::operator== (const istreambuf_iterator< _CharT, _Traits > &__a, const istreambuf_iterator< _CharT,
_Traits > &__b)
• template<typename _Iterator >
constexpr bool std::operator== (const move_iterator< _Iterator > &__x, const move_iterator< _Iterator > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator== (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR >
&__y)
• template<typename _Iterator >
requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator== (const reverse_iterator< _Iterator > &__x, const reverse_iterator< _Iterator >
&__y)

Generated by Doxygen
3.9 Iterators 171

• template<typename _IteratorL , typename _IteratorR >


requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator== (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR >
&__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }
constexpr bool std::operator> (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR >
&__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator> (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR
> &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator>= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR >
&__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() <= __y.base() } -> convertible_to<bool>; }
constexpr bool std::operator>= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR
> &__y)

Variables

• template<typename _Iterator1 , typename _Iterator2 >


constexpr bool std::disable_sized_sentinel_for< move_iterator< _Iterator1 >, move_iterator< _Iterator2
>>
• template<typename _Iterator1 , typename _Iterator2 >
constexpr bool std::disable_sized_sentinel_for< reverse_iterator< _Iterator1 >, reverse_iterator< _←-
Iterator2 > >

3.9.1 Detailed Description

Abstractions for uniform iterating through various underlying types.

3.9.2 Function Documentation

__iterator_category()

template<typename _Iter >


iterator_traits< _Iter >::iterator_category std::__iterator_category (
const _Iter & ) [inline], [constexpr]
This function is not a part of the C++ standard but is syntactic sugar for internal library use only.
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::basic_string(), std::deque< _Tp, _Alloc >::deque(),
std::vector< _Tp, _Alloc >::vector(), __gnu_debug::__valid_range_aux(), std::advance(), std::deque< _Tp, _Alloc >::assign(),
std::vector< _Tp, _Alloc >::assign(), std::distance(), std::fill_n(), std::find_end(), std::find_end(), std::deque< _Tp, _Alloc >::insert(),
std::vector< _Tp, _Alloc >::insert(), std::partition(), std::reverse(), std::rotate(), std::uninitialized_copy_n(), std::unique_copy(),
and std::unique_copy().

back_inserter()

template<typename _Container >


back_insert_iterator< _Container > std::back_inserter (
_Container & __x) [inline], [nodiscard], [constexpr]

Generated by Doxygen
172

Parameters

_←- A container of arbitrary type.


_x

Returns

An instance of back_insert_iterator working on __x.

This wrapper function helps in creating back_insert_iterator instances. Typing the name of the iterator requires knowing
the precise full type of the container, which can be tedious and impedes generic programming. Using this function lets
you take advantage of automatic template parameter deduction, making the compiler match the correct types for you.
Referenced by std::match_results< _Bi_iter, _Alloc >::format(), std::match_results< _Bi_iter, _Alloc >::format(),
std::regex_replace(), std::regex_replace(), std::regex_replace(), and std::regex_replace().

front_inserter()

template<typename _Container >


front_insert_iterator< _Container > std::front_inserter (
_Container & __x) [inline], [nodiscard], [constexpr]

Parameters

_←- A container of arbitrary type.


_x

Returns

An instance of front_insert_iterator working on x.

This wrapper function helps in creating front_insert_iterator instances. Typing the name of the iterator requires knowing
the precise full type of the container, which can be tedious and impedes generic programming. Using this function lets
you take advantage of automatic template parameter deduction, making the compiler match the correct types for you.

inserter()

template<typename _Container >


insert_iterator< _Container > std::inserter (
_Container & __x,
std::__detail::__range_iter_t< _Container > __i) [nodiscard], [constexpr]

Parameters

_←- A container of arbitrary type.


_x
_←- An iterator into the container.
_i

Returns

An instance of insert_iterator working on __x.

This wrapper function helps in creating insert_iterator instances. Typing the name of the iterator requires knowing the
precise full type of the container, which can be tedious and impedes generic programming. Using this function lets you
take advantage of automatic template parameter deduction, making the compiler match the correct types for you.

Generated by Doxygen
3.9 Iterators 173

make_reverse_iterator()

template<typename _Iterator >


reverse_iterator< _Iterator > std::make_reverse_iterator (
_Iterator __i) [inline], [constexpr]
Generator function for reverse_iterator.

operator==()

template<typename _IteratorL , typename _IteratorR >


requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
bool std::operator== (
const reverse_iterator< _IteratorL > & __x,
const reverse_iterator< _IteratorR > & __y) [nodiscard], [constexpr]

Parameters
_←- A reverse_iterator.
_x
_←- A reverse_iterator.
_y

Returns

A simple bool.

Reverse iterators forward comparisons to their underlying base() iterators.

3.9.3 Iterator Tags

Collaboration diagram for Iterator Tags:

std::input_iterator_tag
Iterator Tags Iterators

Classes

• struct std::bidirectional_iterator_tag
• struct std::contiguous_iterator_tag
• struct std::forward_iterator_tag
• struct std::input_iterator_tag
• struct std::output_iterator_tag
• struct std::random_access_iterator_tag

3.9.3.1 Detailed Description

These are empty types, used to distinguish different iterators. The distinction is not made by what they contain, but
simply by what they are. Different underlying algorithms can then be used based on the different operations supported
by different iterator types.

Generated by Doxygen
174

3.10 Locales
Namespaces

• namespace std::__detail

Classes

• class std::codecvt< _InternT, _ExternT, _StateT >


• class std::ctype< _CharT >
• class std::ctype< char >
• class std::ctype< wchar_t >
• class std::locale::facet
• class std::locale::id
• class std::locale
• class std::messages< _CharT >
• struct std::messages_base
• class std::money_base
• class std::money_get< _CharT, _InIter >
• class std::money_put< _CharT, _OutIter >
• class std::moneypunct< _CharT, _Intl >
• class std::num_get< _CharT, _InIter >
• class std::num_put< _CharT, _OutIter >
• class std::numpunct< _CharT >
• class std::time_base
• class std::time_get< _CharT, _InIter >
• class std::time_put< _CharT, _OutIter >
• class std::wbuffer_convert< _Codecvt, _Elem, _Tr >
• class std::wstring_convert< _Codecvt, _Elem, _Wide_alloc, _Byte_alloc >

Functions

• template<typename _OutStr , typename _InChar , typename _Codecvt , typename _State , typename _Fn >
bool std::__do_str_codecvt (const _InChar ∗__first, const _InChar ∗__last, _OutStr &__outstr, const _Codecvt
&__cvt, _State &__state, size_t &__count, _Fn __fn)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool std::__str_codecvt_in (const char ∗__first, const char ∗__last, basic_string< _CharT, _Traits, _Alloc >
&__outstr, const codecvt< _CharT, char, _State > &__cvt)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool std::__str_codecvt_in (const char ∗__first, const char ∗__last, basic_string< _CharT, _Traits, _Alloc >
&__outstr, const codecvt< _CharT, char, _State > &__cvt, _State &__state, size_t &__count)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool std::__str_codecvt_in_all (const char ∗__first, const char ∗__last, basic_string< _CharT, _Traits, _Alloc >
&__outstr, const codecvt< _CharT, char, _State > &__cvt)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool std::__str_codecvt_out (const _CharT ∗__first, const _CharT ∗__last, basic_string< char, _Traits, _Alloc
> &__outstr, const codecvt< _CharT, char, _State > &__cvt)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool std::__str_codecvt_out (const _CharT ∗__first, const _CharT ∗__last, basic_string< char, _Traits, _Alloc
> &__outstr, const codecvt< _CharT, char, _State > &__cvt, _State &__state, size_t &__count)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool std::__str_codecvt_out_all (const _CharT ∗__first, const _CharT ∗__last, basic_string< char, _Traits, _←-
Alloc > &__outstr, const codecvt< _CharT, char, _State > &__cvt)

Generated by Doxygen
3.10 Locales 175

• template<typename _Facet >


bool std::has_facet (const locale &__loc)
• template<typename _Facet >
const _Facet & std::use_facet (const locale &__loc)

3.10.1 Detailed Description

Classes and functions for internationalization and localization.

3.10.2 Function Documentation

has_facet()

template<typename _Facet >


bool std::has_facet (
const locale & __loc) [inline], [nodiscard], [noexcept]
Test for the presence of a facet.
has_facet tests the locale argument for the presence of the facet type provided as the template parameter. Facets
derived from the facet parameter will also return true.

Template Parameters

_Facet The facet type to test the presence of.

Parameters
__loc The locale to test.

Returns

true if __loc contains a facet of type _Facet, else false.

use_facet()

template<typename _Facet >


const _Facet & std::use_facet (
const locale & __loc) [inline], [nodiscard]
Return a facet.
use_facet looks for and returns a reference to a facet of type Facet where Facet is the template parameter. If has_←-
facet(locale) is true, there is a suitable facet to return. It throws std::bad_cast if the locale doesn't contain a facet of type
Facet.

Template Parameters

_Facet The facet type to access.

Parameters
__loc The locale to use.

Returns

Reference to facet of type Facet.

Generated by Doxygen
176

Exceptions

std::bad_cast if __loc doesn't contain a facet of type _Facet.

Referenced by std::money_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::money_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_put(), std::time_get< _CharT, _InIter >::get(),
std::isalnum(), std::isalpha(), std::isblank(), std::iscntrl(), std::regex_traits< typename >::isctype(), std::isdigit(),
std::isgraph(), std::islower(), std::isprint(), std::ispunct(), std::isspace(), std::isupper(), std::isxdigit(), std::regex_traits< typename >::lookup
std::regex_traits< _CharType >::lookup_classname(), std::regex_traits< typename >::lookup_collatename(), std::basic_ostream< _Cha
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::operator>>(), std::time_put< _CharT, _OutIter >::put(), std::tolower(), std::toupper(), std::regex_traits< typename >::transform(),
std::regex_traits< typename >::transform_primary(), std::regex_traits< typename >::translate_nocase(), and
std::ws().

3.11 Numerics
Collaboration diagram for Numerics:

Bit manipulation

Complex Numbers

Decimal Floating-Point
Arithmetic

Mathematical Special
Numerics
Functions

Numeric Arrays

Random Number Generation

TR1 Mathematical Special


Functions

Generated by Doxygen
3.11 Numerics 177

Topics

• Bit manipulation
• Complex Numbers
• Decimal Floating-Point Arithmetic
• Mathematical Special Functions
• Numeric Arrays
• Random Number Generation
• TR1 Mathematical Special Functions

3.11.1 Detailed Description

Components for performing numeric operations. Includes support for complex number types, random number genera-
tion, numeric (n-at-a-time) arrays, generalized numeric algorithms, and mathematical special functions.

3.11.2 Bit manipulation

Collaboration diagram for Bit manipulation:

Numerics Bit manipulation

Utilities for examining and manipulating individual bits.

3.11.3 Complex Numbers

Collaboration diagram for Complex Numbers:

Numerics Complex Numbers

Classes

• class std::complex< _Tp >


• class std::complex< double >
• class std::complex< float >
• class std::complex< long double >

Generated by Doxygen
178

Functions

• constexpr std::complex< double >::complex (const complex< long double > &)
• constexpr std::complex< float >::complex (const complex< double > &)
• constexpr std::complex< float >::complex (const complex< long double > &)
• template<typename _Tp >
_Tp std::__complex_abs (const complex< _Tp > &__z)
• template<typename _Tp >
_Tp std::__complex_arg (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_cos (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_cosh (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_exp (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_log (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_pow (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
complex< _Tp > std::__complex_pow_unsigned (complex< _Tp > __x, unsigned __n)
• template<typename _Tp >
complex< _Tp > std::__complex_sin (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_sinh (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_sqrt (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_tan (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::__complex_tanh (const complex< _Tp > &__z)
• template<typename _Tp >
_Tp std::abs (const complex< _Tp > &)
• template<typename _Tp >
_Tp std::arg (const complex< _Tp > &)
• template<typename _Tp >
constexpr complex< _Tp > std::conj (const complex< _Tp > &)
• template<typename _Tp >
std::complex< typename __gnu_cxx::__promote< _Tp >::__type > std::tr1::conj (_Tp __x)
• template<typename _Tp >
std::complex< _Tp > std::tr1::conj (const std::complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::cos (const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::cosh (const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::exp (const complex< _Tp > &)
• template<typename _Tp >
std::complex< _Tp > std::tr1::fabs (const std::complex< _Tp > &__z)
• template<typename _Tp >
constexpr _Tp std::imag (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::log (const complex< _Tp > &)

Generated by Doxygen
3.11 Numerics 179

• template<typename _Tp >


complex< _Tp > std::log10 (const complex< _Tp > &)
• template<typename _Tp >
_Tp constexpr std::norm (const complex< _Tp > &)
• constexpr complex< _Tp > & std::complex< _Tp >::operator∗= (const _Tp &)
• template<typename _Up >
constexpr complex< _Tp > & std::complex< _Tp >::operator∗= (const complex< _Up > &)
• template<typename _Tp >
constexpr complex< _Tp > std::operator+ (const complex< _Tp > &__x)
• template<typename _Up >
constexpr complex< _Tp > & std::complex< _Tp >::operator+= (const complex< _Up > &)
• template<typename _Tp >
constexpr complex< _Tp > std::operator- (const complex< _Tp > &__x)
• template<typename _Up >
constexpr complex< _Tp > & std::complex< _Tp >::operator-= (const complex< _Up > &)
• constexpr complex< _Tp > & std::complex< _Tp >::operator/= (const _Tp &)
• template<typename _Up >
constexpr complex< _Tp > & std::complex< _Tp >::operator/= (const complex< _Up > &)
• template<typename _Tp , typename _CharT , class _Traits >
basic_ostream< _CharT, _Traits > & std::operator<< (basic_ostream< _CharT, _Traits > &__os, const
complex< _Tp > &__x)
• template ostream & std::operator<< (ostream &, const complex< double > &)
• template ostream & std::operator<< (ostream &, const complex< float > &)
• template ostream & std::operator<< (ostream &, const complex< long double > &)
• template wostream & std::operator<< (wostream &, const complex< double > &)
• template wostream & std::operator<< (wostream &, const complex< float > &)
• template wostream & std::operator<< (wostream &, const complex< long double > &)
• constexpr complex< _Tp > & std::complex< _Tp >::operator= (const _Tp &)
• template<typename _Up >
constexpr complex< _Tp > & std::complex< _Tp >::operator= (const complex< _Up > &)
• template<typename _Tp , typename _CharT , class _Traits >
basic_istream< _CharT, _Traits > & std::operator>> (basic_istream< _CharT, _Traits > &__is, complex< _Tp
> &__x)
• template istream & std::operator>> (istream &, complex< double > &)
• template istream & std::operator>> (istream &, complex< float > &)
• template istream & std::operator>> (istream &, complex< long double > &)
• template wistream & std::operator>> (wistream &, complex< double > &)
• template wistream & std::operator>> (wistream &, complex< float > &)
• template wistream & std::operator>> (wistream &, complex< long double > &)
• template<typename _Tp >
complex< _Tp > std::polar (const _Tp &, const _Tp &=0)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > std::tr1::polar (const _Tp &__rho,
const _Up &__theta)
• template<typename _Tp >
complex< _Tp > std::pow (const _Tp &, const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::pow (const complex< _Tp > &, const _Tp &)
• template<typename _Tp >
complex< _Tp > std::pow (const complex< _Tp > &, const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::pow (const complex< _Tp > &, int)

Generated by Doxygen
180

• template<typename _Tp >


std::complex< _Tp > std::tr1::pow (const _Tp &__x, const std::complex< _Tp > &__y)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > std::tr1::pow (const _Tp &__←-
x, const std::complex< _Up > &__y)
• template<typename _Tp >
std::complex< _Tp > std::tr1::pow (const std::complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > std::tr1::pow (const std::complex<
_Tp > &__x, const _Up &__y)
• template<typename _Tp >
std::complex< _Tp > std::tr1::pow (const std::complex< _Tp > &__x, const std::complex< _Tp > &__y)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > std::tr1::pow (const std::complex<
_Tp > &__x, const std::complex< _Up > &__y)
• template<typename _Tp >
constexpr _Tp std::real (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > std::sin (const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::sinh (const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::sqrt (const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::tan (const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > std::tanh (const complex< _Tp > &)

• template<typename _Tp >


constexpr complex< _Tp > std::operator+ (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > std::operator+ (const complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp >
constexpr complex< _Tp > std::operator+ (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr complex< _Tp > std::operator- (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > std::operator- (const complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp >
constexpr complex< _Tp > std::operator- (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr complex< _Tp > std::operator∗ (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > std::operator∗ (const complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp >
constexpr complex< _Tp > std::operator∗ (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr complex< _Tp > std::operator/ (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > std::operator/ (const complex< _Tp > &__x, const _Tp &__y)

Generated by Doxygen
3.11 Numerics 181

• template<typename _Tp >


constexpr complex< _Tp > std::operator/ (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr bool std::operator== (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr bool std::operator== (const complex< _Tp > &__x, const _Tp &__y)

3.11.3.1 Detailed Description

Classes and functions for complex numbers.

3.11.3.2 Function Documentation

abs()

template<typename _Tp >


_Tp std::abs (
const complex< _Tp > & __z) [inline]
Return magnitude of z.
Referenced by std::binomial_distribution< _IntType >::operator()(), and std::poisson_distribution< _IntType >::operator()().

arg()

template<typename _Tp >


_Tp std::arg (
const complex< _Tp > & __z) [inline]
Return phase angle of z.

conj()

template<typename _Tp >


complex< _Tp > std::conj (
const complex< _Tp > & __z) [inline], [constexpr]
Return complex conjugate of z.

cos()

template<typename _Tp >


complex< _Tp > std::cos (
const complex< _Tp > & __z) [inline]
Return complex cosine of z.

cosh()

template<typename _Tp >


complex< _Tp > std::cosh (
const complex< _Tp > & __z) [inline]
Return complex hyperbolic cosine of z.

exp()

template<typename _Tp >


complex< _Tp > std::exp (
const complex< _Tp > & __z) [inline]
Return complex base e exponential of z.

Generated by Doxygen
182

fabs()

template<typename _Tp >


std::complex< _Tp > std::tr1::fabs (
const std::complex< _Tp > & __z) [inline]
fabs(__z) [8.1.8].

log()

template<typename _Tp >


complex< _Tp > std::log (
const complex< _Tp > & __z) [inline]
Return complex natural logarithm of z.
Referenced by std::generate_canonical(), std::binomial_distribution< _IntType >::operator()(), std::gamma_distribution< _RealType >::op
std::normal_distribution< _RealType >::operator()(), std::poisson_distribution< _IntType >::operator()(), std::operator<<(),
std::operator<<(), std::operator<<(), and std::operator<<().

log10()

template<typename _Tp >


complex< _Tp > std::log10 (
const complex< _Tp > & __z) [inline]
Return complex base 10 logarithm of z.

norm()

template<typename _Tp >


_Tp constexpr std::norm (
const complex< _Tp > & __z) [inline], [constexpr]
Return z magnitude squared.

operator∗() [1/3]

template<typename _Tp >


complex< _Tp > std::operator∗ (
const _Tp & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x times y.

operator∗() [2/3]

template<typename _Tp >


complex< _Tp > std::operator∗ (
const complex< _Tp > & __x,
const _Tp & __y) [inline], [constexpr]
Return new complex value x times y.

operator∗() [3/3]

template<typename _Tp >


complex< _Tp > std::operator∗ (
const complex< _Tp > & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x times y.

Generated by Doxygen
3.11 Numerics 183

operator∗=() [1/2]

template<typename _Tp >


complex< _Tp > & std::complex< _Tp >::operator∗= (
const _Tp & __t) [constexpr]
Multiply this complex number by a scalar.

operator∗=() [2/2]

template<typename _Tp >


template<typename _Up >
complex< _Tp > & std::complex< _Tp >::operator∗= (
const complex< _Up > & __z) [constexpr]
Multiply this complex number by another.

operator+() [1/4]

template<typename _Tp >


complex< _Tp > std::operator+ (
const _Tp & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x plus y.

operator+() [2/4]

template<typename _Tp >


complex< _Tp > std::operator+ (
const complex< _Tp > & __x) [inline], [constexpr]
Return x.

operator+() [3/4]

template<typename _Tp >


complex< _Tp > std::operator+ (
const complex< _Tp > & __x,
const _Tp & __y) [inline], [constexpr]
Return new complex value x plus y.

operator+() [4/4]

template<typename _Tp >


complex< _Tp > std::operator+ (
const complex< _Tp > & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x plus y.

operator+=()

template<typename _Tp >


template<typename _Up >
complex< _Tp > & std::complex< _Tp >::operator+= (
const complex< _Up > & __z) [constexpr]
Add another complex number to this one.

Generated by Doxygen
184

operator-() [1/4]

template<typename _Tp >


complex< _Tp > std::operator- (
const _Tp & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x minus y.

operator-() [2/4]

template<typename _Tp >


complex< _Tp > std::operator- (
const complex< _Tp > & __x) [inline], [constexpr]
Return complex negation of x.

operator-() [3/4]

template<typename _Tp >


complex< _Tp > std::operator- (
const complex< _Tp > & __x,
const _Tp & __y) [inline], [constexpr]
Return new complex value x minus y.

operator-() [4/4]

template<typename _Tp >


complex< _Tp > std::operator- (
const complex< _Tp > & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x minus y.

operator-=()

template<typename _Tp >


template<typename _Up >
complex< _Tp > & std::complex< _Tp >::operator-= (
const complex< _Up > & __z) [constexpr]
Subtract another complex number from this one.

operator/() [1/3]

template<typename _Tp >


complex< _Tp > std::operator/ (
const _Tp & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x divided by y.

operator/() [2/3]

template<typename _Tp >


complex< _Tp > std::operator/ (
const complex< _Tp > & __x,
const _Tp & __y) [inline], [constexpr]
Return new complex value x divided by y.

Generated by Doxygen
3.11 Numerics 185

operator/() [3/3]

template<typename _Tp >


complex< _Tp > std::operator/ (
const complex< _Tp > & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return new complex value x divided by y.

operator/=() [1/2]

template<typename _Tp >


complex< _Tp > & std::complex< _Tp >::operator/= (
const _Tp & __t) [constexpr]
Divide this complex number by a scalar.

operator/=() [2/2]

template<typename _Tp >


template<typename _Up >
complex< _Tp > & std::complex< _Tp >::operator/= (
const complex< _Up > & __z) [constexpr]
Divide this complex number by another.

operator<<()

template<typename _Tp , typename _CharT , class _Traits >


basic_ostream< _CharT, _Traits > & std::operator<< (
basic_ostream< _CharT, _Traits > & __os,
const complex< _Tp > & __x)
Insertion operator for complex values.

operator=() [1/2]

template<typename _Tp >


complex< _Tp > & std::complex< _Tp >::operator= (
const _Tp & __t) [constexpr]
Assign a scalar to this complex number.

operator=() [2/2]

template<typename _Tp >


template<typename _Up >
complex< _Tp > & std::complex< _Tp >::operator= (
const complex< _Up > & __z) [constexpr]
Assign another complex number to this one.

operator==() [1/2]

template<typename _Tp >


bool std::operator== (
const complex< _Tp > & __x,
const _Tp & __y) [inline], [constexpr]
Return true if x is equal to y.

Generated by Doxygen
186

operator==() [2/2]

template<typename _Tp >


bool std::operator== (
const complex< _Tp > & __x,
const complex< _Tp > & __y) [inline], [constexpr]
Return true if x is equal to y.

operator>>()

template<typename _Tp , typename _CharT , class _Traits >


basic_istream< _CharT, _Traits > & std::operator>> (
basic_istream< _CharT, _Traits > & __is,
complex< _Tp > & __x)
Extraction operator for complex values.

polar()

template<typename _Tp >


complex< _Tp > std::polar (
const _Tp & __rho,
const _Tp & __theta = 0) [inline]
Return complex with magnitude rho and angle theta.

pow() [1/5]

template<typename _Tp >


complex< _Tp > std::pow (
const _Tp & __x,
const complex< _Tp > & __y) [inline]
Return x to the y'th power.

pow() [2/5]

template<typename _Tp >


complex< _Tp > std::pow (
const complex< _Tp > & __x,
const _Tp & __y)
Return x to the y'th power.

pow() [3/5]

template<typename _Tp >


complex< _Tp > std::pow (
const complex< _Tp > & __x,
const complex< _Tp > & __y) [inline]
Return x to the y'th power.

pow() [4/5]

template<typename _Tp >


complex< _Tp > std::pow (
const complex< _Tp > & __z,
int __n) [inline]
Return x to the y'th power.
Referenced by std::gamma_distribution< _RealType >::operator()(), and std::operator<<().

Generated by Doxygen
3.11 Numerics 187

pow() [5/5]

template<typename _Tp , typename _Up >


std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > std::tr1::pow (
const std::complex< _Tp > & __x,
const _Up & __y) [inline]
Additional overloads [8.1.9].

sin()

template<typename _Tp >


complex< _Tp > std::sin (
const complex< _Tp > & __z) [inline]
Return complex sine of z.

sinh()

template<typename _Tp >


complex< _Tp > std::sinh (
const complex< _Tp > & __z) [inline]
Return complex hyperbolic sine of z.

sqrt()

template<typename _Tp >


complex< _Tp > std::sqrt (
const complex< _Tp > & __z) [inline]
Return complex square root of z.
Referenced by std::normal_distribution< _RealType >::operator()(), and std::student_t_distribution< _RealType >::operator()().

tan()

template<typename _Tp >


complex< _Tp > std::tan (
const complex< _Tp > & __z) [inline]
Return complex tangent of z.
Referenced by std::operator<<().

tanh()

template<typename _Tp >


complex< _Tp > std::tanh (
const complex< _Tp > & __z) [inline]
Return complex hyperbolic tangent of z.

Generated by Doxygen
188

3.11.4 Decimal Floating-Point Arithmetic

Collaboration diagram for Decimal Floating-Point Arithmetic:

Decimal Floating-Point
Numerics
Arithmetic

Namespaces

• namespace std::decimal

3.11.4.1 Detailed Description

Classes and functions for decimal floating-point arithmetic.

3.11.5 Mathematical Special Functions

Collaboration diagram for Mathematical Special Functions:

Mathematical Special
Numerics
Functions

Functions

• template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type __gnu_cxx::airy_ai (_Tp __x)
• float __gnu_cxx::airy_aif (float __x)
• long double __gnu_cxx::airy_ail (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type __gnu_cxx::airy_bi (_Tp __x)
• float __gnu_cxx::airy_bif (float __x)
• long double __gnu_cxx::airy_bil (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::assoc_laguerre (unsigned int __n, unsigned int __m, _Tp __x)
• float std::assoc_laguerref (unsigned int __n, unsigned int __m, float __x)
• long double std::assoc_laguerrel (unsigned int __n, unsigned int __m, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::assoc_legendre (unsigned int __l, unsigned int __m, _Tp __x)

Generated by Doxygen
3.11 Numerics 189

• float std::assoc_legendref (unsigned int __l, unsigned int __m, float __x)
• long double std::assoc_legendrel (unsigned int __l, unsigned int __m, long double __x)
• template<typename _Tpa , typename _Tpb >
__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type std::beta (_Tpa __a, _Tpb __b)
• float std::betaf (float __a, float __b)
• long double std::betal (long double __a, long double __b)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::comp_ellint_1 (_Tp __k)
• float std::comp_ellint_1f (float __k)
• long double std::comp_ellint_1l (long double __k)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::comp_ellint_2 (_Tp __k)
• float std::comp_ellint_2f (float __k)
• long double std::comp_ellint_2l (long double __k)
• template<typename _Tp , typename _Tpn >
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type std::comp_ellint_3 (_Tp __k, _Tpn __nu)
• float std::comp_ellint_3f (float __k, float __nu)
• long double std::comp_ellint_3l (long double __k, long double __nu)
• template<typename _Tpa , typename _Tpc , typename _Tp >
__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type __gnu_cxx::conf_hyperg (_Tpa __a, _Tpc __c, _Tp __x)
• float __gnu_cxx::conf_hypergf (float __a, float __c, float __x)
• long double __gnu_cxx::conf_hypergl (long double __a, long double __c, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_i (_Tpnu __nu, _Tp __x)
• float std::cyl_bessel_if (float __nu, float __x)
• long double std::cyl_bessel_il (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_j (_Tpnu __nu, _Tp __x)
• float std::cyl_bessel_jf (float __nu, float __x)
• long double std::cyl_bessel_jl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_k (_Tpnu __nu, _Tp __x)
• float std::cyl_bessel_kf (float __nu, float __x)
• long double std::cyl_bessel_kl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_neumann (_Tpnu __nu, _Tp __x)
• float std::cyl_neumannf (float __nu, float __x)
• long double std::cyl_neumannl (long double __nu, long double __x)
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::ellint_1 (_Tp __k, _Tpp __phi)
• float std::ellint_1f (float __k, float __phi)
• long double std::ellint_1l (long double __k, long double __phi)
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::ellint_2 (_Tp __k, _Tpp __phi)
• float std::ellint_2f (float __k, float __phi)
• long double std::ellint_2l (long double __k, long double __phi)
• template<typename _Tp , typename _Tpn , typename _Tpp >
__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type std::ellint_3 (_Tp __k, _Tpn __nu, _Tpp __phi)
• float std::ellint_3f (float __k, float __nu, float __phi)
• long double std::ellint_3l (long double __k, long double __nu, long double __phi)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::expint (_Tp __x)

Generated by Doxygen
190

• float std::expintf (float __x)


• long double std::expintl (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::hermite (unsigned int __n, _Tp __x)
• float std::hermitef (unsigned int __n, float __x)
• long double std::hermitel (unsigned int __n, long double __x)
• template<typename _Tpa , typename _Tpb , typename _Tpc , typename _Tp >
__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type __gnu_cxx::hyperg (_Tpa __a, _Tpb __b, _Tpc
__c, _Tp __x)
• float __gnu_cxx::hypergf (float __a, float __b, float __c, float __x)
• long double __gnu_cxx::hypergl (long double __a, long double __b, long double __c, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::laguerre (unsigned int __n, _Tp __x)
• float std::laguerref (unsigned int __n, float __x)
• long double std::laguerrel (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::legendre (unsigned int __l, _Tp __x)
• float std::legendref (unsigned int __l, float __x)
• long double std::legendrel (unsigned int __l, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::riemann_zeta (_Tp __s)
• float std::riemann_zetaf (float __s)
• long double std::riemann_zetal (long double __s)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::sph_bessel (unsigned int __n, _Tp __x)
• float std::sph_besself (unsigned int __n, float __x)
• long double std::sph_bessell (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::sph_legendre (unsigned int __l, unsigned int __m, _Tp __theta)
• float std::sph_legendref (unsigned int __l, unsigned int __m, float __theta)
• long double std::sph_legendrel (unsigned int __l, unsigned int __m, long double __theta)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::sph_neumann (unsigned int __n, _Tp __x)
• float std::sph_neumannf (unsigned int __n, float __x)
• long double std::sph_neumannl (unsigned int __n, long double __x)

3.11.5.1 Detailed Description

3.11.5.2 Mathematical Special Functions

A collection of advanced mathematical special functions, defined by ISO/IEC IS 29124 and then added to ISO C++
2017.

3.11.5.2.1 Introduction and History

The first significant library upgrade on the road to C++2011, TR1, included a set of 23 mathematical functions that
significantly extended the standard transcendental functions inherited from C and declared in <cmath>.
Although most components from TR1 were eventually adopted for C++11 these math functions were left behind out of
concern for implementability. The math functions were published as a separate international standard IS 29124 -
Extensions to the C++ Library to Support Mathematical Special Functions.
For C++17 these functions were incorporated into the main standard.

Generated by Doxygen
3.11 Numerics 191

3.11.5.2.2 Contents

The following functions are implemented in namespace std:

• assoc_laguerre - Associated Laguerre functions

• assoc_legendre - Associated Legendre functions

• beta - Beta functions

• comp_ellint_1 - Complete elliptic functions of the first kind

• comp_ellint_2 - Complete elliptic functions of the second kind

• comp_ellint_3 - Complete elliptic functions of the third kind

• cyl_bessel_i - Regular modified cylindrical Bessel functions

• cyl_bessel_j - Cylindrical Bessel functions of the first kind

• cyl_bessel_k - Irregular modified cylindrical Bessel functions

• cyl_neumann - Cylindrical Neumann functions or Cylindrical Bessel functions of the second kind

• ellint_1 - Incomplete elliptic functions of the first kind

• ellint_2 - Incomplete elliptic functions of the second kind

• ellint_3 - Incomplete elliptic functions of the third kind

• expint - The exponential integral

• hermite - Hermite polynomials

• laguerre - Laguerre functions

• legendre - Legendre polynomials

• riemann_zeta - The Riemann zeta function

• sph_bessel - Spherical Bessel functions

• sph_legendre - Spherical Legendre functions

• sph_neumann - Spherical Neumann functions

The hypergeometric functions were stricken from the TR29124 and C++17 versions of this math library because of
implementation concerns. However, since they were in the TR1 version and since they are popular we kept them as an
extension in namespace __gnu_cxx:

• conf_hyperg - Confluent hypergeometric functions

• hyperg - Hypergeometric functions

3.11.5.2.3 Argument Promotion

The arguments suppled to the non-suffixed functions will be promoted according to the following rules:

1. If any argument intended to be floating point is given an integral value That integral value is promoted to double.

2. All floating point arguments are promoted up to the largest floating point precision among them.

Generated by Doxygen
192

3.11.5.2.4 NaN Arguments

If any of the floating point arguments supplied to these functions is invalid or NaN (std::numeric_limits<Tp>::quiet_←-
NaN), the value NaN is returned.

3.11.5.2.5 Implementation

We strive to implement the underlying math with type generic algorithms to the greatest extent possible. In practice, the
functions are thin wrappers that dispatch to function templates. Type dependence is controlled with std::numeric_limits
and functions thereof.
We don't promote float to double or double to long double reflexively. The goal is for float functions
to operate more quickly, at the cost of float accuracy and possibly a smaller domain of validity. Similaryly, long
double should give you more dynamic range and slightly more pecision than double on many systems.

3.11.5.2.6 Testing

These functions have been tested against equivalent implementations from the Gnu Scientific Library,
GSL and Boost and the ratio
|f − ftest |
|ftest |
is generally found to be within 10-15 for 64-bit double on linux-x86_64 systems over most of the ranges of validity.
Todo Provide accuracy comparisons on a per-function basis for a small number of targets.

3.11.5.2.7 General Bibliography


See also

Abramowitz and Stegun: Handbook of Mathematical Functions, with Formulas, Graphs, and Mathematical Tables
Edited by Milton Abramowitz and Irene A. Stegun, National Bureau of Standards Applied Mathematics Series - 55
Issued June 1964, Tenth Printing, December 1972, with corrections Electronic versions of A&S abound including
both pdf and navigable html.
for example http://people.math.sfu.ca/∼cbm/aands/
The old A&S has been redone as the NIST Digital Library of Mathematical Functions: http://dlmf.←-
nist.gov/ This version is far more navigable and includes more recent work.
An Atlas of Functions: with Equator, the Atlas Function Calculator 2nd Edition, by Oldham, Keith B., Myland, Jan,
Spanier, Jerome
Asymptotics and Special Functions by Frank W. J. Olver, Academic Press, 1974
Numerical Recipes in C, The Art of Scientific Computing, by William H. Press, Second Ed., Saul A. Teukolsky,
William T. Vetterling, and Brian P. Flannery, Cambridge University Press, 1992
The Special Functions and Their Approximations: Volumes 1 and 2, by Yudell L. Luke, Academic Press, 1969

3.11.5.3 Function Documentation

airy_ai()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type __gnu_cxx::airy_ai (
_Tp __x) [inline]
Return the Airy function Ai(x) of real argument x.

airy_aif()

float __gnu_cxx::airy_aif (
float __x) [inline]
Return the Airy function Ai(x) of float argument x.

Generated by Doxygen
3.11 Numerics 193

airy_ail()

long double __gnu_cxx::airy_ail (


long double __x) [inline]
Return the Airy function Ai(x) of long double argument x.

airy_bi()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type __gnu_cxx::airy_bi (
_Tp __x) [inline]
Return the Airy function Bi(x) of real argument x.

airy_bif()

float __gnu_cxx::airy_bif (
float __x) [inline]
Return the Airy function Bi(x) of float argument x.

airy_bil()

long double __gnu_cxx::airy_bil (


long double __x) [inline]
Return the Airy function Bi(x) of long double argument x.

assoc_laguerre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::assoc_laguerre (
unsigned int __n,
unsigned int __m,
_Tp __x) [inline]
Return the associated Laguerre polynomial of nonnegative order n, nonnegative degree m and real argument x←-
: Lm
n (x).
The associated Laguerre function of real degree α, Lα
n (x), is defined by

(α + 1)n

n (x) = 1 F1 (−n; α + 1; x)
n!
where (α)n is the Pochhammer symbol and 1 F1 (a; c; x) is the confluent hypergeometric function.
The associated Laguerre polynomial is defined for integral degree α = m by:

dm
Lm
n (x) = (−1)
m
Ln+m (x)
dxm
where the Laguerre polynomial is defined by:

ex dn n −x
Ln (x) = (x e )
n! dxn
and x >= 0.
See also

laguerre for details of the Laguerre function of degree n

Generated by Doxygen
194

Template Parameters

_Tp The floating-point type of the argument __x.

Parameters

_←- The order of the Laguerre function, __n >= 0.


_n
_←- The degree of the Laguerre function, __m >= 0.
_m
_←- The argument of the Laguerre function, __x >= 0.
_x

Exceptions

std::domain_error if __x < 0.

assoc_laguerref()

float std::assoc_laguerref (
unsigned int __n,
unsigned int __m,
float __x) [inline]
Return the associated Laguerre polynomial of order n, degree m: Lm
n (x) for float argument.

See also

assoc_laguerre for more details.

assoc_laguerrel()

long double std::assoc_laguerrel (


unsigned int __n,
unsigned int __m,
long double __x) [inline]
Return the associated Laguerre polynomial of order n, degree m: Lm
n (x).

See also

assoc_laguerre for more details.

assoc_legendre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::assoc_legendre (
unsigned int __l,
unsigned int __m,
_Tp __x) [inline]
Return the associated Legendre function of degree l and order m.
The associated Legendre function is derived from the Legendre function Pl (x) by the Rodrigues formula:
dm
Plm (x) = (1 − x2 )m/2 Pl (x)
dxm

Generated by Doxygen
3.11 Numerics 195

See also

legendre for details of the Legendre function of degree l

Template Parameters

_Tp The floating-point type of the argument __x.

Parameters
_←- The degree __l >= 0.
_l
_←- The order __m <= l.
_m
_←- The argument, abs(__x) <= 1.
_x

Exceptions

std::domain_error if abs(__x) > 1.

assoc_legendref()

float std::assoc_legendref (
unsigned int __l,
unsigned int __m,
float __x) [inline]
Return the associated Legendre function of degree l and order m for float argument.

See also

assoc_legendre for more details.

assoc_legendrel()

long double std::assoc_legendrel (


unsigned int __l,
unsigned int __m,
long double __x) [inline]
Return the associated Legendre function of degree l and order m.

See also

assoc_legendre for more details.

beta()

template<typename _Tpa , typename _Tpb >


__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type std::beta (
_Tpa __a,
_Tpb __b) [inline]

Generated by Doxygen
196

Return the beta function, B(a, b), for real parameters a, b.


The beta function is defined by
Z 1
Γ(a)Γ(b)
B(a, b) = ta−1 (1 − t)b−1 dt =
0 Γ(a + b)
where a > 0 and b > 0

Template Parameters

_Tpa The floating-point type of the parameter __a.


_Tpb The floating-point type of the parameter __b.

Parameters

_←- The first argument of the beta function, __a > 0 .


_a
_←- The second argument of the beta function, __b > 0 .
_b

Exceptions

std::domain_error if __a < 0 or __b < 0 .

betaf()

float std::betaf (
float __a,
float __b) [inline]
Return the beta function, B(a, b), for float parameters a, b.

See also

beta for more details.

betal()

long double std::betal (


long double __a,
long double __b) [inline]
Return the beta function, B(a, b), for long double parameters a, b.

See also

beta for more details.

comp_ellint_1()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::comp_ellint_1 (
_Tp __k) [inline]
Return the complete elliptic integral of the first kind K(k) for real modulus k.

Generated by Doxygen
3.11 Numerics 197

The complete elliptic integral of the first kind is defined as


Z π/2

K(k) = F (k, π/2) = √
0 1 − k 2 sin2 θ
where F (k, ϕ) is the incomplete elliptic integral of the first kind and the modulus |k| <= 1.
See also

ellint_1 for details of the incomplete elliptic function of the first kind.

Template Parameters

_Tp The floating-point type of the modulus __k.

Parameters
_←- The modulus, abs(__k) <= 1
_k

Exceptions

std::domain_error if abs(__k) > 1 .

comp_ellint_1f()

float std::comp_ellint_1f (
float __k) [inline]
Return the complete elliptic integral of the first kind E(k) for float modulus k.
See also

comp_ellint_1 for details.

comp_ellint_1l()

long double std::comp_ellint_1l (


long double __k) [inline]
Return the complete elliptic integral of the first kind E(k) for long double modulus k.
See also

comp_ellint_1 for details.

comp_ellint_2()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::comp_ellint_2 (
_Tp __k) [inline]
Return the complete elliptic integral of the second kind E(k) for real modulus k.
The complete elliptic integral of the second kind is defined as
Z π/2 p
E(k) = E(k, π/2) = 1 − k 2 sin2 θ
0

where E(k, ϕ) is the incomplete elliptic integral of the second kind and the modulus |k| <= 1.

Generated by Doxygen
198

See also

ellint_2 for details of the incomplete elliptic function of the second kind.

Template Parameters

_Tp The floating-point type of the modulus __k.

Parameters
_←- The modulus, abs(__k) <= 1
_k

Exceptions

std::domain_error if abs(__k) > 1.

comp_ellint_2f()

float std::comp_ellint_2f (
float __k) [inline]
Return the complete elliptic integral of the second kind E(k) for float modulus k.
See also

comp_ellint_2 for details.

comp_ellint_2l()

long double std::comp_ellint_2l (


long double __k) [inline]
Return the complete elliptic integral of the second kind E(k) for long double modulus k.
See also

comp_ellint_2 for details.

comp_ellint_3()

template<typename _Tp , typename _Tpn >


__gnu_cxx::__promote_2< _Tp, _Tpn >::__type std::comp_ellint_3 (
_Tp __k,
_Tpn __nu) [inline]
Return the complete elliptic integral of the third kind Π(k, ν) = Π(k, ν, π/2) for real modulus k.
The complete elliptic integral of the third kind is defined as
Z π/2

Π(k, ν) = Π(k, ν, π/2) = p
0 (1 − ν sin θ) 1 − k 2 sin2 θ
2

where Π(k, ν, ϕ) is the incomplete elliptic integral of the second kind and the modulus |k| <= 1.
See also

ellint_3 for details of the incomplete elliptic function of the third kind.

Generated by Doxygen
3.11 Numerics 199

Template Parameters

_Tp The floating-point type of the modulus __k.


_Tpn The floating-point type of the argument __nu.

Parameters
__k The modulus, abs(__k) <= 1
__nu The argument

Exceptions

std::domain_error if abs(__k) > 1.

comp_ellint_3f()

float std::comp_ellint_3f (
float __k,
float __nu) [inline]
Return the complete elliptic integral of the third kind Π(k, ν) for float modulus k.

See also

comp_ellint_3 for details.

comp_ellint_3l()

long double std::comp_ellint_3l (


long double __k,
long double __nu) [inline]
Return the complete elliptic integral of the third kind Π(k, ν) for long double modulus k.

See also

comp_ellint_3 for details.

conf_hyperg()

template<typename _Tpa , typename _Tpc , typename _Tp >


__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type __gnu_cxx::conf_hyperg (
_Tpa __a,
_Tpc __c,
_Tp __x) [inline]
Return the confluent hypergeometric function 1 F1 (a; c; x) of real numeratorial parameter a, denominatorial parameter
c, and argument x.
The confluent hypergeometric function is defined by

X (a)n xn
1 F1 (a; c; x) =
n=0
(c)n n!

where the Pochhammer symbol is (x)k = (x)(x + 1)...(x + k − 1), (x)0 = 1

Generated by Doxygen
200

Parameters
_←- The numeratorial parameter
_a
_←- The denominatorial parameter
_c
_←- The argument
_x

conf_hypergf()

float __gnu_cxx::conf_hypergf (
float __a,
float __c,
float __x) [inline]
Return the confluent hypergeometric function 1 F1 (a; c; x) of float numeratorial parameter a, denominatorial param-
eter c, and argument x.
See also

conf_hyperg for details.

conf_hypergl()

long double __gnu_cxx::conf_hypergl (


long double __a,
long double __c,
long double __x) [inline]
Return the confluent hypergeometric function 1 F1 (a; c; x) of long double numeratorial parameter a, denominatorial
parameter c, and argument x.
See also

conf_hyperg for details.

cyl_bessel_i()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_i (
_Tpnu __nu,
_Tp __x) [inline]
Return the regular modified Bessel function Iν (x) for real order ν and argument x >= 0.
The regular modified cylindrical Bessel function is:

X (x/2)ν+2k
Iν (x) = i−ν Jν (ix) =
k!Γ(ν + k + 1)
k=0

Template Parameters

_Tpnu The floating-point type of the order __nu.


_Tp The floating-point type of the argument __x.

Generated by Doxygen
3.11 Numerics 201

Parameters
__nu The order
__x The argument, __x >= 0

Exceptions

std::domain_error if __x < 0 .

cyl_bessel_if()

float std::cyl_bessel_if (
float __nu,
float __x) [inline]
Return the regular modified Bessel function Iν (x) for float order ν and argument x >= 0.
See also

cyl_bessel_i for setails.

cyl_bessel_il()

long double std::cyl_bessel_il (


long double __nu,
long double __x) [inline]
Return the regular modified Bessel function Iν (x) for long double order ν and argument x >= 0.
See also

cyl_bessel_i for setails.

cyl_bessel_j()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_j (
_Tpnu __nu,
_Tp __x) [inline]
Return the Bessel function Jν (x) of real order ν and argument x >= 0.
The cylindrical Bessel function is:

X (−1)k (x/2)ν+2k
Jν (x) =
k!Γ(ν + k + 1)
k=0

Template Parameters

_Tpnu The floating-point type of the order __nu.


_Tp The floating-point type of the argument __x.

Parameters
__nu The order
__x The argument, __x >= 0

Generated by Doxygen
202

Exceptions

std::domain_error if __x < 0 .

cyl_bessel_jf()

float std::cyl_bessel_jf (
float __nu,
float __x) [inline]
Return the Bessel function of the first kind Jν (x) for float order ν and argument x >= 0.

See also

cyl_bessel_j for setails.

cyl_bessel_jl()

long double std::cyl_bessel_jl (


long double __nu,
long double __x) [inline]
Return the Bessel function of the first kind Jν (x) for long double order ν and argument x >= 0.

See also

cyl_bessel_j for setails.

cyl_bessel_k()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_k (
_Tpnu __nu,
_Tp __x) [inline]
Return the irregular modified Bessel function Kν (x) of real order ν and argument x.
The irregular modified Bessel function is defined by:

π I−ν (x) − Iν (x)


Kν (x) =
2 sin νπ
where for integral ν = n a limit is taken: limν→n . For negative argument we have simply:

K−ν (x) = Kν (x)

Template Parameters

_Tpnu The floating-point type of the order __nu.


_Tp The floating-point type of the argument __x.

Parameters
__nu The order
__x The argument, __x >= 0

Generated by Doxygen
3.11 Numerics 203

Exceptions

std::domain_error if __x < 0 .

cyl_bessel_kf()

float std::cyl_bessel_kf (
float __nu,
float __x) [inline]
Return the irregular modified Bessel function Kν (x) for float order ν and argument x >= 0.
See also

cyl_bessel_k for setails.

cyl_bessel_kl()

long double std::cyl_bessel_kl (


long double __nu,
long double __x) [inline]
Return the irregular modified Bessel function Kν (x) for long double order ν and argument x >= 0.
See also

cyl_bessel_k for setails.

cyl_neumann()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_neumann (
_Tpnu __nu,
_Tp __x) [inline]
Return the Neumann function Nν (x) of real order ν and argument x >= 0.
The Neumann function is defined by:
Jν (x) cos νπ − J−ν (x)
Nν (x) =
sin νπ
where x >= 0 and for integral order ν = n a limit is taken: limν→n .

Template Parameters

_Tpnu The floating-point type of the order __nu.


_Tp The floating-point type of the argument __x.

Parameters
__nu The order
__x The argument, __x >= 0

Exceptions

std::domain_error if __x < 0 .

Generated by Doxygen
204

cyl_neumannf()

float std::cyl_neumannf (
float __nu,
float __x) [inline]
Return the Neumann function Nν (x) of float order ν and argument x.

See also

cyl_neumann for setails.

cyl_neumannl()

long double std::cyl_neumannl (


long double __nu,
long double __x) [inline]
Return the Neumann function Nν (x) of long double order ν and argument x.

See also

cyl_neumann for setails.

ellint_1()

template<typename _Tp , typename _Tpp >


__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::ellint_1 (
_Tp __k,
_Tpp __phi) [inline]
Return the incomplete elliptic integral of the first kind F (k, ϕ) for real modulus k and angle ϕ.
The incomplete elliptic integral of the first kind is defined as
Z ϕ

F (k, ϕ) = √
0 1 − k 2 sin2 θ
For ϕ = π/2 this becomes the complete elliptic integral of the first kind, K(k).

See also

comp_ellint_1.

Template Parameters

_Tp The floating-point type of the modulus __k.


_Tpp The floating-point type of the angle __phi.

Parameters
__k The modulus, abs(__k) <= 1
__phi The integral limit argument in radians

Exceptions

std::domain_error if abs(__k) > 1 .

Generated by Doxygen
3.11 Numerics 205

ellint_1f()

float std::ellint_1f (
float __k,
float __phi) [inline]
Return the incomplete elliptic integral of the first kind E(k, ϕ) for float modulus k and angle ϕ.

See also

ellint_1 for details.

ellint_1l()

long double std::ellint_1l (


long double __k,
long double __phi) [inline]
Return the incomplete elliptic integral of the first kind E(k, ϕ) for long double modulus k and angle ϕ.

See also

ellint_1 for details.

ellint_2()

template<typename _Tp , typename _Tpp >


__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::ellint_2 (
_Tp __k,
_Tpp __phi) [inline]
Return the incomplete elliptic integral of the second kind E(k, ϕ).
The incomplete elliptic integral of the second kind is defined as
Z ϕ p
E(k, ϕ) = 1 − k 2 sin2 θ
0

For ϕ = π/2 this becomes the complete elliptic integral of the second kind, E(k).

See also

comp_ellint_2.

Template Parameters

_Tp The floating-point type of the modulus __k.


_Tpp The floating-point type of the angle __phi.

Parameters
__k The modulus, abs(__k) <= 1
__phi The integral limit argument in radians

Returns

The elliptic function of the second kind.

Generated by Doxygen
206

Exceptions

std::domain_error if abs(__k) > 1 .

ellint_2f()

float std::ellint_2f (
float __k,
float __phi) [inline]
Return the incomplete elliptic integral of the second kind E(k, ϕ) for float argument.

See also

ellint_2 for details.

ellint_2l()

long double std::ellint_2l (


long double __k,
long double __phi) [inline]
Return the incomplete elliptic integral of the second kind E(k, ϕ).

See also

ellint_2 for details.

ellint_3()

template<typename _Tp , typename _Tpn , typename _Tpp >


__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type std::ellint_3 (
_Tp __k,
_Tpn __nu,
_Tpp __phi) [inline]
Return the incomplete elliptic integral of the third kind Π(k, ν, ϕ).
The incomplete elliptic integral of the third kind is defined by:
Z ϕ

Π(k, ν, ϕ) = p
0 (1 − ν sin θ) 1 − k 2 sin2 θ
2

For ϕ = π/2 this becomes the complete elliptic integral of the third kind, Π(k, ν).

See also

comp_ellint_3.

Template Parameters

_Tp The floating-point type of the modulus __k.


_Tpn The floating-point type of the argument __nu.
_Tpp The floating-point type of the angle __phi.

Generated by Doxygen
3.11 Numerics 207

Parameters
__k The modulus, abs(__k) <= 1
__nu The second argument
__phi The integral limit argument in radians

Returns

The elliptic function of the third kind.

Exceptions

std::domain_error if abs(__k) > 1 .

ellint_3f()

float std::ellint_3f (
float __k,
float __nu,
float __phi) [inline]
Return the incomplete elliptic integral of the third kind Π(k, ν, ϕ) for float argument.
See also

ellint_3 for details.

ellint_3l()

long double std::ellint_3l (


long double __k,
long double __nu,
long double __phi) [inline]
Return the incomplete elliptic integral of the third kind Π(k, ν, ϕ).
See also

ellint_3 for details.

expint()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::expint (
_Tp __x) [inline]
Return the exponential integral Ei(x) for real argument x.
The exponential integral is given by

et
Z
Ei(x) = − dt
−x t

Template Parameters

_Tp The floating-point type of the argument __x.

Generated by Doxygen
208

Parameters

_←- The argument of the exponential integral function.


_x

expintf()

float std::expintf (
float __x) [inline]
Return the exponential integral Ei(x) for float argument x.

See also

expint for details.

expintl()

long double std::expintl (


long double __x) [inline]
Return the exponential integral Ei(x) for long double argument x.

See also

expint for details.

hermite()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::hermite (
unsigned int __n,
_Tp __x) [inline]
Return the Hermite polynomial Hn (x) of order n and real argument x.
The Hermite polynomial is defined by:
2 dn −x2
Hn (x) = (−1)n ex e
dxn
The Hermite polynomial obeys a reflection formula:

Hn (−x) = (−1)n Hn (x)

Template Parameters

_Tp The floating-point type of the argument __x.

Parameters
_←- The order
_n
_←- The argument
_x

Generated by Doxygen
3.11 Numerics 209

hermitef()

float std::hermitef (
unsigned int __n,
float __x) [inline]
Return the Hermite polynomial Hn (x) of nonnegative order n and float argument x.

See also

hermite for details.

hermitel()

long double std::hermitel (


unsigned int __n,
long double __x) [inline]
Return the Hermite polynomial Hn (x) of nonnegative order n and long double argument x.

See also

hermite for details.

hyperg()

template<typename _Tpa , typename _Tpb , typename _Tpc , typename _Tp >


__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type __gnu_cxx::hyperg (
_Tpa __a,
_Tpb __b,
_Tpc __c,
_Tp __x) [inline]
Return the hypergeometric function 2 F1 (a, b; c; x) of real numeratorial parameters a and b, denominatorial parameter
c, and argument x.
The hypergeometric function is defined by

X (a)n (b)n xn
2 F1 (a; c; x) =
n=0
(c)n n!

where the Pochhammer symbol is (x)k = (x)(x + 1)...(x + k − 1), (x)0 = 1

Parameters

_←- The first numeratorial parameter


_a
_←- The second numeratorial parameter
_b
_←- The denominatorial parameter
_c
_←- The argument
_x

hypergf()

float __gnu_cxx::hypergf (
float __a,

Generated by Doxygen
210

float __b,
float __c,
float __x) [inline]
Return the hypergeometric function 2 F1 (a, b; c; x) of @ float numeratorial parameters a and b, denominatorial param-
eter c, and argument x.

See also

hyperg for details.

hypergl()

long double __gnu_cxx::hypergl (


long double __a,
long double __b,
long double __c,
long double __x) [inline]
Return the hypergeometric function 2 F1 (a, b; c; x) of long double numeratorial parameters a and b, denominatorial
parameter c, and argument x.

See also

hyperg for details.

laguerre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::laguerre (
unsigned int __n,
_Tp __x) [inline]
Returns the Laguerre polynomial Ln (x) of nonnegative degree n and real argument x >= 0.
The Laguerre polynomial is defined by:
ex dn n −x
Ln (x) = (x e )
n! dxn

Template Parameters

_Tp The floating-point type of the argument __x.

Parameters
_←- The nonnegative order
_n
_←- The argument __x >= 0
_x

Exceptions

std::domain_error if __x < 0 .

Generated by Doxygen
3.11 Numerics 211

laguerref()

float std::laguerref (
unsigned int __n,
float __x) [inline]
Returns the Laguerre polynomial Ln (x) of nonnegative degree n and float argument x >= 0.

See also

laguerre for more details.

laguerrel()

long double std::laguerrel (


unsigned int __n,
long double __x) [inline]
Returns the Laguerre polynomial Ln (x) of nonnegative degree n and long double argument x >= 0.

See also

laguerre for more details.

legendre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::legendre (
unsigned int __l,
_Tp __x) [inline]
Return the Legendre polynomial Pl (x) of nonnegative degree l and real argument |x| <= 0.
The Legendre function of order l and argument x, Pl (x), is defined by:

1 dl 2
Pl (x) = (x − 1)l
2l l! dxl

Template Parameters

_Tp The floating-point type of the argument __x.

Parameters

_←- The degree l >= 0


_l
_←- The argument abs(__x) <= 1
_x

Exceptions

std::domain_error if abs(__x) > 1

Generated by Doxygen
212

legendref()

float std::legendref (
unsigned int __l,
float __x) [inline]
Return the Legendre polynomial Pl (x) of nonnegative degree l and float argument |x| <= 0.

See also

legendre for more details.

legendrel()

long double std::legendrel (


unsigned int __l,
long double __x) [inline]
Return the Legendre polynomial Pl (x) of nonnegative degree l and long double argument |x| <= 0.

See also

legendre for more details.

riemann_zeta()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::riemann_zeta (
_Tp __s) [inline]
Return the Riemann zeta function ζ(s) for real argument s.
The Riemann zeta function is defined by:

X
ζ(s) = k −s for s > 1
k=1

and

1 X
ζ(s) = (−1)k−1 k −s for 0 <= s <= 1
1 − 21−s
k=1

For s < 1 use the reflection formula:


πs
ζ(s) = 2s π s−1 sin( )Γ(1 − s)ζ(1 − s)
2

Template Parameters

_Tp The floating-point type of the argument __s.

Parameters
_←- The argument s != 1
_s

Generated by Doxygen
3.11 Numerics 213

riemann_zetaf()

float std::riemann_zetaf (
float __s) [inline]
Return the Riemann zeta function ζ(s) for float argument s.

See also

riemann_zeta for more details.

riemann_zetal()

long double std::riemann_zetal (


long double __s) [inline]
Return the Riemann zeta function ζ(s) for long double argument s.

See also

riemann_zeta for more details.

sph_bessel()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::sph_bessel (
unsigned int __n,
_Tp __x) [inline]
Return the spherical Bessel function jn (x) of nonnegative order n and real argument x >= 0.
The spherical Bessel function is defined by:
 π 1/2
jn (x) = Jn+1/2 (x)
2x

Template Parameters

_Tp The floating-point type of the argument __x.

Parameters
_←- The integral order n >= 0
_n
_←- The real argument x >= 0
_x

Exceptions

std::domain_error if __x < 0 .

Generated by Doxygen
214

sph_besself()

float std::sph_besself (
unsigned int __n,
float __x) [inline]
Return the spherical Bessel function jn (x) of nonnegative order n and float argument x >= 0.

See also

sph_bessel for more details.

sph_bessell()

long double std::sph_bessell (


unsigned int __n,
long double __x) [inline]
Return the spherical Bessel function jn (x) of nonnegative order n and long double argument x >= 0.

See also

sph_bessel for more details.

sph_legendre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::sph_legendre (
unsigned int __l,
unsigned int __m,
_Tp __theta) [inline]
Return the spherical Legendre function of nonnegative integral degree l and order m and real angle θ in radians.
The spherical Legendre function is defined by

(2l + 1) (l − m)! m
Ylm (θ, ϕ) = (−1)m [ ]P (cos θ) expimϕ
4π (l + m)! l

Template Parameters

_Tp The floating-point type of the angle __theta.

Parameters
__l The order __l >= 0
__m The degree __m >= 0 and __m <=
__l
__theta The radian polar angle argument

sph_legendref()

float std::sph_legendref (
unsigned int __l,
unsigned int __m,
float __theta) [inline]
Return the spherical Legendre function of nonnegative integral degree l and order m and float angle θ in radians.

Generated by Doxygen
3.11 Numerics 215

See also

sph_legendre for details.

sph_legendrel()

long double std::sph_legendrel (


unsigned int __l,
unsigned int __m,
long double __theta) [inline]
Return the spherical Legendre function of nonnegative integral degree l and order m and long double angle θ in
radians.
See also

sph_legendre for details.

sph_neumann()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::sph_neumann (
unsigned int __n,
_Tp __x) [inline]
Return the spherical Neumann function of integral order n >= 0 and real argument x >= 0.
The spherical Neumann function is defined by
 π 1/2
nn (x) = Nn+1/2 (x)
2x

Template Parameters

_Tp The floating-point type of the argument __x.

Parameters
_←- The integral order n >= 0
_n
_←- The real argument __x >= 0
_x

Exceptions

std::domain_error if __x < 0 .

sph_neumannf()

float std::sph_neumannf (
unsigned int __n,
float __x) [inline]
Return the spherical Neumann function of integral order n >= 0 and float argument x >= 0.
See also

sph_neumann for details.

Generated by Doxygen
216

sph_neumannl()

long double std::sph_neumannl (


unsigned int __n,
long double __x) [inline]
Return the spherical Neumann function of integral order n >= 0 and long double x >= 0.

See also

sph_neumann for details.

3.11.6 Numeric Arrays

Collaboration diagram for Numeric Arrays:

Numerics Numeric Arrays

Classes

• class std::gslice
• class std::gslice_array< _Tp >
• class std::indirect_array< _Tp >
• class std::mask_array< _Tp >
• class std::slice
• class std::slice_array< _Tp >
• class std::valarray< _Tp >

Functions

• std::gslice::gslice ()
• std::gslice::gslice (const gslice &)
• std::gslice::gslice (size_t __o, const valarray< size_t > &__l, const valarray< size_t > &__s)
• std::slice::slice ()
• std::slice::slice (size_t __o, size_t __d, size_t __s)
• std::valarray< _Tp >::valarray () noexcept
• template<class _Dom >
std::valarray< _Tp >::valarray (const _Expr< _Dom, _Tp > &__e)
• std::valarray< _Tp >::valarray (const _Tp &, size_t)
• template<typename _Tp >
std::valarray< _Tp >::valarray (const _Tp ∗__restrict__ __p, size_t __n)
• std::valarray< _Tp >::valarray (const gslice_array< _Tp > &)
• std::valarray< _Tp >::valarray (const indirect_array< _Tp > &)
• std::valarray< _Tp >::valarray (const mask_array< _Tp > &)
• std::valarray< _Tp >::valarray (const slice_array< _Tp > &)
• template<typename _Tp >
std::valarray< _Tp >::valarray (const valarray< _Tp > &__v)

Generated by Doxygen
3.11 Numerics 217

• std::valarray< _Tp >::valarray (initializer_list< _Tp >)


• std::valarray< _Tp >::valarray (size_t)
• template<typename _Tp >
std::valarray< _Tp >::valarray (valarray< _Tp > &&__v) noexcept
• std::gslice::∼gslice ()
• _Expr< _ValFunClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::apply (_Tp __func(_Tp)) const
• _Expr< _RefFunClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::apply (_Tp __func(const _Tp &)) const
• template<class _Tp >
const _Tp ∗ std::begin (const valarray< _Tp > &__va) noexcept
• template<class _Tp >
_Tp ∗ std::begin (valarray< _Tp > &__va) noexcept
• valarray< _Tp > std::valarray< _Tp >::cshift (int __n) const
• template<class _Tp >
const _Tp ∗ std::end (const valarray< _Tp > &__va) noexcept
• template<class _Tp >
_Tp ∗ std::end (valarray< _Tp > &__va) noexcept
• _Tp std::valarray< _Tp >::max () const
• _Tp std::valarray< _Tp >::min () const
• gslice & std::gslice::operator= (const gslice &)
• template<class _Dom >
void std::gslice_array< _Tp >::operator= (const _Expr< _Dom, _Tp > &) const
• void std::gslice_array< _Tp >::operator= (const _Tp &) const
• template<typename _Tp >
gslice_array< _Tp > & std::gslice_array< _Tp >::operator= (const gslice_array< _Tp > &__a)
• void std::gslice_array< _Tp >::operator= (const valarray< _Tp > &) const
• template<class _Dom >
void std::indirect_array< _Tp >::operator= (const _Expr< _Dom, _Tp > &) const
• void std::indirect_array< _Tp >::operator= (const _Tp &) const
• template<typename _Tp >
indirect_array< _Tp > & std::indirect_array< _Tp >::operator= (const indirect_array< _Tp > &__a)
• void std::indirect_array< _Tp >::operator= (const valarray< _Tp > &) const
• template<class _Ex >
void std::mask_array< _Tp >::operator= (const _Expr< _Ex, _Tp > &__e) const
• void std::mask_array< _Tp >::operator= (const _Tp &) const
• template<typename _Tp >
mask_array< _Tp > & std::mask_array< _Tp >::operator= (const mask_array< _Tp > &__a)
• void std::mask_array< _Tp >::operator= (const valarray< _Tp > &) const
• template<class _Dom >
void std::slice_array< _Tp >::operator= (const _Expr< _Dom, _Tp > &) const
• void std::slice_array< _Tp >::operator= (const _Tp &) const
• template<typename _Tp >
slice_array< _Tp > & std::slice_array< _Tp >::operator= (const slice_array< _Tp > &__a)
• void std::slice_array< _Tp >::operator= (const valarray< _Tp > &) const
• template<class _Dom >
valarray< _Tp > & std::valarray< _Tp >::operator= (const _Expr< _Dom, _Tp > &)
• valarray< _Tp > & std::valarray< _Tp >::operator= (const _Tp &__t)
• valarray< _Tp > & std::valarray< _Tp >::operator= (const gslice_array< _Tp > &__ga)
• valarray< _Tp > & std::valarray< _Tp >::operator= (const indirect_array< _Tp > &__ia)
• valarray< _Tp > & std::valarray< _Tp >::operator= (const mask_array< _Tp > &__ma)
• valarray< _Tp > & std::valarray< _Tp >::operator= (const slice_array< _Tp > &__sa)
• valarray< _Tp > & std::valarray< _Tp >::operator= (const valarray< _Tp > &__v)
• valarray & std::valarray< _Tp >::operator= (initializer_list< _Tp > __l)

Generated by Doxygen
218

• valarray< _Tp > & std::valarray< _Tp >::operator= (valarray< _Tp > &&__v) noexcept
• gslice_array< _Tp > std::valarray< _Tp >::operator[ ] (const gslice &__s)
• _Expr< _GClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::operator[ ] (const gslice &__s) const
• mask_array< _Tp > std::valarray< _Tp >::operator[ ] (const valarray< bool > &__m)
• valarray< _Tp > std::valarray< _Tp >::operator[ ] (const valarray< bool > &__m) const
• indirect_array< _Tp > std::valarray< _Tp >::operator[ ] (const valarray< size_t > &__i)
• _Expr< _IClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::operator[ ] (const valarray< size_t > &__i) const
• _Tp & std::valarray< _Tp >::operator[ ] (size_t __i) noexcept
• const _Tp & std::valarray< _Tp >::operator[ ] (size_t) const noexcept
• slice_array< _Tp > std::valarray< _Tp >::operator[ ] (slice __s)
• _Expr< _SClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::operator[ ] (slice __s) const
• void std::valarray< _Tp >::resize (size_t __size, _Tp __c=_Tp())
• valarray< _Tp > std::valarray< _Tp >::shift (int __n) const
• valarray< size_t > std::gslice::size () const
• size_t std::slice::size () const
• size_t std::valarray< _Tp >::size () const
• size_t std::gslice::start () const
• size_t std::slice::start () const
• valarray< size_t > std::gslice::stride () const
• size_t std::slice::stride () const
• _Tp std::valarray< _Tp >::sum () const
• void std::valarray< _Tp >::swap (valarray< _Tp > &__v) noexcept
• template<typename _Tp , size_t _Nm>
std::valarray (const _Tp(&)[_Nm], size_t) -> valarray< _Tp >

3.11.6.1 Detailed Description

Classes and functions for representing and manipulating arrays of elements.

3.11.6.2 Function Documentation

gslice() [1/3]

std::gslice::gslice () [inline]
Construct an empty slice.

gslice() [2/3]

std::gslice::gslice (
const gslice & __g) [inline]
Copy constructor.

gslice() [3/3]

std::gslice::gslice (
size_t __o,
const valarray< size_t > & __l,
const valarray< size_t > & __s) [inline]
Construct a slice.
Constructs a slice with as many dimensions as the length of the l and s arrays.

Generated by Doxygen
3.11 Numerics 219

Parameters

_←- Offset in array of first element.


_o
_←- Array of dimension lengths.
_l
_←- Array of dimension strides between array elements.
_s

slice() [1/2]

std::slice::slice () [inline]
Construct an empty slice.

slice() [2/2]

std::slice::slice (
size_t __o,
size_t __d,
size_t __s) [inline]
Construct a slice.

Parameters

_←- Offset in array of first element.


_o
_←- Number of elements in slice.
_d
_←- Stride between array elements.
_s

valarray() [1/8]

template<typename _Tp >


std::valarray< _Tp >::valarray () [inline], [noexcept]
Construct an empty array.

valarray() [2/8]

template<typename _Tp >


std::valarray< _Tp >::valarray (
const _Tp & __t,
size_t __n) [inline]
Construct an array with n elements initialized to t.

valarray() [3/8]

template<typename _Tp >


std::valarray< _Tp >::valarray (
const gslice_array< _Tp > & __ga) [inline]
Construct an array with the same size and values in ga.

Generated by Doxygen
220

valarray() [4/8]

template<typename _Tp >


std::valarray< _Tp >::valarray (
const indirect_array< _Tp > & __ia) [inline]
Construct an array with the same size and values in ia.

valarray() [5/8]

template<typename _Tp >


std::valarray< _Tp >::valarray (
const mask_array< _Tp > & __ma) [inline]
Construct an array with the same size and values in ma.

valarray() [6/8]

template<typename _Tp >


std::valarray< _Tp >::valarray (
const slice_array< _Tp > & __sa) [inline]
Construct an array with the same size and values in sa.

valarray() [7/8]

template<typename _Tp >


std::valarray< _Tp >::valarray (
initializer_list< _Tp > __l) [inline]
Construct an array with an initializer_list of values.

valarray() [8/8]

template<typename _Tp >


std::valarray< _Tp >::valarray (
size_t __n) [inline], [explicit]
Construct an array with n elements.

∼gslice()
std::gslice::∼gslice () [inline]
Destructor.

apply() [1/2]

template<class _Tp >


_Expr< _ValFunClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::apply (
_Tp __func_Tp) const [inline]
Apply a function to the array.
Returns a new valarray with elements assigned to the result of applying __func to the corresponding element of this
array. The new array has the same size as this one.

Parameters

__func Function of Tp returning Tp to apply.

Generated by Doxygen
3.11 Numerics 221

Returns

New valarray with transformed elements.

apply() [2/2]

template<class _Tp >


_Expr< _RefFunClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::apply (
_Tp __funcconst _Tp &) const [inline]
Apply a function to the array.
Returns a new valarray with elements assigned to the result of applying __func to the corresponding element of this
array. The new array has the same size as this one.

Parameters

__func Function of const Tp& returning Tp to apply.

Returns

New valarray with transformed elements.

begin() [1/2]

template<class _Tp >


const _Tp ∗ std::begin (
const valarray< _Tp > & __va) [inline], [noexcept]
Return an iterator pointing to the first element of the const valarray.

Parameters
__va valarray.

begin() [2/2]

template<class _Tp >


_Tp ∗ std::begin (
valarray< _Tp > & __va) [inline], [noexcept]
Return an iterator pointing to the first element of the valarray.

Parameters
__va valarray.

Referenced by std::cbegin(), std::list< _Tp, _Alloc >::crend(), std::list< _Tp, _Alloc >::front(), std::list< _Tp, _Alloc >::front(),
std::vector< _Tp, _Alloc >::insert(), std::list< _Tp, _Alloc >::merge(), std::list< _Tp, _Alloc >::merge(), std::list< _Tp, _Alloc >::pop_fron
std::list< _Tp, _Alloc >::push_front(), std::list< _Tp, _Alloc >::remove(), std::list< _Tp, _Alloc >::remove_if(),
std::list< _Tp, _Alloc >::rend(), std::list< _Tp, _Alloc >::rend(), std::list< _Tp, _Alloc >::size(), std::list< _Tp, _Alloc >::sort(),
std::list< _Tp, _Alloc >::sort(), std::list< _Tp, _Alloc >::unique(), and std::list< _Tp, _Alloc >::unique().

Generated by Doxygen
222

cshift()

template<class _Tp >


valarray< _Tp > std::valarray< _Tp >::cshift (
int __n) const [inline]
Return a rotated array.
A new valarray is constructed as a copy of this array with elements in shifted positions. For an element with index i, the
new position is (i - n) % size(). The new valarray has the same size as the current one. Elements that are shifted beyond
the array bounds are shifted into the other end of the array. No elements are lost.
Positive arguments shift toward index 0, wrapping around the top. Negative arguments shift towards the top, wrapping
around to 0.

Parameters

_←- Number of element positions to rotate.


_n

Returns

New valarray with elements in shifted positions.

end() [1/2]

template<class _Tp >


const _Tp ∗ std::end (
const valarray< _Tp > & __va) [inline], [noexcept]
Return an iterator pointing to one past the last element of the const valarray.

Parameters
__va valarray.

end() [2/2]

template<class _Tp >


_Tp ∗ std::end (
valarray< _Tp > & __va) [inline], [noexcept]
Return an iterator pointing to one past the last element of the valarray.

Parameters
__va valarray.

Referenced by std::list< _Tp, _Alloc >::back(), std::list< _Tp, _Alloc >::back(), std::cend(), std::list< _Tp, _Alloc >::crbegin(),
std::vector< _Tp, _Alloc >::insert(), std::list< _Tp, _Alloc >::merge(), std::list< _Tp, _Alloc >::merge(), std::list< _Tp, _Alloc >::push_ba
std::list< _Tp, _Alloc >::rbegin(), std::list< _Tp, _Alloc >::rbegin(), std::list< _Tp, _Alloc >::remove(), std::list< _Tp, _Alloc >::remove_if
std::forward_list< _Tp, _Alloc >::resize(), std::forward_list< _Tp, _Alloc >::resize(), std::list< _Tp, _Alloc >::resize(),
std::list< _Tp, _Alloc >::resize(), std::list< _Tp, _Alloc >::size(), std::list< _Tp, _Alloc >::sort(), std::list< _Tp, _Alloc >::sort(),
std::list< _Tp, _Alloc >::unique(), and std::list< _Tp, _Alloc >::unique().

max()

template<typename _Tp >


_Tp std::valarray< _Tp >::max () const [inline]
Return the maximum element using operator<().

Generated by Doxygen
3.11 Numerics 223

min()

template<typename _Tp >


_Tp std::valarray< _Tp >::min () const [inline]
Return the minimum element using operator<().

operator=() [1/16]

gslice & std::gslice::operator= (


const gslice & __g) [inline]
Assignment operator.

operator=() [2/16]

template<typename _Tp >


void std::gslice_array< _Tp >::operator= (
const _Tp & __t) const [inline]
Assign all slice elements to t.

operator=() [3/16]

template<typename _Tp >


void std::gslice_array< _Tp >::operator= (
const valarray< _Tp > & __v) const [inline]
Assign slice elements to corresponding elements of v.
References std::valarray< _Tp >::size().

operator=() [4/16]

template<typename _Tp >


void std::indirect_array< _Tp >::operator= (
const _Tp & __t) const [inline]
Assign all slice elements to t.

operator=() [5/16]

template<typename _Tp >


void std::indirect_array< _Tp >::operator= (
const valarray< _Tp > & __v) const [inline]
Assign slice elements to corresponding elements of v.

operator=() [6/16]

template<typename _Tp >


void std::mask_array< _Tp >::operator= (
const _Tp & __t) const [inline]
Assign all slice elements to t.

operator=() [7/16]

template<typename _Tp >


void std::slice_array< _Tp >::operator= (
const _Tp & __t) const [inline]
Assign all slice elements to t.

Generated by Doxygen
224

operator=() [8/16]

template<typename _Tp >


void std::slice_array< _Tp >::operator= (
const valarray< _Tp > & __v) const [inline]
Assign slice elements to corresponding elements of v.

operator=() [9/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
const _Tp & __t) [inline]
Assign elements to a value.
Assign all elements of array to t.

Parameters

←- Value for elements.


_←-
←-
_←-
t

operator=() [10/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
const gslice_array< _Tp > & __ga) [inline]
Assign elements to an array subset.
Assign elements of array to values in ga. Results are undefined if ga does not have the same size as this array.

Parameters

__ga Array slice to get values from.

operator=() [11/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
const indirect_array< _Tp > & __ia) [inline]
Assign elements to an array subset.
Assign elements of array to values in ia. Results are undefined if ia does not have the same size as this array.

Parameters

_←- Array slice to get values from.


_ia

Generated by Doxygen
3.11 Numerics 225

operator=() [12/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
const mask_array< _Tp > & __ma) [inline]
Assign elements to an array subset.
Assign elements of array to values in ma. Results are undefined if ma does not have the same size as this array.

Parameters

__ma Array slice to get values from.

operator=() [13/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
const slice_array< _Tp > & __sa) [inline]
Assign elements to an array subset.
Assign elements of array to values in sa. Results are undefined if sa does not have the same size as this array.

Parameters

__sa Array slice to get values from.

operator=() [14/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
const valarray< _Tp > & __v) [inline]
Assign elements to an array.
Assign elements of array to values in v.

Parameters

_←- Valarray to get values from.


_v

operator=() [15/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
initializer_list< _Tp > __l) [inline]
Assign elements to an initializer_list.
Assign elements of array to values in __l. Results are undefined if __l does not have the same size as this array.

Parameters

←- initializer_list to get values from.


_←-
←-
_←-
l

Generated by Doxygen
226

operator=() [16/16]

template<typename _Tp >


valarray< _Tp > & std::valarray< _Tp >::operator= (
valarray< _Tp > && __v) [inline], [noexcept]
Move assign elements to an array.
Move assign elements of array to values in v.

Parameters

_←- Valarray to get values from.


_v

operator[]() [1/9]

template<typename _Tp >


gslice_array< _Tp > std::valarray< _Tp >::operator[ ] (
const gslice & __s) [inline]
Return a reference to an array subset.
Returns a new valarray containing the elements of the array indicated by the gslice argument. The new valarray has the
same size as the input gslice.
See also

gslice.

Parameters
_←- The source gslice.
_s

Returns

New valarray containing elements in __s.

operator[]() [2/9]

template<typename _Tp >


_Expr< _GClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::operator[ ] (
const gslice & __s) const [inline]
Return an array subset.
Returns a slice_array referencing the elements of the array indicated by the slice argument.
See also

gslice.

Parameters
_←- The source slice.
_s

Returns

Slice_array referencing elements indicated by __s.

Generated by Doxygen
3.11 Numerics 227

operator[]() [3/9]

template<typename _Tp >


mask_array< _Tp > std::valarray< _Tp >::operator[ ] (
const valarray< bool > & __m) [inline]
Return a reference to an array subset.
Returns a new mask_array referencing the elements of the array indicated by the argument. The input is a valarray of
bool which represents a bitmask indicating which elements are part of the subset. Elements of the array are part of the
subset if the corresponding element of the argument is true.

Parameters
_←- The valarray bitmask.
_m

Returns

New valarray containing elements indicated by __m.

operator[]() [4/9]

template<typename _Tp >


valarray< _Tp > std::valarray< _Tp >::operator[ ] (
const valarray< bool > & __m) const [inline]
Return an array subset.
Returns a new valarray containing the elements of the array indicated by the argument. The input is a valarray of bool
which represents a bitmask indicating which elements should be copied into the new valarray. Each element of the array
is added to the return valarray if the corresponding element of the argument is true.

Parameters
_←- The valarray bitmask.
_m

Returns

New valarray containing elements indicated by __m.

operator[]() [5/9]

template<typename _Tp >


indirect_array< _Tp > std::valarray< _Tp >::operator[ ] (
const valarray< size_t > & __i) [inline]
Return a reference to an array subset.
Returns an indirect_array referencing the elements of the array indicated by the argument. The elements in the argument
are interpreted as the indices of elements of this valarray to include in the subset. The returned indirect_array refers to
these elements.

Generated by Doxygen
228

Parameters
←- The valarray element index list.
_←-
←-
_←-
i

Returns

Indirect_array referencing elements in __i.

operator[]() [6/9]

template<typename _Tp >


_Expr< _IClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::operator[ ] (
const valarray< size_t > & __i) const [inline]
Return an array subset.
Returns a new valarray containing the elements of the array indicated by the argument. The elements in the argument
are interpreted as the indices of elements of this valarray to copy to the return valarray.

Parameters
←- The valarray element index list.
_←-
←-
_←-
i

Returns

New valarray containing elements in __s.

operator[]() [7/9]

template<typename _Tp >


_Tp & std::valarray< _Tp >::operator[ ] (
size_t __i) [inline], [noexcept]
Return a reference to the i'th array element.

Parameters

←- Index of element to return.


_←-
←-
_←-
i

Returns

Reference to the i'th element.

Generated by Doxygen
3.11 Numerics 229

operator[]() [8/9]

template<typename _Tp >


slice_array< _Tp > std::valarray< _Tp >::operator[ ] (
slice __s) [inline]
Return a reference to an array subset.
Returns a new valarray containing the elements of the array indicated by the slice argument. The new valarray has the
same size as the input slice.

See also

slice.

Parameters
_←- The source slice.
_s

Returns

New valarray containing elements in __s.

operator[]() [9/9]

template<typename _Tp >


_Expr< _SClos< _ValArray, _Tp >, _Tp > std::valarray< _Tp >::operator[ ] (
slice __s) const [inline]
Return an array subset.
Returns a new valarray containing the elements of the array indicated by the slice argument. The new valarray has the
same size as the input slice.

See also

slice.

Parameters
_←- The source slice.
_s

Returns

New valarray containing elements in __s.

resize()

template<class _Tp >


void std::valarray< _Tp >::resize (
size_t __size,
_Tp __c = _Tp()) [inline]
Resize array.
Resize this array to size and set all elements to c. All references and iterators are invalidated.

Generated by Doxygen
230

Parameters
__size New array size.
__c New value for all elements.

shift()

template<class _Tp >


valarray< _Tp > std::valarray< _Tp >::shift (
int __n) const [inline]
Return a shifted array.
A new valarray is constructed as a copy of this array with elements in shifted positions. For an element with index i, the
new position is i - n. The new valarray has the same size as the current one. New elements without a value are set to 0.
Elements whose new position is outside the bounds of the array are discarded.
Positive arguments shift toward index 0, discarding elements [0, n). Negative arguments discard elements from the top
of the array.

Parameters

_←- Number of element positions to shift.


_n

Returns

New valarray with elements in shifted positions.

size() [1/3]

valarray< size_t > std::gslice::size () const [inline]


Return array of sizes of slice dimensions.

size() [2/3]

size_t std::slice::size () const [inline]


Return size of slice.

size() [3/3]

template<class _Tp >


size_t std::valarray< _Tp >::size () const [inline]
Return the number of elements in array.
Referenced by std::gslice_array< _Tp >::operator=().

start() [1/2]

size_t std::gslice::start () const [inline]


Return array offset of first slice element.

start() [2/2]

size_t std::slice::start () const [inline]


Return array offset of first slice element.

Generated by Doxygen
3.11 Numerics 231

stride() [1/2]

valarray< size_t > std::gslice::stride () const [inline]


Return array of array strides for each dimension.

stride() [2/2]

size_t std::slice::stride () const [inline]


Return array stride of slice.

sum()

template<class _Tp >


_Tp std::valarray< _Tp >::sum () const [inline]
Return the sum of all elements in the array.
Accumulates the sum of all elements into a Tp using +=. The order of adding the elements is unspecified.

swap()

template<class _Tp >


void std::valarray< _Tp >::swap (
valarray< _Tp > & __v) [inline], [noexcept]
Swap.

3.11.7 Random Number Generation

Collaboration diagram for Random Number Generation:

Random Number Distributions

Numerics Random Number Generation Random Number Generators

Random Number Utilities

Topics

• Random Number Distributions


• Random Number Generators
• Random Number Utilities

Functions

• template<typename _RealType , size_t __bits, typename _UniformRandomNumberGenerator >


_RealType std::generate_canonical (_UniformRandomNumberGenerator &__g)

3.11.7.1 Detailed Description

A facility for generating random numbers on selected distributions.

Generated by Doxygen
232

3.11.7.2 Function Documentation

generate_canonical()

template<typename _RealType , size_t __bits, typename _UniformRandomNumberGenerator >


_RealType std::generate_canonical (
_UniformRandomNumberGenerator & __g)
A function template for converting the output of a (integral) uniform random number generator to a floatng point result in
the range [0-1).
References std::numeric_limits< _Tp >::epsilon(), std::generate_canonical(), std::log(), std::max(), and std::min().
Referenced by std::generate_canonical().

3.11.7.3 Random Number Distributions

Collaboration diagram for Random Number Distributions:

Bernoulli Distributions

Normal Distributions

Random Number Generation Random Number Distributions Poisson Distributions

Sampling Distributions

Uniform Distributions

Topics

• Bernoulli Distributions
• Normal Distributions
• Poisson Distributions
• Sampling Distributions
• Uniform Distributions

3.11.7.3.1 Detailed Description

3.11.7.3.2 Bernoulli Distributions

Collaboration diagram for Bernoulli Distributions:

Random Number Distributions Bernoulli Distributions

Generated by Doxygen
3.11 Numerics 233

Classes

• class std::bernoulli_distribution
• class std::binomial_distribution< _IntType >
• class std::geometric_distribution< _IntType >
• class std::negative_binomial_distribution< _IntType >

Functions

• template<typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::bernoulli_distribution &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::geometric_distribution< _IntType > &__x)
• template<typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::bernoulli_distribution &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::geometric_distribution< _IntType > &__x)

Detailed Description

Function Documentation

operator<<() [1/2]

template<typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::bernoulli_distribution & __x)
Inserts a bernoulli_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A bernoulli_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

operator<<() [2/2]

template<typename _IntType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::geometric_distribution< _IntType > & __x)
Inserts a geometric_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A geometric_distribution random number distribution.

Generated by Doxygen
234

Returns

The output stream with the state of __x inserted or in an error state.

References std::numeric_limits< _Tp >::epsilon(), std::log(), and std::numeric_limits< _Tp >::max().

operator>>() [1/2]

template<typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::bernoulli_distribution & __x) [inline]
Extracts a bernoulli_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A bernoulli_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

References std::bernoulli_distribution::param().

operator>>() [2/2]

template<typename _IntType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::geometric_distribution< _IntType > & __x)
Extracts a geometric_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A geometric_distribution random number generator engine.
_x

Generated by Doxygen
3.11 Numerics 235

Returns

The input stream with __x extracted or in an error state.

References std::ios_base::flags(), and std::geometric_distribution< _IntType >::param().

3.11.7.3.3 Normal Distributions

Collaboration diagram for Normal Distributions:

Random Number Distributions Normal Distributions

Classes

• class std::cauchy_distribution< _RealType >


• class std::chi_squared_distribution< _RealType >
• class std::fisher_f_distribution< _RealType >
• class std::lognormal_distribution< _RealType >
• class std::normal_distribution< _RealType >
• class std::student_t_distribution< _RealType >

Functions

• template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::cauchy_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::cauchy_distribution< _RealType > &__x)

Detailed Description

Function Documentation

operator<<()

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::cauchy_distribution< _RealType > & __x)
Inserts a cauchy_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A cauchy_distribution random number distribution.

Generated by Doxygen
236

Returns

The output stream with the state of __x inserted or in an error state.

References std::tan().

operator>>()

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::cauchy_distribution< _RealType > & __x)
Extracts a cauchy_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A cauchy_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

References std::ios_base::flags(), and std::cauchy_distribution< _RealType >::param().

3.11.7.3.4 Poisson Distributions

Collaboration diagram for Poisson Distributions:

Random Number Distributions Poisson Distributions

Classes

• class std::exponential_distribution< _RealType >


• class std::extreme_value_distribution< _RealType >
• class std::gamma_distribution< _RealType >
• class std::poisson_distribution< _IntType >
• class std::weibull_distribution< _RealType >

Functions

• template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::exponential_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::extreme_value_distribution< _RealType > &__x)

Generated by Doxygen
3.11 Numerics 237

• template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::weibull_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::exponential_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::extreme_value_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::weibull_distribution< _RealType > &__x)

Detailed Description

Function Documentation

operator<<() [1/3]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::exponential_distribution< _RealType > & __x)
Inserts a exponential_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A exponential_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

References std::log().

operator<<() [2/3]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::extreme_value_distribution< _RealType > & __x)
Inserts a extreme_value_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A extreme_value_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

References std::log().

Generated by Doxygen
238

operator<<() [3/3]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::weibull_distribution< _RealType > & __x)
Inserts a weibull_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A weibull_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

References std::log(), and std::pow().

operator>>() [1/3]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::exponential_distribution< _RealType > & __x)
Extracts a exponential_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A exponential_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

References std::ios_base::flags(), and std::exponential_distribution< _RealType >::param().

operator>>() [2/3]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::extreme_value_distribution< _RealType > & __x)
Extracts a extreme_value_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A extreme_value_distribution random number generator engine.
_x

Generated by Doxygen
3.11 Numerics 239

Returns

The input stream with __x extracted or in an error state.

References std::ios_base::flags(), and std::extreme_value_distribution< _RealType >::param().

operator>>() [3/3]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::weibull_distribution< _RealType > & __x)
Extracts a weibull_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A weibull_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

References std::ios_base::flags(), and std::weibull_distribution< _RealType >::param().

3.11.7.3.5 Sampling Distributions

Collaboration diagram for Sampling Distributions:

Random Number Distributions Sampling Distributions

Classes

• class std::discrete_distribution< _IntType >


• class std::piecewise_constant_distribution< _RealType >
• class std::piecewise_linear_distribution< _RealType >

Generated by Doxygen
240

Detailed Description

3.11.7.3.6 Uniform Distributions

Collaboration diagram for Uniform Distributions:

Random Number Distributions Uniform Distributions

Classes

• class std::uniform_int_distribution< _IntType >


• class std::uniform_real_distribution< _RealType >

Functions

• template<typename _IntType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &, const
std::uniform_int_distribution< _IntType > &)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &, const
std::uniform_real_distribution< _RealType > &)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &,
std::uniform_int_distribution< _IntType > &)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & std::operator>> (std::basic_istream< _CharT, _Traits > &,
std::uniform_real_distribution< _RealType > &)

Detailed Description

Function Documentation

operator<<() [1/2]

template<typename _IntType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::uniform_int_distribution< _IntType > & __x)
Inserts a uniform_int_distribution random number distribution __x into the output stream os.

Parameters
__os An output stream.
__x A uniform_int_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

References std::ios_base::flags().

Generated by Doxygen
3.11 Numerics 241

operator<<() [2/2]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::uniform_real_distribution< _RealType > & __x)
Inserts a uniform_real_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A uniform_real_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

operator>>() [1/2]

template<typename _IntType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::uniform_int_distribution< _IntType > & __x)
Extracts a uniform_int_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A uniform_int_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.


References std::ios_base::flags(), and std::uniform_int_distribution< _IntType >::param().

operator>>() [2/2]

template<typename _RealType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::uniform_real_distribution< _RealType > & __x)
Extracts a uniform_real_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A uniform_real_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.


References std::ios_base::flags(), and std::uniform_real_distribution< _RealType >::param().

Generated by Doxygen
242

3.11.7.4 Random Number Generators

Collaboration diagram for Random Number Generators:

Random Number Generation Random Number Generators

Classes

• class std::discard_block_engine< _RandomNumberEngine, __p, __r >


• class std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >
• class std::linear_congruential_engine< _UIntType, __a, __c, __m >
• class std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >
• class std::random_device
• class std::shuffle_order_engine< _RandomNumberEngine, __k >
• class std::subtract_with_carry_engine< _UIntType, __w, __s, __r >

Typedefs

• typedef minstd_rand0 std::default_random_engine


• typedef shuffle_order_engine< minstd_rand0, 256 > std::knuth_b
• typedef linear_congruential_engine< uint_fast32_t, 48271UL, 0UL, 2147483647UL > std::minstd_rand
• typedef linear_congruential_engine< uint_fast32_t, 16807UL, 0UL, 2147483647UL > std::minstd_rand0
• typedef mersenne_twister_engine< uint_fast32_t, 32, 624, 397, 31, 0x9908b0dfUL, 11, 0xffffffffUL, 7,
0x9d2c5680UL, 15, 0xefc60000UL, 18, 1812433253UL > std::mt19937
• typedef mersenne_twister_engine< uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9ULL, 29,
0x5555555555555555ULL, 17, 0x71d67fffeda60000ULL, 37, 0xfff7eee000000000ULL, 43, 6364136223846793005ULL
> std::mt19937_64
• typedef discard_block_engine< ranlux24_base, 223, 23 > std::ranlux24
• typedef subtract_with_carry_engine< uint_fast32_t, 24, 10, 24 > std::ranlux24_base
• typedef discard_block_engine< ranlux48_base, 389, 11 > std::ranlux48
• typedef subtract_with_carry_engine< uint_fast64_t, 48, 5, 12 > std::ranlux48_base

Functions

• template<typename _RandomNumberEngine , size_t __w, typename _UIntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & std::operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > &__x)

3.11.7.4.1 Detailed Description

These classes define objects which provide random or pseudorandom numbers, either from a discrete or a continuous
interval. The random number generator supplied as a part of this library are all uniform random number generators
which provide a sequence of random number uniformly distributed over their range.
A number generator is a function object with an operator() that takes zero arguments and returns a number.
A compliant random number generator must satisfy the following requirements.

Table 291 Random Number Generator Requirements

To be documented.

Generated by Doxygen
3.11 Numerics 243

3.11.7.4.2 Typedef Documentation

minstd_rand

typedef linear_congruential_engine<uint_fast32_t, 48271UL, 0UL, 2147483647UL> std::minstd_rand


An alternative LCR (Lehmer Generator function).

minstd_rand0

typedef linear_congruential_engine<uint_fast32_t, 16807UL, 0UL, 2147483647UL> std::minstd_rand0


The classic Minimum Standard rand0 of Lewis, Goodman, and Miller.

mt19937

typedef mersenne_twister_engine< uint_fast32_t, 32, 624, 397, 31, 0x9908b0dfUL, 11, 0xffffffffUL,
7, 0x9d2c5680UL, 15, 0xefc60000UL, 18, 1812433253UL> std::mt19937
The classic Mersenne Twister.
Reference: M. Matsumoto and T. Nishimura, Mersenne Twister: A 623-Dimensionally Equidistributed Uniform Pseudo-
Random Number Generator, ACM Transactions on Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp
3-30.

mt19937_64

typedef mersenne_twister_engine< uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9ULL, 29,


0x5555555555555555ULL, 17, 0x71d67fffeda60000ULL, 37, 0xfff7eee000000000ULL, 43, 6364136223846793005ULL>
std::mt19937_64
An alternative Mersenne Twister.

3.11.7.4.3 Function Documentation

operator<<()

template<typename _RandomNumberEngine , size_t __w, typename _UIntType , typename _CharT , typename


_Traits >
std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > & __x)
Inserts the current state of a independent_bits_engine random number generator engine __x into the output stream
__os.

Parameters
__os An output stream.
__x A independent_bits_engine random number generator engine.

Generated by Doxygen
244

Returns

The output stream with the state of __x inserted or in an error state.

3.11.7.5 Random Number Utilities

Collaboration diagram for Random Number Utilities:

Random Number Generation Random Number Utilities

Classes

• class std::seed_seq

3.11.7.5.1 Detailed Description

3.11.8 TR1 Mathematical Special Functions

Collaboration diagram for TR1 Mathematical Special Functions:

TR1 Mathematical Special


Numerics
Functions

Functions

• template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::assoc_laguerre (unsigned int __n, unsigned int __m, _Tp __x)
• float std::tr1::assoc_laguerref (unsigned int __n, unsigned int __m, float __x)
• long double std::tr1::assoc_laguerrel (unsigned int __n, unsigned int __m, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::assoc_legendre (unsigned int __l, unsigned int __m, _Tp __x)
• float std::tr1::assoc_legendref (unsigned int __l, unsigned int __m, float __x)
• long double std::tr1::assoc_legendrel (unsigned int __l, unsigned int __m, long double __x)
• template<typename _Tpx , typename _Tpy >
__gnu_cxx::__promote_2< _Tpx, _Tpy >::__type std::tr1::beta (_Tpx __x, _Tpy __y)
• float std::tr1::betaf (float __x, float __y)
• long double std::tr1::betal (long double __x, long double __y)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::comp_ellint_1 (_Tp __k)
• float std::tr1::comp_ellint_1f (float __k)

Generated by Doxygen
3.11 Numerics 245

• long double std::tr1::comp_ellint_1l (long double __k)


• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::comp_ellint_2 (_Tp __k)
• float std::tr1::comp_ellint_2f (float __k)
• long double std::tr1::comp_ellint_2l (long double __k)
• template<typename _Tp , typename _Tpn >
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type std::tr1::comp_ellint_3 (_Tp __k, _Tpn __nu)
• float std::tr1::comp_ellint_3f (float __k, float __nu)
• long double std::tr1::comp_ellint_3l (long double __k, long double __nu)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_bessel_i (_Tpnu __nu, _Tp __x)
• float std::tr1::cyl_bessel_if (float __nu, float __x)
• long double std::tr1::cyl_bessel_il (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_bessel_j (_Tpnu __nu, _Tp __x)
• float std::tr1::cyl_bessel_jf (float __nu, float __x)
• long double std::tr1::cyl_bessel_jl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_bessel_k (_Tpnu __nu, _Tp __x)
• float std::tr1::cyl_bessel_kf (float __nu, float __x)
• long double std::tr1::cyl_bessel_kl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_neumann (_Tpnu __nu, _Tp __x)
• float std::tr1::cyl_neumannf (float __nu, float __x)
• long double std::tr1::cyl_neumannl (long double __nu, long double __x)
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::tr1::ellint_1 (_Tp __k, _Tpp __phi)
• float std::tr1::ellint_1f (float __k, float __phi)
• long double std::tr1::ellint_1l (long double __k, long double __phi)
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::tr1::ellint_2 (_Tp __k, _Tpp __phi)
• float std::tr1::ellint_2f (float __k, float __phi)
• long double std::tr1::ellint_2l (long double __k, long double __phi)
• template<typename _Tp , typename _Tpn , typename _Tpp >
__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type std::tr1::ellint_3 (_Tp __k, _Tpn __nu, _Tpp __phi)
• float std::tr1::ellint_3f (float __k, float __nu, float __phi)
• long double std::tr1::ellint_3l (long double __k, long double __nu, long double __phi)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::expint (_Tp __x)
• float std::tr1::expintf (float __x)
• long double std::tr1::expintl (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::hermite (unsigned int __n, _Tp __x)
• float std::tr1::hermitef (unsigned int __n, float __x)
• long double std::tr1::hermitel (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::laguerre (unsigned int __n, _Tp __x)
• float std::tr1::laguerref (unsigned int __n, float __x)
• long double std::tr1::laguerrel (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::legendre (unsigned int __n, _Tp __x)

Generated by Doxygen
246

• float std::tr1::legendref (unsigned int __n, float __x)


• long double std::tr1::legendrel (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::riemann_zeta (_Tp __x)
• float std::tr1::riemann_zetaf (float __x)
• long double std::tr1::riemann_zetal (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::sph_bessel (unsigned int __n, _Tp __x)
• float std::tr1::sph_besself (unsigned int __n, float __x)
• long double std::tr1::sph_bessell (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::sph_legendre (unsigned int __l, unsigned int __m, _Tp __theta)
• float std::tr1::sph_legendref (unsigned int __l, unsigned int __m, float __theta)
• long double std::tr1::sph_legendrel (unsigned int __l, unsigned int __m, long double __theta)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type std::tr1::sph_neumann (unsigned int __n, _Tp __x)
• float std::tr1::sph_neumannf (unsigned int __n, float __x)
• long double std::tr1::sph_neumannl (unsigned int __n, long double __x)

3.11.8.1 Detailed Description

A collection of advanced mathematical special functions.

3.11.8.2 Function Documentation

assoc_laguerre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::assoc_laguerre (
unsigned int __n,
unsigned int __m,
_Tp __x) [inline]
5.2.1.1 Associated Laguerre polynomials.

assoc_legendre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::assoc_legendre (
unsigned int __l,
unsigned int __m,
_Tp __x) [inline]
5.2.1.2 Associated Legendre functions.

beta()

template<typename _Tpx , typename _Tpy >


__gnu_cxx::__promote_2< _Tpx, _Tpy >::__type std::tr1::beta (
_Tpx __x,
_Tpy __y) [inline]
5.2.1.3 Beta functions.

Generated by Doxygen
3.11 Numerics 247

comp_ellint_1()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::comp_ellint_1 (
_Tp __k) [inline]
5.2.1.4 Complete elliptic integrals of the first kind.

comp_ellint_2()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::comp_ellint_2 (
_Tp __k) [inline]
5.2.1.5 Complete elliptic integrals of the second kind.

comp_ellint_3()

template<typename _Tp , typename _Tpn >


__gnu_cxx::__promote_2< _Tp, _Tpn >::__type std::tr1::comp_ellint_3 (
_Tp __k,
_Tpn __nu) [inline]
5.2.1.6 Complete elliptic integrals of the third kind.

cyl_bessel_i()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_bessel_i (
_Tpnu __nu,
_Tp __x) [inline]
5.2.1.8 Regular modified cylindrical Bessel functions.

cyl_bessel_j()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_bessel_j (
_Tpnu __nu,
_Tp __x) [inline]
5.2.1.9 Cylindrical Bessel functions (of the first kind).

cyl_bessel_k()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_bessel_k (
_Tpnu __nu,
_Tp __x) [inline]
5.2.1.10 Irregular modified cylindrical Bessel functions.

cyl_neumann()

template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::tr1::cyl_neumann (
_Tpnu __nu,
_Tp __x) [inline]
5.2.1.11 Cylindrical Neumann functions.

Generated by Doxygen
248

ellint_1()

template<typename _Tp , typename _Tpp >


__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::tr1::ellint_1 (
_Tp __k,
_Tpp __phi) [inline]
5.2.1.12 Incomplete elliptic integrals of the first kind.

ellint_2()

template<typename _Tp , typename _Tpp >


__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::tr1::ellint_2 (
_Tp __k,
_Tpp __phi) [inline]
5.2.1.13 Incomplete elliptic integrals of the second kind.

ellint_3()

template<typename _Tp , typename _Tpn , typename _Tpp >


__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type std::tr1::ellint_3 (
_Tp __k,
_Tpn __nu,
_Tpp __phi) [inline]
5.2.1.14 Incomplete elliptic integrals of the third kind.

expint()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::expint (
_Tp __x) [inline]
5.2.1.15 Exponential integrals.

hermite()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::hermite (
unsigned int __n,
_Tp __x) [inline]
5.2.1.16 Hermite polynomials.

laguerre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::laguerre (
unsigned int __n,
_Tp __x) [inline]
5.2.1.18 Laguerre polynomials.

legendre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::legendre (
unsigned int __n,
_Tp __x) [inline]
5.2.1.19 Legendre polynomials.

Generated by Doxygen
3.12 Regular Expressions 249

riemann_zeta()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::riemann_zeta (
_Tp __x) [inline]
5.2.1.20 Riemann zeta function.

sph_bessel()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::sph_bessel (
unsigned int __n,
_Tp __x) [inline]
5.2.1.21 Spherical Bessel functions.

sph_legendre()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::sph_legendre (
unsigned int __l,
unsigned int __m,
_Tp __theta) [inline]
5.2.1.22 Spherical associated Legendre functions.

sph_neumann()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::tr1::sph_neumann (
unsigned int __n,
_Tp __x) [inline]
5.2.1.23 Spherical Neumann functions.

3.12 Regular Expressions


Collaboration diagram for Regular Expressions:

std::regex_error Exceptions

Regular Expressions
Base and Implementation
Classes

Topics

• Base and Implementation Classes

Namespaces

• namespace std::regex_constants

Generated by Doxygen
250

Classes

• class std::basic_regex< _Ch_type, _Rx_traits >


• class std::match_results< _Bi_iter, _Alloc >
• class std::regex_error
• class std::regex_iterator< _Bi_iter, _Ch_type, _Rx_traits >
• class std::regex_token_iterator< _Bi_iter, _Ch_type, _Rx_traits >
• class std::regex_traits< typename >
• class std::sub_match< _BiIter >

Typedefs

• typedef match_results< const char ∗ > std::cmatch


• typedef regex_iterator< const char ∗ > std::cregex_iterator
• typedef regex_token_iterator< const char ∗ > std::cregex_token_iterator
• typedef sub_match< const char ∗ > std::csub_match
• typedef basic_regex< char > std::regex
• typedef match_results< string::const_iterator > std::smatch
• typedef regex_iterator< string::const_iterator > std::sregex_iterator
• typedef regex_token_iterator< string::const_iterator > std::sregex_token_iterator
• typedef sub_match< string::const_iterator > std::ssub_match
• typedef match_results< const wchar_t ∗ > std::wcmatch
• typedef regex_iterator< const wchar_t ∗ > std::wcregex_iterator
• typedef regex_token_iterator< const wchar_t ∗ > std::wcregex_token_iterator
• typedef sub_match< const wchar_t ∗ > std::wcsub_match
• typedef basic_regex< wchar_t > std::wregex
• typedef match_results< wstring::const_iterator > std::wsmatch
• typedef regex_iterator< wstring::const_iterator > std::wsregex_iterator
• typedef regex_token_iterator< wstring::const_iterator > std::wsregex_token_iterator
• typedef sub_match< wstring::const_iterator > std::wssub_match

Functions

• template<typename _ForwardIterator >


std::basic_regex (_ForwardIterator, _ForwardIterator, regex_constants::syntax_option_type={}) -> basic_←-
regex< typename iterator_traits< _ForwardIterator >::value_type >
• template<typename _Bi_iter , typename _Alloc >
bool operator== (const match_results< _Bi_iter, _Alloc > &__m1, const match_results< _Bi_iter, _Alloc > &_←-
_m2)
• template<typename _Ch_type , typename _Rx_traits >
void swap (basic_regex< _Ch_type, _Rx_traits > &__lhs, basic_regex< _Ch_type, _Rx_traits > &__rhs) noex-
cept
• template<typename _Bi_iter , typename _Alloc >
void swap (match_results< _Bi_iter, _Alloc > &__lhs, match_results< _Bi_iter, _Alloc > &__rhs) noexcept

Matching, Searching, and Replacing

• template<typename _Bi_iter , typename _Alloc , typename _Ch_type , typename _Rx_traits >


bool std::regex_match (_Bi_iter __s, _Bi_iter __e, match_results< _Bi_iter, _Alloc > &__m, const basic_regex<
_Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Bi_iter , typename _Ch_type , typename _Rx_traits >
bool std::regex_match (_Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _Rx_traits > &__re,
regex_constants::match_flag_type __flags=regex_constants::match_default)

Generated by Doxygen
3.12 Regular Expressions 251

• template<typename _Ch_type , typename _Alloc , typename _Rx_traits >


bool std::regex_match (const _Ch_type ∗__s, match_results< const _Ch_type ∗, _Alloc > &__m, const
basic_regex< _Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool std::regex_match (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &__s, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &__m, const basic_regex< _Ch_type,
_Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool std::regex_match (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &&, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &, const basic_regex< _Ch_type,
_Rx_traits > &, regex_constants::match_flag_type=regex_constants::match_default)=delete
• template<typename _Ch_type , class _Rx_traits >
bool std::regex_match (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx_traits > &__re,
regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_traits , typename _Str_allocator , typename _Ch_type , typename _Rx_traits >
bool std::regex_match (const basic_string< _Ch_type, _Ch_traits, _Str_allocator > &__s, const basic_regex<
_Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Bi_iter , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool std::regex_search (_Bi_iter __s, _Bi_iter __e, match_results< _Bi_iter, _Alloc > &__m, const basic_regex<
_Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Bi_iter , typename _Ch_type , typename _Rx_traits >
bool std::regex_search (_Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _Rx_traits > &__re,
regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Ch_type , class _Alloc , class _Rx_traits >
bool std::regex_search (const _Ch_type ∗__s, match_results< const _Ch_type ∗, _Alloc > &__m, const
basic_regex< _Ch_type, _Rx_traits > &__e, regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_type , typename _Rx_traits >
bool std::regex_search (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx_traits > &__←-
e, regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_traits , typename _String_allocator , typename _Ch_type , typename _Rx_traits >
bool std::regex_search (const basic_string< _Ch_type, _Ch_traits, _String_allocator > &__s, const
basic_regex< _Ch_type, _Rx_traits > &__e, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool std::regex_search (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &__s, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &__m, const basic_regex< _Ch_type,
_Rx_traits > &__e, regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool std::regex_search (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &&, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &, const basic_regex< _Ch_type,
_Rx_traits > &, regex_constants::match_flag_type=regex_constants::match_default)=delete
• template<typename _Out_iter , typename _Bi_iter , typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >
_Out_iter std::regex_replace (_Out_iter __out, _Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type,
_Rx_traits > &__e, const basic_string< _Ch_type, _St, _Sa > &__fmt, regex_constants::match_flag_type __←-
flags=regex_constants::match_default)
• template<typename _Out_iter , typename _Bi_iter , typename _Rx_traits , typename _Ch_type >
_Out_iter std::regex_replace (_Out_iter __out, _Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _←-
Rx_traits > &__e, const _Ch_type ∗__fmt, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa , typename _Fst , typename _Fsa >
basic_string< _Ch_type, _St, _Sa > std::regex_replace (const basic_string< _Ch_type, _St, _Sa > &__←-
s, const basic_regex< _Ch_type, _Rx_traits > &__e, const basic_string< _Ch_type, _Fst, _Fsa > &__fmt,
regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >
basic_string< _Ch_type, _St, _Sa > std::regex_replace (const basic_string< _Ch_type, _St, _Sa > &__s, const

Generated by Doxygen
252

basic_regex< _Ch_type, _Rx_traits > &__e, const _Ch_type ∗__fmt, regex_constants::match_flag_type __←-
flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >
basic_string< _Ch_type > std::regex_replace (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx←-
_traits > &__e, const basic_string< _Ch_type, _St, _Sa > &__fmt, regex_constants::match_flag_type __←-
flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type >
basic_string< _Ch_type > std::regex_replace (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx_traits
> &__e, const _Ch_type ∗__fmt, regex_constants::match_flag_type __flags=regex_constants::match_default)

• template<typename _BiIter >


bool operator== (const sub_match< _BiIter > &__lhs, const sub_match< _BiIter > &__rhs)
• template<typename _BiIter >
auto operator (const sub_match< _BiIter > &__lhs, const sub_match< _BiIter > &__rhs) noexcept(__detail::←-
__is_contiguous_iter< _BiIter >::value)
• template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc >
bool operator== (const sub_match< _Bi_iter > &__lhs, const __sub_match_string< _Bi_iter, _Ch_traits, _Ch←-
_alloc > &__rhs)
• template<typename _Bi_iter , typename _Ch_traits , typename _Alloc >
auto operator (const sub_match< _Bi_iter > &__lhs, const __sub_match_string< _Bi_iter, _Ch_traits, _Alloc >
&__rhs) noexcept(__detail::__is_contiguous_iter< _Bi_iter >::value)
• template<typename _Bi_iter >
bool operator== (const sub_match< _Bi_iter > &__lhs, typename iterator_traits< _Bi_iter >::value_type const
∗__rhs)
• template<typename _Bi_iter >
auto operator (const sub_match< _Bi_iter > &__lhs, typename iterator_traits< _Bi_iter >::value_type const ∗←-
__rhs) noexcept(__detail::__is_contiguous_iter< _Bi_iter >::value)
• template<typename _Bi_iter >
bool operator== (const sub_match< _Bi_iter > &__lhs, typename iterator_traits< _Bi_iter >::value_type const
&__rhs)
• template<typename _Bi_iter >
auto operator (const sub_match< _Bi_iter > &__lhs, typename iterator_traits< _Bi_iter >::value_type const &←-
__rhs) noexcept(__detail::__is_contiguous_iter< _Bi_iter >::value)
• template<typename _Ch_type , typename _Ch_traits , typename _Bi_iter >
basic_ostream< _Ch_type, _Ch_traits > & operator<< (basic_ostream< _Ch_type, _Ch_traits > &__os, const
sub_match< _Bi_iter > &__m)

3.12.1 Detailed Description

A facility for performing regular expression pattern matching.

Since

C++11

3.12.2 Typedef Documentation

cregex_token_iterator

typedef regex_token_iterator<const char∗> std::cregex_token_iterator


Token iterator for C-style NULL-terminated strings.

csub_match

typedef sub_match<const char∗> std::csub_match


Standard regex submatch over a C-style null-terminated string.

Generated by Doxygen
3.12 Regular Expressions 253

regex

typedef basic_regex<char> std::regex


Standard regular expressions.

sregex_token_iterator

typedef regex_token_iterator<string::const_iterator> std::sregex_token_iterator


Token iterator for standard strings.

ssub_match

typedef sub_match<string::const_iterator> std::ssub_match


Standard regex submatch over a standard string.

wcregex_token_iterator

typedef regex_token_iterator<const wchar_t∗> std::wcregex_token_iterator


Token iterator for C-style NULL-terminated wide strings.

wcsub_match

typedef sub_match<const wchar_t∗> std::wcsub_match


Regex submatch over a C-style null-terminated wide string.

wregex

typedef basic_regex<wchar_t> std::wregex


Standard wide-character regular expressions.

wsregex_token_iterator

typedef regex_token_iterator<wstring::const_iterator> std::wsregex_token_iterator


Token iterator for standard wide-character strings.

wssub_match

typedef sub_match<wstring::const_iterator> std::wssub_match


Regex submatch over a standard wide string.

3.12.3 Function Documentation

operator() [1/4]

template<typename _Bi_iter , typename _Ch_traits , typename _Alloc >


auto operator<=> (
const sub_match< _Bi_iter > & __lhs,
const __sub_match_string< _Bi_iter, _Ch_traits, _Alloc > & __rhs) [related]
Three-way comparison of a regular expression submatch and a string.

Parameters
__lhs A regular expression submatch.
__rhs A string.

Generated by Doxygen
254

Returns

A value indicating whether __lhs is less than, equal to, greater than, or incomparable with __rhs.

operator() [2/4]

template<typename _Bi_iter >


auto operator<=> (
const sub_match< _Bi_iter > & __lhs,
typename iterator_traits< _Bi_iter >::value_type const & __rhs) [related]
Three-way comparison of a regular expression submatch and a character.

Parameters
__lhs A regular expression submatch.
__rhs A character.

Returns

A value indicating whether __lhs is less than, equal to, greater than, or incomparable with __rhs.

References std::__addressof().

operator() [3/4]

template<typename _Bi_iter >


auto operator<=> (
const sub_match< _Bi_iter > & __lhs,
typename iterator_traits< _Bi_iter >::value_type const ∗ __rhs) [related]
Three-way comparison of a regular expression submatch and a C string.

Parameters
__lhs A regular expression submatch.
__rhs A null-terminated string.

Returns

A value indicating whether __lhs is less than, equal to, greater than, or incomparable with __rhs.

operator() [4/4]

template<typename _BiIter >


auto operator<=> (
const sub_match< _BiIter > & __lhs,
const sub_match< _BiIter > & __rhs) [related]
Three-way comparison of two regular expression submatches.

Parameters
__lhs First regular expression submatch.
__rhs Second regular expression submatch.

Generated by Doxygen
3.12 Regular Expressions 255

Returns

A value indicating whether __lhs is less than, equal to, greater than, or incomparable with __rhs.

operator<<()

template<typename _Ch_type , typename _Ch_traits , typename _Bi_iter >


basic_ostream< _Ch_type, _Ch_traits > & operator<< (
basic_ostream< _Ch_type, _Ch_traits > & __os,
const sub_match< _Bi_iter > & __m) [related]
Inserts a matched string into an output stream.

Parameters
__os The output stream.
__m A submatch string.

Returns

the output stream with the submatch string inserted.

operator==() [1/5]

template<typename _Bi_iter , typename _Alloc >


bool operator== (
const match_results< _Bi_iter, _Alloc > & __m1,
const match_results< _Bi_iter, _Alloc > & __m2) [related]
Compares two match_results for equality.

Returns

true if the two objects refer to the same match, false otherwise.

References std::match_results< _Bi_iter, _Alloc >::begin(), std::match_results< _Bi_iter, _Alloc >::empty(), std::match_results< _Bi_iter
std::match_results< _Bi_iter, _Alloc >::prefix(), std::match_results< _Bi_iter, _Alloc >::ready(), std::match_results< _Bi_iter, _Alloc >::s
and std::match_results< _Bi_iter, _Alloc >::suffix().

operator==() [2/5]

template<typename _Bi_iter , typename _Ch_traits , typename _Ch_alloc >


bool operator== (
const sub_match< _Bi_iter > & __lhs,
const __sub_match_string< _Bi_iter, _Ch_traits, _Ch_alloc > & __rhs) [related]
Tests the equivalence of a regular expression submatch and a string.

Parameters
__lhs A regular expression submatch.
__rhs A string.

Returns

true if __lhs is equivalent to __rhs, false otherwise.

Generated by Doxygen
256

operator==() [3/5]

template<typename _Bi_iter >


bool operator== (
const sub_match< _Bi_iter > & __lhs,
typename iterator_traits< _Bi_iter >::value_type const & __rhs) [related]
Tests the equivalence of a regular expression submatch and a character.

Parameters
__lhs A regular expression submatch.
__rhs A character.

Returns

true if __lhs is equivalent to __rhs, false otherwise.

References std::__addressof().

operator==() [4/5]

template<typename _Bi_iter >


bool operator== (
const sub_match< _Bi_iter > & __lhs,
typename iterator_traits< _Bi_iter >::value_type const ∗ __rhs) [related]
Tests the equivalence of a regular expression submatch and a C string.

Parameters
__lhs A regular expression submatch.
__rhs A null-terminated string.

Returns

true if __lhs is equivalent to __rhs, false otherwise.

References std::sub_match< _BiIter >::compare().

operator==() [5/5]

template<typename _BiIter >


bool operator== (
const sub_match< _BiIter > & __lhs,
const sub_match< _BiIter > & __rhs) [related]
Tests the equivalence of two regular expression submatches.

Parameters
__lhs First regular expression submatch.
__rhs Second regular expression submatch.

Returns

true if __lhs is equivalent to __rhs, false otherwise.

References std::sub_match< _BiIter >::compare().

Generated by Doxygen
3.12 Regular Expressions 257

regex_match() [1/7]

template<typename _Bi_iter , typename _Ch_type , typename _Rx_traits >


bool std::regex_match (
_Bi_iter __first,
_Bi_iter __last,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Indicates if there is a match between the regular expression e and all of the character sequence [first, last).

Parameters

__first Beginning of the character sequence to match.


__last One-past-the-end of the character sequence to match.
__re The regular expression.
__flags Controls how the regular expression is matched.

Return values
true A match exists.
false Otherwise.

Exceptions

an exception of type regex_error.

References std::regex_match().

regex_match() [2/7]

template<typename _Bi_iter , typename _Alloc , typename _Ch_type , typename _Rx_traits >


bool std::regex_match (
_Bi_iter __s,
_Bi_iter __e,
match_results< _Bi_iter, _Alloc > & __m,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Determines if there is a match between the regular expression e and all of the character sequence [first, last).

Parameters

__s Start of the character sequence to match.


__e One-past-the-end of the character sequence to match.
__m The match results.
__re The regular expression.
__flags Controls how the regular expression is matched.

Return values
true A match exists.

Generated by Doxygen
258

false Otherwise.

Generated by Doxygen
3.12 Regular Expressions 259

Exceptions

an exception of type regex_error.

Referenced by std::regex_match(), std::regex_match(), std::regex_match(), std::regex_match(), and std::regex_match().

regex_match() [3/7]

template<typename _Ch_type , class _Rx_traits >


bool std::regex_match (
const _Ch_type ∗ __s,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __f = regex_constants::match_default) [inline]
Indicates if there is a match between the regular expression e and a C-style null-terminated string.

Parameters

_←- The C-style null-terminated string to match.


_s
_←- The regular expression.
_re
_←- Controls how the regular expression is matched.
_f

Return values
true A match exists.
false Otherwise.

Exceptions

an exception of type regex_error.

References std::regex_match().

regex_match() [4/7]

template<typename _Ch_type , typename _Alloc , typename _Rx_traits >


bool std::regex_match (
const _Ch_type ∗ __s,
match_results< const _Ch_type ∗, _Alloc > & __m,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __f = regex_constants::match_default) [inline]
Determines if there is a match between the regular expression e and a C-style null-terminated string.

Parameters

_←- The C-style null-terminated string to match.


_s
_←- The match results.
_m

Generated by Doxygen
260

Parameters
_←- The regular expression.
_re
_←- Controls how the regular expression is matched.
_f

Return values
true A match exists.
false Otherwise.

Exceptions

an exception of type regex_error.

References std::regex_match().

regex_match() [5/7]

template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename


_Rx_traits >
bool std::regex_match (
const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > && ,
match_results< typename basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_←-
iterator, _Alloc > & ,
const basic_regex< _Ch_type, _Rx_traits > & ,
regex_constants::match_flag_type = regex_constants::match_default) [delete]
Prevent unsafe attempts to get match_results from a temporary string.

regex_match() [6/7]

template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename


_Rx_traits >
bool std::regex_match (
const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > & __s,
match_results< typename basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_←-
iterator, _Alloc > & __m,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Determines if there is a match between the regular expression e and a string.

Parameters
__s The string to match.
__m The match results.
__re The regular expression.
__flags Controls how the regular expression is matched.

Generated by Doxygen
3.12 Regular Expressions 261

Return values
true A match exists.
false Otherwise.

Exceptions

an exception of type regex_error.

References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::regex_match().

regex_match() [7/7]

template<typename _Ch_traits , typename _Str_allocator , typename _Ch_type , typename _Rx_traits


>
bool std::regex_match (
const basic_string< _Ch_type, _Ch_traits, _Str_allocator > & __s,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Indicates if there is a match between the regular expression e and a string.

Parameters
__s [IN] The string to match.
__re [IN] The regular expression.
__flags [IN] Controls how the regular expression is matched.

Return values
true A match exists.
false Otherwise.

Exceptions

an exception of type regex_error.

References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::regex_match().

regex_replace() [1/6]

template<typename _Out_iter , typename _Bi_iter , typename _Rx_traits , typename _Ch_type >


_Out_iter std::regex_replace (
_Out_iter __out,
_Bi_iter __first,
_Bi_iter __last,
const basic_regex< _Ch_type, _Rx_traits > & __e,
const _Ch_type ∗ __fmt,
regex_constants::match_flag_type __flags = regex_constants::match_default)
Search for a regular expression within a range for multiple times, and replace the matched parts through filling a format
C-string.

Generated by Doxygen
262

Parameters

__out [OUT] The output iterator.


__first [IN] The start of the string to search.
__last [IN] One-past-the-end of the string to search.
__e [IN] The regular expression to search for.
__fmt [IN] The format C-string.
__flags [IN] Search and replace policy flags.

Returns

__out

Exceptions

an exception of type regex_error.

regex_replace() [2/6]

template<typename _Out_iter , typename _Bi_iter , typename _Rx_traits , typename _Ch_type , typename


_St , typename _Sa >
_Out_iter std::regex_replace (
_Out_iter __out,
_Bi_iter __first,
_Bi_iter __last,
const basic_regex< _Ch_type, _Rx_traits > & __e,
const basic_string< _Ch_type, _St, _Sa > & __fmt,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Search for a regular expression within a range for multiple times, and replace the matched parts through filling a format
string.

Parameters

__out [OUT] The output iterator.


__first [IN] The start of the string to search.
__last [IN] One-past-the-end of the string to search.
__e [IN] The regular expression to search for.
__fmt [IN] The format string.
__flags [IN] Search and replace policy flags.

Returns

__out

Exceptions

an exception of type regex_error.

References std::basic_string< _CharT, _Traits, _Alloc >::c_str(), and std::basic_string< _CharT, _Traits, _Alloc >::length().
Referenced by std::regex_replace(), std::regex_replace(), std::regex_replace(), and std::regex_replace().

Generated by Doxygen
3.12 Regular Expressions 263

regex_replace() [3/6]

template<typename _Rx_traits , typename _Ch_type >


basic_string< _Ch_type > std::regex_replace (
const _Ch_type ∗ __s,
const basic_regex< _Ch_type, _Rx_traits > & __e,
const _Ch_type ∗ __fmt,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Search for a regular expression within a C-string for multiple times, and replace the matched parts through filling a
format C-string.

Parameters

__s [IN] The C-string to search and replace.


__e [IN] The regular expression to search for.
__fmt [IN] The format C-string.
__flags [IN] Search and replace policy flags.

Returns

The string after replacing.

Exceptions

an exception of type regex_error.

References std::back_inserter(), and std::regex_replace().

regex_replace() [4/6]

template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >


basic_string< _Ch_type > std::regex_replace (
const _Ch_type ∗ __s,
const basic_regex< _Ch_type, _Rx_traits > & __e,
const basic_string< _Ch_type, _St, _Sa > & __fmt,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Search for a regular expression within a C-string for multiple times, and replace the matched parts through filling a
format string.

Parameters

__s [IN] The C-string to search and replace.


__e [IN] The regular expression to search for.
__fmt [IN] The format string.
__flags [IN] Search and replace policy flags.

Returns

The string after replacing.

Generated by Doxygen
264

Exceptions

an exception of type regex_error.

References std::back_inserter(), and std::regex_replace().

regex_replace() [5/6]

template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >


basic_string< _Ch_type, _St, _Sa > std::regex_replace (
const basic_string< _Ch_type, _St, _Sa > & __s,
const basic_regex< _Ch_type, _Rx_traits > & __e,
const _Ch_type ∗ __fmt,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Search for a regular expression within a string for multiple times, and replace the matched parts through filling a format
C-string.

Parameters
__s [IN] The string to search and replace.
__e [IN] The regular expression to search for.
__fmt [IN] The format C-string.
__flags [IN] Search and replace policy flags.

Returns

The string after replacing.

Exceptions

an exception of type regex_error.

References std::back_inserter(), std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end()
and std::regex_replace().

regex_replace() [6/6]

template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa , typename _Fst ,
typename _Fsa >
basic_string< _Ch_type, _St, _Sa > std::regex_replace (
const basic_string< _Ch_type, _St, _Sa > & __s,
const basic_regex< _Ch_type, _Rx_traits > & __e,
const basic_string< _Ch_type, _Fst, _Fsa > & __fmt,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Search for a regular expression within a string for multiple times, and replace the matched parts through filling a format
string.

Parameters
__s [IN] The string to search and replace.
__e [IN] The regular expression to search for.
__fmt [IN] The format string.

Generated by Doxygen
3.12 Regular Expressions 265

__flags [IN] Search and replace policy flags.

Returns

The string after replacing.

Exceptions

an exception of type regex_error.

References std::back_inserter(), std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end()
and std::regex_replace().

regex_search() [1/7]

template<typename _Bi_iter , typename _Ch_type , typename _Rx_traits >


bool std::regex_search (
_Bi_iter __first,
_Bi_iter __last,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Searches for a regular expression within a range.

Parameters

__first [IN] The start of the string to search.


__last [IN] One-past-the-end of the string to search.
__re [IN] The regular expression to search for.
__flags [IN] Search policy flags.

Return values

true A match was found within the string.


false No match was found within the string.

Exceptions

an exception of type regex_error.

References std::regex_search().

regex_search() [2/7]

template<typename _Bi_iter , typename _Alloc , typename _Ch_type , typename _Rx_traits >


bool std::regex_search (
_Bi_iter __s,
_Bi_iter __e,
match_results< _Bi_iter, _Alloc > & __m,
const basic_regex< _Ch_type, _Rx_traits > & __re,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Searches for a regular expression within a range.

Generated by Doxygen
266

Parameters

__s [IN] The start of the string to search.


__e [IN] One-past-the-end of the string to search.
__m [OUT] The match results.
__re [IN] The regular expression to search for.
__flags [IN] Search policy flags.

Return values

true A match was found within the string.


false No match was found within the string, the content of m is undefined.

Exceptions

an exception of type regex_error.

Referenced by std::regex_iterator< _Bi_iter, _Ch_type, _Rx_traits >::regex_iterator(), std::regex_iterator< _Bi_iter, _Ch_type, _Rx_traits
std::regex_search(), std::regex_search(), std::regex_search(), std::regex_search(), and std::regex_search().

regex_search() [3/7]

template<typename _Ch_type , typename _Rx_traits >


bool std::regex_search (
const _Ch_type ∗ __s,
const basic_regex< _Ch_type, _Rx_traits > & __e,
regex_constants::match_flag_type __f = regex_constants::match_default) [inline]
Searches for a regular expression within a C-string.

Parameters

_←- [IN] The C-string to search.


_s
_←- [IN] The regular expression to search for.
_e
_←- [IN] Search policy flags.
_f

Return values

true A match was found within the string.


false No match was found within the string.

Exceptions

an exception of type regex_error.

References std::regex_search().

Generated by Doxygen
3.12 Regular Expressions 267

regex_search() [4/7]

template<typename _Ch_type , class _Alloc , class _Rx_traits >


bool std::regex_search (
const _Ch_type ∗ __s,
match_results< const _Ch_type ∗, _Alloc > & __m,
const basic_regex< _Ch_type, _Rx_traits > & __e,
regex_constants::match_flag_type __f = regex_constants::match_default) [inline]
Searches for a regular expression within a C-string.

Parameters

_←- [IN] A C-string to search for the regex.


_s
_←- [OUT] The set of regex matches.
_m
_←- [IN] The regex to search for in s.
_e
_←- [IN] The search flags.
_f

Return values

true A match was found within the string.


false No match was found within the string, the content of m is undefined.

Exceptions

an exception of type regex_error.

References std::regex_search().

regex_search() [5/7]

template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename


_Rx_traits >
bool std::regex_search (
const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > && ,
match_results< typename basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_←-
iterator, _Alloc > & ,
const basic_regex< _Ch_type, _Rx_traits > & ,
regex_constants::match_flag_type = regex_constants::match_default) [delete]
Prevent unsafe attempts to get match_results from a temporary string.

regex_search() [6/7]

template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename


_Rx_traits >
bool std::regex_search (
const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > & __s,
match_results< typename basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_←-
iterator, _Alloc > & __m,

Generated by Doxygen
268

const basic_regex< _Ch_type, _Rx_traits > & __e,


regex_constants::match_flag_type __f = regex_constants::match_default) [inline]
Searches for a regular expression within a string.

Parameters

_←- [IN] A C++ string to search for the regex.


_s
_←- [OUT] The set of regex matches.
_m
_←- [IN] The regex to search for in s.
_e
_←- [IN] The search flags.
_f

Return values

true A match was found within the string.


false No match was found within the string, the content of m is undefined.

Exceptions

an exception of type regex_error.

References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::regex_search().

regex_search() [7/7]

template<typename _Ch_traits , typename _String_allocator , typename _Ch_type , typename _Rx_←-


traits >
bool std::regex_search (
const basic_string< _Ch_type, _Ch_traits, _String_allocator > & __s,
const basic_regex< _Ch_type, _Rx_traits > & __e,
regex_constants::match_flag_type __flags = regex_constants::match_default) [inline]
Searches for a regular expression within a string.

Parameters
__s [IN] The string to search.
__e [IN] The regular expression to search for.
__flags [IN] Search policy flags.

Return values

true A match was found within the string.


false No match was found within the string.

Generated by Doxygen
3.12 Regular Expressions 269

Exceptions

an exception of type regex_error.

References std::regex_search().

swap() [1/2]

template<typename _Ch_type , typename _Rx_traits >


void swap (
basic_regex< _Ch_type, _Rx_traits > & __lhs,
basic_regex< _Ch_type, _Rx_traits > & __rhs) [related]
Swaps the contents of two regular expression objects.

Parameters
__lhs First regular expression.
__rhs Second regular expression.

swap() [2/2]

template<typename _Bi_iter , typename _Alloc >


void swap (
match_results< _Bi_iter, _Alloc > & __lhs,
match_results< _Bi_iter, _Alloc > & __rhs) [related]
Swaps two match results.

Parameters
__lhs A match result.
__rhs A match result.

The contents of the two match_results objects are swapped.

3.12.4 Base and Implementation Classes

Collaboration diagram for Base and Implementation Classes:

Base and Implementation


Regular Expressions
Classes

Classes

• struct std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >

Generated by Doxygen
270

• class std::__detail::_Compiler< _TraitsT >


• class std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >
• class std::__detail::_Scanner< _CharT >
• class std::__detail::_StateSeq< _TraitsT >

Typedefs

• template<typename _CharT >


using std::__detail::_Matcher
• typedef long std::__detail::_StateIdT

Enumerations

• enum std::__detail::_Opcode : int {


_S_opcode_unknown , _S_opcode_alternative , _S_opcode_repeat , _S_opcode_backref ,
_S_opcode_line_begin_assertion , _S_opcode_line_end_assertion , _S_opcode_word_boundary , _S_←-
opcode_subexpr_lookahead ,
_S_opcode_subexpr_begin , _S_opcode_subexpr_end , _S_opcode_dummy , _S_opcode_match ,
_S_opcode_accept }

Variables

• constexpr _StateIdT std::__detail::_S_invalid_state_id

3.12.4.1 Detailed Description

3.12.4.2 Enumeration Type Documentation

_Opcode

enum std::__detail::_Opcode : int


Operation codes that define the type of transitions within the base NFA that represents the regular expression.

3.13 Strings
Collaboration diagram for Strings:

std::experimental::
fundamentals_v1::basic
_string_view Library Fundamentals TS

std::basic_string
Strings std::basic_string_view
std::experimental::
fundamentals_v1::basic
_string_view
Sequences

Generated by Doxygen
3.14 Technical Specifications 271

Classes

• class std::basic_string< _CharT, _Traits, _Alloc >


• class std::basic_string_view< _CharT, _Traits >
• class std::experimental::fundamentals_v1::basic_string_view< _CharT, _Traits >
• struct std::char_traits< _CharT >

Typedefs

• typedef basic_string< char > std::string


• typedef basic_string< char16_t > std::u16string
• typedef basic_string< char32_t > std::u32string
• typedef basic_string< wchar_t > std::wstring

3.13.1 Detailed Description

3.13.2 Typedef Documentation

string

typedef basic_string<char> std::string


A string of char.

u16string

typedef basic_string<char16_t> std::u16string


A string of char16_t.

u32string

typedef basic_string<char32_t> std::u32string


A string of char32_t.

wstring

typedef basic_string<wchar_t> std::wstring


A string of wchar_t.

3.14 Technical Specifications


Collaboration diagram for Technical Specifications:

Filesystem TS

Technical Specifications Library Fundamentals TS

Parallelism TS

Generated by Doxygen
272

Topics

• Filesystem TS
• Library Fundamentals TS
• Parallelism TS

3.14.1 Detailed Description

Components specified by various Technical Specifications.


As indicated by the std::experimental namespace and the header paths, the contents of these Technical Specifications
are experimental and not part of the C++ standard. As such the interfaces and implementations may change in the
future, and there is no guarantee of compatibility between different GCC releases for these features.

3.14.2 Filesystem TS

Collaboration diagram for Filesystem TS:

Technical Specifications Filesystem TS

Files

• file filesystem

Classes

• class std::experimental::filesystem::v1::filesystem_error
• class std::experimental::filesystem::v1::path::iterator
• class std::experimental::filesystem::v1::path
• struct std::experimental::filesystem::v1::space_info

Typedefs

• using std::experimental::filesystem::file_time_type

Enumerations

• enum class std::experimental::filesystem::copy_options : unsigned short {


none , skip_existing , overwrite_existing , update_existing ,
recursive , copy_symlinks , skip_symlinks , directories_only ,
create_symlinks , create_hard_links }
• enum class std::experimental::filesystem::directory_options : unsigned char { none , follow_directory_symlink
, skip_permission_denied }
• enum class std::experimental::filesystem::file_type : signed char {
none , not_found , regular , directory ,
symlink , block , character , fifo ,
socket , unknown }

Generated by Doxygen
3.14 Technical Specifications 273

• enum class std::experimental::filesystem::perms : unsigned {


none , owner_read , owner_write , owner_exec ,
owner_all , group_read , group_write , group_exec ,
group_all , others_read , others_write , others_exec ,
others_all , all , set_uid , set_gid ,
sticky_bit , mask , unknown , add_perms ,
remove_perms , symlink_nofollow }

Functions

• std::experimental::filesystem::v1::path::path (const path &__p)


• std::experimental::filesystem::v1::path::path (path &&__p) noexcept
• std::experimental::filesystem::v1::path::path (string_type &&__source)
• path std::experimental::filesystem::absolute (const path &__p, const path &__base=current_path())
• path & std::experimental::filesystem::v1::path::assign (string_type &&__source)
• directory_iterator std::experimental::filesystem::begin (directory_iterator __iter) noexcept
• recursive_directory_iterator std::experimental::filesystem::begin (recursive_directory_iterator __iter) noexcept
• iterator std::experimental::filesystem::v1::path::begin () const noexcept
• path std::experimental::filesystem::canonical (const path &__p, const path &__base, error_code &__ec)
• path std::experimental::filesystem::canonical (const path &__p, const path &__base=current_path())
• path std::experimental::filesystem::canonical (const path &__p, error_code &__ec)
• int std::experimental::filesystem::v1::path::compare (const basic_string_view< value_type > __s) const
• int std::experimental::filesystem::v1::path::compare (const string_type &__s) const
• int std::experimental::filesystem::v1::path::compare (const value_type ∗__s) const
• void std::experimental::filesystem::copy (const path &__from, const path &__to)
• void std::experimental::filesystem::copy (const path &__from, const path &__to, copy_options __options)
• void std::experimental::filesystem::copy (const path &__from, const path &__to, copy_options __options,
error_code &) noexcept
• void std::experimental::filesystem::copy (const path &__from, const path &__to, error_code &__ec) noexcept
• bool std::experimental::filesystem::copy_file (const path &__from, const path &__to)
• bool std::experimental::filesystem::copy_file (const path &__from, const path &__to, copy_options __option)
• bool std::experimental::filesystem::copy_file (const path &__from, const path &__to, copy_options __option,
error_code &)
• bool std::experimental::filesystem::copy_file (const path &__from, const path &__to, error_code &__ec)
• void std::experimental::filesystem::copy_symlink (const path &__existing_symlink, const path &__new_←-
symlink)
• void std::experimental::filesystem::copy_symlink (const path &__existing_symlink, const path &__new_←-
symlink, error_code &__ec) noexcept
• bool std::experimental::filesystem::create_directories (const path &__p)
• bool std::experimental::filesystem::create_directories (const path &__p, error_code &__ec)
• bool std::experimental::filesystem::create_directory (const path &__p)
• bool std::experimental::filesystem::create_directory (const path &__p, const path &__attributes)
• bool std::experimental::filesystem::create_directory (const path &__p, const path &__attributes, error_code
&__ec) noexcept
• bool std::experimental::filesystem::create_directory (const path &__p, error_code &__ec) noexcept
• void std::experimental::filesystem::create_directory_symlink (const path &__to, const path &__new_symlink)
• void std::experimental::filesystem::create_directory_symlink (const path &__to, const path &__new_symlink,
error_code &__ec) noexcept
• void std::experimental::filesystem::create_hard_link (const path &__to, const path &__new_hard_link)
• void std::experimental::filesystem::create_hard_link (const path &__to, const path &__new_hard_link,
error_code &__ec) noexcept
• void std::experimental::filesystem::create_symlink (const path &__to, const path &__new_symlink)

Generated by Doxygen
274

• void std::experimental::filesystem::create_symlink (const path &__to, const path &__new_symlink,


error_code &__ec) noexcept
• path std::experimental::filesystem::current_path ()
• void std::experimental::filesystem::current_path (const path &__p)
• void std::experimental::filesystem::current_path (const path &__p, error_code &__ec) noexcept
• path std::experimental::filesystem::current_path (error_code &__ec)
• directory_iterator std::experimental::filesystem::end (directory_iterator) noexcept
• recursive_directory_iterator std::experimental::filesystem::end (recursive_directory_iterator) noexcept
• iterator std::experimental::filesystem::v1::path::end () const noexcept
• bool std::experimental::filesystem::equivalent (const path &__p1, const path &__p2)
• bool std::experimental::filesystem::equivalent (const path &__p1, const path &__p2, error_code &__ec) noex-
cept
• bool std::experimental::filesystem::exists (const path &__p)
• bool std::experimental::filesystem::exists (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::exists (file_status __s) noexcept
• path std::experimental::filesystem::v1::path::extension () const
• uintmax_t std::experimental::filesystem::file_size (const path &__p)
• uintmax_t std::experimental::filesystem::file_size (const path &__p, error_code &__ec) noexcept
• path std::experimental::filesystem::v1::path::filename () const
• std::string std::experimental::filesystem::v1::path::generic_string () const
• template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
std::basic_string< _CharT, _Traits, _Allocator > std::experimental::filesystem::v1::path::generic_string
(const _Allocator &__a=_Allocator()) const
• std::u16string std::experimental::filesystem::v1::path::generic_u16string () const
• std::u32string std::experimental::filesystem::v1::path::generic_u32string () const
• std::string std::experimental::filesystem::v1::path::generic_u8string () const
• std::wstring std::experimental::filesystem::v1::path::generic_wstring () const
• uintmax_t std::experimental::filesystem::hard_link_count (const path &__p)
• uintmax_t std::experimental::filesystem::hard_link_count (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::v1::path::has_extension () const
• bool std::experimental::filesystem::v1::path::has_stem () const
• bool std::experimental::filesystem::v1::path::is_absolute () const
• bool std::experimental::filesystem::is_block_file (const path &__p)
• bool std::experimental::filesystem::is_block_file (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_block_file (file_status __s) noexcept
• bool std::experimental::filesystem::is_character_file (const path &__p)
• bool std::experimental::filesystem::is_character_file (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_character_file (file_status __s) noexcept
• bool std::experimental::filesystem::is_directory (const path &__p)
• bool std::experimental::filesystem::is_directory (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_directory (file_status __s) noexcept
• bool std::experimental::filesystem::is_empty (const path &__p)
• bool std::experimental::filesystem::is_empty (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_fifo (const path &__p)
• bool std::experimental::filesystem::is_fifo (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_fifo (file_status __s) noexcept
• bool std::experimental::filesystem::is_other (const path &__p)
• bool std::experimental::filesystem::is_other (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_other (file_status __s) noexcept
• bool std::experimental::filesystem::is_regular_file (const path &__p)
• bool std::experimental::filesystem::is_regular_file (const path &__p, error_code &__ec) noexcept

Generated by Doxygen
3.14 Technical Specifications 275

• bool std::experimental::filesystem::is_regular_file (file_status) noexcept


• bool std::experimental::filesystem::is_socket (const path &__p)
• bool std::experimental::filesystem::is_socket (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_socket (file_status __s) noexcept
• bool std::experimental::filesystem::is_symlink (const path &__p)
• bool std::experimental::filesystem::is_symlink (const path &__p, error_code &__ec) noexcept
• bool std::experimental::filesystem::is_symlink (file_status) noexcept
• file_time_type std::experimental::filesystem::last_write_time (const path &__p)
• file_time_type std::experimental::filesystem::last_write_time (const path &__p, error_code &__ec) noexcept
• void std::experimental::filesystem::last_write_time (const path &__p, file_time_type __new_time)
• void std::experimental::filesystem::last_write_time (const path &__p, file_time_type __new_time, error_code
&__ec) noexcept
• path & std::experimental::filesystem::v1::path::make_preferred ()
• bool std::experimental::filesystem::operator!= (const directory_iterator &__lhs, const directory_iterator &__←-
rhs)
• bool std::experimental::filesystem::operator!= (const recursive_directory_iterator &__lhs, const recursive_←-
directory_iterator &__rhs)
• copy_options & std::experimental::filesystem::operator&= (copy_options &__x, copy_options __y) noexcept
• reference std::experimental::filesystem::v1::path::iterator::operator∗ () const noexcept
• iterator & std::experimental::filesystem::v1::path::iterator::operator++ () noexcept
• template<typename _CharT >
__detail::_Path< _CharT ∗, _CharT ∗ > & std::experimental::filesystem::v1::path::operator+= (_CharT __x)
• path & std::experimental::filesystem::v1::path::operator+= (basic_string_view< value_type > __x)
• path & std::experimental::filesystem::v1::path::operator+= (const path &__x)
• path & std::experimental::filesystem::v1::path::operator+= (const string_type &__x)
• path & std::experimental::filesystem::v1::path::operator+= (const value_type ∗__x)
• path & std::experimental::filesystem::v1::path::operator+= (value_type __x)
• iterator & std::experimental::filesystem::v1::path::iterator::operator-- () noexcept
• bool std::experimental::filesystem::operator< (const path &__lhs, const path &__rhs) noexcept
• path & std::experimental::filesystem::v1::path::operator= (const path &__p)
• path & std::experimental::filesystem::v1::path::operator= (path &&__p) noexcept
• path & std::experimental::filesystem::v1::path::operator= (string_type &&__source)
• bool std::experimental::filesystem::operator== (const directory_iterator &__lhs, const directory_iterator &_←-
_rhs)
• bool std::experimental::filesystem::operator== (const path &__lhs, const path &__rhs) noexcept
• bool std::experimental::filesystem::operator== (const recursive_directory_iterator &__lhs, const recursive_←-
directory_iterator &__rhs)
• constexpr copy_options std::experimental::filesystem::operator∧ (copy_options __x, copy_options __y) noex-
cept
• copy_options & std::experimental::filesystem::operator∧ = (copy_options &__x, copy_options __y) noexcept
• constexpr copy_options std::experimental::filesystem::operator| (copy_options __x, copy_options __y) noex-
cept
• copy_options & std::experimental::filesystem::operator|= (copy_options &__x, copy_options __y) noexcept
• constexpr copy_options std::experimental::filesystem::operator∼ (copy_options __x) noexcept
• void std::experimental::filesystem::permissions (const path &__p, perms __prms)
• void std::experimental::filesystem::permissions (const path &__p, perms __prms, error_code &__ec) noex-
cept
• path std::experimental::filesystem::read_symlink (const path &__p)
• path std::experimental::filesystem::read_symlink (const path &__p, error_code &__ec)
• bool std::experimental::filesystem::remove (const path &__p)
• bool std::experimental::filesystem::remove (const path &__p, error_code &__ec) noexcept

Generated by Doxygen
276

• uintmax_t std::experimental::filesystem::remove_all (const path &__p)


• uintmax_t std::experimental::filesystem::remove_all (const path &__p, error_code &__ec)
• void std::experimental::filesystem::rename (const path &__from, const path &__to)
• void std::experimental::filesystem::rename (const path &__from, const path &__to, error_code &__ec) noex-
cept
• void std::experimental::filesystem::resize_file (const path &__p, uintmax_t __size)
• void std::experimental::filesystem::resize_file (const path &__p, uintmax_t __size, error_code &__ec) noex-
cept
• space_info std::experimental::filesystem::space (const path &__p)
• space_info std::experimental::filesystem::space (const path &__p, error_code &__ec) noexcept
• file_status std::experimental::filesystem::status (const path &)
• file_status std::experimental::filesystem::status (const path &, error_code &) noexcept
• bool std::experimental::filesystem::status_known (file_status) noexcept
• path std::experimental::filesystem::v1::path::stem () const
• std::string std::experimental::filesystem::v1::path::string () const
• template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
std::basic_string< _CharT, _Traits, _Allocator > std::experimental::filesystem::v1::path::string (const _←-
Allocator &__a=_Allocator()) const
• void std::experimental::filesystem::v1::path::swap (path &__rhs) noexcept
• file_status std::experimental::filesystem::symlink_status (const path &)
• file_status std::experimental::filesystem::symlink_status (const path &, error_code &) noexcept
• path std::experimental::filesystem::system_complete (const path &__p)
• path std::experimental::filesystem::system_complete (const path &__p, error_code &__ec)
• path std::experimental::filesystem::temp_directory_path ()
• path std::experimental::filesystem::temp_directory_path (error_code &__ec)
• std::u16string std::experimental::filesystem::v1::path::u16string () const
• std::u32string std::experimental::filesystem::v1::path::u32string () const
• std::string std::experimental::filesystem::v1::path::u8string () const
• std::wstring std::experimental::filesystem::v1::path::wstring () const

• constexpr perms std::experimental::filesystem::operator| (perms __x, perms __y) noexcept


• constexpr perms std::experimental::filesystem::operator∧ (perms __x, perms __y) noexcept
• constexpr perms std::experimental::filesystem::operator∼ (perms __x) noexcept
• perms & std::experimental::filesystem::operator&= (perms &__x, perms __y) noexcept
• perms & std::experimental::filesystem::operator|= (perms &__x, perms __y) noexcept
• perms & std::experimental::filesystem::operator∧ = (perms &__x, perms __y) noexcept

• constexpr directory_options std::experimental::filesystem::operator| (directory_options __x, directory_options


__y) noexcept
• constexpr directory_options std::experimental::filesystem::operator∧ (directory_options __x, directory_←-
options __y) noexcept
• constexpr directory_options std::experimental::filesystem::operator∼ (directory_options __x) noexcept
• directory_options & std::experimental::filesystem::operator&= (directory_options &__x, directory_options _←-
_y) noexcept
• directory_options & std::experimental::filesystem::operator|= (directory_options &__x, directory_options __y)
noexcept
• directory_options & std::experimental::filesystem::operator∧ = (directory_options &__x, directory_options _←-
_y) noexcept

Generated by Doxygen
3.14 Technical Specifications 277

3.14.2.1 Detailed Description

Utilities for performing operations on file systems and their components, such as paths, regular files, and directories.
ISO/IEC TS 18822:2015 C++ File System Technical Specification

Since

C++11

Remarks

Link using -lstdc++fs to use these types and functions.

3.14.2.2 Typedef Documentation

file_time_type

using std::experimental::filesystem::v1::file_time_type
The type used for file timestamps.

3.14.2.3 Enumeration Type Documentation

copy_options

enum class std::experimental::filesystem::v1::copy_options : unsigned short [strong]


Bitmask type controlling effects of filesystem::copy

directory_options

enum class std::experimental::filesystem::v1::directory_options : unsigned char [strong]


Bitmask type controlling directory iteration.

file_type

enum class std::experimental::filesystem::v1::file_type : signed char [strong]


Enumerated type representing the type of a file.

perms

enum class std::experimental::filesystem::v1::perms : unsigned [strong]


Bitmask type representing file access permissions.

Generated by Doxygen
278

3.14.3 Library Fundamentals TS

Collaboration diagram for Library Fundamentals TS:

Type-safe container
of any type

Detection idiom

Logical operator traits

Variable template for


type traits

Technical Specifications Library Fundamentals TS Array creation functions

Optional values

std::experimental::
fundamentals_v1::basic Const-propagating wrapper
_string_view

Sequences
std::experimental::
fundamentals_v1::basic
_string_view
Strings

Topics

• Array creation functions


• Const-propagating wrapper
• Detection idiom
• Logical operator traits
• Optional values
• Type-safe container of any type
• Variable template for type traits

Files

• file algorithm
• file any
• file array
• file chrono
• file deque
• file forward_list
• file functional
• file iterator
• file list
• file map
• file memory
• file memory_resource
• file numeric
• file optional
• file propagate_const
• file random

Generated by Doxygen
3.14 Technical Specifications 279

• file ratio
• file regex
• file set
• file string
• file string_view
• file system_error
• file tuple
• file type_traits
• file unordered_map
• file unordered_set
• file utility
• file vector

Classes

• class std::experimental::fundamentals_v1::basic_string_view< _CharT, _Traits >

3.14.3.1 Detailed Description

Components defined by the C++ Extensions for Library Fundamentals Technical Specification, versions 1 and 2.

• ISO/IEC TS 19568:2015 C++ Extensions for Library Fundamentals

• ISO/IEC TS 19568:2017 C++ Extensions for Library Fundamentals, Version 2

3.14.3.2 Array creation functions

Collaboration diagram for Array creation functions:

Library Fundamentals TS Array creation functions

Functions

• template<typename _Tp , size_t _Nm, size_t... _Idx>


constexpr array< remove_cv_t< _Tp >, _Nm > std::experimental::__to_array (_Tp(&__a)[_Nm],
index_sequence< _Idx... >)
• template<typename _Dest = void, typename... _Types>
constexpr array< typename __make_array_elem< _Dest, _Types... >::type, sizeof...(_Types)> std::experimental::make_array
(_Types &&... __t)
• template<typename _Tp , size_t _Nm>
constexpr array< remove_cv_t< _Tp >, _Nm > std::experimental::to_array (_Tp(&__a)[_Nm]) noexcept(is_nothrow_constructible<
remove_cv_t< _Tp >, _Tp & >::value)

3.14.3.2.1 Detailed Description

Array creation functions as described in N4529, Working Draft, C++ Extensions for Library Fundamentals, Version 2

Generated by Doxygen
280

3.14.3.2.2 Function Documentation

make_array()

template<typename _Dest = void, typename... _Types>


array< typename __make_array_elem< _Dest, _Types... >::type, sizeof...(_Types)> std::experimental←-
::fundamentals_v2::make_array (
_Types &&... __t) [constexpr]
Create a std::array from a variable-length list of arguments.

to_array()

template<typename _Tp , size_t _Nm>


array< remove_cv_t< _Tp >, _Nm > std::experimental::fundamentals_v2::to_array (
_Tp(&) __a[_Nm]) [constexpr], [noexcept]
Create a std::array from an array.

3.14.3.3 Const-propagating wrapper

Collaboration diagram for Const-propagating wrapper:

Library Fundamentals TS Const-propagating wrapper

Classes

• class std::experimental::fundamentals_v2::propagate_const< _Tp >

Functions

• template<typename _Tp >


constexpr const _Tp & std::experimental::get_underlying (const propagate_const< _Tp > &__pt) noexcept
• template<typename _Tp >
constexpr _Tp & std::experimental::get_underlying (propagate_const< _Tp > &__pt) noexcept
• constexpr std::experimental::fundamentals_v2::__propagate_const_conversion_nc< _Tp, _Elem, true
>::operator _Elem ∗ ()
• constexpr std::experimental::fundamentals_v2::__propagate_const_conversions< _Tp ∗ >::operator _Tp
∗ () noexcept
• constexpr std::experimental::fundamentals_v2::__propagate_const_conversion_c< _Tp, _Elem, true >←-
::operator const _Elem ∗ () const
• constexpr std::experimental::fundamentals_v2::__propagate_const_conversions< _Tp ∗ >::operator
const _Tp ∗ () const noexcept
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator!= (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator!= (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator!= (const propagate_const< _Tp > &__pt, const propagate_const<
_Up > &__pu)

Generated by Doxygen
3.14 Technical Specifications 281

• template<typename _Tp >


constexpr bool std::experimental::operator!= (const propagate_const< _Tp > &__pt, nullptr_t)
• template<typename _Tp >
constexpr bool std::experimental::operator!= (nullptr_t, const propagate_const< _Tp > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator< (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator< (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator< (const propagate_const< _Tp > &__pt, const propagate_const<
_Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator<= (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator<= (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator<= (const propagate_const< _Tp > &__pt, const propagate_const<
_Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator== (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator== (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator== (const propagate_const< _Tp > &__pt, const propagate_const<
_Up > &__pu)
• template<typename _Tp >
constexpr bool std::experimental::operator== (const propagate_const< _Tp > &__pt, nullptr_t)
• template<typename _Tp >
constexpr bool std::experimental::operator== (nullptr_t, const propagate_const< _Tp > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator> (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator> (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator> (const propagate_const< _Tp > &__pt, const propagate_const<
_Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator>= (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator>= (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::operator>= (const propagate_const< _Tp > &__pt, const propagate_const<
_Up > &__pu)
• template<typename _Tp >
constexpr enable_if_t< __is_swappable< _Tp >::value, void > std::experimental::swap (propagate_const<
_Tp > &__pt, propagate_const< _Tp > &__pt2) noexcept(__is_nothrow_swappable< _Tp >::value)

3.14.3.3.1 Detailed Description

A const-propagating wrapper that propagates const to pointer-like members, as described in n4388 "A Proposal to Add
a Const-Propagating Wrapper to the Standard Library".

Generated by Doxygen
282

3.14.3.4 Detection idiom

Collaboration diagram for Detection idiom:

Library Fundamentals TS Detection idiom

• #define __cpp_lib_experimental_detect
• template<typename... >
using std::experimental::void_t
• template<typename _Default , template< typename... > class _Op, typename... _Args>
using std::experimental::detected_or
• template<typename _Default , template< typename... > class _Op, typename... _Args>
using std::experimental::detected_or_t
• template<template< typename... > class _Op, typename... _Args>
using std::experimental::detected_t
• template<template< typename... > class _Op, typename... _Args>
using std::experimental::is_detected
• template<typename _Expected , template< typename... > class _Op, typename... _Args>
using std::experimental::is_detected_exact
• template<typename _To , template< typename... > class _Op, typename... _Args>
using std::experimental::is_detected_convertible
• template<template< typename... > class _Op, typename... _Args>
constexpr bool std::experimental::is_detected_v
• template<typename _Expected , template< typename... > class _Op, typename... _Args>
constexpr bool std::experimental::is_detected_exact_v
• template<typename _To , template< typename... > class _Op, typename... _Args>
constexpr bool std::experimental::is_detected_convertible_v

3.14.3.4.1 Detailed Description


Since

Library Fundamentals TS v2. C++14.

3.14.3.4.2 Macro Definition Documentation

__cpp_lib_experimental_detect

#define __cpp_lib_experimental_detect
A metafunction that always yields void, used for detecting valid types.

3.14.3.4.3 Typedef Documentation

detected_or

template<typename _Default , template< typename... > class _Op, typename... _Args>


using std::experimental::fundamentals_v2::detected_or
A metafunction that always yields void, used for detecting valid types.

Generated by Doxygen
3.14 Technical Specifications 283

detected_or_t

template<typename _Default , template< typename... > class _Op, typename... _Args>


using std::experimental::fundamentals_v2::detected_or_t
A metafunction that always yields void, used for detecting valid types.

detected_t

template<template< typename... > class _Op, typename... _Args>


using std::experimental::fundamentals_v2::detected_t
A metafunction that always yields void, used for detecting valid types.

is_detected

template<template< typename... > class _Op, typename... _Args>


using std::experimental::fundamentals_v2::is_detected
A metafunction that always yields void, used for detecting valid types.

is_detected_convertible

template<typename _To , template< typename... > class _Op, typename... _Args>


using std::experimental::fundamentals_v2::is_detected_convertible
A metafunction that always yields void, used for detecting valid types.

is_detected_exact

template<typename _Expected , template< typename... > class _Op, typename... _Args>


using std::experimental::fundamentals_v2::is_detected_exact
A metafunction that always yields void, used for detecting valid types.

void_t

template<typename... >
using std::experimental::fundamentals_v2::void_t
A metafunction that always yields void, used for detecting valid types.

3.14.3.4.4 Variable Documentation

is_detected_convertible_v

template<typename _To , template< typename... > class _Op, typename... _Args>


bool std::experimental::fundamentals_v2::is_detected_convertible_v [constexpr]
A metafunction that always yields void, used for detecting valid types.

is_detected_exact_v

template<typename _Expected , template< typename... > class _Op, typename... _Args>


bool std::experimental::fundamentals_v2::is_detected_exact_v [constexpr]
A metafunction that always yields void, used for detecting valid types.

is_detected_v

template<template< typename... > class _Op, typename... _Args>


bool std::experimental::fundamentals_v2::is_detected_v [constexpr]
A metafunction that always yields void, used for detecting valid types.

Generated by Doxygen
284

3.14.3.5 Logical operator traits

Collaboration diagram for Logical operator traits:

Library Fundamentals TS Logical operator traits

• #define __cpp_lib_experimental_logical_traits
• template<typename... _Bn>
constexpr bool std::experimental::conjunction_v
• template<typename... _Bn>
constexpr bool std::experimental::disjunction_v
• template<typename _Pp >
constexpr bool std::experimental::negation_v

3.14.3.5.1 Detailed Description


Since

Library Fundamentals TS v2. C++14.

3.14.3.6 Optional values

Collaboration diagram for Optional values:

std::experimental::
fundamentals_v1::bad
_optional_access
Library Fundamentals TS Optional values Exceptions

Classes

• class std::experimental::fundamentals_v1::bad_optional_access
• struct std::experimental::fundamentals_v1::in_place_t
• struct std::experimental::fundamentals_v1::nullopt_t
• class std::experimental::fundamentals_v1::optional< _Tp >

Macros

• #define __cpp_lib_experimental_optional

Variables

• constexpr in_place_t std::experimental::in_place


• constexpr nullopt_t std::experimental::nullopt

Generated by Doxygen
3.14 Technical Specifications 285

3.14.3.6.1 Detailed Description

Class template for optional values and surrounding facilities, as described in n3793 "A proposal to add a utility class to
represent optional objects (Revision 5)".

3.14.3.6.2 Variable Documentation

in_place

in_place_t std::experimental::fundamentals_v1::in_place [constexpr]


Tag for in-place construction.

nullopt

nullopt_t std::experimental::fundamentals_v1::nullopt [constexpr]


Tag to disengage optional objects.

3.14.3.7 Type-safe container of any type

Collaboration diagram for Type-safe container of any type:

std::experimental::
fundamentals_v1::bad
Type-safe container _any_cast
Library Fundamentals TS Exceptions
of any type

Classes

• class std::experimental::fundamentals_v1::any
• class std::experimental::fundamentals_v1::bad_any_cast

Macros

• #define __cpp_lib_experimental_any

Functions

• static void std::experimental::fundamentals_v1::any::_Manager_external< _Tp >::_S_manage (_Op __←-


which, const any ∗__anyp, _Arg ∗__arg)
• static void std::experimental::fundamentals_v1::any::_Manager_internal< _Tp >::_S_manage (_Op __←-
which, const any ∗__anyp, _Arg ∗__arg)
• template<typename _ValueType >
_ValueType std::experimental::any_cast (const any &__any)
• void std::experimental::swap (any &__x, any &__y) noexcept

• template<typename _ValueType >


_ValueType std::experimental::any_cast (any &__any)
• template<typename _ValueType , typename enable_if<!is_move_constructible< _ValueType >::value||is_lvalue_reference< _ValueType
>::value, bool >::type = true>
_ValueType std::experimental::any_cast (any &&__any)

• template<typename _ValueType >


const _ValueType ∗ std::experimental::any_cast (const any ∗__any) noexcept

Generated by Doxygen
286

• template<typename _ValueType >


_ValueType ∗ std::experimental::any_cast (any ∗__any) noexcept

3.14.3.7.1 Detailed Description

A type-safe container for single values of value types, as described in n3804 "Any Library Proposal (Revision 3)".

3.14.3.7.2 Function Documentation

any_cast() [1/5]

template<typename _ValueType , typename enable_if<!is_move_constructible< _ValueType >::value||is_lvalue_referenc


_ValueType >::value, bool >::type = true>
_ValueType std::experimental::fundamentals_v1::any_cast (
any && __any) [inline]
Access the contained object.

Template Parameters

_ValueType A reference or CopyConstructible type.

Parameters
__any The object to access.

Returns

The contained object.

Exceptions

bad_any_cast If __any.type() != typeid(remove_reference_t<_ValueType>)

any_cast() [2/5]

template<typename _ValueType >


_ValueType std::experimental::fundamentals_v1::any_cast (
any & __any) [inline]
Access the contained object.

Template Parameters

_ValueType A reference or CopyConstructible type.

Parameters
__any The object to access.

Returns

The contained object.

Generated by Doxygen
3.14 Technical Specifications 287

Exceptions

bad_any_cast If __any.type() != typeid(remove_reference_t<_ValueType>)

any_cast() [3/5]

template<typename _ValueType >


_ValueType ∗ std::experimental::fundamentals_v1::any_cast (
any ∗ __any) [inline], [noexcept]
Access the contained object.

Template Parameters

_ValueType The type of the contained object.

Parameters
__any A pointer to the object to access.

Returns

The address of the contained object if __any != nullptr && __any.type() == typeid(_←-
ValueType) , otherwise a null pointer.

any_cast() [4/5]

template<typename _ValueType >


_ValueType std::experimental::fundamentals_v1::any_cast (
const any & __any) [inline]
Access the contained object.

Template Parameters

_ValueType A const-reference or CopyConstructible type.

Parameters
__any The object to access.

Returns

The contained object.

Exceptions

bad_any_cast If __any.type() != typeid(remove_reference_t<_ValueType>)

Generated by Doxygen
288

any_cast() [5/5]

template<typename _ValueType >


const _ValueType ∗ std::experimental::fundamentals_v1::any_cast (
const any ∗ __any) [inline], [noexcept]
Access the contained object.

Template Parameters

_ValueType The type of the contained object.

Parameters
__any A pointer to the object to access.

Returns

The address of the contained object if __any != nullptr && __any.type() == typeid(_←-
ValueType) , otherwise a null pointer.

swap()

void std::experimental::fundamentals_v1::swap (
any & __x,
any & __y) [inline], [noexcept]
Exchange the states of two any objects.

3.14.3.8 Variable template for type traits

Collaboration diagram for Variable template for type traits:

Variable template for


Library Fundamentals TS
type traits

• #define __cpp_lib_experimental_type_trait_variable_templates
• template<typename _Tp >
constexpr bool std::experimental::is_void_v
• template<typename _Tp >
constexpr bool std::experimental::is_null_pointer_v
• template<typename _Tp >
constexpr bool std::experimental::is_integral_v
• template<typename _Tp >
constexpr bool std::experimental::is_floating_point_v
• template<typename _Tp >
constexpr bool std::experimental::is_array_v

Generated by Doxygen
3.14 Technical Specifications 289

• template<typename _Tp >


constexpr bool std::experimental::is_pointer_v
• template<typename _Tp >
constexpr bool std::experimental::is_lvalue_reference_v
• template<typename _Tp >
constexpr bool std::experimental::is_rvalue_reference_v
• template<typename _Tp >
constexpr bool std::experimental::is_member_object_pointer_v
• template<typename _Tp >
constexpr bool std::experimental::is_member_function_pointer_v
• template<typename _Tp >
constexpr bool std::experimental::is_enum_v
• template<typename _Tp >
constexpr bool std::experimental::is_union_v
• template<typename _Tp >
constexpr bool std::experimental::is_class_v
• template<typename _Tp >
constexpr bool std::experimental::is_function_v
• template<typename _Tp >
constexpr bool std::experimental::is_reference_v
• template<typename _Tp >
constexpr bool std::experimental::is_arithmetic_v
• template<typename _Tp >
constexpr bool std::experimental::is_fundamental_v
• template<typename _Tp >
constexpr bool std::experimental::is_object_v
• template<typename _Tp >
constexpr bool std::experimental::is_scalar_v
• template<typename _Tp >
constexpr bool std::experimental::is_compound_v
• template<typename _Tp >
constexpr bool std::experimental::is_member_pointer_v
• template<typename _Tp >
constexpr bool std::experimental::is_const_v
• template<typename _Tp >
constexpr bool std::experimental::is_volatile_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivial_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivially_copyable_v
• template<typename _Tp >
constexpr bool std::experimental::is_standard_layout_v
• template<typename _Tp >
constexpr bool std::experimental::is_pod_v
• template<typename _Tp >
constexpr bool std::experimental::is_literal_type_v
• template<typename _Tp >
constexpr bool std::experimental::is_empty_v
• template<typename _Tp >
constexpr bool std::experimental::is_polymorphic_v
• template<typename _Tp >
constexpr bool std::experimental::is_abstract_v

Generated by Doxygen
290

• template<typename _Tp >


constexpr bool std::experimental::is_final_v
• template<typename _Tp >
constexpr bool std::experimental::is_signed_v
• template<typename _Tp >
constexpr bool std::experimental::is_unsigned_v
• template<typename _Tp , typename... _Args>
constexpr bool std::experimental::is_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_default_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_copy_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_move_constructible_v
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::is_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_copy_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_move_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_destructible_v
• template<typename _Tp , typename... _Args>
constexpr bool std::experimental::is_trivially_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivially_default_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivially_copy_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivially_move_constructible_v
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::is_trivially_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivially_copy_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivially_move_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_trivially_destructible_v
• template<typename _Tp , typename... _Args>
constexpr bool std::experimental::is_nothrow_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_nothrow_default_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_nothrow_copy_constructible_v
• template<typename _Tp >
constexpr bool std::experimental::is_nothrow_move_constructible_v
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::is_nothrow_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_nothrow_copy_assignable_v
• template<typename _Tp >
constexpr bool std::experimental::is_nothrow_move_assignable_v

Generated by Doxygen
3.14 Technical Specifications 291

• template<typename _Tp >


constexpr bool std::experimental::is_nothrow_destructible_v
• template<typename _Tp >
constexpr bool std::experimental::has_virtual_destructor_v
• template<typename _Tp >
constexpr size_t std::experimental::alignment_of_v
• template<typename _Tp >
constexpr size_t std::experimental::rank_v
• template<typename _Tp , unsigned _Idx = 0>
constexpr size_t std::experimental::extent_v
• template<typename _Tp , typename _Up >
constexpr bool std::experimental::is_same_v
• template<typename _Tp >
constexpr bool std::experimental::is_same_v< _Tp, _Tp >
• template<typename _Base , typename _Derived >
constexpr bool std::experimental::is_base_of_v
• template<typename _From , typename _To >
constexpr bool std::experimental::is_convertible_v

3.14.3.8.1 Detailed Description


Since

Library Fundamentals TS v1. C++14.

See also

variable_templates

3.14.4 Parallelism TS

Collaboration diagram for Parallelism TS:

Technical Specifications Parallelism TS Data parallel extensions

Topics

• Data parallel extensions

3.14.4.1 Detailed Description

Components defined by the C++ Extensions for Parallelism Technical Specification.

• ISO/IEC TS 19570:2015 C++ Extensions for Parallelism

• ISO/IEC TS 19570:2018 C++ Extensions for Parallelism, Version 2

Generated by Doxygen
292

3.14.4.2 Data parallel extensions

Collaboration diagram for Data parallel extensions:

Parallelism TS Data parallel extensions

Macros

• #define __cpp_lib_experimental_parallel_simd

3.14.4.2.1 Detailed Description

Data-parallel types library.


Since

C++17

3.15 Utilities
Collaboration diagram for Utilities:

Time

Function Objects

Utilities Memory

Metaprogramming

Rational Arithmetic

Topics

• Function Objects

Generated by Doxygen
3.15 Utilities 293

• Memory
• Metaprogramming
• Rational Arithmetic
• Time

Classes

• class std::bitset< _Nb >


• struct std::pair< _T1, _T2 >
• struct std::piecewise_construct_t
• class std::tuple< _Elements >
• class std::tuple< _T1, _T2 >
• struct std::tuple_element< __i, tuple< _Types... > >
• struct std::tuple_size< tuple< _Elements... > >
• struct std::type_index
• struct std::uses_allocator< tuple< _Types... >, _Alloc >

Functions

• template<typename... _Args1, typename... _Args2>


constexpr std::pair< _T1, _T2 >::pair (piecewise_construct_t, tuple< _Args1... >, tuple< _Args2... >)
• template<typename _Tp >
constexpr _Tp ∗ std::__addressof (_Tp &__r) noexcept
• template<typename _Tp , typename _Up = _Tp>
constexpr _Tp std::__exchange (_Tp &__obj, _Up &&__new_val)
• template<size_t __i, typename _Head , typename... _Tail>
constexpr _Head & std::__get_helper (_Tuple_impl< __i, _Head, _Tail... > &__t) noexcept
• template<size_t __i, typename _Head , typename... _Tail>
constexpr const _Head & std::__get_helper (const _Tuple_impl< __i, _Head, _Tail... > &__t) noexcept
• template<size_t __i, typename... _Types>
__enable_if_t<(__i >=sizeof...(_Types))> std::__get_helper (const tuple< _Types... > &)=delete
• template<typename _Tp , typename _Up = typename __inv_unwrap<_Tp>::type>
constexpr _Up && std::__invfwd (typename remove_reference< _Tp >::type &__t) noexcept
• template<typename _Callable , typename... _Args>
constexpr __invoke_result< _Callable, _Args... >::type std::__invoke (_Callable &&__fn, _Args &&... __args)
noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
• template<typename _Res , typename _MemFun , typename _Tp , typename... _Args>
constexpr _Res std::__invoke_impl (__invoke_memfun_deref, _MemFun &&__f, _Tp &&__t, _Args &&... __←-
args)
• template<typename _Res , typename _MemFun , typename _Tp , typename... _Args>
constexpr _Res std::__invoke_impl (__invoke_memfun_ref, _MemFun &&__f, _Tp &&__t, _Args &&... __args)
• template<typename _Res , typename _MemPtr , typename _Tp >
constexpr _Res std::__invoke_impl (__invoke_memobj_deref, _MemPtr &&__f, _Tp &&__t)
• template<typename _Res , typename _MemPtr , typename _Tp >
constexpr _Res std::__invoke_impl (__invoke_memobj_ref, _MemPtr &&__f, _Tp &&__t)
• template<typename _Res , typename _Fn , typename... _Args>
constexpr _Res std::__invoke_impl (__invoke_other, _Fn &&__f, _Args &&... __args)
• template<typename _Res , typename _Callable , typename... _Args>
constexpr enable_if_t< is_invocable_r_v< _Res, _Callable, _Args... >, _Res > std::__invoke_r (_Callable
&&__fn, _Args &&... __args) noexcept(is_nothrow_invocable_r_v< _Res, _Callable, _Args... >)
• template<typename _Cat , typename _Tp , typename _Up , typename _IndexSeq >
constexpr _Cat std::__tuple_cmp (const _Tp &__t, const _Up &__u, _IndexSeq __indices)

Generated by Doxygen
294

• template<typename _Tp >


constexpr _Tp ∗ std::addressof (_Tp &__r) noexcept
• template<typename _Tp >
const _Tp ∗ std::addressof (const _Tp &&)=delete
• template<typename _Tp >
auto std::declval () noexcept -> decltype(__declval< _Tp >(0))
• template<typename _Tp >
constexpr _Tp && std::forward (typename std::remove_reference< _Tp >::type &&__t) noexcept
• template<typename _Tp >
constexpr _Tp && std::forward (typename std::remove_reference< _Tp >::type &__t) noexcept
• template<typename... _Elements>
constexpr tuple< _Elements &&... > std::forward_as_tuple (_Elements &&... __args) noexcept
• template<size_t __i, typename... _Elements>
constexpr const __tuple_element_t< __i, tuple< _Elements... > > && std::get (const tuple< _Elements... >
&&__t) noexcept
• template<size_t __i, typename... _Elements>
constexpr const __tuple_element_t< __i, tuple< _Elements... > > & std::get (const tuple< _Elements... >
&__t) noexcept
• template<size_t __i, typename... _Elements>
constexpr __tuple_element_t< __i, tuple< _Elements... > > && std::get (tuple< _Elements... > &&__t) noex-
cept
• template<size_t __i, typename... _Elements>
constexpr __tuple_element_t< __i, tuple< _Elements... > > & std::get (tuple< _Elements... > &__t) noexcept
• template<typename _T1 , typename _T2 >
constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type
> std::make_pair (_T1 &&__x, _T2 &&__y)
• template<typename... _Elements>
constexpr tuple< typename __decay_and_strip< _Elements >::__type... > std::make_tuple (_Elements &&...
__args)
• template<typename _Tp >
constexpr std::remove_reference< _Tp >::type && std::move (_Tp &&__t) noexcept
• template<typename _Tp >
constexpr __conditional_t< __move_if_noexcept_cond< _Tp >::value, const _Tp &, _Tp && > std::move_if_noexcept
(_Tp &__x) noexcept
• template<typename... _Tps, typename... _Ups>
requires (sizeof...(_Tps) == sizeof...(_Ups)) && (requires { typename __detail::__synth3way_t<_Tps, _Ups>; } && ...)
constexpr common_comparison_category_t< __detail::__synth3way_t< _Tps, _Ups >... > std::operator<=>
(const tuple< _Tps... > &__t, const tuple< _Ups... > &__u)
• template<typename... _Tps, typename... _Ups>
requires (sizeof...(_Tps) == sizeof...(_Ups)) && (requires (const _Tps& __t, const _Ups& __u) { { __t == __u } -> __detail::__boolean_testable;
} && ...)
constexpr bool std::operator== (const tuple< _Tps... > &__t, const tuple< _Ups... > &__u)
• template<typename _Tp >
constexpr enable_if< __and_< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >,
is_move_assignable< _Tp > >::value >::type std::swap (_Tp &__a, _Tp &__b) noexcept(/∗conditional ∗/)
is_nothrow_move_assignable< _Tp > >
• template<typename _Tp , size_t _Nm>
constexpr enable_if< __is_swappable< _Tp >::value >::type std::swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm])
noexcept(/∗conditional ∗/)
• template<typename... _Elements>
constexpr enable_if< __and_< __is_swappable< _Elements >... >::value >::type std::swap (tuple< _←-
Elements... > &__x, tuple< _Elements... > &__y) noexcept(noexcept(__x.swap(__y)))

Generated by Doxygen
3.15 Utilities 295

• template<typename... _Elements>
constexpr tuple< _Elements &... > std::tie (_Elements &... __args) noexcept
• template<typename... _UTypes>
std::tuple (_UTypes...) -> tuple< _UTypes... >
• template<typename _Alloc , typename... _UTypes>
std::tuple (allocator_arg_t, _Alloc, _UTypes...) -> tuple< _UTypes... >
• template<typename _Alloc , typename _T1 , typename _T2 >
std::tuple (allocator_arg_t, _Alloc, pair< _T1, _T2 >) -> tuple< _T1, _T2 >
• template<typename _Alloc , typename... _UTypes>
std::tuple (allocator_arg_t, _Alloc, tuple< _UTypes... >) -> tuple< _UTypes... >
• template<typename _T1 , typename _T2 >
std::tuple (pair< _T1, _T2 >) -> tuple< _T1, _T2 >
• template<typename... _Tpls, typename = typename enable_if<__and_<__is_tuple_like<_Tpls>...>::value>::type>
constexpr auto std::tuple_cat (_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type

Variables

• constexpr piecewise_construct_t std::piecewise_construct


• template<typename... _Types>
constexpr size_t std::tuple_size_v< const tuple< _Types... > >
• template<typename... _Types>
constexpr size_t std::tuple_size_v< tuple< _Types... > >

• template<typename _T1 , typename _T2 >


pair (_T1, _T2) -> pair< _T1, _T2 >
• template<typename _T1 , typename _T2 , typename _U1 , typename _U2 >
constexpr bool operator== (const pair< _T1, _T2 > &__x, const pair< _U1, _U2 > &__y)
• template<typename _T1 , typename _T2 , typename _U1 , typename _U2 >
constexpr common_comparison_category_t< __detail::__synth3way_t< _T1, _U1 >, __detail::__synth3way_t<
_T2, _U2 > > operator (const pair< _T1, _T2 > &__x, const pair< _U1, _U2 > &__y)
• template<typename _T1 , typename _T2 >
constexpr enable_if< __and_< __is_swappable< _T1 >, __is_swappable< _T2 > >::value >::type swap (pair<
_T1, _T2 > &__x, pair< _T1, _T2 > &__y) noexcept(noexcept(__x.swap(__y)))

3.15.1 Detailed Description

Basic function and class templates used with the rest of the library. Includes pair, swap, forward/move helpers, declval,
integer_sequence.

3.15.2 Function Documentation

pair() [1/2]

template<typename _T1 , typename _T2 >


pair (
_T1 ,
_T2 ) -> pair< _T1, _T2 > [related]
Two pairs are equal iff their members are equal.

pair() [2/2]

template<class _T1 , class _T2 >


template<typename... _Args1, typename... _Args2>
std::pair< _T1, _T2 >::pair (
piecewise_construct_t ,

Generated by Doxygen
296

tuple< _Args1... > __first,


tuple< _Args2... > __second) [inline], [constexpr]
"piecewise construction" using a tuple of arguments for each member.

Parameters

__first Arguments for the first member of the pair.


__second Arguments for the second member of the pair.

The elements of each tuple will be used as the constructor arguments for the data members of the pair.

__addressof()

template<typename _Tp >


_Tp ∗ std::__addressof (
_Tp & __r) [inline], [constexpr], [noexcept]
Same as C++11 std::addressof.
Referenced by std::_Destroy(), std::_Destroy_n(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if(),
std::addressof(), std::basic_ios< _CharT, _Traits >::copyfmt(), std::forward_list< _Tp, _Alloc >::merge(), std::list< _Tp, _Alloc >::merge(
std::list< _Tp, _Alloc >::merge(), std::sub_match< _BiIter >::operator(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(),
std::deque< _Tp, _Alloc >::operator=(), std::forward_list< _Tp, _Alloc >::operator=(), std::list< _Tp, _Alloc >::operator=(),
std::sub_match< _BiIter >::operator==(), std::list< _Tp, _Alloc >::splice(), and std::list< _Tp, _Alloc >::splice().

__invoke()

template<typename _Callable , typename... _Args>


__invoke_result< _Callable, _Args... >::type std::__invoke (
_Callable && __fn,
_Args &&... __args) [constexpr], [noexcept]
Invoke a callable object.
References std::forward().

addressof()

template<typename _Tp >


_Tp ∗ std::addressof (
_Tp & __r) [inline], [constexpr], [noexcept]
Returns the actual address of the object or function referenced by r, even in the presence of an overloaded operator&.

Parameters

←- Reference to an object or function.


_←-
←-
_←-
r

Returns

The actual address.

Since

C++11

References std::__addressof().

Generated by Doxygen
3.15 Utilities 297

declval()

template<typename _Tp >


auto std::declval () -> decltype(__declval< _Tp >(0)) [noexcept]
Utility to simplify expressions used in unevaluated operands

Since

C++11

forward() [1/2]

template<typename _Tp >


_Tp && std::forward (
typename std::remove_reference< _Tp >::type && __t) [constexpr], [noexcept]
Forward an rvalue.
Returns

The parameter cast to the specified type.

This function is used to implement "perfect forwarding".

Since

C++11

forward() [2/2]

template<typename _Tp >


_Tp && std::forward (
typename std::remove_reference< _Tp >::type & __t) [constexpr], [noexcept]
Forward an lvalue.
Returns

The parameter cast to the specified type.

This function is used to implement "perfect forwarding".

Since

C++11

Referenced by std::function< _Res(_ArgTypes...)>::function(), std::move_only_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noex


std::move_only_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noexcept(_Noex)>::move_only_function(),
std::move_only_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noexcept(_Noex)>::move_only_function(),
std::__invoke(), std::_Construct(), std::list< _Tp, _Alloc >::_M_create_node(), std::deque< _Tp, _Alloc >::_M_push_back_aux(),
std::deque< _Tp, _Alloc >::_M_push_front_aux(), std::shared_ptr< _Tp >::allocate_shared(), std::allocator_traits< typename >::constru
std::allocator_traits< allocator< _Tp > >::construct(), std::allocator_traits< allocator< void > >::construct(), std::allocator_traits< pmr::
std::deque< _Tp, _Alloc >::emplace(), std::list< _Tp, _Alloc >::emplace(), std::map< _Key, _Tp, _Compare, _Alloc >::emplace(),
std::multimap< _Key, _Tp, _Compare, _Alloc >::emplace(), std::multiset< _Key, _Compare, _Alloc >::emplace(),
std::set< _Key, _Compare, _Alloc >::emplace(), std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::emplace(),
std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >::emplace(), std::unordered_multiset< _Value, _Hash, _Pred, _Alloc >::em
std::unordered_set< _Value, _Hash, _Pred, _Alloc >::emplace(), std::vector< _Tp, _Alloc >::emplace(), std::forward_list< _Tp, _Alloc >
std::forward_list< _Tp, _Alloc >::emplace_front(), std::map< _Key, _Tp, _Compare, _Alloc >::emplace_hint(), std::multimap< _Key, _Tp
std::multiset< _Key, _Compare, _Alloc >::emplace_hint(), std::set< _Key, _Compare, _Alloc >::emplace_hint(),
std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::emplace_hint(), std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >
std::unordered_multiset< _Value, _Hash, _Pred, _Alloc >::emplace_hint(), std::unordered_set< _Value, _Hash, _Pred, _Alloc >::emplac

Generated by Doxygen
298

std::map< _Key, _Tp, _Compare, _Alloc >::insert(), std::map< _Key, _Tp, _Compare, _Alloc >::insert(), std::multimap< _Key, _Tp, _Com
std::multimap< _Key, _Tp, _Compare, _Alloc >::insert(), std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(),
std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(), std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >::insert
std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(), std::map< _Key, _Tp, _Compare, _Alloc >::insert_or_assign(),
std::map< _Key, _Tp, _Compare, _Alloc >::insert_or_assign(), std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert_or_assi
std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert_or_assign(), std::make_pair(), std::shared_ptr< _Tp >::make_shared(),
std::unique_ptr< _Tp, _Dp >::make_unique(), std::function< _Res(_ArgTypes...)>::operator()(), std::move_only_function< _Res(_ArgTy
std::function< _Res(_ArgTypes...)>::operator=(), std::move_only_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noexcept(_Noex)>
std::unique_ptr< _Tp, _Dp >::operator=(), std::unique_ptr< _Tp[ ], _Dp >::operator=(), std::sample(), std::throw_with_nested(),
std::map< _Key, _Tp, _Compare, _Alloc >::try_emplace(), std::map< _Key, _Tp, _Compare, _Alloc >::try_emplace(),
std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::try_emplace(), and std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >:

forward_as_tuple()

template<typename... _Elements>
tuple< _Elements &&... > std::forward_as_tuple (
_Elements &&... __args) [constexpr], [noexcept]
Create a tuple of lvalue or rvalue references to the arguments.
Referenced by std::map< _Key, _Tp, _Compare, _Alloc >::insert_or_assign(), std::map< _Key, _Tp, _Compare, _Alloc >::insert_or_assi
std::map< _Key, _Tp, _Compare, _Alloc >::try_emplace(), and std::map< _Key, _Tp, _Compare, _Alloc >::try_emplace().

get() [1/4]

template<size_t __i, typename... _Elements>


const __tuple_element_t< __i, tuple< _Elements... > > && std::get (
const tuple< _Elements... > && __t) [constexpr], [noexcept]
Return a const rvalue reference to the ith element of a const tuple rvalue.

get() [2/4]

template<size_t __i, typename... _Elements>


const __tuple_element_t< __i, tuple< _Elements... > > & std::get (
const tuple< _Elements... > & __t) [constexpr], [noexcept]
Return a const reference to the ith element of a const tuple.

get() [3/4]

template<size_t __i, typename... _Elements>


__tuple_element_t< __i, tuple< _Elements... > > && std::get (
tuple< _Elements... > && __t) [constexpr], [noexcept]
Return an rvalue reference to the ith element of a tuple rvalue.

get() [4/4]

template<size_t __i, typename... _Elements>


__tuple_element_t< __i, tuple< _Elements... > > & std::get (
tuple< _Elements... > & __t) [constexpr], [noexcept]
Return a reference to the ith element of a tuple.

make_pair()

template<typename _T1 , typename _T2 >


pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type >
std::make_pair (

Generated by Doxygen
3.15 Utilities 299

_T1 && __x,


_T2 && __y) [constexpr]
A convenience wrapper for creating a pair from two objects.

Parameters

_←- The first object.


_x
_←- The second object.
_y

Returns

A newly-constructed pair<> object of the appropriate type.

The C++98 standard says the objects are passed by reference-to-const, but C++03 says they are passed by value (this
was LWG issue #181).
Since C++11 they have been passed by forwarding reference and then forwarded to the new members of the pair. To
create a pair with a member of reference type, pass a reference_wrapper to this function.
References std::forward().
Referenced by __gnu_parallel::__find_template(), std::__gen_two_uniform_ints(), __gnu_debug::__get_distance(),
__gnu_parallel::__parallel_merge_advance(), __gnu_parallel::__parallel_sort_qsb(), __gnu_parallel::__qsb_local_sort_with_helping(),
__gnu_parallel::__adjacent_find_selector::_M_sequential_algorithm(), __gnu_parallel::__find_first_of_selector< _FIterator >::_M_seque
__gnu_parallel::__find_if_selector::_M_sequential_algorithm(), __gnu_parallel::multiseq_partition(), __gnu_parallel::multiseq_selection(),
__gnu_parallel::parallel_multiway_merge(), __gnu_parallel::parallel_sort_mwms_pu(), and __gnu_pbds::detail::pat_trie_base::_Node_cite

make_tuple()

template<typename... _Elements>
tuple< typename __decay_and_strip< _Elements >::__type... > std::make_tuple (
_Elements &&... __args) [constexpr]
Create a tuple containing copies of the arguments.

move()

template<typename _Tp >


std::remove_reference< _Tp >::type && std::move (
_Tp && __t) [constexpr], [noexcept]
Convert a value to an rvalue.

Parameters

←- A thing of arbitrary type.


_←-
←-
_←-
t

Returns

The parameter cast to an rvalue-reference to allow moving it.

Generated by Doxygen
300

Since

C++11

Referenced by std::unique_ptr< _Tp, _Dp >::∼unique_ptr(), std::basic_regex< _Ch_type, _Rx_traits >::assign(),


std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::atomic_compare_exchange_strong(), std::atomic_compare_exchange_strong(
std::atomic_compare_exchange_strong_explicit(), std::atomic_compare_exchange_strong_explicit(), std::atomic_compare_exchange_we
std::atomic_compare_exchange_weak(), std::atomic_compare_exchange_weak_explicit(), std::atomic_compare_exchange_weak_explicit
std::atomic_exchange(), std::atomic_exchange(), std::atomic_store(), std::atomic_store(), std::shared_ptr< _Tp >::const_pointer_cast(),
std::copy_n(), std::shared_ptr< _Tp >::dynamic_pointer_cast(), std::for_each_n(), std::get(), std::get(), std::get(),
std::get(), std::get(), std::get(), std::deque< _Tp, _Alloc >::insert(), std::list< _Tp, _Alloc >::insert(), std::map< _Key, _Tp, _Compare, _A
std::map< _Key, _Tp, _Compare, _Alloc >::insert(), std::map< _Key, _Tp, _Compare, _Alloc >::insert(), std::map< _Key, _Tp, _Compar
std::multimap< _Key, _Tp, _Compare, _Alloc >::insert(), std::multimap< _Key, _Tp, _Compare, _Alloc >::insert(),
std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(), std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(),
std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(), std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(),
std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(), std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >::in
std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >::insert(), std::unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc >::in
std::unordered_multiset< _Value, _Hash, _Pred, _Alloc >::insert(), std::unordered_multiset< _Value, _Hash, _Pred, _Alloc >::insert(),
std::unordered_multiset< _Value, _Hash, _Pred, _Alloc >::insert(), std::unordered_multiset< _Value, _Hash, _Pred, _Alloc >::insert(),
std::unordered_set< _Value, _Hash, _Pred, _Alloc >::insert(), std::unordered_set< _Value, _Hash, _Pred, _Alloc >::insert(),
std::unordered_set< _Value, _Hash, _Pred, _Alloc >::insert(), std::unordered_set< _Value, _Hash, _Pred, _Alloc >::insert(),
std::vector< _Tp, _Alloc >::insert(), std::vector< _Tp, _Alloc >::insert(), std::forward_list< _Tp, _Alloc >::merge(),
std::forward_list< _Tp, _Alloc >::merge(), std::move_if_noexcept(), std::chrono::operator<<(), std::deque< _Tp, _Alloc >::operator=(),
std::forward_list< _Tp, _Alloc >::operator=(), std::function< _Res(_ArgTypes...)>::operator=(), std::list< _Tp, _Alloc >::operator=(),
std::vector< _Tp, _Alloc >::operator=(), std::unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc >::operator[ ](),
std::shared_ptr< _Tp >::reinterpret_pointer_cast(), std::unique_ptr< _Tp, _Dp >::reset(), std::unique_ptr< _Tp[ ], _Dp >::reset(),
std::list< _Tp, _Alloc >::splice(), std::list< _Tp, _Alloc >::splice(), and std::shared_ptr< _Tp >::static_pointer_cast().

move_if_noexcept()

template<typename _Tp >


__conditional_t< __move_if_noexcept_cond< _Tp >::value, const _Tp &, _Tp && > std::move_if_←-
noexcept (
_Tp & __x) [constexpr], [noexcept]
Conditionally convert a value to an rvalue.

Parameters

_←- A thing of arbitrary type.


_x

Returns

The parameter, possibly cast to an rvalue-reference.

Same as std::move unless the type's move constructor could throw and the type is copyable, in which case an lvalue-
reference is returned instead.
Since

C++11

References std::move().

operator()

template<typename _T1 , typename _T2 , typename _U1 , typename _U2 >


common_comparison_category_t< __detail::__synth3way_t< _T1, _U1 >, __detail::__synth3way_t< _T2,

Generated by Doxygen
3.15 Utilities 301

_U2 > > operator<=> (


const pair< _T1, _T2 > & __x,
const pair< _U1, _U2 > & __y) [related]
Defines a lexicographical order for pairs.
For two pairs of comparable types, P is ordered before Q if P.first is less than Q.first, or if P.first and
Q.first are equivalent (neither is less than the other) and P.second is less than Q.second.
References std::pair< _T1, _T2 >::first, and std::pair< _T1, _T2 >::second.

operator==()

template<typename _T1 , typename _T2 , typename _U1 , typename _U2 >


bool operator== (
const pair< _T1, _T2 > & __x,
const pair< _U1, _U2 > & __y) [related]
Two pairs are equal iff their members are equal.
References std::pair< _T1, _T2 >::first, and std::pair< _T1, _T2 >::second.

swap() [1/4]

template<typename _T1 , typename _T2 >


enable_if< __and_< __is_swappable< _T1 >, __is_swappable< _T2 > >::value >::type swap (
pair< _T1, _T2 > & __x,
pair< _T1, _T2 > & __y) [related]
Swap overload for pairs. Calls std::pair::swap().

Note

This std::swap overload is not declared in C++03 mode, which has performance implications, e.g. see https←-
://gcc.gnu.org/PR38466

swap() [2/4]

template<typename _Tp >


enable_if< __and_< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >, is_move_assignable<
_Tp > >::value >::type std::swap (
_Tp & __a,
_Tp & __b) [inline], [constexpr], [noexcept]
Swaps two values.

Parameters

_←- A thing of arbitrary type.


_a
_←- Another thing of arbitrary type.
_b

Returns

Nothing.

swap() [3/4]

template<typename _Tp , size_t _Nm>


enable_if< __is_swappable< _Tp >::value >::type std::swap (

Generated by Doxygen
302

_Tp(&) __a[_Nm],
_Tp(&) __b[_Nm]) [inline], [constexpr], [noexcept]
Swap the contents of two arrays.

swap() [4/4]

template<typename... _Elements>
enable_if< __and_< __is_swappable< _Elements >... >::value >::type std::swap (
tuple< _Elements... > & __x,
tuple< _Elements... > & __y) [inline], [constexpr], [delete], [noexcept]
Exchange the values of two tuples.
Exchange the values of two const tuples (if const elements can be swapped)

tie()

template<typename... _Elements>
tuple< _Elements &... > std::tie (
_Elements &... __args) [constexpr], [noexcept]
Return a tuple of lvalue references bound to the arguments.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

tuple_cat()

template<typename... _Tpls, typename = typename enable_if<__and_<__is_tuple_like<_Tpls>...>←-


::value>::type>
auto std::tuple_cat (
_Tpls &&... __tpls) -> typename __tuple_cat_result<_Tpls...>::__type [constexpr]
Create a tuple containing all elements from multiple tuple-like objects.

3.15.3 Variable Documentation

piecewise_construct

piecewise_construct_t std::piecewise_construct [inline], [constexpr]


Tag for piecewise construction of std::pair objects.
Referenced by std::map< _Key, _Tp, _Compare, _Alloc >::insert_or_assign(), std::map< _Key, _Tp, _Compare, _Alloc >::insert_or_assi
std::map< _Key, _Tp, _Compare, _Alloc >::operator[ ](), std::map< _Key, _Tp, _Compare, _Alloc >::try_emplace(),
and std::map< _Key, _Tp, _Compare, _Alloc >::try_emplace().

Generated by Doxygen
3.15 Utilities 303

3.15.4 Function Objects

Collaboration diagram for Function Objects:

Arithmetic Function
Object Classes

Binder Classes

Comparison Classes

Hashes

Utilities Function Objects


Boolean Operations
Classes

Negators

Adaptors for pointers


to functions

Adaptors for pointers


to members

Topics

• Adaptors for pointers to functions


• Adaptors for pointers to members
• Arithmetic Function Object Classes
• Binder Classes
• Boolean Operations Classes
• Comparison Classes
• Hashes
• Negators

Classes

• struct std::binary_function< _Arg1, _Arg2, _Result >


• class std::function< _Res(_ArgTypes...)>
• class std::move_only_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noexcept(_Noex)>
• class std::reference_wrapper< _Tp >
• struct std::unary_function< _Arg, _Result >

Generated by Doxygen
304

Functions

• template<typename _Tp , typename _Class >


constexpr _Mem_fn< _Tp _Class::∗ > std::mem_fn (_Tp _Class::∗__pm) noexcept

3.15.4.1 Detailed Description

Function objects, or functors, are objects with an operator() defined and accessible. They can be passed as
arguments to algorithm templates and used in place of a function pointer. Not only is the resulting expressiveness of
the library increased, but the generated code can be more efficient than what you might write by hand. When we refer
to functors, then, generally we include function pointers in the description as well.
Often, functors are only created as temporaries passed to algorithm calls, rather than being created as named variables.
Two examples taken from the standard itself follow. To perform a by-element addition of two vectors a and b containing
double, and put the result in a, use
transform (a.begin(), a.end(), b.begin(), a.begin(), plus<double>());
To negate every element in a, use
transform(a.begin(), a.end(), a.begin(), negate<double>());
The addition and negation functions will usually be inlined directly.
An adaptable function object is one which provides nested typedefs result_type and either argument_type
(for a unary function) or first_argument_type and second_argument_type (for a binary function). Those
typedefs are used by function object adaptors such as bind2nd. The standard library provides two class templates,
unary_function and binary_function, which define those typedefs and so can be used as base classes of
adaptable function objects.
Since C++11 the use of function object adaptors has been superseded by more powerful tools such as lambda ex-
pressions, function<>, and more powerful type deduction (using auto and decltype). The helpers for defining
adaptable function objects are deprecated since C++11, and no longer part of the standard library since C++17. How-
ever, they are still defined and used by libstdc++ after C++17, as a conforming extension.

3.15.4.2 Function Documentation

mem_fn()

template<typename _Tp , typename _Class >


_Mem_fn< _Tp _Class::∗ > std::mem_fn (
_Tp _Class::∗ __pm) [inline], [constexpr], [noexcept]
Returns a function object that forwards to the member pointer pointer pm.
This allows a pointer-to-member to be transformed into a function object that can be called with an object expression as
its first argument.
For a pointer-to-data-member the result must be called with exactly one argument, the object expression that would be
used as the first operand in a obj.∗memptr or objp->∗memptr expression.
For a pointer-to-member-function the result must be called with an object expression and any additional ar-
guments to pass to the member function, as in an expression like (obj.∗memfun)(args...) or
(objp->∗memfun)(args...).
The object expression can be a pointer, reference, reference_wrapper, or smart pointer, and the call wrapper will
dereference it as needed to apply the pointer-to-member.

Generated by Doxygen
3.15 Utilities 305

Since

C++11

3.15.4.3 Adaptors for pointers to functions

Collaboration diagram for Adaptors for pointers to functions:

Adaptors for pointers


Function Objects
to functions

Classes

• class std::pointer_to_binary_function< _Arg1, _Arg2, _Result >


• class std::pointer_to_unary_function< _Arg, _Result >

Functions

• template<typename _Arg , typename _Result >


pointer_to_unary_function< _Arg, _Result > std::ptr_fun (_Result(∗__x)(_Arg))
• template<typename _Arg1 , typename _Arg2 , typename _Result >
pointer_to_binary_function< _Arg1, _Arg2, _Result > std::ptr_fun (_Result(∗__x)(_Arg1, _Arg2))

3.15.4.3.1 Detailed Description

The advantage of function objects over pointers to functions is that the objects in the standard library declare nested
typedefs describing their argument and result types with uniform names (e.g., result_type from the base classes
unary_function and binary_function). Sometimes those typedefs are required, not just optional.
Adaptors are provided to turn pointers to unary (single-argument) and binary (double-argument) functions into function
objects. The long-winded functor pointer_to_unary_function is constructed with a function pointer f, and
its operator() called with argument x returns f(x). The functor pointer_to_binary_function does the
same thing, but with a double-argument f and operator().
The function ptr_fun takes a pointer-to-function f and constructs an instance of the appropriate functor.

Deprecated Deprecated in C++11, no longer in the standard since C++17.

3.15.4.3.2 Function Documentation

ptr_fun() [1/2]

template<typename _Arg , typename _Result >


pointer_to_unary_function< _Arg, _Result > std::ptr_fun (
_Result(∗ __x )(_Arg)) [inline]
One of the adaptors for function pointers.

Generated by Doxygen
306

ptr_fun() [2/2]

template<typename _Arg1 , typename _Arg2 , typename _Result >


pointer_to_binary_function< _Arg1, _Arg2, _Result > std::ptr_fun (
_Result(∗ __x )(_Arg1, _Arg2)) [inline]
One of the adaptors for function pointers.

3.15.4.4 Adaptors for pointers to members

Collaboration diagram for Adaptors for pointers to members:

Adaptors for pointers


Function Objects
to members

Classes

• class std::const_mem_fun1_ref_t< _Ret, _Tp, _Arg >


• class std::const_mem_fun1_t< _Ret, _Tp, _Arg >
• class std::const_mem_fun_ref_t< _Ret, _Tp >
• class std::const_mem_fun_t< _Ret, _Tp >
• class std::mem_fun1_ref_t< _Ret, _Tp, _Arg >
• class std::mem_fun1_t< _Ret, _Tp, _Arg >
• class std::mem_fun_ref_t< _Ret, _Tp >
• class std::mem_fun_t< _Ret, _Tp >

Functions

• template<typename _Ret , typename _Tp >


mem_fun_t< _Ret, _Tp > std::mem_fun (_Ret(_Tp::∗__f)())
• template<typename _Ret , typename _Tp , typename _Arg >
mem_fun1_t< _Ret, _Tp, _Arg > std::mem_fun (_Ret(_Tp::∗__f)(_Arg))
• template<typename _Ret , typename _Tp >
mem_fun_ref_t< _Ret, _Tp > std::mem_fun_ref (_Ret(_Tp::∗__f)())
• template<typename _Ret , typename _Tp , typename _Arg >
mem_fun1_ref_t< _Ret, _Tp, _Arg > std::mem_fun_ref (_Ret(_Tp::∗__f)(_Arg))

3.15.4.4.1 Detailed Description

There are a total of 8 = 2∧ 3 function objects in this family. (1) Member functions taking no arguments vs member
functions taking one argument. (2) Call through pointer vs call through reference. (3) Const vs non-const member
function.
All of this complexity is in the function objects themselves. You can ignore it by using the helper function mem_fun and
mem_fun_ref, which create whichever type of adaptor is appropriate.

Deprecated Deprecated in C++11, no longer in the standard since C++17. Use mem_fn instead.

Generated by Doxygen
3.15 Utilities 307

3.15.4.5 Arithmetic Function Object Classes

Collaboration diagram for Arithmetic Function Object Classes:

Arithmetic Function
Function Objects
Object Classes

Classes

• struct std::divides< _Tp >


• struct std::divides< void >
• struct std::minus< _Tp >
• struct std::minus< void >
• struct std::modulus< _Tp >
• struct std::modulus< void >
• struct std::multiplies< _Tp >
• struct std::multiplies< void >
• struct std::negate< _Tp >
• struct std::negate< void >
• struct std::plus< _Tp >

3.15.4.5.1 Detailed Description

The library provides function objects for basic arithmetic operations. See the documentation for function objects for
examples of their use.

3.15.4.6 Binder Classes

Collaboration diagram for Binder Classes:

Function Objects Binder Classes

Namespaces

• namespace std::placeholders

Generated by Doxygen
308

Classes

• struct std::_Placeholder< _Num >


• class std::binder1st< _Operation >
• class std::binder2nd< _Operation >
• struct std::is_bind_expression< _Tp >
• struct std::is_bind_expression< _Bind< _Signature > >
• struct std::is_bind_expression< _Bind_result< _Result, _Signature > >
• struct std::is_bind_expression< const _Bind< _Signature > >
• struct std::is_bind_expression< const _Bind_result< _Result, _Signature > >
• struct std::is_bind_expression< const volatile _Bind< _Signature > >
• struct std::is_bind_expression< const volatile _Bind_result< _Result, _Signature > >
• struct std::is_bind_expression< volatile _Bind< _Signature > >
• struct std::is_bind_expression< volatile _Bind_result< _Result, _Signature > >
• struct std::is_placeholder< _Tp >
• struct std::is_placeholder< _Placeholder< _Num > >

Functions

• template<typename _Func , typename... _BoundArgs>


constexpr _Bind_helper< __is_socketlike< _Func >::value, _Func, _BoundArgs... >::type std::bind (_Func &&←-
__f, _BoundArgs &&... __args)
• template<typename _Result , typename _Func , typename... _BoundArgs>
constexpr _Bindres_helper< _Result, _Func, _BoundArgs... >::type std::bind (_Func &&__f, _BoundArgs &&...
__args)
• template<typename _Operation , typename _Tp >
binder1st< _Operation > std::bind1st (const _Operation &__fn, const _Tp &__x)
• template<typename _Operation , typename _Tp >
binder2nd< _Operation > std::bind2nd (const _Operation &__fn, const _Tp &__x)

3.15.4.6.1 Detailed Description

Binders turn functions/functors with two arguments into functors with a single argument, storing an argument to be
applied later. For example, a variable B of type binder1st is constructed from a functor f and an argument x. Later,
B's operator() is called with a single argument y. The return value is the value of f(x,y). B can be called with
various arguments (y1, y2, ...) and will in turn call f(x,y1), f(x,y2), ...
The function bind1st is provided to save some typing. It takes the function and an argument as parameters, and
returns an instance of binder1st.
The type binder2nd and its creator function bind2nd do the same thing, but the stored argument is passed
as the second parameter instead of the first, e.g., bind2nd(std::minus<float>(),1.3) will create a functor whose
operator() accepts a floating-point number, subtracts 1.3 from it, and returns the result. (If bind1st had been
used, the functor would perform 1.3 - x instead.
Creator-wrapper functions like bind1st are intended to be used in calling algorithms. Their return values will be
temporary objects. (The goal is to not require you to type names like std::binder1st<std::plus<int>> for
declaring a variable to hold the return value from bind1st(std::plus<int>(),5).
These become more useful when combined with the composition functions.
These functions are deprecated in C++11 and can be replaced by std::bind (or std::tr1::bind) which
is more powerful and flexible, supporting functions with any number of arguments. Uses of bind1st can be
replaced by std::bind(f, x, std::placeholders::_1) and bind2nd by std::bind(f, std←-
::placeholders::_1, x).

Generated by Doxygen
3.15 Utilities 309

3.15.4.6.2 Function Documentation

bind() [1/2]

template<typename _Func , typename... _BoundArgs>


_Bind_helper< __is_socketlike< _Func >::value, _Func, _BoundArgs... >::type std::bind (
_Func && __f,
_BoundArgs &&... __args) [inline], [constexpr]
Function template for std::bind.

Since

C++11

bind() [2/2]

template<typename _Result , typename _Func , typename... _BoundArgs>


_Bindres_helper< _Result, _Func, _BoundArgs... >::type std::bind (
_Func && __f,
_BoundArgs &&... __args) [inline], [constexpr]
Function template for std::bind<R>.

Since

C++11

bind1st()

template<typename _Operation , typename _Tp >


binder1st< _Operation > std::bind1st (
const _Operation & __fn,
const _Tp & __x) [inline]
One of the binder functors.

bind2nd()

template<typename _Operation , typename _Tp >


binder2nd< _Operation > std::bind2nd (
const _Operation & __fn,
const _Tp & __x) [inline]
One of the binder functors.

3.15.4.7 Boolean Operations Classes

Collaboration diagram for Boolean Operations Classes:

Boolean Operations
Function Objects
Classes

Generated by Doxygen
310

Classes

• struct std::logical_and< _Tp >


• struct std::logical_and< void >
• struct std::logical_not< _Tp >
• struct std::logical_not< void >
• struct std::logical_or< _Tp >
• struct std::logical_or< void >

3.15.4.7.1 Detailed Description

The library provides function objects for the logical operations: &&, ||, and !.

3.15.4.8 Comparison Classes

Collaboration diagram for Comparison Classes:

Function Objects Comparison Classes

Classes

• struct std::equal_to< _Tp >


• struct std::equal_to< void >
• struct std::greater< _Tp >
• struct std::greater< void >
• struct std::greater_equal< _Tp >
• struct std::greater_equal< void >
• struct std::less< _Tp >
• struct std::less< void >
• struct std::less_equal< _Tp >
• struct std::less_equal< void >
• struct std::not_equal_to< _Tp >
• struct std::not_equal_to< void >

3.15.4.8.1 Detailed Description

The library provides six wrapper functors for all the basic comparisons in C++, like <.

Generated by Doxygen
3.15 Utilities 311

3.15.4.9 Hashes

Collaboration diagram for Hashes:

Function Objects Hashes

Classes

• struct std::hash< _Tp >


• struct std::hash< _Tp ∗ >
• struct std::hash< bool >
• struct std::hash< char >
• struct std::hash< char16_t >
• struct std::hash< char32_t >
• struct std::hash< double >
• struct std::hash< float >
• struct std::hash< int >
• struct std::hash< long >
• struct std::hash< long double >
• struct std::hash< long long >
• struct std::hash< short >
• struct std::hash< signed char >
• struct std::hash< unsigned char >
• struct std::hash< unsigned int >
• struct std::hash< unsigned long >
• struct std::hash< unsigned long long >
• struct std::hash< unsigned short >
• struct std::hash< wchar_t >

Macros

• #define _Cxx_hashtable_define_trivial_hash(_Tp)

Variables

• template<typename _Tp , typename = void>


constexpr bool std::__is_hash_enabled_for
• template<typename _Tp >
constexpr bool std::__is_hash_enabled_for< _Tp, __void_t< decltype(hash< _Tp >()(declval< _Tp >()))>

3.15.4.9.1 Detailed Description

Hashing functors taking a variable type and returning a std::size_t.

Generated by Doxygen
312

3.15.4.10 Negators

Collaboration diagram for Negators:

Function Objects Negators

Classes

• class std::binary_negate< _Predicate >


• class std::unary_negate< _Predicate >

Functions

• template<typename _Predicate >


constexpr unary_negate< _Predicate > std::not1 (const _Predicate &__pred)
• template<typename _Predicate >
constexpr binary_negate< _Predicate > std::not2 (const _Predicate &__pred)

3.15.4.10.1 Detailed Description

The function templates not1 and not2 are function object adaptors, which each take a predicate functor and wrap it in
an instance of unary_negate or binary_negate, respectively. Those classes are functors whose operator()
evaluates the wrapped predicate function and then returns the negation of the result.
For example, given a vector of integers and a trivial predicate,
struct IntGreaterThanThree
: public std::unary_function<int, bool>
{
bool operator() (int x) const { return x > 3; }
};

std::find_if (v.begin(), v.end(), not1(IntGreaterThanThree()));


The call to find_if will locate the first index (i) of v for which !(v[i] > 3) is true.
The not1/unary_negate combination works on predicates taking a single argument. The not2/binary_negate combina-
tion works on predicates taking two arguments.
Deprecated Deprecated in C++17, no longer in the standard since C++20. Use not_fn instead.

3.15.4.10.2 Function Documentation

not1()

template<typename _Predicate >


unary_negate< _Predicate > std::not1 (
const _Predicate & __pred) [inline], [constexpr]
One of the negation functors.

not2()

template<typename _Predicate >


binary_negate< _Predicate > std::not2 (
const _Predicate & __pred) [inline], [constexpr]

Generated by Doxygen
3.15 Utilities 313

One of the negation functors.

3.15.5 Memory

Collaboration diagram for Memory:

Allocators

Polymorphic memory
resources
Utilities Memory

Pointer Abstractions

Pointer Safety and


Garbage Collection

Topics

• Allocators
• Pointer Abstractions
• Pointer Safety and Garbage Collection
• Polymorphic memory resources

Files

• file memory

Functions

• void ∗ std::align (size_t __align, size_t __size, void ∗&__ptr, size_t &__space) noexcept
• template<size_t _Align, class _Tp >
constexpr _Tp ∗ std::assume_aligned (_Tp ∗__ptr) noexcept
• template<typename _InputIterator , typename _ForwardIterator >
_ForwardIterator std::uninitialized_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
• template<typename _InputIterator , typename _Size , typename _ForwardIterator >
_ForwardIterator std::uninitialized_copy_n (_InputIterator __first, _Size __n, _ForwardIterator __result)
• template<typename _ForwardIterator >
void std::uninitialized_default_construct (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Size >
_ForwardIterator std::uninitialized_default_construct_n (_ForwardIterator __first, _Size __count)
• template<typename _ForwardIterator , typename _Tp >
void std::uninitialized_fill (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__x)
• template<typename _ForwardIterator , typename _Size , typename _Tp >
_ForwardIterator std::uninitialized_fill_n (_ForwardIterator __first, _Size __n, const _Tp &__x)

Generated by Doxygen
314

• template<typename _InputIterator , typename _ForwardIterator >


_ForwardIterator std::uninitialized_move (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
• template<typename _InputIterator , typename _Size , typename _ForwardIterator >
pair< _InputIterator, _ForwardIterator > std::uninitialized_move_n (_InputIterator __first, _Size __count, _←-
ForwardIterator __result)
• template<typename _ForwardIterator >
void std::uninitialized_value_construct (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Size >
_ForwardIterator std::uninitialized_value_construct_n (_ForwardIterator __first, _Size __count)

3.15.5.1 Detailed Description

Components for memory allocation, deallocation, and management.

3.15.5.2 Function Documentation

align()

void ∗ std::align (
size_t __align,
size_t __size,
void ∗& __ptr,
size_t & __space) [inline], [noexcept]
Fit aligned storage in buffer.
This function tries to fit __size bytes of storage with alignment __align into the buffer __ptr of size __space bytes. If such
a buffer fits then __ptr is changed to point to the first byte of the aligned storage and __space is reduced by the bytes
used for alignment.
C++11 20.6.5 [ptr.align]

Parameters

__align A fundamental or extended alignment value.


__size Size of the aligned storage required.
__ptr Pointer to a buffer of __space bytes.
__space Size of the buffer pointed to by __ptr.

Returns

the updated pointer if the aligned storage fits, otherwise nullptr.

assume_aligned()

template<size_t _Align, class _Tp >


_Tp ∗ std::assume_aligned (
_Tp ∗ __ptr) [nodiscard], [constexpr], [noexcept]
Inform the compiler that a pointer is aligned.

Template Parameters

_Align An alignment value (i.e. a power of two)


_Tp An object type

Generated by Doxygen
3.15 Utilities 315

Parameters
__ptr A pointer that is aligned to _Align

C++20 20.10.6 [ptr.align]

uninitialized_copy()

template<typename _InputIterator , typename _ForwardIterator >


_ForwardIterator std::uninitialized_copy (
_InputIterator __first,
_InputIterator __last,
_ForwardIterator __result) [inline]
Copies the range [first,last) into result.

Parameters

__first An input iterator.


__last An input iterator.
__result A forward iterator.

Returns

__result + (__last - __first)

Like std::copy, but does not require an initialized output range.


References std::to_address().
Referenced by __gnu_parallel::parallel_sort_mwms_pu(), and std::uninitialized_move().

uninitialized_copy_n()

template<typename _InputIterator , typename _Size , typename _ForwardIterator >


_ForwardIterator std::uninitialized_copy_n (
_InputIterator __first,
_Size __n,
_ForwardIterator __result) [inline]
Copies the range [first,first+n) into result.

Parameters

__first An input iterator.


__n The number of elements to copy.
__result An output iterator.

Returns

__result + __n

Since

C++11

Like copy_n(), but does not require an initialized output range.


References std::__iterator_category().

Generated by Doxygen
316

uninitialized_default_construct()

template<typename _ForwardIterator >


void std::uninitialized_default_construct (
_ForwardIterator __first,
_ForwardIterator __last) [inline]
Default-initializes objects in the range [first,last).

Parameters

__first A forward iterator.


__last A forward iterator.

Since

C++17

uninitialized_default_construct_n()

template<typename _ForwardIterator , typename _Size >


_ForwardIterator std::uninitialized_default_construct_n (
_ForwardIterator __first,
_Size __count) [inline]
Default-initializes objects in the range [first,first+count).

Parameters

__first A forward iterator.


__count The number of objects to construct.

Returns

__first + __count

Since

C++17

uninitialized_fill()

template<typename _ForwardIterator , typename _Tp >


void std::uninitialized_fill (
_ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __x) [inline]
Copies the value x into the range [first,last).

Parameters

__first A forward iterator.


__last A forward iterator.
__x The source value.

Generated by Doxygen
3.15 Utilities 317

Returns

Nothing.

Like std::fill, but does not require an initialized output range.


References std::to_address().

uninitialized_fill_n()

template<typename _ForwardIterator , typename _Size , typename _Tp >


_ForwardIterator std::uninitialized_fill_n (
_ForwardIterator __first,
_Size __n,
const _Tp & __x) [inline]
Copies the value x into the range [first,first+n).

Parameters

__first A forward iterator.


__n The number of copies to make.
__x The source value.

Returns

__first + __n.

Like std::fill_n, but does not require an initialized output range.


References std::to_address().

uninitialized_move()

template<typename _InputIterator , typename _ForwardIterator >


_ForwardIterator std::uninitialized_move (
_InputIterator __first,
_InputIterator __last,
_ForwardIterator __result) [inline]
Move-construct from the range [first,last) into result.

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.

Returns

__result + (__first - __last)

Since

C++17

References std::uninitialized_copy().

Generated by Doxygen
318

uninitialized_move_n()

template<typename _InputIterator , typename _Size , typename _ForwardIterator >


pair< _InputIterator, _ForwardIterator > std::uninitialized_move_n (
_InputIterator __first,
_Size __count,
_ForwardIterator __result) [inline]
Move-construct from the range [first,first+count) into result.

Parameters

__first An input iterator.


__count The number of objects to initialize.
__result An output iterator.

Returns

__result + __count

Since

C++17

uninitialized_value_construct()

template<typename _ForwardIterator >


void std::uninitialized_value_construct (
_ForwardIterator __first,
_ForwardIterator __last) [inline]
Value-initializes objects in the range [first,last).

Parameters

__first A forward iterator.


__last A forward iterator.

Since

C++17

uninitialized_value_construct_n()

template<typename _ForwardIterator , typename _Size >


_ForwardIterator std::uninitialized_value_construct_n (
_ForwardIterator __first,
_Size __count) [inline]
Value-initializes objects in the range [first,first+count).

Parameters

__first A forward iterator.


__count The number of objects to construct.

Generated by Doxygen
3.15 Utilities 319

Returns

__result + __count

Since

C++17

3.15.5.3 Allocators

Collaboration diagram for Allocators:

Memory Allocators

Classes

• struct __gnu_cxx::__alloc_traits< _Alloc, typename >


• class __gnu_cxx::__mt_alloc< _Tp, _Poolp >
• class std::__new_allocator< _Tp >
• class __gnu_cxx::__pool_alloc< _Tp >
• class __gnu_cxx::_ExtPtr_allocator< _Tp >
• class std::allocator< typename >
• class std::allocator< void >
• struct std::allocator_traits< typename >
• struct std::allocator_traits< allocator< _Tp > >
• struct std::allocator_traits< allocator< void > >
• class __gnu_cxx::bitmap_allocator< _Tp >
• class __gnu_cxx::debug_allocator< _Alloc >
• class __gnu_cxx::malloc_allocator< _Tp >
• class __gnu_cxx::new_allocator< _Tp >
• class std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >
• class __gnu_cxx::throw_allocator_base< _Tp, _Cond >
• struct std::uses_allocator< typename, typename >

Typedefs

• template<typename _Tp >


using std::__allocator_base

Functions

• template<typename _Tp , typename _Alloc , typename... _Args>


constexpr _Tp std::make_obj_using_allocator (const _Alloc &__a, _Args &&... __args)
• template<typename _T1 , typename _T2 >
constexpr bool operator== (const allocator< _T1 > &, const allocator< _T2 > &) noexcept

Generated by Doxygen
320

• template<typename _OutA1 , typename _OutA2 , typename... _InA>


bool operator== (const scoped_allocator_adaptor< _OutA1, _InA... > &__a, const scoped_allocator_adaptor<
_OutA2, _InA... > &__b) noexcept
• template<typename _Tp , typename _Alloc , typename... _Args>
constexpr _Tp ∗ std::uninitialized_construct_using_allocator (_Tp ∗__p, const _Alloc &__a, _Args &&... _←-
_args)
• template<_Std_pair _Tp, typename _Alloc >
constexpr auto std::uses_allocator_construction_args (const _Alloc &) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args (const _Alloc &, _Up &&, _Vp &&) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args (const _Alloc &, const pair< _Up, _Vp > &) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args (const _Alloc &, pair< _Up, _Vp > &&) noexcept
• template<typename _Tp , typename _Alloc , typename... _Args>
requires (! _Std_pair<_Tp>)
constexpr auto std::uses_allocator_construction_args (const _Alloc &__a, _Args &&... __args) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Tuple1 , typename _Tuple2 >
constexpr auto std::uses_allocator_construction_args (const _Alloc &__a, piecewise_construct_t, _Tuple1
&&__x, _Tuple2 &&__y) noexcept

3.15.5.3.1 Detailed Description

Classes encapsulating memory operations.

3.15.5.3.2 Typedef Documentation

__allocator_base

template<typename _Tp >


using std::__allocator_base
An alias to the base class for std::allocator.
Used to set the std::allocator base class to std::__new_allocator.

Template Parameters

_Tp Type of allocated object.

3.15.5.3.3 Function Documentation

operator==()

template<typename _T1 , typename _T2 >


bool operator== (
const allocator< _T1 > & ,
const allocator< _T2 > & ) [related]
Equality comparison for std::allocator objects

Returns

true, for all std::allocator objects.

Generated by Doxygen
3.15 Utilities 321

3.15.5.4 Pointer Abstractions

Collaboration diagram for Pointer Abstractions:

Memory Pointer Abstractions

Classes

• class std::auto_ptr< _Tp >


• struct std::default_delete< _Tp >
• struct std::default_delete< _Tp[ ]>
• class std::enable_shared_from_this< _Tp >
• struct std::hash< shared_ptr< _Tp > >
• struct std::hash< unique_ptr< _Tp, _Dp > >
• struct std::owner_less< _Tp >
• struct std::owner_less< shared_ptr< _Tp > >
• struct std::owner_less< void >
• struct std::owner_less< weak_ptr< _Tp > >
• struct std::pointer_traits< _Ptr >
• struct std::pointer_traits< _Tp ∗ >
• class std::shared_ptr< _Tp >
• class std::unique_ptr< _Tp, _Dp >
• class std::unique_ptr< _Tp[ ], _Dp >
• class std::weak_ptr< _Tp >

Functions

• template<typename _Del , typename _Tp , _Lock_policy _Lp>


_Del ∗ std::get_deleter (const __shared_ptr< _Tp, _Lp > &__p) noexcept
• template<typename _Del , typename _Tp >
_Del ∗ get_deleter (const shared_ptr< _Tp > &__p) noexcept
• template<typename _Tp , typename... _Args>
constexpr __detail::__unique_ptr_t< _Tp > make_unique (_Args &&... __args)
• template<typename _Tp , typename... _Args>
__detail::__invalid_make_unique_t< _Tp > make_unique (_Args &&...)=delete
• template<typename _Tp >
constexpr __detail::__unique_ptr_array_t< _Tp > make_unique (size_t __num)
• template<typename _Tp >
constexpr __detail::__unique_ptr_t< _Tp > make_unique_for_overwrite ()
• template<typename _Tp , typename... _Args>
__detail::__invalid_make_unique_t< _Tp > make_unique_for_overwrite (_Args &&...)=delete
• template<typename _Tp >
constexpr __detail::__unique_ptr_array_t< _Tp > make_unique_for_overwrite (size_t __num)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool std::operator< (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)

Generated by Doxygen
322

• template<typename _Tp , typename _Dp >


constexpr bool std::operator< (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<typename _Tp , typename _Dp >
constexpr bool std::operator< (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<typename _Ch , typename _Tr , typename _Tp , _Lock_policy _Lp>
std::basic_ostream< _Ch, _Tr > & operator<< (std::basic_ostream< _Ch, _Tr > &__os, const __shared_ptr<
_Tp, _Lp > &__p)
• template<typename _CharT , typename _Traits , typename _Tp , typename _Dp >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const unique_ptr<
_Tp, _Dp > &__p)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool std::operator<= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool std::operator<= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<typename _Tp , typename _Dp >
constexpr bool std::operator<= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
requires three_way_comparable_with<typename unique_ptr<_Tp, _Dp>::pointer, typename unique_ptr<_Up, _Ep>::pointer>
constexpr compare_three_way_result_t< typename unique_ptr< _Tp, _Dp >::pointer, typename unique_ptr<
_Up, _Ep >::pointer > std::operator<=> (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep
> &__y)
• template<typename _Tp , typename _Dp >
requires three_way_comparable<typename unique_ptr<_Tp, _Dp>::pointer>
constexpr compare_three_way_result_t< typename unique_ptr< _Tp, _Dp >::pointer > std::operator<=>
(const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool std::operator== (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool std::operator== (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) noexcept
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool std::operator> (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool std::operator> (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<typename _Tp , typename _Dp >
constexpr bool std::operator> (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool std::operator>= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool std::operator>= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<typename _Tp , typename _Dp >
bool std::operator>= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<typename _Tp , typename _Del >
std::shared_ptr (unique_ptr< _Tp, _Del >) -> shared_ptr< _Tp >
• template<typename _Tp >
std::shared_ptr (weak_ptr< _Tp >) -> shared_ptr< _Tp >
• template<typename _Tp , typename _Dp >
enable_if<!__is_swappable< _Dp >::value >::type std::swap (unique_ptr< _Tp, _Dp > &, unique_ptr< _Tp,
_Dp > &)=delete
• template<typename _Tp , typename _Dp >
constexpr enable_if< __is_swappable< _Dp >::value >::type swap (unique_ptr< _Tp, _Dp > &__←-
x, unique_ptr< _Tp, _Dp > &__y) noexcept
• template<typename _Tp >
void swap (weak_ptr< _Tp > &__a, weak_ptr< _Tp > &__b) noexcept

Generated by Doxygen
3.15 Utilities 323

• template<typename _Tp >


constexpr _Tp ∗ std::to_address (_Tp ∗__ptr) noexcept
• template<typename _Ptr >
constexpr auto std::to_address (const _Ptr &__ptr) noexcept
• template<typename _Tp >
std::weak_ptr (shared_ptr< _Tp >) -> weak_ptr< _Tp >

• template<typename _Tp , _Lock_policy _Lp>


bool std::atomic_is_lock_free (const __shared_ptr< _Tp, _Lp > ∗)
• template<typename _Tp >
bool std::atomic_is_lock_free (const shared_ptr< _Tp > ∗__p)

• template<typename _Tp >


shared_ptr< _Tp > std::atomic_load_explicit (const shared_ptr< _Tp > ∗__p, memory_order)
• template<typename _Tp >
shared_ptr< _Tp > std::atomic_load (const shared_ptr< _Tp > ∗__p)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > std::atomic_load_explicit (const __shared_ptr< _Tp, _Lp > ∗__p, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > std::atomic_load (const __shared_ptr< _Tp, _Lp > ∗__p)

• template<typename _Tp >


void std::atomic_store_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r, memory_order)
• template<typename _Tp >
void std::atomic_store (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r)
• template<typename _Tp , _Lock_policy _Lp>
void std::atomic_store_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > __r, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
void std::atomic_store (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > __r)

• template<typename _Tp >


shared_ptr< _Tp > std::atomic_exchange_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __←-
r, memory_order)
• template<typename _Tp >
shared_ptr< _Tp > std::atomic_exchange (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > std::atomic_exchange_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr<
_Tp, _Lp > __r, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > std::atomic_exchange (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp >
__r)

• template<typename _Tp >


bool std::atomic_compare_exchange_strong_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__←-
v, shared_ptr< _Tp > __w, memory_order, memory_order)
• template<typename _Tp >
bool std::atomic_compare_exchange_strong (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__v, shared_ptr<
_Tp > __w)
• template<typename _Tp >
bool std::atomic_compare_exchange_weak_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__←-
v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
• template<typename _Tp >
bool std::atomic_compare_exchange_weak (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__v, shared_ptr<
_Tp > __w)

Generated by Doxygen
324

• template<typename _Tp , _Lock_policy _Lp>


bool std::atomic_compare_exchange_strong_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp
> ∗__v, __shared_ptr< _Tp, _Lp > __w, memory_order, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
bool std::atomic_compare_exchange_strong (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > ∗←-
__v, __shared_ptr< _Tp, _Lp > __w)
• template<typename _Tp , _Lock_policy _Lp>
bool std::atomic_compare_exchange_weak_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp
> ∗__v, __shared_ptr< _Tp, _Lp > __w, memory_order __success, memory_order __failure)
• template<typename _Tp , _Lock_policy _Lp>
bool std::atomic_compare_exchange_weak (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > ∗__v,
__shared_ptr< _Tp, _Lp > __w)

• template<typename _Tp , typename _Up >


bool operator== (const shared_ptr< _Tp > &__a, const shared_ptr< _Up > &__b) noexcept
• template<typename _Tp >
bool operator== (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
• template<typename _Tp >
void swap (shared_ptr< _Tp > &__a, shared_ptr< _Tp > &__b) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > static_pointer_cast (const shared_ptr< _Up > &__r) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > const_pointer_cast (const shared_ptr< _Up > &__r) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > dynamic_pointer_cast (const shared_ptr< _Up > &__r) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > reinterpret_pointer_cast (const shared_ptr< _Up > &__r) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > static_pointer_cast (shared_ptr< _Up > &&__r) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > const_pointer_cast (shared_ptr< _Up > &&__r) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > dynamic_pointer_cast (shared_ptr< _Up > &&__r) noexcept
• template<typename _Tp , typename _Up >
shared_ptr< _Tp > reinterpret_pointer_cast (shared_ptr< _Up > &&__r) noexcept

• template<typename _Tp , typename _Alloc , typename... _Args>


shared_ptr< _NonArray< _Tp > > allocate_shared (const _Alloc &__a, _Args &&... __args)
• template<typename _Tp , typename... _Args>
shared_ptr< _NonArray< _Tp > > make_shared (_Args &&... __args)
• template<typename _Tp , typename _Alloc >
shared_ptr< _UnboundedArray< _Tp > > allocate_shared (const _Alloc &__a, size_t __n)
• template<typename _Tp , typename _Alloc >
shared_ptr< _BoundedArray< _Tp > > allocate_shared (const _Alloc &__a)

3.15.5.4.1 Detailed Description

Smart pointers, etc.

3.15.5.4.2 Function Documentation

allocate_shared() [1/3]

template<typename _Tp , typename _Alloc >


shared_ptr< _BoundedArray< _Tp > > allocate_shared (
const _Alloc & __a) [related]

Generated by Doxygen
3.15 Utilities 325

Create an object that is owned by a shared_ptr.

Parameters
__a An allocator.
__args Arguments for the _Tp object's constructor.

Returns

A shared_ptr that owns the newly created object.

Exceptions

An exception thrown from _Alloc::allocate or from the constructor of _Tp.

A copy of __a will be used to allocate memory for the shared_ptr and the new object.

allocate_shared() [2/3]

template<typename _Tp , typename _Alloc , typename... _Args>


shared_ptr< _NonArray< _Tp > > allocate_shared (
const _Alloc & __a,
_Args &&... __args) [related]
Create an object that is owned by a shared_ptr.

Parameters
__a An allocator.
__args Arguments for the _Tp object's constructor.

Returns

A shared_ptr that owns the newly created object.

Exceptions

An exception thrown from _Alloc::allocate or from the constructor of _Tp.

A copy of __a will be used to allocate memory for the shared_ptr and the new object.
References std::forward().

allocate_shared() [3/3]

template<typename _Tp , typename _Alloc >


shared_ptr< _UnboundedArray< _Tp > > allocate_shared (
const _Alloc & __a,
size_t __n) [related]
Create an object that is owned by a shared_ptr.

Parameters
__a An allocator.
__args Arguments for the _Tp object's constructor.

Generated by Doxygen
326

Returns

A shared_ptr that owns the newly created object.

Exceptions

An exception thrown from _Alloc::allocate or from the constructor of _Tp.

A copy of __a will be used to allocate memory for the shared_ptr and the new object.

atomic_compare_exchange_strong() [1/2]

template<typename _Tp , _Lock_policy _Lp>


bool std::atomic_compare_exchange_strong (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > ∗ __v,
__shared_ptr< _Tp, _Lp > __w) [inline]
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

atomic_compare_exchange_strong() [2/2]

template<typename _Tp >


bool std::atomic_compare_exchange_strong (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > ∗ __v,
shared_ptr< _Tp > __w) [inline]
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Generated by Doxygen
3.15 Utilities 327

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

atomic_compare_exchange_strong_explicit() [1/2]

template<typename _Tp , _Lock_policy _Lp>


bool std::atomic_compare_exchange_strong_explicit (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > ∗ __v,
__shared_ptr< _Tp, _Lp > __w,
memory_order ,
memory_order )
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

atomic_compare_exchange_strong_explicit() [2/2]

template<typename _Tp >


bool std::atomic_compare_exchange_strong_explicit (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > ∗ __v,
shared_ptr< _Tp > __w,
memory_order ,
memory_order )
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Generated by Doxygen
328

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

atomic_compare_exchange_weak() [1/2]

template<typename _Tp , _Lock_policy _Lp>


bool std::atomic_compare_exchange_weak (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > ∗ __v,
__shared_ptr< _Tp, _Lp > __w) [inline]
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

atomic_compare_exchange_weak() [2/2]

template<typename _Tp >


bool std::atomic_compare_exchange_weak (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > ∗ __v,
shared_ptr< _Tp > __w) [inline]
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

Generated by Doxygen
3.15 Utilities 329

atomic_compare_exchange_weak_explicit() [1/2]

template<typename _Tp , _Lock_policy _Lp>


bool std::atomic_compare_exchange_weak_explicit (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > ∗ __v,
__shared_ptr< _Tp, _Lp > __w,
memory_order __success,
memory_order __failure) [inline]
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

atomic_compare_exchange_weak_explicit() [2/2]

template<typename _Tp >


bool std::atomic_compare_exchange_weak_explicit (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > ∗ __v,
shared_ptr< _Tp > __w,
memory_order __success,
memory_order __failure) [inline]
Atomic compare-and-swap for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- A non-null pointer to a shared_ptr object.
_v
_←- A non-null pointer to a shared_ptr object.
_w

Returns

True if ∗__p was equivalent to ∗__v, false otherwise.

The memory order for failure shall not be memory_order_release or memory_order_acq_rel.


References std::move().

Generated by Doxygen
330

atomic_exchange() [1/2]

template<typename _Tp , _Lock_policy _Lp>


__shared_ptr< _Tp, _Lp > std::atomic_exchange (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > __r) [inline]
Atomic exchange for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- New value to store in ∗__p.
_r

Returns

The original value of ∗__p

References std::move().

atomic_exchange() [2/2]

template<typename _Tp >


shared_ptr< _Tp > std::atomic_exchange (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > __r) [inline]
Atomic exchange for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- New value to store in ∗__p.
_r

Returns

The original value of ∗__p

References std::move().

atomic_exchange_explicit() [1/2]

template<typename _Tp , _Lock_policy _Lp>


__shared_ptr< _Tp, _Lp > std::atomic_exchange_explicit (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > __r,
memory_order ) [inline]
Atomic exchange for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p

Generated by Doxygen
3.15 Utilities 331

_←- New value to store in ∗__p.


_r

Returns

The original value of ∗__p

atomic_exchange_explicit() [2/2]

template<typename _Tp >


shared_ptr< _Tp > std::atomic_exchange_explicit (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > __r,
memory_order ) [inline]
Atomic exchange for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- New value to store in ∗__p.
_r

Returns

The original value of ∗__p

atomic_is_lock_free() [1/2]

template<typename _Tp , _Lock_policy _Lp>


bool std::atomic_is_lock_free (
const __shared_ptr< _Tp, _Lp > ∗ ) [inline]
Report whether shared_ptr atomic operations are lock-free.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p

Returns

True if atomic access to ∗__p is lock-free, false otherwise.

atomic_is_lock_free() [2/2]

template<typename _Tp >


bool std::atomic_is_lock_free (
const shared_ptr< _Tp > ∗ __p) [inline]
Report whether shared_ptr atomic operations are lock-free.

Generated by Doxygen
332

Parameters
_←- A non-null pointer to a shared_ptr object.
_p

Returns

True if atomic access to ∗__p is lock-free, false otherwise.

atomic_load() [1/2]

template<typename _Tp , _Lock_policy _Lp>


__shared_ptr< _Tp, _Lp > std::atomic_load (
const __shared_ptr< _Tp, _Lp > ∗ __p) [inline]
Atomic load for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p

Returns

∗__p

The memory order shall not be memory_order_release or memory_order_acq_rel.

atomic_load() [2/2]

template<typename _Tp >


shared_ptr< _Tp > std::atomic_load (
const shared_ptr< _Tp > ∗ __p) [inline]
Atomic load for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p

Returns

∗__p

The memory order shall not be memory_order_release or memory_order_acq_rel.

atomic_load_explicit() [1/2]

template<typename _Tp , _Lock_policy _Lp>


__shared_ptr< _Tp, _Lp > std::atomic_load_explicit (
const __shared_ptr< _Tp, _Lp > ∗ __p,
memory_order ) [inline]
Atomic load for shared_ptr objects.

Generated by Doxygen
3.15 Utilities 333

Parameters
_←- A non-null pointer to a shared_ptr object.
_p

Returns

∗__p
The memory order shall not be memory_order_release or memory_order_acq_rel.

atomic_load_explicit() [2/2]

template<typename _Tp >


shared_ptr< _Tp > std::atomic_load_explicit (
const shared_ptr< _Tp > ∗ __p,
memory_order ) [inline]
Atomic load for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p

Returns

∗__p
The memory order shall not be memory_order_release or memory_order_acq_rel.

atomic_store() [1/2]

template<typename _Tp , _Lock_policy _Lp>


void std::atomic_store (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > __r) [inline]
Atomic store for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- The value to store.
_r

The memory order shall not be memory_order_acquire or memory_order_acq_rel.


References std::move().

atomic_store() [2/2]

template<typename _Tp >


void std::atomic_store (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > __r) [inline]
Atomic store for shared_ptr objects.

Generated by Doxygen
334

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- The value to store.
_r

The memory order shall not be memory_order_acquire or memory_order_acq_rel.


References std::move().

atomic_store_explicit() [1/2]

template<typename _Tp , _Lock_policy _Lp>


void std::atomic_store_explicit (
__shared_ptr< _Tp, _Lp > ∗ __p,
__shared_ptr< _Tp, _Lp > __r,
memory_order ) [inline]
Atomic store for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- The value to store.
_r

The memory order shall not be memory_order_acquire or memory_order_acq_rel.

atomic_store_explicit() [2/2]

template<typename _Tp >


void std::atomic_store_explicit (
shared_ptr< _Tp > ∗ __p,
shared_ptr< _Tp > __r,
memory_order ) [inline]
Atomic store for shared_ptr objects.

Parameters
_←- A non-null pointer to a shared_ptr object.
_p
_←- The value to store.
_r

The memory order shall not be memory_order_acquire or memory_order_acq_rel.

const_pointer_cast() [1/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > const_pointer_cast (
const shared_ptr< _Up > & __r) [related]
Convert type of shared_ptr, via const_cast

Generated by Doxygen
3.15 Utilities 335

const_pointer_cast() [2/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > const_pointer_cast (
shared_ptr< _Up > && __r) [related]
Convert type of shared_ptr rvalue, via const_cast

Since

C++20

References std::move().

dynamic_pointer_cast() [1/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > dynamic_pointer_cast (
const shared_ptr< _Up > & __r) [related]
Convert type of shared_ptr, via dynamic_cast

dynamic_pointer_cast() [2/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > dynamic_pointer_cast (
shared_ptr< _Up > && __r) [related]
Convert type of shared_ptr rvalue, via dynamic_cast

Since

C++20

References std::move().

get_deleter()

template<typename _Del , typename _Tp >


_Del ∗ get_deleter (
const shared_ptr< _Tp > & __p) [related]
20.7.2.2.10 shared_ptr get_deleter
If __p has a deleter of type _Del, return a pointer to it.

make_shared()

template<typename _Tp , typename... _Args>


shared_ptr< _NonArray< _Tp > > make_shared (
_Args &&... __args) [related]
Create an object that is owned by a shared_ptr.

Parameters

__args Arguments for the _Tp object's constructor.

Returns

A shared_ptr that owns the newly created object.

Generated by Doxygen
336

Exceptions

std::bad_alloc,or an exception thrown from the constructor of _Tp.

References std::forward().

make_unique() [1/3]

template<typename _Tp , typename... _Args>


__detail::__unique_ptr_t< _Tp > make_unique (
_Args &&... __args) [related]
Create an object owned by a unique_ptr.

Template Parameters

_Tp A non-array object type.

Parameters

__args Constructor arguments for the new object.

Returns

A unique_ptr<_Tp> that owns the new object.

Since

C++14

References std::forward().

make_unique() [2/3]

template<typename _Tp , typename... _Args>


__detail::__invalid_make_unique_t< _Tp > make_unique (
_Args && ...) [related]
Disable std::make_unique for arrays of known bound.

Template Parameters

_Tp An array type of known bound, such as U[N].

Since

C++14

make_unique() [3/3]

template<typename _Tp >


__detail::__unique_ptr_array_t< _Tp > make_unique (
size_t __num) [related]
Create an array owned by a unique_ptr.

Generated by Doxygen
3.15 Utilities 337

Template Parameters

_Tp An array type of unknown bound, such as U[].

Parameters

__num The number of elements of type U in the new array.

Returns

A unique_ptr<U[]> that owns the new array.

Since

C++14

The array elements are value-initialized.

make_unique_for_overwrite() [1/3]

template<typename _Tp >


__detail::__unique_ptr_t< _Tp > make_unique_for_overwrite () [related]
Create a default-initialied object owned by a unique_ptr.

Template Parameters

_Tp A non-array object type.

Returns

A unique_ptr<_Tp> that owns the new object.

Since

C++20

make_unique_for_overwrite() [2/3]

template<typename _Tp , typename... _Args>


__detail::__invalid_make_unique_t< _Tp > make_unique_for_overwrite (
_Args && ...) [related]
Disable std::make_unique_for_overwrite for arrays of known bound.

Template Parameters

_Tp An array type of known bound, such as U[N].

Since

C++20

References std::unique_ptr< _Tp, _Dp >::get().

Generated by Doxygen
338

make_unique_for_overwrite() [3/3]

template<typename _Tp >


__detail::__unique_ptr_array_t< _Tp > make_unique_for_overwrite (
size_t __num) [related]
Create a default-initialized array owned by a unique_ptr.

Template Parameters

_Tp An array type of unknown bound, such as U[].

Parameters

__num The number of elements of type U in the new array.

Returns

A unique_ptr<U[]> that owns the new array.

Since

C++20

operator<() [1/3]

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >


bool std::operator< (
const unique_ptr< _Tp, _Dp > & __x,
const unique_ptr< _Up, _Ep > & __y) [inline], [nodiscard], [constexpr]
Relational operator for unique_ptr objects, compares the owned pointers.
References std::unique_ptr< _Tp, _Dp >::get().

operator<() [2/3]

template<typename _Tp , typename _Dp >


bool std::operator< (
const unique_ptr< _Tp, _Dp > & __x,
nullptr_t ) [inline], [nodiscard], [constexpr]
unique_ptr comparison with nullptr
References std::unique_ptr< _Tp, _Dp >::get().

operator<() [3/3]

template<typename _Tp , typename _Dp >


bool std::operator< (
nullptr_t ,
const unique_ptr< _Tp, _Dp > & __x) [inline], [nodiscard], [constexpr]
unique_ptr comparison with nullptr
References std::unique_ptr< _Tp, _Dp >::get().

Generated by Doxygen
3.15 Utilities 339

operator<<() [1/2]

template<typename _Ch , typename _Tr , typename _Tp , _Lock_policy _Lp>


std::basic_ostream< _Ch, _Tr > & operator<< (
std::basic_ostream< _Ch, _Tr > & __os,
const __shared_ptr< _Tp, _Lp > & __p) [related]
Write the stored pointer to an ostream.
References std::operator<<().

operator<<() [2/2]

template<typename _CharT , typename _Traits , typename _Tp , typename _Dp >


basic_ostream< _CharT, _Traits > & operator<< (
basic_ostream< _CharT, _Traits > & __os,
const unique_ptr< _Tp, _Dp > & __p) [related]
Stream output operator for unique_ptr.

Since

C++20

operator<=() [1/3]

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >


bool std::operator<= (
const unique_ptr< _Tp, _Dp > & __x,
const unique_ptr< _Up, _Ep > & __y) [inline], [nodiscard], [constexpr]
Relational operator for unique_ptr objects, compares the owned pointers.

operator<=() [2/3]

template<typename _Tp , typename _Dp >


bool std::operator<= (
const unique_ptr< _Tp, _Dp > & __x,
nullptr_t ) [inline], [nodiscard], [constexpr]
unique_ptr comparison with nullptr

operator<=() [3/3]

template<typename _Tp , typename _Dp >


bool std::operator<= (
nullptr_t ,
const unique_ptr< _Tp, _Dp > & __x) [inline], [nodiscard], [constexpr]
unique_ptr comparison with nullptr

operator==() [1/4]

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >


bool std::operator== (
const unique_ptr< _Tp, _Dp > & __x,
const unique_ptr< _Up, _Ep > & __y) [inline], [nodiscard], [constexpr]
Equality operator for unique_ptr objects, compares the owned pointers.
References std::unique_ptr< _Tp, _Dp >::get().

Generated by Doxygen
340

operator==() [2/4]

template<typename _Tp , typename _Dp >


bool std::operator== (
const unique_ptr< _Tp, _Dp > & __x,
nullptr_t ) [inline], [nodiscard], [constexpr], [noexcept]
unique_ptr comparison with nullptr

operator==() [3/4]

template<typename _Tp , typename _Up >


bool operator== (
const shared_ptr< _Tp > & __a,
const shared_ptr< _Up > & __b) [related]
Equality operator for shared_ptr objects, compares the stored pointers

operator==() [4/4]

template<typename _Tp >


bool operator== (
const shared_ptr< _Tp > & __a,
nullptr_t ) [related]
shared_ptr comparison with nullptr

operator>() [1/3]

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >


bool std::operator> (
const unique_ptr< _Tp, _Dp > & __x,
const unique_ptr< _Up, _Ep > & __y) [inline], [nodiscard], [constexpr]
Relational operator for unique_ptr objects, compares the owned pointers.

operator>() [2/3]

template<typename _Tp , typename _Dp >


bool std::operator> (
const unique_ptr< _Tp, _Dp > & __x,
nullptr_t ) [inline], [nodiscard], [constexpr]
unique_ptr comparison with nullptr
References std::unique_ptr< _Tp, _Dp >::get().

operator>() [3/3]

template<typename _Tp , typename _Dp >


bool std::operator> (
nullptr_t ,
const unique_ptr< _Tp, _Dp > & __x) [inline], [nodiscard], [constexpr]
unique_ptr comparison with nullptr
References std::unique_ptr< _Tp, _Dp >::get().

operator>=() [1/3]

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >


bool std::operator>= (
const unique_ptr< _Tp, _Dp > & __x,
const unique_ptr< _Up, _Ep > & __y) [inline], [nodiscard], [constexpr]

Generated by Doxygen
3.15 Utilities 341

Relational operator for unique_ptr objects, compares the owned pointers.

operator>=() [2/3]

template<typename _Tp , typename _Dp >


bool std::operator>= (
const unique_ptr< _Tp, _Dp > & __x,
nullptr_t ) [inline], [nodiscard], [constexpr]
unique_ptr comparison with nullptr

operator>=() [3/3]

template<typename _Tp , typename _Dp >


bool std::operator>= (
nullptr_t ,
const unique_ptr< _Tp, _Dp > & __x) [inline], [nodiscard]
unique_ptr comparison with nullptr

reinterpret_pointer_cast() [1/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > reinterpret_pointer_cast (
const shared_ptr< _Up > & __r) [related]
Convert type of shared_ptr, via reinterpret_cast

Since

C++17

reinterpret_pointer_cast() [2/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > reinterpret_pointer_cast (
shared_ptr< _Up > && __r) [related]
Convert type of shared_ptr rvalue, via reinterpret_cast

Since

C++20

References std::move().

static_pointer_cast() [1/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > static_pointer_cast (
const shared_ptr< _Up > & __r) [related]
Convert type of shared_ptr, via static_cast

static_pointer_cast() [2/2]

template<typename _Tp , typename _Up >


shared_ptr< _Tp > static_pointer_cast (
shared_ptr< _Up > && __r) [related]
Convert type of shared_ptr rvalue, via static_cast

Generated by Doxygen
342

Since

C++20

References std::move().

swap() [1/3]

template<typename _Tp >


void swap (
shared_ptr< _Tp > & __a,
shared_ptr< _Tp > & __b) [related]
Swap overload for shared_ptr.

swap() [2/3]

template<typename _Tp , typename _Dp >


enable_if< __is_swappable< _Dp >::value >::type swap (
unique_ptr< _Tp, _Dp > & __x,
unique_ptr< _Tp, _Dp > & __y) [related]
Swap overload for unique_ptr

swap() [3/3]

template<typename _Tp >


void swap (
weak_ptr< _Tp > & __a,
weak_ptr< _Tp > & __b) [related]
Swap overload for weak_ptr.

to_address() [1/2]

template<typename _Tp >


_Tp ∗ std::to_address (
_Tp ∗ __ptr) [constexpr], [noexcept]
Obtain address referenced by a pointer to an object.

Parameters
__ptr A pointer to an object

Returns

__ptr

Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::find(), std::to_address(), std::uninitialized_copy(),


std::uninitialized_fill(), and std::uninitialized_fill_n().

to_address() [2/2]

template<typename _Ptr >


auto std::to_address (
const _Ptr & __ptr) [constexpr], [noexcept]
Obtain address referenced by a pointer to an object.

Generated by Doxygen
3.15 Utilities 343

Parameters
__ptr A pointer to an object

Returns

pointer_traits<_Ptr>::to_address(__ptr) if that expression is well-formed, otherwise to_←-


address(__ptr.operator->())

References std::to_address().

3.15.5.5 Pointer Safety and Garbage Collection

Collaboration diagram for Pointer Safety and Garbage Collection:

Pointer Safety and


Memory
Garbage Collection

Enumerations

• enum class std::pointer_safety { relaxed , preferred , strict }

Functions

• void std::declare_no_pointers (char ∗, size_t)


• void std::declare_reachable (void ∗)
• pointer_safety std::get_pointer_safety () noexcept
• void std::undeclare_no_pointers (char ∗, size_t)
• template<typename _Tp >
_Tp ∗ std::undeclare_reachable (_Tp ∗__p)

3.15.5.5.1 Detailed Description

Utilities to assist with garbage collection in an implementation that supports strict pointer safety. This implementation
only supports relaxed pointer safety and so these functions have no effect.
C++11 20.6.4 [util.dynamic.safety], Pointer safety

3.15.5.5.2 Enumeration Type Documentation

pointer_safety

enum class std::pointer_safety [strong]


Constants representing the different types of pointer safety.

Generated by Doxygen
344

3.15.5.5.3 Function Documentation

declare_no_pointers()

void std::declare_no_pointers (
char ∗ ,
size_t ) [inline]
Inform a garbage collector that a region of memory need not be traced.

declare_reachable()

void std::declare_reachable (
void ∗ ) [inline]
Inform a garbage collector that an object is still in use.

get_pointer_safety()

pointer_safety std::get_pointer_safety () [inline], [noexcept]


The type of pointer safety supported by the implementation.

undeclare_no_pointers()

void std::undeclare_no_pointers (
char ∗ ,
size_t ) [inline]
Unregister a range previously registered with declare_no_pointers.

undeclare_reachable()

template<typename _Tp >


_Tp ∗ std::undeclare_reachable (
_Tp ∗ __p) [inline]
Unregister an object previously registered with declare_reachable.

3.15.5.6 Polymorphic memory resources

Collaboration diagram for Polymorphic memory resources:

Polymorphic memory
Memory
resources

Files

• file memory_resource

Generated by Doxygen
3.15 Utilities 345

Classes

• struct std::allocator_traits< pmr::polymorphic_allocator< _Tp > >


• class std::pmr::memory_resource
• class std::pmr::monotonic_buffer_resource
• class std::pmr::polymorphic_allocator< _Tp >
• struct std::pmr::pool_options
• class std::pmr::unsynchronized_pool_resource

Functions

• memory_resource ∗ std::pmr::new_delete_resource () noexcept

3.15.5.6.1 Detailed Description


Since

C++17

Memory resources are classes that implement the std::pmr::memory_resource interface for allocating and
deallocating memory. Unlike traditional C++ allocators, memory resources are not value types and are used via pointers
to the abstract base class. They are only responsible for allocating and deallocating, not for construction and destruc-
tion of objects. As a result, memory resources just allocate raw memory as type void∗ and are not templates that
allocate/deallocate and construct/destroy a specific type.
The class template std::pmr::polymorphic_allocator is an allocator that uses a memory resource for its
allocations.

3.15.5.6.2 Function Documentation

new_delete_resource()

memory_resource ∗ std::pmr::new_delete_resource () [nodiscard], [noexcept]


A pmr::memory_resource that uses new to allocate memory.

Since

C++17

3.15.6 Metaprogramming

Collaboration diagram for Metaprogramming:

Utilities Metaprogramming

Classes

• struct std::tr2::__reflection_typelist< _Elements >


• struct std::tr2::__reflection_typelist< _First, _Rest... >
• struct std::tr2::__reflection_typelist<>

Generated by Doxygen
346

• struct std::add_const< _Tp >


• struct std::add_cv< _Tp >
• struct std::add_lvalue_reference< _Tp >
• struct std::add_pointer< _Tp >
• struct std::add_rvalue_reference< _Tp >
• struct std::add_volatile< _Tp >
• struct std::aligned_storage< _Len, _Align >
• struct std::aligned_union< _Len, _Types >
• struct std::alignment_of< _Tp >
• struct std::tr2::bases< _Tp >
• struct std::common_type< _Tp >
• struct std::conditional< _Cond, _Iftrue, _Iffalse >
• struct std::decay< _Tp >
• struct std::tr2::direct_bases< _Tp >
• struct std::enable_if< bool, _Tp >
• struct std::extent< typename, _Uint >
• struct std::has_virtual_destructor< _Tp >
• struct std::integral_constant< _Tp, __v >
• struct std::is_abstract< _Tp >
• struct std::is_arithmetic< _Tp >
• struct std::is_array< _Tp >
• struct std::is_assignable< _Tp, _Up >
• struct std::is_base_of< _Base, _Derived >
• struct std::is_class< _Tp >
• struct std::is_compound< _Tp >
• struct std::is_const< _Tp >
• struct std::is_constructible< _Tp, _Args >
• struct std::is_copy_assignable< _Tp >
• struct std::is_copy_constructible< _Tp >
• struct std::is_default_constructible< _Tp >
• struct std::is_destructible< _Tp >
• struct std::is_empty< _Tp >
• struct std::is_enum< _Tp >
• struct std::is_floating_point< _Tp >
• struct std::is_function< _Tp >
• struct std::is_fundamental< _Tp >
• struct std::is_integral< _Tp >
• struct std::is_layout_compatible< _Tp, _Up >
• struct std::is_literal_type< _Tp >
• struct std::is_lvalue_reference< typename >
• struct std::is_member_function_pointer< _Tp >
• struct std::is_member_object_pointer< _Tp >
• struct std::is_member_pointer< _Tp >
• struct std::is_move_assignable< _Tp >
• struct std::is_move_constructible< _Tp >
• struct std::is_nothrow_assignable< _Tp, _Up >
• struct std::is_nothrow_constructible< _Tp, _Args >
• struct std::is_nothrow_copy_assignable< _Tp >
• struct std::is_nothrow_copy_constructible< _Tp >
• struct std::is_nothrow_default_constructible< _Tp >
• struct std::is_nothrow_destructible< _Tp >

Generated by Doxygen
3.15 Utilities 347

• struct std::is_nothrow_move_assignable< _Tp >


• struct std::is_nothrow_move_constructible< _Tp >
• struct std::is_object< _Tp >
• struct std::is_pod< _Tp >
• struct std::is_pointer< _Tp >
• struct std::is_pointer_interconvertible_base_of< _Base, _Derived >
• struct std::is_polymorphic< _Tp >
• struct std::is_reference< _Tp >
• struct std::is_rvalue_reference< typename >
• struct std::is_same< _Tp, _Up >
• struct std::is_scalar< _Tp >
• struct std::is_signed< _Tp >
• struct std::is_standard_layout< _Tp >
• struct std::is_trivial< _Tp >
• struct std::is_trivially_assignable< _Tp, _Up >
• struct std::is_trivially_constructible< _Tp, _Args >
• struct std::is_trivially_copy_assignable< _Tp >
• struct std::is_trivially_copy_constructible< _Tp >
• struct std::is_trivially_copyable< _Tp >
• struct std::is_trivially_default_constructible< _Tp >
• struct std::is_trivially_destructible< _Tp >
• struct std::is_trivially_move_assignable< _Tp >
• struct std::is_trivially_move_constructible< _Tp >
• struct std::is_union< _Tp >
• struct std::is_unsigned< _Tp >
• struct std::is_void< _Tp >
• struct std::is_volatile< _Tp >
• struct std::make_signed< _Tp >
• struct std::make_unsigned< _Tp >
• struct std::rank< _Tp >
• struct std::remove_all_extents< _Tp >
• struct std::remove_const< _Tp >
• struct std::remove_cv< _Tp >
• struct std::remove_extent< _Tp >
• struct std::remove_pointer< _Tp >
• struct std::remove_reference< _Tp >
• struct std::remove_volatile< _Tp >
• struct std::result_of< _Signature >
• struct std::underlying_type< _Tp >

Typedefs

• template<bool _Cond, typename _If , typename _Else >


using std::__conditional_t
• template<bool _Cond, typename _Tp = void>
using std::__enable_if_t
• template<typename _ToElementType , typename _FromElementType >
using std::__is_array_convertible
• template<typename _Tp >
using std::add_lvalue_reference_t
• template<typename _Tp >
using std::add_pointer_t

Generated by Doxygen
348

• template<typename _Tp >


using std::add_rvalue_reference_t
• template<size_t _Len, size_t _Align = __aligned_storage_default_alignment(_Len)>
using std::aligned_storage_t
• template<size_t _Len, typename... _Types>
using std::aligned_union_t
• template<typename... _Tp>
using std::common_type_t
• template<bool _Cond, typename _Iftrue , typename _Iffalse >
using std::conditional_t
• template<typename _Tp >
using std::decay_t
• template<bool _Cond, typename _Tp = void>
using std::enable_if_t
• using std::false_type
• template<typename _Tp >
using std::make_signed_t
• template<typename _Tp >
using std::make_unsigned_t
• template<typename _Tp >
using std::remove_all_extents_t
• template<typename _Tp >
using std::remove_extent_t
• template<typename _Tp >
using std::remove_pointer_t
• template<typename _Tp >
using std::remove_reference_t
• template<typename _Tp >
using std::result_of_t
• using std::true_type
• template<typename _Tp , typename >
using std::__conditional< bool >::type
• template<typename , typename _Up >
using std::__conditional< false >::type
• using std::__is_implicitly_default_constructible_impl< _Tp >::type
• using std::add_const< _Tp >::type
• using std::add_cv< _Tp >::type
• using std::add_lvalue_reference< _Tp >::type
• using std::add_pointer< _Tp >::type
• using std::add_rvalue_reference< _Tp >::type
• using std::add_volatile< _Tp >::type
• using std::aligned_union< _Len, _Types >::type
• using std::common_reference< _Tp0 >::type
• using std::conditional< _Cond, _Iftrue, _Iffalse >::type
• using std::conditional< false, _Iftrue, _Iffalse >::type
• using std::decay< _Tp >::type
• using std::decay< _Tp & >::type
• using std::decay< _Tp && >::type
• using std::enable_if< true, _Tp >::type
• using std::integral_constant< _Tp, __v >::type
• using std::make_signed< _Tp >::type
• using std::make_unsigned< _Tp >::type

Generated by Doxygen
3.15 Utilities 349

• using std::remove_all_extents< _Tp >::type


• using std::remove_const< _Tp >::type
• using std::remove_const< _Tp const >::type
• using std::remove_cv< _Tp >::type
• using std::remove_extent< _Tp >::type
• using std::remove_pointer< _Tp >::type
• using std::remove_reference< _Tp >::type
• using std::remove_volatile< _Tp >::type
• using std::remove_volatile< _Tp volatile >::type
• template<typename _Tp >
using std::underlying_type_t
• using std::integral_constant< _Tp, __v >::value_type

Functions

• template<typename _Tp >


static void std::__do_is_implicitly_default_constructible_impl::__helper (const _Tp &)
• static false_type std::__do_is_implicitly_default_constructible_impl::__test (...)
• template<typename _Tp >
static true_type std::__do_is_implicitly_default_constructible_impl::__test (const _Tp &, decltype(__helper<
const _Tp & >({})) ∗=0)
• constexpr std::integral_constant< _Tp, __v >::operator value_type () const noexcept
• template<typename _Tp >
constexpr _Require< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >, is_move_assignable<
_Tp > > std::swap (_Tp &, _Tp &) noexcept(__and_< is_nothrow_move_constructible< _Tp >, is_nothrow_move_assignable<
_Tp > >::value)
• template<typename _Tp , size_t _Nm>
constexpr __enable_if_t< __is_swappable< _Tp >::value > std::swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm])
noexcept(__is_nothrow_swappable< _Tp >::value)

Variables

• unsigned char std::aligned_storage< _Len, _Align >::type::__data [_Len]


• template<typename _Tp , typename... _Args>
constexpr bool std::__is_nothrow_new_constructible
• static const size_t std::__strictest_alignment< _Types >::_S_alignment
• static const size_t std::__strictest_alignment< _Tp, _Types... >::_S_alignment
• static const size_t std::__strictest_alignment< _Types >::_S_size
• static const size_t std::__strictest_alignment< _Tp, _Types... >::_S_size
• static const size_t std::aligned_union< _Len, _Types >::alignment_value
• static constexpr _Tp std::integral_constant< _Tp, __v >::value

• template<typename... _Tp>
using std::common_reference_t
• template<typename _Tp , typename _Up >
constexpr bool std::is_layout_compatible_v
• template<typename _Base , typename _Derived >
constexpr bool std::is_pointer_interconvertible_base_of_v
• template<typename _S1 , typename _S2 , typename _M1 , typename _M2 >
constexpr bool std::is_corresponding_member (_M1 _S1::∗__m1, _M2 _S2::∗__m2) noexcept
• template<typename _Tp , typename _Mem >
constexpr bool std::is_pointer_interconvertible_with_class (_Mem _Tp::∗__mp) noexcept

Generated by Doxygen
350

3.15.6.1 Detailed Description

Template utilities for compile-time introspection and modification, including type classification traits, type property in-
spection traits and type transformation traits.

Since

C++11

3.15.6.2 Typedef Documentation

add_lvalue_reference_t

template<typename _Tp >


using std::add_lvalue_reference_t
Alias template for add_lvalue_reference.

add_pointer_t

template<typename _Tp >


using std::add_pointer_t
Alias template for add_pointer.

add_rvalue_reference_t

template<typename _Tp >


using std::add_rvalue_reference_t
Alias template for add_rvalue_reference.

aligned_storage_t

template<size_t _Len, size_t _Align = __aligned_storage_default_alignment(_Len)>


using std::aligned_storage_t
Alias template for aligned_storage.

common_reference_t

template<typename... _Tp>
using std::common_reference_t

Since

C++20

common_type_t

template<typename... _Tp>
using std::common_type_t
Alias template for common_type.

conditional_t

template<bool _Cond, typename _Iftrue , typename _Iffalse >


using std::conditional_t
Alias template for conditional.

Generated by Doxygen
3.15 Utilities 351

decay_t

template<typename _Tp >


using std::decay_t
Alias template for decay.

enable_if_t

template<bool _Cond, typename _Tp = void>


using std::enable_if_t
Alias template for enable_if.

false_type

using std::false_type
The type used as a compile-time boolean with false value.

make_signed_t

template<typename _Tp >


using std::make_signed_t
Alias template for make_signed.

make_unsigned_t

template<typename _Tp >


using std::make_unsigned_t
Alias template for make_unsigned.

remove_all_extents_t

template<typename _Tp >


using std::remove_all_extents_t
Alias template for remove_all_extents.

remove_extent_t

template<typename _Tp >


using std::remove_extent_t
Alias template for remove_extent.

remove_pointer_t

template<typename _Tp >


using std::remove_pointer_t
Alias template for remove_pointer.

remove_reference_t

template<typename _Tp >


using std::remove_reference_t
Alias template for remove_reference.

Generated by Doxygen
352

result_of_t

template<typename _Tp >


using std::result_of_t
Alias template for result_of.

true_type

using std::true_type
The type used as a compile-time boolean with true value.

type

template<size_t _Len, typename... _Types>


using std::aligned_union< _Len, _Types >::type
The storage.

underlying_type_t

template<typename _Tp >


using std::underlying_type_t
Alias template for underlying_type.

3.15.6.3 Function Documentation

is_corresponding_member()

template<typename _S1 , typename _S2 , typename _M1 , typename _M2 >


bool std::is_corresponding_member (
_M1 _S1::∗ __m1,
_M2 _S2::∗ __m2) [constexpr], [noexcept]

Since

C++20

is_pointer_interconvertible_with_class()

template<typename _Tp , typename _Mem >


bool std::is_pointer_interconvertible_with_class (
_Mem _Tp::∗ __mp) [constexpr], [noexcept]
True if __mp points to the first member of a standard-layout type.

Returns

true if s.∗__mp is pointer-interconvertible with s

Since

C++20

swap() [1/2]

template<typename _Tp >


_Require< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >, is_move_assignable<
_Tp > > std::swap (

Generated by Doxygen
3.15 Utilities 353

_Tp & __a,


_Tp & __b) [inline], [constexpr], [noexcept]
Swaps two values.

Generated by Doxygen
354

Parameters

_←- A thing of arbitrary type.


_a
_←- Another thing of arbitrary type.
_b

Returns

Nothing.

swap() [2/2]

template<typename _Tp , size_t _Nm>


__enable_if_t< __is_swappable< _Tp >::value > std::swap (
_Tp(&) __a[_Nm],
_Tp(&) __b[_Nm]) [inline], [constexpr], [noexcept]
Swap the contents of two arrays.

3.15.6.4 Variable Documentation

alignment_value

template<size_t _Len, typename... _Types>


const size_t std::aligned_union< _Len, _Types >::alignment_value [static]
The value of the strictest alignment of _Types.

is_layout_compatible_v

template<typename _Tp , typename _Up >


bool std::is_layout_compatible_v [constexpr]

Since

C++20

is_pointer_interconvertible_base_of_v

template<typename _Base , typename _Derived >


bool std::is_pointer_interconvertible_base_of_v [constexpr]

Generated by Doxygen
3.15 Utilities 355

Since

C++20

3.15.7 Rational Arithmetic

Collaboration diagram for Rational Arithmetic:

Utilities Rational Arithmetic

Files

• file ratio

Classes

• struct std::ratio< _Num, _Den >


• struct std::ratio_equal< _R1, _R2 >
• struct std::ratio_greater< _R1, _R2 >
• struct std::ratio_greater_equal< _R1, _R2 >
• struct std::ratio_less< _R1, _R2 >
• struct std::ratio_less_equal< _R1, _R2 >
• struct std::ratio_not_equal< _R1, _R2 >

Typedefs

• using std::atto
• using std::centi
• using std::deca
• using std::deci
• using std::exa
• using std::femto
• using std::giga
• using std::hecto
• using std::kilo
• using std::mega
• using std::micro
• using std::milli
• using std::nano
• using std::peta
• using std::pico
• template<typename _R1 , typename _R2 >
using std::ratio_add
• template<typename _R1 , typename _R2 >
using std::ratio_divide

Generated by Doxygen
356

• template<typename _R1 , typename _R2 >


using std::ratio_multiply
• template<typename _R1 , typename _R2 >
using std::ratio_subtract
• using std::tera

Variables

• template<typename _R1 , typename _R2 >


constexpr bool std::ratio_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool std::ratio_greater_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool std::ratio_greater_v
• template<typename _R1 , typename _R2 >
constexpr bool std::ratio_less_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool std::ratio_less_v
• template<typename _R1 , typename _R2 >
constexpr bool std::ratio_not_equal_v

3.15.7.1 Detailed Description

Compile time representation of finite rational numbers.

3.15.7.2 Typedef Documentation

ratio_add

template<typename _R1 , typename _R2 >


using std::ratio_add
ratio_add

ratio_divide

template<typename _R1 , typename _R2 >


using std::ratio_divide
ratio_divide

ratio_multiply

template<typename _R1 , typename _R2 >


using std::ratio_multiply
ratio_multiply

ratio_subtract

template<typename _R1 , typename _R2 >


using std::ratio_subtract
ratio_subtract

Generated by Doxygen
3.15 Utilities 357

3.15.8 Time

Collaboration diagram for Time:

Utilities Time

Files

• file chrono

Namespaces

• namespace std::chrono
• namespace std::literals::chrono_literals

Classes

• struct std::common_type< chrono::duration< _Rep, _Period > >


• struct std::common_type< chrono::duration< _Rep, _Period >, chrono::duration< _Rep, _Period > >
• struct std::common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration< _Rep2, _Period2 > >
• struct std::common_type< chrono::time_point< _Clock, _Duration > >
• struct std::common_type< chrono::time_point< _Clock, _Duration >, chrono::time_point< _Clock, _Duration > >
• struct std::common_type< chrono::time_point< _Clock, _Duration1 >, chrono::time_point< _Clock, _Duration2 > >
• class std::chrono::duration< _Rep, _Period >
• struct std::chrono::duration_values< _Rep >
• class std::chrono::gps_clock
• class std::chrono::hh_mm_ss< _Duration >
• struct std::chrono::_V2::steady_clock
• struct std::chrono::_V2::system_clock
• class std::chrono::tai_clock
• class std::chrono::time_point< _Clock, _Dur >
• struct std::chrono::treat_as_floating_point< _Rep >
• class std::chrono::tzdb_list
• class std::chrono::utc_clock

Typedefs

• using std::chrono::days
• using std::chrono::file_clock
• template<typename _Duration >
using std::chrono::file_time
• using std::chrono::gps_seconds
• template<typename _Duration >
using std::chrono::gps_time
• using std::chrono::high_resolution_clock

Generated by Doxygen
358

• using std::chrono::hours
• using std::chrono::local_days
• using std::chrono::local_seconds
• template<typename _Duration >
using std::chrono::local_time
• using std::chrono::microseconds
• using std::chrono::milliseconds
• using std::chrono::minutes
• using std::chrono::months
• using std::chrono::nanoseconds
• using std::chrono::seconds
• using std::chrono::sys_days
• using std::chrono::sys_seconds
• template<typename _Duration >
using std::chrono::sys_time
• using std::chrono::tai_seconds
• template<typename _Duration >
using std::chrono::tai_time
• using std::chrono::utc_seconds
• template<typename _Duration >
using std::chrono::utc_time
• using std::chrono::weeks
• using std::chrono::years
• using std::chrono::zoned_seconds

Enumerations

• enum class choose { earliest , latest }

Functions

• constexpr std::chrono::year_month_day::year_month_day (const year_month_day_last &__ymdl) noexcept


• template<typename _Duration >
void std::chrono::__throw_bad_local_time (const local_time< _Duration > &__tp, const local_info &__i)
• template<typename _Rep , typename _Period >
constexpr enable_if_t< numeric_limits< _Rep >::is_signed, duration< _Rep, _Period > > std::chrono::abs
(duration< _Rep, _Period > __d)
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > std::chrono::ceil (const duration< _Rep, _Period > &__d)
• template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > std::chrono::ceil (const
time_point< _Clock, _Dur > &__tp)
• template<typename _DestClock , typename _SourceClock , typename _Duration >
requires __detail::__clock_convs<_DestClock, _SourceClock, _Duration> || __detail::__clock_convs_sys<_DestClock, _SourceClock, ←-
_Duration> || __detail::__clock_convs_utc<_DestClock, _SourceClock, _Duration> || __detail::__clock_convs_sys_utc<_DestClock, _←-
SourceClock, _Duration> || __detail::__clock_convs_utc_sys<_DestClock, _SourceClock, _Duration>
auto std::chrono::clock_cast (const time_point< _SourceClock, _Duration > &__t)
• const time_zone ∗ std::chrono::current_zone ()
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > std::chrono::duration_cast (const duration< _Rep, _Period > &←-
__d)
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > std::chrono::floor (const duration< _Rep, _Period > &__d)

Generated by Doxygen
3.15 Utilities 359

• template<typename _ToDur , typename _Clock , typename _Dur >


constexpr enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > std::chrono::floor (const
time_point< _Clock, _Dur > &__tp)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, day &__d, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Rep , typename _Period , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, duration< _Rep, _Period > &__d, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr,
minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, file_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr,
minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, gps_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr,
minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, local_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr,
minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is,
const _CharT ∗__fmt, month &__m, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗_←-
_offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, month_day &__md, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, sys_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr,
minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is,
const _CharT ∗__fmt, tai_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr,
minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, utc_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr,
minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, weekday &__wd, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, year &__y, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, year_month &__ym, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)

Generated by Doxygen
360

• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>


basic_istream< _CharT, _Traits > & std::chrono::from_stream (basic_istream< _CharT, _Traits > &__is, const
_CharT ∗__fmt, year_month_day &__ymd, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes
∗__offset=nullptr)
• template<typename _Duration >
static utc_time< common_type_t< _Duration, seconds > > std::chrono::utc_clock::from_sys (const
sys_time< _Duration > &__t)
• template<typename _Duration >
leap_second_info std::chrono::get_leap_second_info (const utc_time< _Duration > &__ut)
• const tzdb & std::chrono::get_tzdb ()
• tzdb_list & std::chrono::get_tzdb_list ()
• constexpr bool std::chrono::is_am (const hours &__h) noexcept
• constexpr bool std::chrono::is_pm (const hours &__h) noexcept
• template<typename _Duration >
__detail::__local_time_fmt< _Duration > std::chrono::local_time_format (local_time< _Duration > __time, const
string ∗__abbrev=nullptr, const seconds ∗__offset_sec=nullptr)
• const time_zone ∗ std::chrono::locate_zone (string_view __tz_name)
• constexpr hours std::chrono::make12 (const hours &__h) noexcept
• constexpr hours std::chrono::make24 (const hours &__h, bool __is_pm) noexcept
• constexpr bool std::chrono::year_month_day::ok () const noexcept
• constexpr chrono::day std::literals::chrono_literals::operator""d (unsigned long long __d) noexcept
• template<char... _Digits>
constexpr chrono::hours std::literals::chrono_literals::operator""h ()
• constexpr chrono::duration< long double, ratio< 3600, 1 > > std::literals::chrono_literals::operator""h (long dou-
ble __hours)
• template<char... _Digits>
constexpr chrono::minutes std::literals::chrono_literals::operator""min ()
• constexpr chrono::duration< long double, ratio< 60, 1 > > std::literals::chrono_literals::operator""min (long dou-
ble __mins)
• template<char... _Digits>
constexpr chrono::milliseconds std::literals::chrono_literals::operator""ms ()
• constexpr chrono::duration< long double, milli > std::literals::chrono_literals::operator""ms (long double __←-
msecs)
• template<char... _Digits>
constexpr chrono::nanoseconds std::literals::chrono_literals::operator""ns ()
• constexpr chrono::duration< long double, nano > std::literals::chrono_literals::operator""ns (long double __nsecs)
• template<char... _Digits>
constexpr chrono::seconds std::literals::chrono_literals::operator""s ()
• constexpr chrono::duration< long double > std::literals::chrono_literals::operator""s (long double __secs)
• template<char... _Digits>
constexpr chrono::microseconds std::literals::chrono_literals::operator""us ()
• constexpr chrono::duration< long double, micro > std::literals::chrono_literals::operator""us (long double __←-
usecs)
• constexpr chrono::year std::literals::chrono_literals::operator""y (unsigned long long __y) noexcept
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const day &__d)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const file_time< _Duration > &__t)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const gps_time< _Duration > &__t)

Generated by Doxygen
3.15 Utilities 361

• template<typename _CharT , typename _Traits , typename _Duration >


basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const hh_mm_ss< _Duration > &__hms)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os, const
local_info &__li)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const local_time< _Duration > &__lt)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const month &__m)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const month_day &__md)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const month_day_last &__mdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const month_weekday &__mwd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const month_weekday_last &__mwdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const sys_days &__dp)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os, const
sys_info &__i)
• template<typename _CharT , typename _Traits , typename _Duration >
requires (!treat_as_floating_point_v<typename _Duration::rep>) && ratio_less_v<typename _Duration::period, days::period>
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const sys_time< _Duration > &__tp)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const tai_time< _Duration > &__t)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const utc_time< _Duration > &__t)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const weekday &__wd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const weekday_indexed &__wdi)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const weekday_last &__wdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const year &__y)

Generated by Doxygen
362

• template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const year_month &__ym)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const year_month_day &__ymd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const year_month_day_last &__ymdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const year_month_weekday &__ymwd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const year_month_weekday_last &__ymwdl)
• template<typename _CharT , typename _Traits , typename _Duration , typename _TimeZonePtr >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (basic_ostream< _CharT, _Traits > &__os,
const zoned_time< _Duration, _TimeZonePtr > &__t)
• template<typename _CharT , typename _Traits , typename _Rep , typename _Period >
basic_ostream< _CharT, _Traits > & std::chrono::operator<< (std::basic_ostream< _CharT, _Traits > &__os,
const duration< _Rep, _Period > &__d)
• template<typename _Dur1 , typename _TZPtr1 , typename _Dur2 , typename _TZPtr2 >
bool std::chrono::operator== (const zoned_time< _Dur1, _TZPtr1 > &__x, const zoned_time< _Dur2, _TZPtr2
> &__y)
• constexpr weekday_last std::chrono::weekday::operator[ ] (last_spec) const noexcept
• constexpr weekday_indexed std::chrono::weekday::operator[ ] (unsigned __index) const noexcept
• template<typename _CharT , __detail::__parsable< _CharT > _Parsable>
auto std::chrono::parse (const _CharT ∗__fmt, _Parsable &__tp)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT > _Parsable>
auto std::chrono::parse (const _CharT ∗__fmt, _Parsable &__tp, basic_string< _CharT, _Traits, _Alloc > &_←-
_abbrev)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT, minutes > _Parsable>
auto std::chrono::parse (const _CharT ∗__fmt, _Parsable &__tp, basic_string< _CharT, _Traits, _Alloc > &_←-
_abbrev, minutes &__offset)
• template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _StrT = basic_string<_CharT, _Traits>, __detail::__←-
parsable< _CharT, _Traits, _StrT, minutes > _Parsable>
auto std::chrono::parse (const _CharT ∗__fmt, _Parsable &__tp, minutes &__offset)
• template<typename _CharT , typename _Traits , typename _Alloc , __detail::__parsable< _CharT, _Traits > _Parsable>
auto std::chrono::parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT > _Parsable>
auto std::chrono::parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp, basic_string<
_CharT, _Traits, _Alloc > &__abbrev)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT, minutes > _Parsable>
auto std::chrono::parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp, basic_string<
_CharT, _Traits, _Alloc > &__abbrev, minutes &__offset)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits>, __detail::__parsable<
_CharT, _Traits, _StrT, minutes > _Parsable>
auto std::chrono::parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp, minutes &_←-
_offset)

Generated by Doxygen
3.15 Utilities 363

• const tzdb & std::chrono::reload_tzdb ()


• string std::chrono::remote_version ()
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _To←-
Dur::rep > > >::value, _ToDur > std::chrono::round (const duration< _Rep, _Period > &__d)
• template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __is_duration_v< _ToDur > &&!treat_as_floating_point_v< typename _ToDur::rep >,
time_point< _Clock, _ToDur > > std::chrono::round (const time_point< _Clock, _Dur > &__tp)
• template<typename _ToDur , typename _Clock , typename _Dur >
constexpr __enable_if_t< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > > std::chrono::time_point_cast
(const time_point< _Clock, _Dur > &__t)
• std::chrono::zoned_time () -> zoned_time< seconds >
• template<typename _TimeZonePtrOrName >
std::chrono::zoned_time (_TimeZonePtrOrName &&) -> zoned_time< seconds, __time_zone_representation<
_TimeZonePtrOrName > >
• template<typename _TimeZonePtrOrName , typename _Duration >
std::chrono::zoned_time (_TimeZonePtrOrName &&, local_time< _Duration >, choose=choose::earliest) ->
zoned_time< common_type_t< _Duration, seconds >, __time_zone_representation< _TimeZonePtrOrName
>>
• template<typename _TimeZonePtrOrName , typename _Duration >
std::chrono::zoned_time (_TimeZonePtrOrName &&, sys_time< _Duration >) -> zoned_time< common_type_t<
_Duration, seconds >, __time_zone_representation< _TimeZonePtrOrName > >
• template<typename _Duration , typename _TimeZonePtrOrName , typename _TimeZonePtr2 >
std::chrono::zoned_time (_TimeZonePtrOrName &&, zoned_time< _Duration, _TimeZonePtr2 >, choose=choose←-
::earliest) -> zoned_time< common_type_t< _Duration, seconds >, __time_zone_representation< _Time←-
ZonePtrOrName > >
• template<typename _Duration >
std::chrono::zoned_time (sys_time< _Duration >) -> zoned_time< common_type_t< _Duration, seconds >
>

Variables

• template<typename _Tp , typename _Clock >


constexpr bool std::chrono::__is_time_point_for_v
• template<typename _Clock , typename _Duration >
constexpr bool std::chrono::__is_time_point_for_v< time_point< _Clock, _Duration >, _Clock >
• constexpr month std::chrono::April
• constexpr month std::chrono::August
• constexpr month std::chrono::December
• constexpr month std::chrono::February
• constexpr weekday std::chrono::Friday
• template<typename _Tp , typename = void>
constexpr bool std::chrono::is_clock_v
• template<> constexpr bool std::chrono::is_clock_v< file_clock >
• template<> constexpr bool std::chrono::is_clock_v< gps_clock >
• template<> constexpr bool std::chrono::is_clock_v< steady_clock >
• template<> constexpr bool std::chrono::is_clock_v< system_clock >
• template<> constexpr bool std::chrono::is_clock_v< tai_clock >
• template<> constexpr bool std::chrono::is_clock_v< utc_clock >
• constexpr month std::chrono::January
• constexpr month std::chrono::July
• constexpr month std::chrono::June

Generated by Doxygen
364

• constexpr last_spec std::chrono::last


• constexpr month std::chrono::March
• constexpr month std::chrono::May
• constexpr weekday std::chrono::Monday
• constexpr month std::chrono::November
• constexpr month std::chrono::October
• constexpr weekday std::chrono::Saturday
• constexpr month std::chrono::September
• constexpr weekday std::chrono::Sunday
• constexpr weekday std::chrono::Thursday
• template<typename _Rep >
constexpr bool std::chrono::treat_as_floating_point_v
• template<> constexpr bool std::chrono::treat_as_floating_point_v< double >
• template<> constexpr bool std::chrono::treat_as_floating_point_v< float >
• template<> constexpr bool std::chrono::treat_as_floating_point_v< int >
• template<> constexpr bool std::chrono::treat_as_floating_point_v< long >
• template<> constexpr bool std::chrono::treat_as_floating_point_v< long double >
• template<> constexpr bool std::chrono::treat_as_floating_point_v< long long >
• constexpr weekday std::chrono::Tuesday
• constexpr weekday std::chrono::Wednesday

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type std::chrono::operator-
(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator+
(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)

• template<typename _Rep1 , typename _Rep2 , typename _Period >


constexpr duration< __common_rep_t< _Rep2, _Rep1 >, _Period > std::chrono::operator∗ (const _Rep1 &__s,
const duration< _Rep2, _Period > &__d)
• template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period >
std::chrono::operator/ (const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< _Rep1, _Rep2 >::type std::chrono::operator/ (const duration< _Rep1, _Period1 >
&__lhs, const duration< _Rep2, _Period2 > &__rhs)
• template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period >
std::chrono::operator% (const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type std::chrono::operator%
(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
• template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, _Rep2 >, _Period > operator∗ (const duration< _Rep1, _←-
Period > &__d, const _Rep2 &__s)

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr bool std::chrono::operator< (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2,
_Period2 > &__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
requires three_way_comparable<common_type_t<_Rep1, _Rep2>>
constexpr auto std::chrono::operator<=> (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2,
_Period2 > &__rhs)

Generated by Doxygen
3.15 Utilities 365

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr bool std::chrono::operator<= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2,
_Period2 > &__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool std::chrono::operator> (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2,
_Period2 > &__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool std::chrono::operator>= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2,
_Period2 > &__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool operator== (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)

• template<typename _Rep1 , typename _Period1 , typename _Clock , typename _Dur2 >


constexpr time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type >
std::chrono::operator+ (const duration< _Rep1, _Period1 > &__lhs, const time_point< _Clock, _Dur2 > &←-
__rhs)
• template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >
constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type >
std::chrono::operator- (const time_point< _Clock, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &_←-
_rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr common_type< _Dur1, _Dur2 >::type std::chrono::operator- (const time_point< _Clock, _Dur1 > &←-
__lhs, const time_point< _Clock, _Dur2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >
constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type >
operator+ (const time_point< _Clock, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)

• template<typename _Clock , typename _Dur1 , three_way_comparable_with< _Dur1 > _Dur2>


constexpr auto std::chrono::operator<=> (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _←-
Clock, _Dur2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool std::chrono::operator< (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock,
_Dur2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool std::chrono::operator<= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _←-
Clock, _Dur2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool std::chrono::operator> (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock,
_Dur2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool std::chrono::operator>= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _←-
Clock, _Dur2 > &__rhs)

3.15.8.1 Detailed Description

Classes and functions for time.


Since

C++11

Generated by Doxygen
366

3.15.8.2 Typedef Documentation

days

using std::chrono::days
days

high_resolution_clock

using std::chrono::_V2::high_resolution_clock
Highest-resolution clock.
This is the clock "with the shortest tick period." Alias to std::system_clock until higher-than-nanosecond definitions
become feasible.

hours

using std::chrono::hours
hours

microseconds

using std::chrono::microseconds
microseconds

milliseconds

using std::chrono::milliseconds
milliseconds

minutes

using std::chrono::minutes
minutes

months

using std::chrono::months
months

nanoseconds

using std::chrono::nanoseconds
nanoseconds

seconds

using std::chrono::seconds
seconds

weeks

using std::chrono::weeks
weeks

Generated by Doxygen
3.15 Utilities 367

years

using std::chrono::years
years

3.15.8.3 Function Documentation

abs()

template<typename _Rep , typename _Period >


enable_if_t< numeric_limits< _Rep >::is_signed, duration< _Rep, _Period > > std::chrono::abs (
duration< _Rep, _Period > __d) [nodiscard], [constexpr]
The absolute (non-negative) value of a duration.

Parameters
_←- A duration with a signed rep type.
_d

Returns

A duration of the same type as the argument, with value |d|.

Since

C++17

ceil() [1/2]

template<typename _ToDur , typename _Rep , typename _Period >


__enable_if_is_duration< _ToDur > std::chrono::ceil (
const duration< _Rep, _Period > & __d) [nodiscard], [constexpr]
Convert a duration to type ToDur and round up.
If the duration cannot be represented exactly in the result type, returns the closest value that is greater than the argu-
ment.

Template Parameters

_ToDur The result type must be a duration.

Parameters
_←- A duration.
_d

Returns

The value of __d converted to type _ToDur.

Since

C++17

References std::chrono::duration_cast().
Referenced by std::chrono::ceil().

Generated by Doxygen
368

ceil() [2/2]

template<typename _ToDur , typename _Clock , typename _Dur >


enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > std::chrono::ceil (
const time_point< _Clock, _Dur > & __tp) [nodiscard], [constexpr]
Convert a time_point to type ToDur and round up.
The result is the same time point as measured by the same clock, but using the specified duration to represent the
time. If the time point cannot be represented exactly in the result type, returns the closest value that is greater than the
argument.

Template Parameters

_ToDur The duration type to use for the result.

Parameters
←- A time point.
_←-
←-
_←-
t

Returns

The value of __d converted to type _ToDur.

Since

C++17

References std::chrono::ceil().

clock_cast()

template<typename _DestClock , typename _SourceClock , typename _Duration >


requires __detail::__clock_convs<_DestClock, _SourceClock, _Duration> || __detail::__clock_convs←-
_sys<_DestClock, _SourceClock, _Duration> || __detail::__clock_convs_utc<_DestClock, _SourceClock,
_Duration> || __detail::__clock_convs_sys_utc<_DestClock, _SourceClock, _Duration> || __detail::_←-
_clock_convs_utc_sys<_DestClock, _SourceClock, _Duration>
auto std::chrono::clock_cast (
const time_point< _SourceClock, _Duration > & __t) [inline], [nodiscard]
Convert a time point to a different clock.

duration_cast()

template<typename _ToDur , typename _Rep , typename _Period >


__enable_if_is_duration< _ToDur > std::chrono::duration_cast (
const duration< _Rep, _Period > & __d) [nodiscard], [constexpr]
Convert a duration to type ToDur.
If the duration cannot be represented accurately in the result type, returns the result of integer truncation (i.e., rounded
towards zero).

Generated by Doxygen
3.15 Utilities 369

Template Parameters

_ToDur The result type must be a duration.

Parameters
_←- A duration.
_d

Returns

The value of __d converted to type _ToDur.

Since

C++11
Referenced by std::chrono::ceil(), std::chrono::floor(), std::this_thread::sleep_for(), and std::chrono::time_point_cast().

floor() [1/2]

template<typename _ToDur , typename _Rep , typename _Period >


__enable_if_is_duration< _ToDur > std::chrono::floor (
const duration< _Rep, _Period > & __d) [nodiscard], [constexpr]
Convert a duration to type ToDur and round down.
If the duration cannot be represented exactly in the result type, returns the closest value that is less than the argument.

Template Parameters

_ToDur The result type must be a duration.

Parameters
_←- A duration.
_d

Returns

The value of __d converted to type _ToDur.

Since

C++17
References std::chrono::duration_cast().
Referenced by std::chrono::floor(), and std::chrono::round().

floor() [2/2]

template<typename _ToDur , typename _Clock , typename _Dur >


enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > std::chrono::floor (
const time_point< _Clock, _Dur > & __tp) [nodiscard], [constexpr]
Convert a time_point to type ToDur and round down.
The result is the same time point as measured by the same clock, but using the specified duration to represent the
time. If the time point cannot be represented exactly in the result type, returns the closest value that is less than the
argument.

Generated by Doxygen
370

Template Parameters

_ToDur The duration type to use for the result.

Parameters
←- A time point.
_←-
←-
_←-
t

Returns

The value of __d converted to type _ToDur.

Since

C++17

References std::chrono::floor().

local_time_format()

template<typename _Duration >


__detail::__local_time_fmt< _Duration > std::chrono::local_time_format (
local_time< _Duration > __time,
const string ∗ __abbrev = nullptr,
const seconds ∗ __offset_sec = nullptr) [inline]
Return an object that asssociates timezone info with a local time.
A chrono::local_time object has no timezone associated with it. This function creates an object that allows
formatting a local_time as though it refers to a timezone with the given abbreviated name and offset from UTC.

Since

C++20

operator""""d()

chrono::day std::literals::chrono_literals::operator""d (
unsigned long long __d) [constexpr], [noexcept]
Literal suffix for creating chrono::day objects.

Since

C++20

operator""""h() [1/2]

template<char... _Digits>
chrono::hours std::literals::chrono_literals::operator""h () [constexpr]
Literal suffix for durations of type std::chrono::hours

Generated by Doxygen
3.15 Utilities 371

operator""""h() [2/2]

chrono::duration< long double, ratio< 3600, 1 > > std::literals::chrono_literals::operator""h (


long double __hours) [constexpr]
Literal suffix for durations representing non-integer hours.

operator""""min() [1/2]

template<char... _Digits>
chrono::minutes std::literals::chrono_literals::operator""min () [constexpr]
Literal suffix for durations of type std::chrono::minutes

operator""""min() [2/2]

chrono::duration< long double, ratio< 60, 1 > > std::literals::chrono_literals::operator""min (


long double __mins) [constexpr]
Literal suffix for durations representing non-integer minutes.

operator""""ms() [1/2]

template<char... _Digits>
chrono::milliseconds std::literals::chrono_literals::operator""ms () [constexpr]
Literal suffix for durations of type std::chrono::milliseconds

operator""""ms() [2/2]

chrono::duration< long double, milli > std::literals::chrono_literals::operator""ms (


long double __msecs) [constexpr]
Literal suffix for durations representing non-integer milliseconds.

operator""""ns() [1/2]

template<char... _Digits>
chrono::nanoseconds std::literals::chrono_literals::operator""ns () [constexpr]
Literal suffix for durations of type std::chrono::nanoseconds

operator""""ns() [2/2]

chrono::duration< long double, nano > std::literals::chrono_literals::operator""ns (


long double __nsecs) [constexpr]
Literal suffix for durations representing non-integer nanoseconds.

operator""""s() [1/2]

template<char... _Digits>
chrono::seconds std::literals::chrono_literals::operator""s () [constexpr]
Literal suffix for durations of type std::chrono::seconds

operator""""s() [2/2]

chrono::duration< long double > std::literals::chrono_literals::operator""s (


long double __secs) [constexpr]
Literal suffix for durations representing non-integer seconds.

Generated by Doxygen
372

operator""""us() [1/2]

template<char... _Digits>
chrono::microseconds std::literals::chrono_literals::operator""us () [constexpr]
Literal suffix for durations of type std::chrono::microseconds

operator""""us() [2/2]

chrono::duration< long double, micro > std::literals::chrono_literals::operator""us (


long double __usecs) [constexpr]
Literal suffix for durations representing non-integer microseconds.

operator""""y()

chrono::year std::literals::chrono_literals::operator""y (
unsigned long long __y) [constexpr], [noexcept]
Literal suffix for creating chrono::year objects.

Since

C++20

operator%() [1/2]

template<typename _Rep1 , typename _Period , typename _Rep2 >


duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > std::chrono←-
::operator% (
const duration< _Rep1, _Period > & __d,
const _Rep2 & __s) [constexpr]
Arithmetic operators for chrono::duration

operator%() [2/2]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type std::chrono←-
::operator% (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Arithmetic operators for chrono::duration

operator∗() [1/2]

template<typename _Rep1 , typename _Period , typename _Rep2 >


duration< __common_rep_t< _Rep1, _Rep2 >, _Period > operator∗ (
const duration< _Rep1, _Period > & __d,
const _Rep2 & __s) [related]
Arithmetic operators for chrono::duration

operator∗() [2/2]

template<typename _Rep1 , typename _Rep2 , typename _Period >


duration< __common_rep_t< _Rep2, _Rep1 >, _Period > std::chrono::operator∗ (
const _Rep1 & __s,
const duration< _Rep2, _Period > & __d) [constexpr]
Arithmetic operators for chrono::duration

Generated by Doxygen
3.15 Utilities 373

operator+() [1/3]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator+ (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [related]
The sum of two durations.

operator+() [2/3]

template<typename _Rep1 , typename _Period1 , typename _Clock , typename _Dur2 >


time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type > std←-
::chrono::operator+ (
const duration< _Rep1, _Period1 > & __lhs,
const time_point< _Clock, _Dur2 > & __rhs) [constexpr]
Adjust a time point forwards by the given duration.

operator+() [3/3]

template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >


time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type > operator+
(
const time_point< _Clock, _Dur1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [related]
Adjust a time point forwards by the given duration.

operator-() [1/3]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type std::chrono←-
::operator- (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
The difference between two durations.

operator-() [2/3]

template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >


time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type > std←-
::chrono::operator- (
const time_point< _Clock, _Dur1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Adjust a time point backwards by the given duration.

operator-() [3/3]

template<typename _Clock , typename _Dur1 , typename _Dur2 >


common_type< _Dur1, _Dur2 >::type std::chrono::operator- (
const time_point< _Clock, _Dur1 > & __lhs,
const time_point< _Clock, _Dur2 > & __rhs) [constexpr]
The difference between two time points (as a duration)

operator/() [1/2]

template<typename _Rep1 , typename _Period , typename _Rep2 >


duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > std::chrono←-

Generated by Doxygen
374

::operator/ (
const duration< _Rep1, _Period > & __d,
const _Rep2 & __s) [constexpr]
Arithmetic operators for chrono::duration

operator/() [2/2]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


common_type< _Rep1, _Rep2 >::type std::chrono::operator/ (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Arithmetic operators for chrono::duration

operator<()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


bool std::chrono::operator< (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Comparisons for chrono::duration

operator<<() [1/3]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::chrono::operator<< (
basic_ostream< _CharT, _Traits > & __os,
const local_info & __li)
Writes a local_info object to an ostream in an unspecified format.

operator<<() [2/3]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::chrono::operator<< (
basic_ostream< _CharT, _Traits > & __os,
const sys_info & __i)
Writes a sys_info object to an ostream in an unspecified format.

operator<<() [3/3]

template<typename _CharT , typename _Traits , typename _Rep , typename _Period >


basic_ostream< _CharT, _Traits > & std::chrono::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const duration< _Rep, _Period > & __d) [inline]
Write a chrono::duration to an ostream.
Since

C++20

References std::ios_base::flags(), std::ios_base::getloc(), std::basic_ios< _CharT, _Traits >::imbue(), std::move(),


std::chrono::operator<<(), and std::ios_base::precision().
Referenced by std::chrono::operator<<().

operator<=()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


bool std::chrono::operator<= (

Generated by Doxygen
3.15 Utilities 375

const duration< _Rep1, _Period1 > & __lhs,


const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Comparisons for chrono::duration

operator<=>()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


requires three_way_comparable<common_type_t<_Rep1, _Rep2>>
auto std::chrono::operator<=> (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Comparisons for chrono::duration

operator==()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


bool operator== (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [related]
Comparisons for chrono::duration

operator>()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


bool std::chrono::operator> (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Comparisons for chrono::duration

operator>=()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


bool std::chrono::operator>= (
const duration< _Rep1, _Period1 > & __lhs,
const duration< _Rep2, _Period2 > & __rhs) [constexpr]
Comparisons for chrono::duration

round() [1/2]

template<typename _ToDur , typename _Rep , typename _Period >


enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _ToDur←-
::rep > > >::value, _ToDur > std::chrono::round (
const duration< _Rep, _Period > & __d) [nodiscard], [constexpr]
Convert a duration to type ToDur and round to the closest value.
If the duration cannot be represented exactly in the result type, returns the closest value, rounding ties to even.

Template Parameters

_ToDur The result type must be a duration with a non-floating-point rep type.

Parameters
_←- A duration.
_d

Generated by Doxygen
376

Returns

The value of __d converted to type _ToDur.

Since

C++17

References std::chrono::floor().
Referenced by std::chrono::round().

round() [2/2]

template<typename _ToDur , typename _Clock , typename _Dur >


enable_if_t< __is_duration_v< _ToDur > &&!treat_as_floating_point_v< typename _ToDur::rep >,
time_point< _Clock, _ToDur > > std::chrono::round (
const time_point< _Clock, _Dur > & __tp) [nodiscard], [constexpr]
Convert a time_point to type ToDur and round to the closest value.
The result is the same time point as measured by the same clock, but using the specified duration to represent the
time. If the time point cannot be represented exactly in the result type, returns the closest value, rounding ties to even.

Template Parameters

_ToDur The duration type to use for the result, which must have a non-floating-point rep type.

Parameters
←- A time point.
_←-
←-
_←-
t

Returns

The value of __d converted to type _ToDur.

Since

C++17

References std::chrono::round().

time_point_cast()

template<typename _ToDur , typename _Clock , typename _Dur >


__enable_if_t< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > > std::chrono←-
::time_point_cast (
const time_point< _Clock, _Dur > & __t) [nodiscard], [constexpr]
Convert a time_point to use duration type ToDur.
The result is the same time point as measured by the same clock, but using the specified duration to represent the
time. If the time point cannot be represented accurately in the result type, returns the result of integer truncation (i.e.,
rounded towards zero).

Generated by Doxygen
4 Namespace Documentation 377

Template Parameters

_ToDur The duration type to use for the result.

Parameters
←- A time point.
_←-
←-
_←-
t

Returns

The value of __t converted to use type _ToDur.

Since

C++11

References std::chrono::duration_cast().

4 Namespace Documentation
4.1 __gnu_cxx Namespace Reference
Namespaces

• namespace __detail
• namespace typelist

Classes

• struct __alloc_traits
• struct __common_pool_policy
• class __mt_alloc
• class __mt_alloc_base
• struct __per_type_pool_policy
• class __pool
• class __pool< false >
• class __pool< true >
• class __pool_alloc
• class __pool_alloc_base
• struct __pool_base
• class __rc_string_base
• class __scoped_lock
• class __versa_string
• struct _Caster
• struct _Char_types
• class _ExtPtr_allocator
• struct _Invalid_type
• class _Pointer_adapter

Generated by Doxygen
378

• class _Relative_pointer_impl
• class _Relative_pointer_impl< const _Tp >
• class _Std_pointer_impl
• struct _Unqualified_type
• struct annotate_base
• class binary_compose
• class bitmap_allocator
• struct char_traits
• struct character
• struct condition_base
• struct constant_binary_fun
• struct constant_unary_fun
• struct constant_void_fun
• class debug_allocator
• class enc_filebuf
• struct encoding_char_traits
• class encoding_state
• struct forced_error
• class free_list
• class hash_map
• class hash_multimap
• class hash_multiset
• class hash_set
• struct limit_condition
• class malloc_allocator
• class new_allocator
• struct project1st
• struct project2nd
• struct random_condition
• struct rb_tree
• class recursive_init_error
• class rope
• struct select1st
• struct select2nd
• class slist
• class stdio_filebuf
• class stdio_sync_filebuf
• class subtractive_rng
• struct temporary_buffer
• class throw_allocator_base
• struct throw_allocator_limit
• struct throw_allocator_random
• struct throw_value_base
• struct throw_value_limit
• struct throw_value_random
• class unary_compose

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 379

Typedefs

• typedef void(∗ __destroy_handler) (void ∗)


• template<typename _Tp >
using __int_traits
• typedef __versa_string< char, std::char_traits< char >, std::allocator< char >, __rc_string_base > __rc_string
• typedef __vstring __sso_string
• typedef __versa_string< char16_t, std::char_traits< char16_t >, std::allocator< char16_t >, __rc_string_base
> __u16rc_string
• typedef __u16vstring __u16sso_string
• typedef __versa_string< char16_t > __u16vstring
• typedef __versa_string< char32_t, std::char_traits< char32_t >, std::allocator< char32_t >, __rc_string_base
> __u32rc_string
• typedef __u32vstring __u32sso_string
• typedef __versa_string< char32_t > __u32vstring
• typedef __versa_string< char > __vstring
• typedef __versa_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t >, __rc_string_base >
__wrc_string
• typedef __wvstring __wsso_string
• typedef __versa_string< wchar_t > __wvstring
• typedef rope< char > crope
• typedef rope< wchar_t > wrope

Enumerations

• enum { _S_num_primes }
• enum _Lock_policy { _S_single , _S_mutex , _S_atomic }

Functions

• void __atomic_add (volatile _Atomic_word ∗, int) noexcept


• void __atomic_add_dispatch (_Atomic_word ∗__mem, int __val)
• void __atomic_add_single (_Atomic_word ∗__mem, int __val)
• template<class _Tp >
void __aux_require_boolean_expr (const _Tp &__t)
• template<typename _ToType , typename _FromType >
_ToType __const_pointer_cast (_FromType ∗__arg)
• template<typename _ToType , typename _FromType >
_ToType __const_pointer_cast (const _FromType &__arg)
• template<typename _InputIterator , typename _Size , typename _OutputIterator >
std::pair< _InputIterator, _OutputIterator > __copy_n (_InputIterator __first, _Size __count, _OutputIterator _←-
_result, std::input_iterator_tag)
• template<typename _RAIterator , typename _Size , typename _OutputIterator >
std::pair< _RAIterator, _OutputIterator > __copy_n (_RAIterator __first, _Size __count, _OutputIterator __result,
std::random_access_iterator_tag)
• template<typename _InputIterator , typename _Distance >
void __distance (_InputIterator __first, _InputIterator __last, _Distance &__n, std::input_iterator_tag)
• template<typename _RandomAccessIterator , typename _Distance >
void __distance (_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance &__n, std::random_access_iterator_tag
• template<typename _ToType , typename _FromType >
_ToType __dynamic_pointer_cast (_FromType ∗__arg)
• template<typename _ToType , typename _FromType >
_ToType __dynamic_pointer_cast (const _FromType &__arg)

Generated by Doxygen
380

• void __error_type_must_be_a_signed_integer_type ()
• void __error_type_must_be_an_integer_type ()
• void __error_type_must_be_an_unsigned_integer_type ()
• _Atomic_word __exchange_and_add (volatile _Atomic_word ∗, int) noexcept
• _Atomic_word __exchange_and_add_dispatch (_Atomic_word ∗__mem, int __val)
• _Atomic_word __exchange_and_add_single (_Atomic_word ∗__mem, int __val)
• template<class _Concept >
constexpr void __function_requires ()
• template<typename _Type >
constexpr bool __is_null_pointer (_Type ∗__ptr)
• template<typename _Type >
constexpr bool __is_null_pointer (_Type)
• constexpr bool __is_null_pointer (std::nullptr_t)
• bool __is_single_threaded () noexcept
• template<typename _InputIterator1 , typename _InputIterator2 >
int __lexicographical_compare_3way (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2)
• int __lexicographical_compare_3way (const char ∗__first1, const char ∗__last1, const char ∗__first2, const
char ∗__last2)
• int __lexicographical_compare_3way (const unsigned char ∗__first1, const unsigned char ∗__last1, const un-
signed char ∗__first2, const unsigned char ∗__last2)
• template<typename _Tp >
const _Tp & __median (const _Tp &__a, const _Tp &__b, const _Tp &__c)
• template<typename _Tp , typename _Compare >
const _Tp & __median (const _Tp &__a, const _Tp &__b, const _Tp &__c, _Compare __comp)
• crope::reference __mutable_reference_at (crope &__c, std::size_t __i)
• template<typename _Tp , typename _Integer >
_Tp __power (_Tp __x, _Integer __n)
• template<typename _Tp , typename _Integer , typename _MonoidOperation >
_Tp __power (_Tp __x, _Integer __n, _MonoidOperation __monoid_op)
• template<typename _InputIterator , typename _RandomAccessIterator , typename _RandomNumberGenerator , typename _Distance >
_RandomAccessIterator __random_sample (_InputIterator __first, _InputIterator __last, _RandomAccessIterator
__out, _RandomNumberGenerator &__rand, const _Distance __n)
• template<typename _InputIterator , typename _RandomAccessIterator , typename _Distance >
_RandomAccessIterator __random_sample (_InputIterator __first, _InputIterator __last, _RandomAccessIterator
__out, const _Distance __n)
• template<typename _ToType , typename _FromType >
_ToType __reinterpret_pointer_cast (_FromType ∗__arg)
• template<typename _ToType , typename _FromType >
_ToType __reinterpret_pointer_cast (const _FromType &__arg)
• _Slist_node_base ∗ __slist_make_link (_Slist_node_base ∗__prev_node, _Slist_node_base ∗__new_node)
• _Slist_node_base ∗ __slist_previous (_Slist_node_base ∗__head, const _Slist_node_base ∗__node)
• const _Slist_node_base ∗ __slist_previous (const _Slist_node_base ∗__head, const _Slist_node_base ∗__←-
node)
• _Slist_node_base ∗ __slist_reverse (_Slist_node_base ∗__node)
• std::size_t __slist_size (_Slist_node_base ∗__node)
• void __slist_splice_after (_Slist_node_base ∗__pos, _Slist_node_base ∗__before_first, _Slist_node_base ∗_←-
_before_last)
• void __slist_splice_after (_Slist_node_base ∗__pos, _Slist_node_base ∗__head)
• template<typename _ToType , typename _FromType >
_ToType __static_pointer_cast (_FromType ∗__arg)

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 381

• template<typename _ToType , typename _FromType >


_ToType __static_pointer_cast (const _FromType &__arg)
• size_t __stl_hash_string (const char ∗__s)
• unsigned long __stl_next_prime (unsigned long __n)
• template<typename _TRet , typename _Ret = _TRet, typename _CharT , typename... _Base>
_Ret __stoa (_TRet(∗__convf)(const _CharT ∗, _CharT ∗∗, _Base...), const char ∗__name, const _CharT ∗__str,
std::size_t ∗__idx, _Base... __base)
• void __throw_concurrence_lock_error ()
• void __throw_concurrence_unlock_error ()
• void __throw_forced_error ()
• template<typename _String , typename _CharT = typename _String::value_type>
_String __to_xstring (int(∗__convf)(_CharT ∗, std::size_t, const _CharT ∗, __builtin_va_list), std::size_t __n,
const _CharT ∗__fmt,...)
• template<typename _InputIter , typename _Size , typename _ForwardIter >
std::pair< _InputIter, _ForwardIter > __uninitialized_copy_n (_InputIter __first, _Size __count, _ForwardIter
__result)
• template<typename _InputIter , typename _Size , typename _ForwardIter >
std::pair< _InputIter, _ForwardIter > __uninitialized_copy_n (_InputIter __first, _Size __count, _ForwardIter
__result, std::input_iterator_tag)
• template<typename _RandomAccessIter , typename _Size , typename _ForwardIter >
std::pair< _RandomAccessIter, _ForwardIter > __uninitialized_copy_n (_RandomAccessIter __first, _Size _←-
_count, _ForwardIter __result, std::random_access_iterator_tag)
• template<typename _InputIter , typename _Size , typename _ForwardIter , typename _Allocator >
std::pair< _InputIter, _ForwardIter > __uninitialized_copy_n_a (_InputIter __first, _Size __count, _ForwardIter
__result, _Allocator __alloc)
• template<typename _InputIter , typename _Size , typename _ForwardIter , typename _Tp >
std::pair< _InputIter, _ForwardIter > __uninitialized_copy_n_a (_InputIter __first, _Size __count, _ForwardIter
__result, std::allocator< _Tp >)
• void __verbose_terminate_handler ()
• std::size_t _Bit_scan_forward (std::size_t __num)
• template<typename _ForwardIterator , typename _Allocator >
void _Destroy_const (_ForwardIterator __first, _ForwardIterator __last, _Allocator __alloc)
• template<typename _ForwardIterator , typename _Tp >
void _Destroy_const (_ForwardIterator __first, _ForwardIterator __last, std::allocator< _Tp >)
• template<class _CharT , class _Traits >
void _Rope_fill (std::basic_ostream< _CharT, _Traits > &__o, std::size_t __n)
• template<class _CharT >
bool _Rope_is_simple (_CharT ∗)
• bool _Rope_is_simple (char ∗)
• bool _Rope_is_simple (wchar_t ∗)
• template<class _Rope_iterator >
void _Rope_rotate (_Rope_iterator __first, _Rope_iterator __middle, _Rope_iterator __last)
• template<class _CharT >
void _S_cond_store_eos (_CharT &)
• void _S_cond_store_eos (char &__c)
• void _S_cond_store_eos (wchar_t &__c)
• template<class _CharT >
_CharT _S_eos (_CharT ∗)
• template<class _CharT >
bool _S_is_basic_char_type (_CharT ∗)
• bool _S_is_basic_char_type (char ∗)
• bool _S_is_basic_char_type (wchar_t ∗)

Generated by Doxygen
382

• template<class _CharT >


bool _S_is_one_byte_char_type (_CharT ∗)
• bool _S_is_one_byte_char_type (char ∗)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type airy_ai (_Tp __x)
• float airy_aif (float __x)
• long double airy_ail (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type airy_bi (_Tp __x)
• float airy_bif (float __x)
• long double airy_bil (long double __x)
• template<class _Operation1 , class _Operation2 >
unary_compose< _Operation1, _Operation2 > compose1 (const _Operation1 &__fn1, const _Operation2 &_←-
_fn2)
• template<class _Operation1 , class _Operation2 , class _Operation3 >
binary_compose< _Operation1, _Operation2, _Operation3 > compose2 (const _Operation1 &__fn1, const _←-
Operation2 &__fn2, const _Operation3 &__fn3)
• template<typename _Tpa , typename _Tpc , typename _Tp >
__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type conf_hyperg (_Tpa __a, _Tpc __c, _Tp __x)
• float conf_hypergf (float __a, float __c, float __x)
• long double conf_hypergl (long double __a, long double __c, long double __x)
• template<class _Result >
constant_void_fun< _Result > constant0 (const _Result &__val)
• template<class _Result >
constant_unary_fun< _Result, _Result > constant1 (const _Result &__val)
• template<class _Result >
constant_binary_fun< _Result, _Result, _Result > constant2 (const _Result &__val)
• template<typename _InputIterator , typename _Size , typename _OutputIterator >
std::pair< _InputIterator, _OutputIterator > copy_n (_InputIterator __first, _Size __count, _OutputIterator __←-
result)
• template<typename _InputIterator , typename _Tp , typename _Size >
void count (_InputIterator __first, _InputIterator __last, const _Tp &__value, _Size &__n)
• template<typename _InputIterator , typename _Predicate , typename _Size >
void count_if (_InputIterator __first, _InputIterator __last, _Predicate __pred, _Size &__n)
• template<typename _InputIterator , typename _Distance >
void distance (_InputIterator __first, _InputIterator __last, _Distance &__n)
• template<typename _Tpa , typename _Tpb , typename _Tpc , typename _Tp >
__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type hyperg (_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
• float hypergf (float __a, float __b, float __c, float __x)
• long double hypergl (long double __a, long double __b, long double __c, long double __x)
• template<class _Tp >
_Tp identity_element (std::multiplies< _Tp >)
• template<class _Tp >
_Tp identity_element (std::plus< _Tp >)
• template<typename _InputIterator1 , typename _InputIterator2 >
int lexicographical_compare_3way (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _←-
InputIterator2 __last2)
• template<class _Ret , class _Tp , class _Arg >
std::const_mem_fun1_t< _Ret, _Tp, _Arg > mem_fun1 (_Ret(_Tp::∗__f)(_Arg) const)
• template<class _Ret , class _Tp , class _Arg >
std::mem_fun1_t< _Ret, _Tp, _Arg > mem_fun1 (_Ret(_Tp::∗__f)(_Arg))

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 383

• template<class _Ret , class _Tp , class _Arg >


std::const_mem_fun1_ref_t< _Ret, _Tp, _Arg > mem_fun1_ref (_Ret(_Tp::∗__f)(_Arg) const)
• template<class _Ret , class _Tp , class _Arg >
std::mem_fun1_ref_t< _Ret, _Tp, _Arg > mem_fun1_ref (_Ret(_Tp::∗__f)(_Arg))
• template<typename _Tp1 , typename _Tp2 >
bool operator!= (_Tp1 __lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator!= (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const __versa_string< _CharT,
_Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator!= (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator!= (const _CharT ∗__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _Tp >
bool operator!= (const _Pointer_adapter< _Tp > &__lhs, const _Pointer_adapter< _Tp > &__rhs)
• template<typename _Tp >
bool operator!= (const _Pointer_adapter< _Tp > &__lhs, int __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator!= (const _Pointer_adapter< _Tp1 > &__lhs, _Tp2 __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator!= (const _Pointer_adapter< _Tp1 > &__lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<class _CharT , class _Alloc >
bool operator!= (const _Rope_char_ptr_proxy< _CharT, _Alloc > &__x, const _Rope_char_ptr_proxy< _CharT,
_Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator!= (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT,
_Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator!= (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
• template<class _Key , class _Tp , class _HashFn , class _EqlKey , class _Alloc >
bool operator!= (const hash_map< _Key, _Tp, _HashFn, _EqlKey, _Alloc > &__hm1, const hash_map< _Key,
_Tp, _HashFn, _EqlKey, _Alloc > &__hm2)
• template<class _Key , class _Tp , class _HF , class _EqKey , class _Alloc >
bool operator!= (const hash_multimap< _Key, _Tp, _HF, _EqKey, _Alloc > &__hm1, const hash_multimap<
_Key, _Tp, _HF, _EqKey, _Alloc > &__hm2)
• template<class _Val , class _HashFcn , class _EqualKey , class _Alloc >
bool operator!= (const hash_multiset< _Val, _HashFcn, _EqualKey, _Alloc > &__hs1, const hash_multiset<
_Val, _HashFcn, _EqualKey, _Alloc > &__hs2)
• template<class _Value , class _HashFcn , class _EqualKey , class _Alloc >
bool operator!= (const hash_set< _Value, _HashFcn, _EqualKey, _Alloc > &__hs1, const hash_set< _Value,
_HashFcn, _EqualKey, _Alloc > &__hs2)
• template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
bool operator!= (const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht1, const hashtable< _Val, _Key, _HF,
_Ex, _Eq, _All > &__ht2)
• template<class _CharT , class _Alloc >
bool operator!= (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
• template<class _Tp , class _Alloc >
bool operator!= (const slist< _Tp, _Alloc > &_SL1, const slist< _Tp, _Alloc > &_SL2)
• template<typename _Tp >
bool operator!= (int __lhs, const _Pointer_adapter< _Tp > &__rhs)
• template<typename _Cond >
throw_value_base< _Cond > operator∗ (const throw_value_base< _Cond > &__a, const throw_value_base<
_Cond > &__b)

Generated by Doxygen
384

• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (__versa_string< _CharT, _Traits, _Alloc, _Base >
&&__lhs, __versa_string< _CharT, _Traits, _Alloc, _Base > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (__versa_string< _CharT, _Traits, _Alloc, _Base >
&&__lhs, _CharT __rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (__versa_string< _CharT, _Traits, _Alloc, _Base >
&&__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (__versa_string< _CharT, _Traits, _Alloc, _Base >
&&__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (_CharT __lhs, __versa_string< _CharT, _Traits,
_Alloc, _Base > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (_CharT __lhs, const __versa_string< _CharT, _←-
Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (const __versa_string< _CharT, _Traits, _Alloc,
_Base > &__lhs, __versa_string< _CharT, _Traits, _Alloc, _Base > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (const __versa_string< _CharT, _Traits, _Alloc,
_Base > &__lhs, _CharT __rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (const __versa_string< _CharT, _Traits, _Alloc,
_Base > &__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (const __versa_string< _CharT, _Traits, _Alloc,
_Base > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (const _CharT ∗__lhs, __versa_string< _CharT,
_Traits, _Alloc, _Base > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > operator+ (const _CharT ∗__lhs, const __versa_string< _←-
CharT, _Traits, _Alloc, _Base > &__rhs)
• template<class _CharT , class _Alloc >
_Rope_const_iterator< _CharT, _Alloc > operator+ (const _Rope_const_iterator< _CharT, _Alloc > &__x, std←-
::ptrdiff_t __n)
• template<class _CharT , class _Alloc >
_Rope_iterator< _CharT, _Alloc > operator+ (const _Rope_iterator< _CharT, _Alloc > &__x, std::ptrdiff_t __n)
• template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > operator+ (const rope< _CharT, _Alloc > &__left, _CharT __right)
• template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > operator+ (const rope< _CharT, _Alloc > &__left, const _CharT ∗__right)
• template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > operator+ (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &_←-
_right)
• template<typename _Cond >
throw_value_base< _Cond > operator+ (const throw_value_base< _Cond > &__a, const throw_value_base<
_Cond > &__b)
• template<class _CharT , class _Alloc >
_Rope_const_iterator< _CharT, _Alloc > operator+ (std::ptrdiff_t __n, const _Rope_const_iterator< _CharT,
_Alloc > &__x)

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 385

• template<class _CharT , class _Alloc >


_Rope_iterator< _CharT, _Alloc > operator+ (std::ptrdiff_t __n, const _Rope_iterator< _CharT, _Alloc > &__x)
• template<typename _Iterator , typename _Container >
constexpr __normal_iterator< _Iterator, _Container > operator+ (typename __normal_iterator< _Iterator, _←-
Container >::difference_type __n, const __normal_iterator< _Iterator, _Container > &__i) noexcept
• template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > & operator+= (rope< _CharT, _Alloc > &__left, _CharT __right)
• template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > & operator+= (rope< _CharT, _Alloc > &__left, const _CharT ∗__right)
• template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > & operator+= (rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
• template<typename _Iterator , typename _Container >
constexpr __normal_iterator< _Iterator, _Container >::difference_type operator- (const __normal_iterator< _←-
Iterator, _Container > &__lhs, const __normal_iterator< _Iterator, _Container > &__rhs) noexcept
• template<typename _IteratorL , typename _IteratorR , typename _Container >
constexpr auto operator- (const __normal_iterator< _IteratorL, _Container > &__lhs, const __normal_iterator<
_IteratorR, _Container > &__rhs) noexcept -> decltype(__lhs.base() - __rhs.base())
• template<class _CharT , class _Alloc >
std::ptrdiff_t operator- (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _←-
CharT, _Alloc > &__y)
• template<class _CharT , class _Alloc >
_Rope_const_iterator< _CharT, _Alloc > operator- (const _Rope_const_iterator< _CharT, _Alloc > &__x, std←-
::ptrdiff_t __n)
• template<class _CharT , class _Alloc >
std::ptrdiff_t operator- (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc >
&__y)
• template<class _CharT , class _Alloc >
_Rope_iterator< _CharT, _Alloc > operator- (const _Rope_iterator< _CharT, _Alloc > &__x, std::ptrdiff_t __n)
• template<typename _Cond >
throw_value_base< _Cond > operator- (const throw_value_base< _Cond > &__a, const throw_value_base<
_Cond > &__b)
• template<typename _Tp1 , typename _Tp2 >
bool operator< (_Tp1 __lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator< (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const __versa_string< _CharT,
_Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator< (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator< (const _CharT ∗__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator< (const _Pointer_adapter< _Tp1 > &__lhs, _Tp2 __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator< (const _Pointer_adapter< _Tp1 > &__lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<class _CharT , class _Alloc >
bool operator< (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT,
_Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator< (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
• template<typename _Value , typename _Int , typename _St >
bool operator< (const character< _Value, _Int, _St > &lhs, const character< _Value, _Int, _St > &rhs)
• template<class _CharT , class _Alloc >
bool operator< (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)

Generated by Doxygen
386

• template<class _Tp , class _Alloc >


bool operator< (const slist< _Tp, _Alloc > &_SL1, const slist< _Tp, _Alloc > &_SL2)
• template<typename _Cond >
bool operator< (const throw_value_base< _Cond > &__a, const throw_value_base< _Cond > &__b)
• template<class _CharT , class _Traits , class _Alloc >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__o, const
rope< _CharT, _Alloc > &__r)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::beta_distribution< _RealType > &__x)
• template<typename _UIntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::hypergeometric_distribution< _UIntType > &__x)
• template<size_t _Dimen, typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::normal_mv_distribution< _Dimen, _RealType > &__x)
• template<typename _UIntType , size_t __m, size_t __pos1, size_t __sl1, size_t __sl2, size_t __sr1, size_t __sr2, uint32_t __msk1, uint32_t
__msk2, uint32_t __msk3, uint32_t __msk4, uint32_t __parity1, uint32_t __parity2, uint32_t __parity3, uint32_t __parity4, typename _CharT
, typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const ←-
__gnu_cxx::simd_fast_mersenne_twister_engine< _UIntType, __m, __pos1, __sl1, __sl2, __sr1, __sr2, __msk1,
__msk2, __msk3, __msk4, __parity1, __parity2, __parity3, __parity4 > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::triangular_distribution< _RealType > &__x)
• template<std::size_t _Dimen, typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::uniform_inside_sphere_distribution< _Dimen, _RealType > &__x)
• template<std::size_t _Dimen, typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::uniform_on_sphere_distribution< _Dimen, _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::von_mises_distribution< _RealType > &__x)
• template<typename _CharT , typename _Traits , typename _StoreT >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
_Pointer_adapter< _StoreT > &__p)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
arcsine_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
hoyt_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
k_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
logistic_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
nakagami_distribution< _RealType > &__x)

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 387

• template<typename _RealType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
pareto_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
rice_distribution< _RealType > &__x)
• std::ostream & operator<< (std::ostream &os, const annotate_base &__b)
• template<typename _Tp1 , typename _Tp2 >
bool operator<= (_Tp1 __lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator<= (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const __versa_string< _←-
CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator<= (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator<= (const _CharT ∗__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _Tp >
bool operator<= (const _Pointer_adapter< _Tp > &__lhs, const _Pointer_adapter< _Tp > &__rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator<= (const _Pointer_adapter< _Tp1 > &__lhs, _Tp2 __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator<= (const _Pointer_adapter< _Tp1 > &__lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<class _CharT , class _Alloc >
bool operator<= (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT,
_Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator<= (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &←-
__y)
• template<class _CharT , class _Alloc >
bool operator<= (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
• template<class _Tp , class _Alloc >
bool operator<= (const slist< _Tp, _Alloc > &_SL1, const slist< _Tp, _Alloc > &_SL2)
• template<typename _Iterator , typename _Container >
constexpr std::__detail::__synth3way_t< _Iterator > operator<=> (const __normal_iterator< _Iterator, _←-
Container > &__lhs, const __normal_iterator< _Iterator, _Container > &__rhs) noexcept(noexcept(std::__←-
detail::__synth3way(__lhs.base(), __rhs.base())))
• template<typename _IteratorL , typename _IteratorR , typename _Container >
constexpr std::__detail::__synth3way_t< _IteratorR, _IteratorL > operator<=> (const __normal_←-
iterator< _IteratorL, _Container > &__lhs, const __normal_iterator< _IteratorR, _Container > &__rhs)
noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base())))
• template<typename _Tp1 , typename _Tp2 >
bool operator== (_Tp1 __lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<size_t _Dimen, typename _RealType >
bool operator== (const __gnu_cxx::normal_mv_distribution< _Dimen, _RealType > &__d1, const __gnu_cxx←-
::normal_mv_distribution< _Dimen, _RealType > &__d2)
• template<typename _UIntType , size_t __m, size_t __pos1, size_t __sl1, size_t __sl2, size_t __sr1, size_t __sr2, uint32_t __msk1, uint32_t
__msk2, uint32_t __msk3, uint32_t __msk4, uint32_t __parity1, uint32_t __parity2, uint32_t __parity3, uint32_t __parity4>
bool operator== (const __gnu_cxx::simd_fast_mersenne_twister_engine< _UIntType, __m, __pos1, __sl1, __←-
sl2, __sr1, __sr2, __msk1, __msk2, __msk3, __msk4, __parity1, __parity2, __parity3, __parity4 > &__lhs, const
__gnu_cxx::simd_fast_mersenne_twister_engine< _UIntType, __m, __pos1, __sl1, __sl2, __sr1, __sr2, __msk1,
__msk2, __msk3, __msk4, __parity1, __parity2, __parity3, __parity4 > &__rhs)
• template<typename _Tp , typename _Poolp >
bool operator== (const __mt_alloc< _Tp, _Poolp > &, const __mt_alloc< _Tp, _Poolp > &)

Generated by Doxygen
388

• template<typename _Iterator , typename _Container >


requires requires { { __lhs.base() == __rhs.base() } -> std::convertible_to<bool>; }
constexpr bool operator== (const __normal_iterator< _Iterator, _Container > &__lhs, const __normal_iterator<
_Iterator, _Container > &__rhs) noexcept(noexcept(__lhs.base()==__rhs.base()))
• template<typename _IteratorL , typename _IteratorR , typename _Container >
requires requires { { __lhs.base() == __rhs.base() } -> std::convertible_to<bool>; }
constexpr bool operator== (const __normal_iterator< _IteratorL, _Container > &__lhs, const __normal_←-
iterator< _IteratorR, _Container > &__rhs) noexcept(noexcept(__lhs.base()==__rhs.base()))
• template<typename _Tp >
bool operator== (const __pool_alloc< _Tp > &, const __pool_alloc< _Tp > &)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator== (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const __versa_string< _CharT,
_Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator== (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator== (const _CharT ∗__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _Tp >
bool operator== (const _Pointer_adapter< _Tp > &__lhs, const _Pointer_adapter< _Tp > &__rhs)
• template<typename _Tp >
bool operator== (const _Pointer_adapter< _Tp > &__lhs, int __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator== (const _Pointer_adapter< _Tp1 > &__lhs, _Tp2 __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator== (const _Pointer_adapter< _Tp1 > &__lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<class _CharT , class _Alloc >
bool operator== (const _Rope_char_ptr_proxy< _CharT, _Alloc > &__x, const _Rope_char_ptr_proxy< _CharT,
_Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator== (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT,
_Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator== (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
• template<typename _Tp1 , typename _Tp2 >
bool operator== (const bitmap_allocator< _Tp1 > &, const bitmap_allocator< _Tp2 > &) throw ()
• template<typename _Value , typename _Int , typename _St >
bool operator== (const character< _Value, _Int, _St > &lhs, const character< _Value, _Int, _St > &rhs)
• template<class _Key , class _Tp , class _HashFn , class _EqlKey , class _Alloc >
bool operator== (const hash_map< _Key, _Tp, _HashFn, _EqlKey, _Alloc > &__hm1, const hash_map< _Key,
_Tp, _HashFn, _EqlKey, _Alloc > &__hm2)
• template<class _Key , class _Tp , class _HF , class _EqKey , class _Alloc >
bool operator== (const hash_multimap< _Key, _Tp, _HF, _EqKey, _Alloc > &__hm1, const hash_multimap<
_Key, _Tp, _HF, _EqKey, _Alloc > &__hm2)
• template<class _Val , class _HashFcn , class _EqualKey , class _Alloc >
bool operator== (const hash_multiset< _Val, _HashFcn, _EqualKey, _Alloc > &__hs1, const hash_multiset<
_Val, _HashFcn, _EqualKey, _Alloc > &__hs2)
• template<class _Value , class _HashFcn , class _EqualKey , class _Alloc >
bool operator== (const hash_set< _Value, _HashFcn, _EqualKey, _Alloc > &__hs1, const hash_set< _Value,
_HashFcn, _EqualKey, _Alloc > &__hs2)
• template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
bool operator== (const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht1, const hashtable< _Val, _Key,
_HF, _Ex, _Eq, _All > &__ht2)

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 389

• template<class _CharT , class _Alloc >


bool operator== (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
• template<class _Tp , class _Alloc >
bool operator== (const slist< _Tp, _Alloc > &_SL1, const slist< _Tp, _Alloc > &_SL2)
• template<typename _Tp , typename _Cond >
bool operator== (const throw_allocator_base< _Tp, _Cond > &, const throw_allocator_base< _Tp, _Cond > &)
• template<typename _Cond >
bool operator== (const throw_value_base< _Cond > &__a, const throw_value_base< _Cond > &__b)
• template<typename _Tp >
bool operator== (int __lhs, const _Pointer_adapter< _Tp > &__rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator> (_Tp1 __lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator> (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const __versa_string< _CharT,
_Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator> (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator> (const _CharT ∗__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _Tp >
bool operator> (const _Pointer_adapter< _Tp > &__lhs, const _Pointer_adapter< _Tp > &__rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator> (const _Pointer_adapter< _Tp1 > &__lhs, _Tp2 __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator> (const _Pointer_adapter< _Tp1 > &__lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<class _CharT , class _Alloc >
bool operator> (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT,
_Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator> (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
• template<class _CharT , class _Alloc >
bool operator> (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
• template<class _Tp , class _Alloc >
bool operator> (const slist< _Tp, _Alloc > &_SL1, const slist< _Tp, _Alloc > &_SL2)
• template<typename _Tp1 , typename _Tp2 >
bool operator>= (_Tp1 __lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator>= (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const __versa_string< _←-
CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator>= (const __versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
bool operator>= (const _CharT ∗__lhs, const __versa_string< _CharT, _Traits, _Alloc, _Base > &__rhs)
• template<typename _Tp >
bool operator>= (const _Pointer_adapter< _Tp > &__lhs, const _Pointer_adapter< _Tp > &__rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator>= (const _Pointer_adapter< _Tp1 > &__lhs, _Tp2 __rhs)
• template<typename _Tp1 , typename _Tp2 >
bool operator>= (const _Pointer_adapter< _Tp1 > &__lhs, const _Pointer_adapter< _Tp2 > &__rhs)
• template<class _CharT , class _Alloc >
bool operator>= (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT,
_Alloc > &__y)

Generated by Doxygen
390

• template<class _CharT , class _Alloc >


bool operator>= (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &←-
__y)
• template<class _CharT , class _Alloc >
bool operator>= (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
• template<class _Tp , class _Alloc >
bool operator>= (const slist< _Tp, _Alloc > &_SL1, const slist< _Tp, _Alloc > &_SL2)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::beta_distribution< _RealType > &__x)
• template<typename _UIntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::hypergeometric_distribution< _UIntType > &__x)
• template<size_t _Dimen, typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::normal_mv_distribution< _Dimen, _RealType > &__x)
• template<typename _UIntType , size_t __m, size_t __pos1, size_t __sl1, size_t __sl2, size_t __sr1, size_t __sr2, uint32_t __msk1, uint32_t
__msk2, uint32_t __msk3, uint32_t __msk4, uint32_t __parity1, uint32_t __parity2, uint32_t __parity3, uint32_t __parity4, typename _CharT
, typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::simd_fast_mersenne_twister_engine< _UIntType, __m, __pos1, __sl1, __sl2, __sr1, __sr2, __msk1, __←-
msk2, __msk3, __msk4, __parity1, __parity2, __parity3, __parity4 > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::triangular_distribution< _RealType > &__x)
• template<std::size_t _Dimen, typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::uniform_inside_sphere_distribution< _Dimen, _RealType > &__x)
• template<std::size_t _Dimen, typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::uniform_on_sphere_distribution< _Dimen, _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, __gnu_←-
cxx::von_mises_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, arcsine_←-
distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, hoyt_←-
distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, k_←-
distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, logistic_←-
distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, nakagami←-
_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, pareto_←-
distribution< _RealType > &__x)

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 391

• template<typename _RealType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, rice_←-
distribution< _RealType > &__x)
• template<typename _Tp , typename _Integer >
_Tp power (_Tp __x, _Integer __n)
• template<typename _Tp , typename _Integer , typename _MonoidOperation >
_Tp power (_Tp __x, _Integer __n, _MonoidOperation __monoid_op)
• template<typename _InputIterator , typename _RandomAccessIterator >
_RandomAccessIterator random_sample (_InputIterator __first, _InputIterator __last, _RandomAccessIterator ←-
__out_first, _RandomAccessIterator __out_last)
• template<typename _InputIterator , typename _RandomAccessIterator , typename _RandomNumberGenerator >
_RandomAccessIterator random_sample (_InputIterator __first, _InputIterator __last, _RandomAccessIterator ←-
__out_first, _RandomAccessIterator __out_last, _RandomNumberGenerator &__rand)
• template<typename _ForwardIterator , typename _OutputIterator , typename _Distance >
_OutputIterator random_sample_n (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __out, const
_Distance __n)
• template<typename _ForwardIterator , typename _OutputIterator , typename _Distance , typename _RandomNumberGenerator >
_OutputIterator random_sample_n (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __out, const
_Distance __n, _RandomNumberGenerator &__rand)
• void rotate (_Rope_iterator< char, __STL_DEFAULT_ALLOCATOR(char)> __first, _Rope_iterator< char, __←-
STL_DEFAULT_ALLOCATOR(char)> __middle, _Rope_iterator< char, __STL_DEFAULT_ALLOCATOR(char)>
__last)
• double stod (const __vstring &__str, std::size_t ∗__idx=0)
• double stod (const __wvstring &__str, std::size_t ∗__idx=0)
• float stof (const __vstring &__str, std::size_t ∗__idx=0)
• float stof (const __wvstring &__str, std::size_t ∗__idx=0)
• int stoi (const __vstring &__str, std::size_t ∗__idx=0, int __base=10)
• int stoi (const __wvstring &__str, std::size_t ∗__idx=0, int __base=10)
• long stol (const __vstring &__str, std::size_t ∗__idx=0, int __base=10)
• long stol (const __wvstring &__str, std::size_t ∗__idx=0, int __base=10)
• long double stold (const __vstring &__str, std::size_t ∗__idx=0)
• long double stold (const __wvstring &__str, std::size_t ∗__idx=0)
• long long stoll (const __vstring &__str, std::size_t ∗__idx=0, int __base=10)
• long long stoll (const __wvstring &__str, std::size_t ∗__idx=0, int __base=10)
• unsigned long stoul (const __vstring &__str, std::size_t ∗__idx=0, int __base=10)
• unsigned long stoul (const __wvstring &__str, std::size_t ∗__idx=0, int __base=10)
• unsigned long long stoull (const __vstring &__str, std::size_t ∗__idx, int __base=10)
• unsigned long long stoull (const __wvstring &__str, std::size_t ∗__idx=0, int __base=10)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
void swap (__versa_string< _CharT, _Traits, _Alloc, _Base > &__lhs, __versa_string< _CharT, _Traits, _Alloc,
_Base > &__rhs)
• template<typename _Tp >
void swap (_ExtPtr_allocator< _Tp > &__larg, _ExtPtr_allocator< _Tp > &__rarg)
• template<class _CharT , class __Alloc >
void swap (_Rope_char_ref_proxy< _CharT, __Alloc > __a, _Rope_char_ref_proxy< _CharT, __Alloc > __b)
• template<class _Key , class _Tp , class _HashFn , class _EqlKey , class _Alloc >
void swap (hash_map< _Key, _Tp, _HashFn, _EqlKey, _Alloc > &__hm1, hash_map< _Key, _Tp, _HashFn,
_EqlKey, _Alloc > &__hm2)
• template<class _Key , class _Tp , class _HashFn , class _EqlKey , class _Alloc >
void swap (hash_multimap< _Key, _Tp, _HashFn, _EqlKey, _Alloc > &__hm1, hash_multimap< _Key, _Tp,
_HashFn, _EqlKey, _Alloc > &__hm2)

Generated by Doxygen
392

• template<class _Val , class _HashFcn , class _EqualKey , class _Alloc >


void swap (hash_multiset< _Val, _HashFcn, _EqualKey, _Alloc > &__hs1, hash_multiset< _Val, _HashFcn,
_EqualKey, _Alloc > &__hs2)
• template<class _Val , class _HashFcn , class _EqualKey , class _Alloc >
void swap (hash_set< _Val, _HashFcn, _EqualKey, _Alloc > &__hs1, hash_set< _Val, _HashFcn, _EqualKey,
_Alloc > &__hs2)
• template<class _Val , class _Key , class _HF , class _Extract , class _EqKey , class _All >
void swap (hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht1, hashtable< _Val, _Key, _HF, _Extract,
_EqKey, _All > &__ht2)
• template<class _CharT , class _Alloc >
void swap (rope< _CharT, _Alloc > &__x, rope< _CharT, _Alloc > &__y)
• template<class _Tp , class _Alloc >
void swap (slist< _Tp, _Alloc > &__x, slist< _Tp, _Alloc > &__y)
• template<typename _Cond >
void swap (throw_value_base< _Cond > &__a, throw_value_base< _Cond > &__b)
• __vstring to_string (double __val)
• __vstring to_string (float __val)
• __vstring to_string (int __val)
• __vstring to_string (long __val)
• __vstring to_string (long double __val)
• __vstring to_string (long long __val)
• __vstring to_string (unsigned __val)
• __vstring to_string (unsigned long __val)
• __vstring to_string (unsigned long long __val)
• __wvstring to_wstring (double __val)
• __wvstring to_wstring (float __val)
• __wvstring to_wstring (int __val)
• __wvstring to_wstring (long __val)
• __wvstring to_wstring (long double __val)
• __wvstring to_wstring (long long __val)
• __wvstring to_wstring (unsigned __val)
• __wvstring to_wstring (unsigned long __val)
• __wvstring to_wstring (unsigned long long __val)
• template<typename _InputIter , typename _Size , typename _ForwardIter >
std::pair< _InputIter, _ForwardIter > uninitialized_copy_n (_InputIter __first, _Size __count, _ForwardIter __←-
result)

Variables

• const _Lock_policy __default_lock_policy


• template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > identity_element (_Rope_Concat_fn< _CharT, _Alloc >)

4.1.1 Detailed Description

GNU extensions for public use.

4.1.2 Typedef Documentation

__int_traits

template<typename _Tp >


using __gnu_cxx::__int_traits
Convenience alias for __numeric_traits<integer-type>.

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 393

4.1.3 Function Documentation

__static_pointer_cast() [1/2]

template<typename _ToType , typename _FromType >


_ToType __gnu_cxx::__static_pointer_cast (
_FromType ∗ __arg) [inline]
Casting operations for cases where _FromType is a standard pointer. _ToType can be a standard or non-standard
pointer.

__static_pointer_cast() [2/2]

template<typename _ToType , typename _FromType >


_ToType __gnu_cxx::__static_pointer_cast (
const _FromType & __arg) [inline]
Casting operations for cases where _FromType is not a standard pointer. _ToType can be a standard or non-standard
pointer. Given that _FromType is not a pointer, it must have a get() method that returns the standard pointer equivalent
of the address it points to, and must have an element_type typedef which names the type it points to.

_Bit_scan_forward()

std::size_t __gnu_cxx::_Bit_scan_forward (
std::size_t __num) [inline]
Generic Version of the bsf instruction.
Referenced by __gnu_cxx::bitmap_allocator< _Tp >::_M_allocate_single_object().

operator"!=() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator!= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test difference of two strings.

Parameters
__lhs First string.
__rhs Second string.

Returns

True if __lhs.compare(__rhs) != 0. False otherwise.

operator"!=() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator!= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const _CharT ∗ __rhs) [inline]
Test difference of string and C string.

Generated by Doxygen
394

Parameters

__lhs String.
__rhs C string.

Returns

True if __lhs.compare(__rhs) != 0. False otherwise.

operator"!=() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator!= (
const _CharT ∗ __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test difference of C string and string.

Parameters

__lhs C string.
__rhs String.

Returns

True if __rhs.compare(__lhs) != 0. False otherwise.

operator+() [1/5]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > __gnu_cxx::operator+ (
_CharT __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs)
Concatenate character and string.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with __lhs followed by __rhs.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append(), __gnu_cxx::__versa_string< _CharT, _Traits, _Allo
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::reserve(), and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 395

operator+() [2/5]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > __gnu_cxx::operator+ (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
_CharT __rhs)
Concatenate string and character.

Generated by Doxygen
396

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with __lhs followed by __rhs.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append(), __gnu_cxx::__versa_string< _CharT, _Traits, _Allo
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::reserve(), and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base

operator+() [3/5]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > __gnu_cxx::operator+ (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs)
Concatenate two strings.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with value of __lhs followed by __rhs.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append(), __gnu_cxx::__versa_string< _CharT, _Traits, _Allo
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

operator+() [4/5]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > __gnu_cxx::operator+ (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const _CharT ∗ __rhs)
Concatenate string and C string.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with __lhs followed by __rhs.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 397

operator+() [5/5]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base > __gnu_cxx::operator+ (
const _CharT ∗ __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs)
Concatenate C string and string.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with value of __lhs followed by __rhs.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

operator<() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator< (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if string precedes string.

Parameters
__lhs First string.
__rhs Second string.

Returns

True if __lhs precedes __rhs. False otherwise.

operator<() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator< (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const _CharT ∗ __rhs) [inline]
Test if string precedes C string.

Parameters

__lhs String.
__rhs C string.

Returns

True if __lhs precedes __rhs. False otherwise.

Generated by Doxygen
398

operator<() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator< (
const _CharT ∗ __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if C string precedes string.

Parameters

__lhs C string.
__rhs String.

Returns

True if __lhs precedes __rhs. False otherwise.

operator<=() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator<= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if string doesn't follow string.

Parameters
__lhs First string.
__rhs Second string.

Returns

True if __lhs doesn't follow __rhs. False otherwise.

operator<=() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator<= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const _CharT ∗ __rhs) [inline]
Test if string doesn't follow C string.

Parameters

__lhs String.
__rhs C string.

Returns

True if __lhs doesn't follow __rhs. False otherwise.

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 399

operator<=() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator<= (
const _CharT ∗ __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if C string doesn't follow string.

Parameters

__lhs C string.
__rhs String.

Returns

True if __lhs doesn't follow __rhs. False otherwise.

operator==() [1/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator== (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test equivalence of two strings.

Parameters
__lhs First string.
__rhs Second string.

Returns

True if __lhs.compare(__rhs) == 0. False otherwise.

operator==() [2/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator== (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const _CharT ∗ __rhs) [inline]
Test equivalence of string and C string.

Parameters

__lhs String.
__rhs C string.

Returns

True if __lhs.compare(__rhs) == 0. False otherwise.

Generated by Doxygen
400

operator==() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator== (
const _CharT ∗ __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test equivalence of C string and string.

Parameters

__lhs C string.
__rhs String.

Returns

True if __rhs.compare(__lhs) == 0. False otherwise.

operator==() [4/4]

template<typename _Tp >


bool __gnu_cxx::operator== (
const _Pointer_adapter< _Tp > & __lhs,
const _Pointer_adapter< _Tp > & __rhs) [inline]
Comparison operators for _Pointer_adapter defer to the base class' comparison operators, when possible.

operator>() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator> (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if string follows string.

Parameters
__lhs First string.
__rhs Second string.

Returns

True if __lhs follows __rhs. False otherwise.

operator>() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator> (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const _CharT ∗ __rhs) [inline]
Test if string follows C string.

Generated by Doxygen
4.1 __gnu_cxx Namespace Reference 401

Parameters

__lhs String.
__rhs C string.

Returns

True if __lhs follows __rhs. False otherwise.

operator>() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator> (
const _CharT ∗ __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if C string follows string.

Parameters

__lhs C string.
__rhs String.

Returns

True if __lhs follows __rhs. False otherwise.

operator>=() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator>= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if string doesn't precede string.

Parameters
__lhs First string.
__rhs Second string.

Returns

True if __lhs doesn't precede __rhs. False otherwise.

operator>=() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator>= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
const _CharT ∗ __rhs) [inline]
Test if string doesn't precede C string.

Generated by Doxygen
402

Parameters

__lhs String.
__rhs C string.

Returns

True if __lhs doesn't precede __rhs. False otherwise.

operator>=() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
bool __gnu_cxx::operator>= (
const _CharT ∗ __lhs,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Test if C string doesn't precede string.

Parameters

__lhs C string.
__rhs String.

Returns

True if __lhs doesn't precede __rhs. False otherwise.

swap()

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
void __gnu_cxx::swap (
__versa_string< _CharT, _Traits, _Alloc, _Base > & __lhs,
__versa_string< _CharT, _Traits, _Alloc, _Base > & __rhs) [inline]
Swap contents of two strings.

Parameters
__lhs First string.
__rhs Second string.

Exchanges the contents of __lhs and __rhs in constant time.

4.2 __gnu_cxx::__detail Namespace Reference


Classes

• class __mini_vector
• class _Bitmap_counter
• class _Ffit_finder

Generated by Doxygen
4.2 __gnu_cxx::__detail Namespace Reference 403

Enumerations

• enum { _S_max_rope_depth }
• enum { bits_per_byte , bits_per_block }
• enum _Tag { _S_leaf , _S_concat , _S_substringfn , _S_function }

Functions

• void __bit_allocate (std::size_t ∗__pbmap, std::size_t __pos) throw ()


• void __bit_free (std::size_t ∗__pbmap, std::size_t __pos) throw ()
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
_ForwardIterator __lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare
__comp)
• template<typename _AddrPair >
std::size_t __num_bitmaps (_AddrPair __ap)
• template<typename _AddrPair >
std::size_t __num_blocks (_AddrPair __ap)

4.2.1 Detailed Description

Implementation details not part of the namespace __gnu_cxx interface.

4.2.2 Function Documentation

__bit_allocate()

void __gnu_cxx::__detail::__bit_allocate (
std::size_t ∗ __pbmap,
std::size_t __pos) throw ( ) [inline]
Mark a memory address as allocated by re-setting the corresponding bit in the bit-map.
Referenced by __gnu_cxx::bitmap_allocator< _Tp >::_M_allocate_single_object().

__bit_free()

void __gnu_cxx::__detail::__bit_free (
std::size_t ∗ __pbmap,
std::size_t __pos) throw ( ) [inline]
Mark a memory address as free by setting the corresponding bit in the bit-map.
Referenced by __gnu_cxx::bitmap_allocator< _Tp >::_M_deallocate_single_object().

__num_bitmaps()

template<typename _AddrPair >


std::size_t __gnu_cxx::__detail::__num_bitmaps (
_AddrPair __ap) [inline]
The number of Bit-maps pointed to by the address pair passed to the function.
References __num_blocks().
Referenced by __gnu_cxx::bitmap_allocator< _Tp >::_M_allocate_single_object(), and __gnu_cxx::bitmap_allocator< _Tp >::_M_deallo

__num_blocks()

template<typename _AddrPair >


std::size_t __gnu_cxx::__detail::__num_blocks (
_AddrPair __ap) [inline]
The number of Blocks pointed to by the address pair passed to the function.
Referenced by __num_bitmaps().

Generated by Doxygen
404

4.3 __gnu_cxx::typelist Namespace Reference


Functions

• template<typename Fn , typename Typelist >


void apply (Fn &, Typelist)
• template<typename Fn , typename Typelist >
void apply_generator (Fn &fn, Typelist)
• template<typename Fn , typename TypelistT , typename TypelistV >
void apply_generator (Fn &fn, TypelistT, TypelistV)
• template<typename Gn , typename Typelist >
void apply_generator (Gn &, Typelist)
• template<typename Gn , typename TypelistT , typename TypelistV >
void apply_generator (Gn &, TypelistT, TypelistV)

4.3.1 Detailed Description

GNU typelist extensions for public compile-time use.

4.3.2 Function Documentation

apply_generator()

template<typename Gn , typename Typelist >


void __gnu_cxx::typelist::apply_generator (
Gn & ,
Typelist )
Apply all typelist types to generator functor.

4.4 __gnu_debug Namespace Reference


Classes

• class _After_nth_from
• struct _BeforeBeginHelper
• class _Equal_to
• class _Not_equal_to
• class _Safe_container
• class _Safe_forward_list
• class _Safe_iterator
• class _Safe_iterator_base
• class _Safe_local_iterator
• class _Safe_local_iterator_base
• class _Safe_node_sequence
• class _Safe_sequence
• class _Safe_sequence_base
• class _Safe_unordered_container
• class _Safe_unordered_container_base
• class _Safe_vector
• struct _Sequence_traits
• class basic_string

Generated by Doxygen
4.4 __gnu_debug Namespace Reference 405

Typedefs

• typedef basic_string< char > string


• typedef basic_string< char16_t > u16string
• typedef basic_string< char32_t > u32string
• typedef basic_string< wchar_t > wstring

Enumerations

• enum _Debug_msg_id {
__msg_valid_range , __msg_insert_singular , __msg_insert_different , __msg_erase_bad ,
__msg_erase_different , __msg_subscript_oob , __msg_empty , __msg_unpartitioned ,
__msg_unpartitioned_pred , __msg_unsorted , __msg_unsorted_pred , __msg_not_heap ,
__msg_not_heap_pred , __msg_bad_bitset_write , __msg_bad_bitset_read , __msg_bad_bitset_flip ,
__msg_self_splice , __msg_splice_alloc , __msg_splice_bad , __msg_splice_other ,
__msg_splice_overlap , __msg_init_singular , __msg_init_copy_singular , __msg_init_const_singular ,
__msg_copy_singular , __msg_bad_deref , __msg_bad_inc , __msg_bad_dec ,
__msg_iter_subscript_oob , __msg_advance_oob , __msg_retreat_oob , __msg_iter_compare_bad ,
__msg_compare_different , __msg_iter_order_bad , __msg_order_different , __msg_distance_bad ,
__msg_distance_different , __msg_deref_istream , __msg_inc_istream , __msg_output_ostream ,
__msg_deref_istreambuf , __msg_inc_istreambuf , __msg_insert_after_end , __msg_erase_after_bad ,
__msg_valid_range2 , __msg_local_iter_compare_bad , __msg_non_empty_range , __msg_self_move←-
_assign ,
__msg_bucket_index_oob , __msg_valid_load_factor , __msg_equal_allocs , __msg_insert_range_←-
from_self ,
__msg_irreflexive_ordering }
• enum _Distance_precision {
__dp_none , __dp_equality , __dp_sign , __dp_sign_max_size ,
__dp_exact }

Functions

• template<typename _Iterator >


constexpr _Iterator __base (_Iterator __it)
• template<typename _Iterator , typename _Sequence >
_Iterator __base (const _Safe_iterator< _Iterator, _Sequence, std::random_access_iterator_tag > &__it)
• template<typename _Iterator >
constexpr auto __base (const std::move_iterator< _Iterator > &__it) -> decltype(std::make_move_iterator(__←-
base(__it.base())))
• template<typename _Iterator , typename _Sequence >
constexpr std::reverse_iterator< _Iterator > __base (const std::reverse_iterator< _Safe_iterator< _Iterator, _←-
Sequence, std::random_access_iterator_tag > > &__it)
• template<typename _InputIterator , typename _Size >
constexpr bool __can_advance (_InputIterator, _Size)
• template<typename _InputIterator , typename _Diff >
constexpr bool __can_advance (_InputIterator, const std::pair< _Diff, _Distance_precision > &, int)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _Size >
bool __can_advance (const _Safe_iterator< _Iterator, _Sequence, _Category > &, _Size)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _Diff >
bool __can_advance (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const std::pair< _Diff,
_Distance_precision > &, int)
• template<typename _Iterator , typename _Size >
constexpr bool __can_advance (const std::move_iterator< _Iterator > &__it, _Size __n)

Generated by Doxygen
406

• template<typename _Iterator , typename _Diff >


constexpr bool __can_advance (const std::move_iterator< _Iterator > &__it, const std::pair< _Diff,
_Distance_precision > &__dist, int __way)
• template<typename _Iterator , typename _Size >
constexpr bool __can_advance (const std::reverse_iterator< _Iterator > &__it, _Size __n)
• template<typename _Iterator , typename _Diff >
constexpr bool __can_advance (const std::reverse_iterator< _Iterator > &__it, const std::pair< _Diff,
_Distance_precision > &__dist, int __way)
• template<typename _ForwardIterator , typename _Tp >
constexpr bool __check_partitioned_lower (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__←-
value)
• template<typename _ForwardIterator , typename _Tp , typename _Pred >
constexpr bool __check_partitioned_lower (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__←-
value, _Pred __pred)
• template<typename _ForwardIterator , typename _Tp >
constexpr bool __check_partitioned_upper (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__←-
value)
• template<typename _ForwardIterator , typename _Tp , typename _Pred >
constexpr bool __check_partitioned_upper (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__←-
value, _Pred __pred)
• template<typename _Iterator >
constexpr bool __check_singular (_Iterator const &)
• template<typename _Tp >
constexpr bool __check_singular (_Tp ∗const &__ptr)
• bool __check_singular_aux (const _Safe_iterator_base ∗__x)
• bool __check_singular_aux (const class _Safe_iterator_base ∗)
• bool __check_singular_aux (const void ∗)
• template<typename _InputIterator >
constexpr bool __check_sorted (const _InputIterator &__first, const _InputIterator &__last)
• template<typename _InputIterator , typename _Predicate >
constexpr bool __check_sorted (const _InputIterator &__first, const _InputIterator &__last, _Predicate __pred)
• template<typename _ForwardIterator , typename _Predicate >
constexpr bool __check_sorted_aux (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred,
std::forward_iterator_tag)
• template<typename _ForwardIterator >
constexpr bool __check_sorted_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
• template<typename _InputIterator , typename _Predicate >
constexpr bool __check_sorted_aux (const _InputIterator &, const _InputIterator &, _Predicate, std::input_iterator_tag)
• template<typename _InputIterator >
constexpr bool __check_sorted_aux (const _InputIterator &, const _InputIterator &, std::input_iterator_tag)
• template<typename _InputIterator1 , typename _InputIterator2 >
constexpr bool __check_sorted_set (const _InputIterator1 &__first, const _InputIterator1 &__last, const _Input←-
Iterator2 &)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Predicate >
constexpr bool __check_sorted_set (const _InputIterator1 &__first, const _InputIterator1 &__last, const _Input←-
Iterator2 &, _Predicate __pred)
• template<typename _InputIterator , typename _Predicate >
constexpr bool __check_sorted_set_aux (const _InputIterator &, const _InputIterator &, _Predicate, std::__←-
false_type)
• template<typename _InputIterator >
constexpr bool __check_sorted_set_aux (const _InputIterator &, const _InputIterator &, std::__false_type)

Generated by Doxygen
4.4 __gnu_debug Namespace Reference 407

• template<typename _InputIterator , typename _Predicate >


constexpr bool __check_sorted_set_aux (const _InputIterator &__first, const _InputIterator &__last, _Predicate
__pred, std::__true_type)
• template<typename _InputIterator >
constexpr bool __check_sorted_set_aux (const _InputIterator &__first, const _InputIterator &__last, std::__←-
true_type)
• template<typename _CharT , typename _Integer >
const _CharT ∗ __check_string (const _CharT ∗__s, _Integer __n, const char ∗__file, unsigned int __line, const
char ∗__function)
• template<typename _CharT >
const _CharT ∗ __check_string (const _CharT ∗__s, const char ∗__file, unsigned int __line, const char ∗__←-
function)
• template<typename _InputIterator >
_InputIterator __check_valid_range (const _InputIterator &__first, const _InputIterator &__last, const char ∗_←-
_file, unsigned int __line, const char ∗__function)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, _InputIterator __other,
_InputIterator __other_end)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _Integral >
bool __foreign_iterator_aux (const _Safe_iterator< _Iterator, _Sequence, _Category > &, _Integral, _Integral,
std::__true_type)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator_aux (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, _InputIterator
__other, _InputIterator __other_end, std::__false_type)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator , typename _OtherSequence , type-
name _OtherCategory >
bool __foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _Safe_iterator<
_OtherIterator, _OtherSequence, _OtherCategory > &, const _Safe_iterator< _OtherIterator, _OtherSequence,
_OtherCategory > &)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const _Input←-
Iterator &__other, const _InputIterator &__other_end)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator >
bool __foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const
_Safe_iterator< _OtherIterator, _Sequence, _Category > &__other, const _Safe_iterator< _OtherIterator,
_Sequence, _Category > &)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator_aux3 (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _InputIterator
&, const _InputIterator &, std::__false_type)
• template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator_aux3 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const _Input←-
Iterator &__other, const _InputIterator &__other_end, std::__true_type)
• template<typename _Iterator , typename _Sequence , typename _Category >
bool __foreign_iterator_aux4 (const _Safe_iterator< _Iterator, _Sequence, _Category > &,...)
• template<typename _Iterator , typename _Sequence , typename _Category >
bool __foreign_iterator_aux4 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const typename
_Sequence::value_type ∗__other)
• template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (_Iterator __lhs, _Iterator __rhs)
• template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (_Iterator __lhs, _Iterator __rhs, std::input_iterator_tag)
• template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (_Iterator __lhs, _Iterator __rhs, std::random_access_iterator_tag)

Generated by Doxygen
408

• template<typename _Iterator >


constexpr _Distance_traits< _Iterator >::__type __get_distance (const std::move_iterator< _Iterator > &__first,
const std::move_iterator< _Iterator > &__last)
• template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (const std::reverse_iterator< _Iterator > &_←-
_first, const std::reverse_iterator< _Iterator > &__last)
• template<typename _Iterator >
constexpr bool __is_irreflexive (_Iterator __it)
• template<typename _Iterator , typename _Pred >
constexpr bool __is_irreflexive_pred (_Iterator __it, _Pred __pred)
• template<typename _Iterator >
constexpr _Iterator __unsafe (_Iterator __it)
• template<typename _Iterator , typename _Sequence >
_Iterator __unsafe (const _Safe_iterator< _Iterator, _Sequence > &__it)
• template<typename _Iterator , typename _Sequence >
_Iterator __unsafe (const _Safe_local_iterator< _Iterator, _Sequence > &__it)
• template<typename _Iterator >
constexpr auto __unsafe (const std::move_iterator< _Iterator > &__it) -> decltype(std::make_move_iterator(←-
__unsafe(__it.base())))
• template<typename _Iterator >
constexpr auto __unsafe (const std::reverse_iterator< _Iterator > &__it) -> decltype(std::__make_reverse_←-
iterator(__unsafe(__it.base())))
• template<typename _InputIterator >
constexpr bool __valid_range (_InputIterator __first, _InputIterator __last)
• template<typename _InputIterator >
constexpr bool __valid_range (_InputIterator __first, _InputIterator __last, typename _Distance_traits< _Input←-
Iterator >::__type &__dist)
• template<typename _Iterator , typename _Sequence , typename _Category >
bool __valid_range (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _Safe_iterator< _←-
Iterator, _Sequence, _Category > &)
• template<typename _Iterator , typename _Sequence , typename _Category >
bool __valid_range (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _Safe_iterator< _Iterator,
_Sequence, _Category > &, typename _Distance_traits< _Iterator >::__type &)
• template<typename _Iterator , typename _Sequence >
bool __valid_range (const _Safe_local_iterator< _Iterator, _Sequence > &, const _Safe_local_iterator< _←-
Iterator, _Sequence > &)
• template<typename _Iterator , typename _Sequence >
bool __valid_range (const _Safe_local_iterator< _Iterator, _Sequence > &, const _Safe_local_iterator< _Iterator,
_Sequence > &, typename _Distance_traits< _Iterator >::__type &)
• template<typename _Iterator >
constexpr bool __valid_range (const std::move_iterator< _Iterator > &__first, const std::move_iterator< _←-
Iterator > &__last, typename _Distance_traits< _Iterator >::__type &__dist)
• template<typename _Iterator >
constexpr bool __valid_range (const std::reverse_iterator< _Iterator > &__first, const std::reverse_iterator< ←-
_Iterator > &__last, typename _Distance_traits< _Iterator >::__type &__dist)
• template<typename _InputIterator >
constexpr bool __valid_range_aux (_InputIterator __first, _InputIterator __last, std::__false_type)
• template<typename _InputIterator >
constexpr bool __valid_range_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
• template<typename _InputIterator >
constexpr bool __valid_range_aux (_InputIterator __first, _InputIterator __last, std::random_access_iterator_tag)

Generated by Doxygen
4.4 __gnu_debug Namespace Reference 409

• template<typename _InputIterator >


constexpr bool __valid_range_aux (_InputIterator __first, _InputIterator __last, typename _Distance_traits< _←-
InputIterator >::__type &__dist, std::__false_type)
• template<typename _Integral >
constexpr bool __valid_range_aux (_Integral, _Integral, std::__true_type)
• template<typename _Integral >
constexpr bool __valid_range_aux (_Integral, _Integral, typename _Distance_traits< _Integral >::__type &__←-
dist, std::__true_type)
• template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_istream< _CharT, _Traits > & getline (std::basic_istream< _CharT, _Traits > &__is, basic_string<
_CharT, _Traits, _Allocator > &__str)
• template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_istream< _CharT, _Traits > & getline (std::basic_istream< _CharT, _Traits > &__is, basic_string<
_CharT, _Traits, _Allocator > &__str, _CharT __delim)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator!= (const _CharT ∗__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator!= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator!= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits,
_Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (_CharT __lhs, const basic_string< _CharT, _Traits, _←-
Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const _CharT ∗__lhs, const basic_string< _CharT, _←-
Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const basic_string< _CharT, _Traits, _Allocator > &_←-
_lhs, _CharT __rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const basic_string< _CharT, _Traits, _Allocator > &_←-
_lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const basic_string< _CharT, _Traits, _Allocator > &_←-
_lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator< (const _CharT ∗__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator< (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator< (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits,
_Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
basic_string< _CharT, _Traits, _Allocator > &__str)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator<= (const _CharT ∗__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator<= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator<= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits,
_Allocator > &__rhs)

Generated by Doxygen
410

• template<typename _CharT , typename _Traits , typename _Allocator >


bool operator== (const _CharT ∗__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator== (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator== (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits,
_Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator> (const _CharT ∗__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator> (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator> (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits,
_Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator>= (const _CharT ∗__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator>= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
bool operator>= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits,
_Allocator > &__rhs)
• template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
basic_string< _CharT, _Traits, _Allocator > &__str)
• template<typename _CharT , typename _Traits , typename _Allocator >
void swap (basic_string< _CharT, _Traits, _Allocator > &__lhs, basic_string< _CharT, _Traits, _Allocator > &←-
__rhs)

4.4.1 Detailed Description

GNU debug classes for public use.

4.4.2 Typedef Documentation

u16string

typedef basic_string<char16_t> __gnu_debug::u16string


A string of char16_t.

u32string

typedef basic_string<char32_t> __gnu_debug::u32string


A string of char32_t.

4.4.3 Enumeration Type Documentation

_Distance_precision

enum __gnu_debug::_Distance_precision
The precision to which we can calculate the distance between two iterators.

Generated by Doxygen
4.4 __gnu_debug Namespace Reference 411

4.4.4 Function Documentation

__base()

template<typename _Iterator >


_Iterator __gnu_debug::__base (
_Iterator __it) [inline], [constexpr]
Helper function to extract base iterator of random access safe iterator in order to reduce performance impact of debug
mode. Limited to random access iterator because it is the only category for which it is possible to check for correct
iterators order in the __valid_range function thanks to the < operator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_before_dereferenceable().

__check_singular()

template<typename _Tp >


bool __gnu_debug::__check_singular (
_Tp ∗const & __ptr) [inline], [constexpr]
Non-NULL pointers are nonsingular.

__check_singular_aux()

bool __gnu_debug::__check_singular_aux (
const _Safe_iterator_base ∗ __x) [inline]
Iterators that derive from _Safe_iterator_base can be determined singular or non-singular.
References __gnu_debug::_Safe_iterator_base::_M_singular().

__check_string() [1/2]

template<typename _CharT , typename _Integer >


const _CharT ∗ __gnu_debug::__check_string (
const _CharT ∗ __s,
_Integer __n,
const char ∗ __file,
unsigned int __line,
const char ∗ __function) [inline]
Checks that __s is non-NULL or __n == 0, and then returns __s.

__check_string() [2/2]

template<typename _CharT >


const _CharT ∗ __gnu_debug::__check_string (
const _CharT ∗ __s,
const char ∗ __file,
unsigned int __line,
const char ∗ __function) [inline]
Checks that __s is non-NULL and then returns __s.

__foreign_iterator_aux2() [1/2]

template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator ,


typename _OtherSequence , typename _OtherCategory >
bool __gnu_debug::__foreign_iterator_aux2 (
const _Safe_iterator< _Iterator, _Sequence, _Category > & ,
const _Safe_iterator< _OtherIterator, _OtherSequence, _OtherCategory > & ,
const _Safe_iterator< _OtherIterator, _OtherSequence, _OtherCategory > & ) [inline]
Handle debug iterators from different types of container.

Generated by Doxygen
412

__foreign_iterator_aux2() [2/2]

template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator >


bool __gnu_debug::__foreign_iterator_aux2 (
const _Safe_iterator< _Iterator, _Sequence, _Category > & __it,
const _Safe_iterator< _OtherIterator, _Sequence, _Category > & __other,
const _Safe_iterator< _OtherIterator, _Sequence, _Category > & ) [inline]
Handle debug iterators from the same type of container.

__get_distance()

template<typename _Iterator >


_Distance_traits< _Iterator >::__type __gnu_debug::__get_distance (
_Iterator __lhs,
_Iterator __rhs,
std::random_access_iterator_tag ) [inline], [constexpr]
Determine the distance between two iterators with some known precision.
References std::make_pair().

__valid_range() [1/3]

template<typename _InputIterator >


bool __gnu_debug::__valid_range (
_InputIterator __first,
_InputIterator __last,
typename _Distance_traits< _InputIterator >::__type & __dist) [inline], [constexpr]
Don't know what these iterators are, or if they are even iterators (we may get an integral type for InputIterator), so see if
they are integral and pass them on to the next phase otherwise.
References __valid_range_aux().

__valid_range() [2/3]

template<typename _Iterator , typename _Sequence , typename _Category >


bool __gnu_debug::__valid_range (
const _Safe_iterator< _Iterator, _Sequence, _Category > & __first,
const _Safe_iterator< _Iterator, _Sequence, _Category > & __last,
typename _Distance_traits< _Iterator >::__type & __dist) [inline]
Safe iterators know how to check if they form a valid range.

__valid_range() [3/3]

template<typename _Iterator , typename _Sequence >


bool __gnu_debug::__valid_range (
const _Safe_local_iterator< _Iterator, _Sequence > & __first,
const _Safe_local_iterator< _Iterator, _Sequence > & __last,
typename _Distance_traits< _Iterator >::__type & __dist_info) [inline]
Safe local iterators know how to check if they form a valid range.

__valid_range_aux() [1/2]

template<typename _InputIterator >


bool __gnu_debug::__valid_range_aux (
_InputIterator __first,
_InputIterator __last,
std::__false_type ) [inline], [constexpr]

Generated by Doxygen
4.5 __gnu_internal Namespace Reference 413

We have iterators, so figure out what kind of iterators they are to see if we can check the range ahead of time.
References std::__iterator_category(), and __valid_range_aux().

__valid_range_aux() [2/2]

template<typename _Integral >


bool __gnu_debug::__valid_range_aux (
_Integral ,
_Integral ,
std::__true_type ) [inline], [constexpr]
We say that integral types for a valid range, and defer to other routines to realize what to do with integral types instead
of iterators.
Referenced by __valid_range(), and __valid_range_aux().

4.5 __gnu_internal Namespace Reference


4.5.1 Detailed Description

GNU implemenation details, not for public use or export. Used only when anonymous namespaces cannot be substi-
tuted.

4.6 __gnu_parallel Namespace Reference


Classes

• struct __accumulate_binop_reduct
• struct __accumulate_selector
• struct __adjacent_difference_selector
• struct __adjacent_find_selector
• class __binder1st
• class __binder2nd
• struct __count_if_selector
• struct __count_selector
• struct __fill_selector
• struct __find_first_of_selector
• struct __find_if_selector
• struct __for_each_selector
• struct __generate_selector
• struct __generic_find_selector
• struct __generic_for_each_selector
• struct __identity_selector
• struct __inner_product_selector
• struct __max_element_reduct
• struct __min_element_reduct
• struct __mismatch_selector
• struct __multiway_merge_3_variant_sentinel_switch
• struct __multiway_merge_3_variant_sentinel_switch< true, _RAIterIterator, _RAIter3, _DifferenceTp, _Compare >
• struct __multiway_merge_4_variant_sentinel_switch
• struct __multiway_merge_4_variant_sentinel_switch< true, _RAIterIterator, _RAIter3, _DifferenceTp, _Compare >
• struct __multiway_merge_k_variant_sentinel_switch
• struct __multiway_merge_k_variant_sentinel_switch< false, __stable, _RAIterIterator, _RAIter3, _DifferenceTp, _Compare >
• struct __replace_if_selector
• struct __replace_selector

Generated by Doxygen
414

• struct __transform1_selector
• struct __transform2_selector
• class __unary_negate
• struct _DRandomShufflingGlobalData
• struct _DRSSorterPU
• struct _DummyReduct
• class _EqualFromLess
• struct _EqualTo
• class _GuardedIterator
• class _IteratorPair
• class _IteratorTriple
• struct _Job
• struct _Less
• class _Lexicographic
• class _LexicographicReverse
• class _LoserTree
• class _LoserTree< false, _Tp, _Compare >
• class _LoserTreeBase
• class _LoserTreePointer
• class _LoserTreePointer< false, _Tp, _Compare >
• class _LoserTreePointerBase
• class _LoserTreePointerUnguarded
• class _LoserTreePointerUnguarded< false, _Tp, _Compare >
• class _LoserTreePointerUnguardedBase
• struct _LoserTreeTraits
• class _LoserTreeUnguarded
• class _LoserTreeUnguarded< false, _Tp, _Compare >
• class _LoserTreeUnguardedBase
• struct _Multiplies
• struct _Nothing
• struct _Piece
• struct _Plus
• struct _PMWMSSortingData
• class _PseudoSequence
• class _PseudoSequenceIterator
• struct _QSBThreadLocal
• class _RandomNumber
• class _RestrictedBoundedConcurrentQueue
• struct _SamplingSorter
• struct _SamplingSorter< false, _RAIter, _StrictWeakOrdering >
• struct _Settings
• struct _SplitConsistently
• struct _SplitConsistently< false, _RAIter, _Compare, _SortingPlacesIterator >
• struct _SplitConsistently< true, _RAIter, _Compare, _SortingPlacesIterator >
• struct balanced_quicksort_tag
• struct balanced_tag
• struct constant_size_blocks_tag
• struct default_parallel_tag
• struct equal_split_tag
• struct exact_tag
• struct find_tag

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 415

• struct growing_blocks_tag
• struct multiway_mergesort_exact_tag
• struct multiway_mergesort_sampling_tag
• struct multiway_mergesort_tag
• struct omp_loop_static_tag
• struct omp_loop_tag
• struct parallel_tag
• struct quicksort_tag
• struct sampling_tag
• struct sequential_tag
• struct unbalanced_tag

Typedefs

• typedef unsigned short _BinIndex


• typedef int64_t _CASable
• typedef uint64_t _SequenceIndex
• typedef uint16_t _ThreadIndex

Enumerations

• enum _AlgorithmStrategy { heuristic , force_sequential , force_parallel }


• enum _FindAlgorithm { GROWING_BLOCKS , CONSTANT_SIZE_BLOCKS , EQUAL_SPLIT }
• enum _MultiwayMergeAlgorithm { LOSER_TREE }
• enum _Parallelism {
sequential , parallel_unbalanced , parallel_balanced , parallel_omp_loop ,
parallel_omp_loop_static , parallel_taskqueue }
• enum _PartialSumAlgorithm { RECURSIVE , LINEAR }
• enum _SortAlgorithm { MWMS , QS , QS_BALANCED }
• enum _SplittingAlgorithm { SAMPLING , EXACT }

Functions

• template<typename _Tp >


_Tp __add_omp (volatile _Tp ∗__ptr, _Tp __addend)
• template<typename _RAIter , typename _DifferenceTp >
void __calc_borders (_RAIter __elements, _DifferenceTp __length, _DifferenceTp ∗__off)
• template<typename _Tp >
bool __cas_omp (volatile _Tp ∗__ptr, _Tp __comparand, _Tp __replacement)
• template<typename _Tp >
bool __compare_and_swap (volatile _Tp ∗__ptr, _Tp __comparand, _Tp __replacement)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator __copy_tail (std::pair< _IIter, _IIter > __b, std::pair< _IIter, _IIter > __e, _OutputIterator __r)
• void __decode2 (_CASable __x, int &__a, int &__b)
• template<typename _RAIter , typename _DifferenceTp >
void __determine_samples (_PMWMSSortingData< _RAIter > ∗__sd, _DifferenceTp __num_samples)
• _CASable __encode2 (int __a, int __b)
• template<typename _DifferenceType , typename _OutputIterator >
_OutputIterator __equally_split (_DifferenceType __n, _ThreadIndex __num_threads, _OutputIterator __s)
• template<typename _DifferenceType >
_DifferenceType __equally_split_point (_DifferenceType __n, _ThreadIndex __num_threads, _ThreadIndex __←-
thread_no)

Generated by Doxygen
416

• template<typename _Tp >


_Tp __fetch_and_add (volatile _Tp ∗__ptr, _Tp __addend)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >
std::pair< _RAIter1, _RAIter2 > __find_template (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _←-
Pred __pred, _Selector __selector)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >
std::pair< _RAIter1, _RAIter2 > __find_template (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _←-
Pred __pred, _Selector __selector, constant_size_blocks_tag)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >
std::pair< _RAIter1, _RAIter2 > __find_template (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _←-
Pred __pred, _Selector __selector, equal_split_tag)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >
std::pair< _RAIter1, _RAIter2 > __find_template (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _←-
Pred __pred, _Selector __selector, growing_blocks_tag)
• template<typename _IIter , typename _UserOp , typename _Functionality , typename _Red , typename _Result >
_UserOp __for_each_template_random_access (_IIter __begin, _IIter __end, _UserOp __user_op, _Functionality
&__functionality, _Red __reduction, _Result __reduction_start, _Result &__output, typename std::iterator_traits<
_IIter >::difference_type __bound, _Parallelism __parallelism_tag)
• template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __for_each_template_random_access_ed (_RAIter __begin, _RAIter __end, _Op __o, _Fu &__f, _Red __r,
_Result __base, _Result &__output, typename std::iterator_traits< _RAIter >::difference_type __bound)
• template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __for_each_template_random_access_omp_loop (_RAIter __begin, _RAIter __end, _Op __o, _Fu &__f, _←-
Red __r, _Result __base, _Result &__output, typename std::iterator_traits< _RAIter >::difference_type __bound)
• template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __for_each_template_random_access_omp_loop_static (_RAIter __begin, _RAIter __end, _Op __o, _Fu
&__f, _Red __r, _Result __base, _Result &__output, typename std::iterator_traits< _RAIter >::difference_type
__bound)
• template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __for_each_template_random_access_workstealing (_RAIter __begin, _RAIter __end, _Op __op, _Fu &←-
__f, _Red __r, _Result __base, _Result &__output, typename std::iterator_traits< _RAIter >::difference_type
__bound)
• _ThreadIndex __get_max_threads ()
• bool __is_parallel (const _Parallelism __p)
• template<typename _IIter , typename _Compare >
bool __is_sorted (_IIter __begin, _IIter __end, _Compare __comp)
• template<typename _RAIter , typename _Compare >
_RAIter __median_of_three_iterators (_RAIter __a, _RAIter __b, _RAIter __c, _Compare __comp)
• template<typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare >
_OutputIterator __merge_advance (_RAIter1 &__begin1, _RAIter1 __end1, _RAIter2 &__begin2, _RAIter2 __←-
end2, _OutputIterator __target, _DifferenceTp __max_length, _Compare __comp)
• template<typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare >
_OutputIterator __merge_advance_movc (_RAIter1 &__begin1, _RAIter1 __end1, _RAIter2 &__begin2, _RAIter2
__end2, _OutputIterator __target, _DifferenceTp __max_length, _Compare __comp)
• template<typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare >
_OutputIterator __merge_advance_usual (_RAIter1 &__begin1, _RAIter1 __end1, _RAIter2 &__begin2, _RAIter2
__end2, _OutputIterator __target, _DifferenceTp __max_length, _Compare __comp)
• template<typename _RAIter1 , typename _RAIter3 , typename _Compare >
_RAIter3 __parallel_merge_advance (_RAIter1 &__begin1, _RAIter1 __end1, _RAIter1 &__begin2, _RAIter1 _←-
_end2, _RAIter3 __target, typename std::iterator_traits< _RAIter1 >::difference_type __max_length, _Compare
__comp)

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 417

• template<typename _RAIter1 , typename _RAIter2 , typename _RAIter3 , typename _Compare >


_RAIter3 __parallel_merge_advance (_RAIter1 &__begin1, _RAIter1 __end1, _RAIter2 &__begin2, _RAIter2 _←-
_end2, _RAIter3 __target, typename std::iterator_traits< _RAIter1 >::difference_type __max_length, _Compare
__comp)
• template<typename _RAIter , typename _Compare >
void __parallel_nth_element (_RAIter __begin, _RAIter __nth, _RAIter __end, _Compare __comp)
• template<typename _RAIter , typename _Compare >
void __parallel_partial_sort (_RAIter __begin, _RAIter __middle, _RAIter __end, _Compare __comp)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator __parallel_partial_sum (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation
__bin_op)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator __parallel_partial_sum_basecase (_IIter __begin, _IIter __end, _OutputIterator __result, _←-
BinaryOperation __bin_op, typename std::iterator_traits< _IIter >::value_type __value)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator __parallel_partial_sum_linear (_IIter __begin, _IIter __end, _OutputIterator __result, _Binary←-
Operation __bin_op, typename std::iterator_traits< _IIter >::difference_type __n)
• template<typename _RAIter , typename _Predicate >
std::iterator_traits< _RAIter >::difference_type __parallel_partition (_RAIter __begin, _RAIter __end, _Predicate
__pred, _ThreadIndex __num_threads)
• template<typename _RAIter , typename _RandomNumberGenerator >
void __parallel_random_shuffle (_RAIter __begin, _RAIter __end, _RandomNumberGenerator __←-
rng=_RandomNumber())
• template<typename _RAIter , typename _RandomNumberGenerator >
void __parallel_random_shuffle_drs (_RAIter __begin, _RAIter __end, typename std::iterator_traits< _RAIter >←-
::difference_type __n, _ThreadIndex __num_threads, _RandomNumberGenerator &__rng)
• template<typename _RAIter , typename _RandomNumberGenerator >
void __parallel_random_shuffle_drs_pu (_DRSSorterPU< _RAIter, _RandomNumberGenerator > ∗__pus)
• template<typename _IIter , typename _OutputIterator , typename _Compare >
_OutputIterator __parallel_set_difference (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _←-
OutputIterator __result, _Compare __comp)
• template<typename _IIter , typename _OutputIterator , typename _Compare >
_OutputIterator __parallel_set_intersection (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _←-
OutputIterator __result, _Compare __comp)
• template<typename _IIter , typename _OutputIterator , typename _Operation >
_OutputIterator __parallel_set_operation (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _←-
OutputIterator __result, _Operation __op)
• template<typename _IIter , typename _OutputIterator , typename _Compare >
_OutputIterator __parallel_set_symmetric_difference (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter ←-
__end2, _OutputIterator __result, _Compare __comp)
• template<typename _IIter , typename _OutputIterator , typename _Compare >
_OutputIterator __parallel_set_union (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _Output←-
Iterator __result, _Compare __comp)
• template<bool __stable, typename _RAIter , typename _Compare , typename _Parallelism >
void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, _Parallelism __parallelism)
• template<bool __stable, typename _RAIter , typename _Compare >
void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, balanced_quicksort_tag __parallelism)
• template<bool __stable, typename _RAIter , typename _Compare >
void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, default_parallel_tag __parallelism)
• template<bool __stable, typename _RAIter , typename _Compare >
void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, multiway_mergesort_exact_tag __←-
parallelism)

Generated by Doxygen
418

• template<bool __stable, typename _RAIter , typename _Compare >


void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, multiway_mergesort_sampling_tag
__parallelism)
• template<bool __stable, typename _RAIter , typename _Compare >
void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, multiway_mergesort_tag __←-
parallelism)
• template<bool __stable, typename _RAIter , typename _Compare >
void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, parallel_tag __parallelism)
• template<bool __stable, typename _RAIter , typename _Compare >
void __parallel_sort (_RAIter __begin, _RAIter __end, _Compare __comp, quicksort_tag __parallelism)
• template<typename _RAIter , typename _Compare >
void __parallel_sort_qs (_RAIter __begin, _RAIter __end, _Compare __comp, _ThreadIndex __num_threads)
• template<typename _RAIter , typename _Compare >
void __parallel_sort_qs_conquer (_RAIter __begin, _RAIter __end, _Compare __comp, _ThreadIndex __num←-
_threads)
• template<typename _RAIter , typename _Compare >
std::iterator_traits< _RAIter >::difference_type __parallel_sort_qs_divide (_RAIter __begin, _RAIter __←-
end, _Compare __comp, typename std::iterator_traits< _RAIter >::difference_type __pivot_rank, typename
std::iterator_traits< _RAIter >::difference_type __num_samples, _ThreadIndex __num_threads)
• template<typename _RAIter , typename _Compare >
void __parallel_sort_qsb (_RAIter __begin, _RAIter __end, _Compare __comp, _ThreadIndex __num_threads)
• template<typename _IIter , class _OutputIterator >
_OutputIterator __parallel_unique_copy (_IIter __first, _IIter __last, _OutputIterator __result)
• template<typename _IIter , class _OutputIterator , class _BinaryPredicate >
_OutputIterator __parallel_unique_copy (_IIter __first, _IIter __last, _OutputIterator __result, _BinaryPredicate
__binary_pred)
• template<typename _RAIter , typename _Compare >
void __qsb_conquer (_QSBThreadLocal< _RAIter > ∗∗__tls, _RAIter __begin, _RAIter __end, _Compare __←-
comp, _ThreadIndex __iam, _ThreadIndex __num_threads, bool __parent_wait)
• template<typename _RAIter , typename _Compare >
std::iterator_traits< _RAIter >::difference_type __qsb_divide (_RAIter __begin, _RAIter __end, _Compare __←-
comp, _ThreadIndex __num_threads)
• template<typename _RAIter , typename _Compare >
void __qsb_local_sort_with_helping (_QSBThreadLocal< _RAIter > ∗∗__tls, _Compare &__comp, _ThreadIndex
__iam, bool __wait)
• template<typename _RandomNumberGenerator >
int __random_number_pow2 (int __logp, _RandomNumberGenerator &__rng)
• template<typename _Size >
_Size __rd_log2 (_Size __n)
• template<typename _Tp >
_Tp __round_up_to_pow2 (_Tp __x)
• template<typename __RAIter1 , typename __RAIter2 , typename _Pred >
__RAIter1 __search_template (__RAIter1 __begin1, __RAIter1 __end1, __RAIter2 __begin2, __RAIter2 __end2,
_Pred __pred)
• template<bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare
>
_RAIter3 __sequential_multiway_merge (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3
__target, const typename std::iterator_traits< typename std::iterator_traits< _RAIterIterator >::value_type←-
::first_type >::value_type &__sentinel, _DifferenceTp __length, _Compare __comp)
• template<typename _RAIter , typename _RandomNumberGenerator >
void __sequential_random_shuffle (_RAIter __begin, _RAIter __end, _RandomNumberGenerator &__rng)
• template<typename _IIter >
void __shrink (std::vector< _IIter > &__os_starts, size_t &__count_to_two, size_t &__range_length)

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 419

• template<typename _IIter >


void __shrink_and_double (std::vector< _IIter > &__os_starts, size_t &__count_to_two, size_t &__range_length,
const bool __make_twice)
• void __yield ()
• template<typename _IIter , typename _FunctorType >
size_t list_partition (const _IIter __begin, const _IIter __end, _IIter ∗__starts, size_t ∗__lengths, const int __←-
num_parts, _FunctorType &__f, int __oversampling=0)
• template<typename _Tp >
const _Tp & max (const _Tp &__a, const _Tp &__b)
• template<typename _Tp >
const _Tp & min (const _Tp &__a, const _Tp &__b)
• template<typename _RanSeqs , typename _RankType , typename _RankIterator , typename _Compare >
void multiseq_partition (_RanSeqs __begin_seqs, _RanSeqs __end_seqs, _RankType __rank, _RankIterator ←-
__begin_offsets, _Compare __comp=std::less< typename std::iterator_traits< typename std::iterator_traits< ←-
_RanSeqs >::value_type::first_type >::value_type >())
• template<typename _Tp , typename _RanSeqs , typename _RankType , typename _Compare >
_Tp multiseq_selection (_RanSeqs __begin_seqs, _RanSeqs __end_seqs, _RankType __rank, _RankType &←-
__offset, _Compare __comp=std::less< _Tp >())
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut ←-
__target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::exact_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut ←-
__target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::sampling_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut ←-
__target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut ←-
__target, _DifferenceTp __length, _Compare __comp, default_parallel_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut ←-
__target, _DifferenceTp __length, _Compare __comp, parallel_tag __tag=parallel_tag(0))
• template<template< typename _RAI, typename _Cp > class iterator, typename _RAIterIterator , typename _RAIter3 , typename _←-
DifferenceTp , typename _Compare >
_RAIter3 multiway_merge_3_variant (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __←-
target, _DifferenceTp __length, _Compare __comp)
• template<template< typename _RAI, typename _Cp > class iterator, typename _RAIterIterator , typename _RAIter3 , typename _←-
DifferenceTp , typename _Compare >
_RAIter3 multiway_merge_4_variant (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __←-
target, _DifferenceTp __length, _Compare __comp)
• template<bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType >
void multiway_merge_exact_splitting (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _Difference←-
Type __length, _DifferenceType __total_length, _Compare __comp, std::vector< std::pair< _DifferenceType, _←-
DifferenceType > > ∗__pieces)
• template<typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare >
_RAIter3 multiway_merge_loser_tree (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 _←-
_target, _DifferenceTp __length, _Compare __comp)
• template<typename _UnguardedLoserTree , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare
>
_RAIter3 multiway_merge_loser_tree_sentinel (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _←-
RAIter3 __target, const typename std::iterator_traits< typename std::iterator_traits< _RAIterIterator >::value_←-
type::first_type >::value_type &__sentinel, _DifferenceTp __length, _Compare __comp)

Generated by Doxygen
420

• template<typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare >
_RAIter3 multiway_merge_loser_tree_unguarded (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, ←-
_RAIter3 __target, const typename std::iterator_traits< typename std::iterator_traits< _RAIterIterator >::value←-
_type::first_type >::value_type &__sentinel, _DifferenceTp __length, _Compare __comp)
• template<bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType >
void multiway_merge_sampling_splitting (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _←-
DifferenceType __length, _DifferenceType __total_length, _Compare __comp, std::vector< std::pair< _←-
DifferenceType, _DifferenceType > > ∗__pieces)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, ←-
_RAIterOut __target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::exact_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _←-
RAIterOut __target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, ←-
_RAIterOut __target, _DifferenceTp __length, _Compare __comp, default_parallel_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, ←-
_RAIterOut __target, _DifferenceTp __length, _Compare __comp, parallel_tag __tag=parallel_tag(0))
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, ←-
_RAIterOut __target, _DifferenceTp __length, _Compare __comp, sampling_tag __tag)
• template<bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Splitter ,
typename _Compare >
_RAIter3 parallel_multiway_merge (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __←-
target, _Splitter __splitter, _DifferenceTp __length, _Compare __comp, _ThreadIndex __num_threads)
• template<bool __stable, bool __exact, typename _RAIter , typename _Compare >
void parallel_sort_mwms (_RAIter __begin, _RAIter __end, _Compare __comp, _ThreadIndex __num_threads)
• template<bool __stable, bool __exact, typename _RAIter , typename _Compare >
void parallel_sort_mwms_pu (_PMWMSSortingData< _RAIter > ∗__sd, _Compare &__comp)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _←-
RAIterOut __target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::exact_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _←-
RAIterOut __target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _←-
RAIterOut __target, _DifferenceTp __length, _Compare __comp, default_parallel_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _←-
RAIterOut __target, _DifferenceTp __length, _Compare __comp, parallel_tag __tag=parallel_tag(0))
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _←-
RAIterOut __target, _DifferenceTp __length, _Compare __comp, sampling_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __←-
seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::exact_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __←-
seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, __gnu_parallel::sequential_tag)

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 421

• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >


_RAIterOut stable_multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __←-
seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, default_parallel_tag __tag)
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __←-
seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, parallel_tag __tag=parallel_tag(0))
• template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare >
_RAIterOut stable_multiway_merge_sentinels (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __←-
seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, sampling_tag __tag)

Variables

• static const int _CASable_bits


• static const _CASable _CASable_mask

4.6.1 Detailed Description

GNU parallel code for public use.

4.6.2 Typedef Documentation

_BinIndex

typedef unsigned short __gnu_parallel::_BinIndex


Type to hold the index of a bin.
Since many variables of this type are allocated, it should be chosen as small as possible.

_CASable

typedef int64_t __gnu_parallel::_CASable


Longest compare-and-swappable integer type on this platform.

_SequenceIndex

typedef uint64_t __gnu_parallel::_SequenceIndex


Unsigned integer to index __elements. The total number of elements for each algorithm must fit into this type.

_ThreadIndex

typedef uint16_t __gnu_parallel::_ThreadIndex


Unsigned integer to index a thread number. The maximum thread number (for each processor) must fit into this type.

4.6.3 Enumeration Type Documentation

_AlgorithmStrategy

enum __gnu_parallel::_AlgorithmStrategy
Strategies for run-time algorithm selection:

_FindAlgorithm

enum __gnu_parallel::_FindAlgorithm
Find algorithms:

Generated by Doxygen
422

_MultiwayMergeAlgorithm

enum __gnu_parallel::_MultiwayMergeAlgorithm
Merging algorithms:

_Parallelism

enum __gnu_parallel::_Parallelism
Run-time equivalents for the compile-time tags.

Enumerator
sequential Not parallel.
parallel_unbalanced Parallel unbalanced (equal-sized chunks).
parallel_balanced Parallel balanced (work-stealing).
parallel_omp_loop Parallel with OpenMP dynamic load-balancing.
parallel_omp_loop_static Parallel with OpenMP static load-balancing.
parallel_taskqueue Parallel with OpenMP taskqueue construct.

_PartialSumAlgorithm

enum __gnu_parallel::_PartialSumAlgorithm
Partial sum algorithms: recursive, linear.

_SortAlgorithm

enum __gnu_parallel::_SortAlgorithm
Sorting algorithms:

_SplittingAlgorithm

enum __gnu_parallel::_SplittingAlgorithm
Sorting/merging algorithms: sampling, __exact.

4.6.4 Function Documentation

__calc_borders()

template<typename _RAIter , typename _DifferenceTp >


void __gnu_parallel::__calc_borders (
_RAIter __elements,
_DifferenceTp __length,
_DifferenceTp ∗ __off)
Precalculate __advances for Knuth-Morris-Pratt algorithm.

Parameters

__elements Begin iterator of sequence to search for.


__length Length of sequence to search for.
__off Returned __offsets.

Referenced by __search_template().

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 423

__compare_and_swap()

template<typename _Tp >


bool __gnu_parallel::__compare_and_swap (
volatile _Tp ∗ __ptr,
_Tp __comparand,
_Tp __replacement) [inline]
Compare-and-swap.
Compare ∗__ptr and __comparand. If equal, let ∗__ptr=__replacement and return true, return false
otherwise.

Parameters
__ptr Pointer to signed integer.
__comparand Compare value.
__replacement Replacement value.

Referenced by __parallel_partition(), __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_back(), and


__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_front().

__decode2()

void __gnu_parallel::__decode2 (
_CASable __x,
int & __a,
int & __b) [inline]
Decode two integers from one gnu_parallel::_CASable.

Parameters

_←- __gnu_parallel::_CASable to decode integers from.


_x
_←- First integer, to be decoded from the most-significant _CASable_bits/2 bits of __x.
_a
_←- Second integer, to be encoded in the least-significant _CASable_bits/2 bits of __x.
_b

See also

__encode2

References _CASable_bits, and _CASable_mask.


Referenced by __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_back(), __gnu_parallel::_RestrictedBoundedConcurr
and __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::push_front().

__determine_samples()

template<typename _RAIter , typename _DifferenceTp >


void __gnu_parallel::__determine_samples (
_PMWMSSortingData< _RAIter > ∗ __sd,
_DifferenceTp __num_samples)
Select _M_samples from a sequence.

Generated by Doxygen
424

Parameters
__sd Pointer to algorithm data. _Result will be placed in __sd->_M_samples.
__num_samples Number of _M_samples to select.

References __equally_split(), __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_samples, __gnu_parallel::_PMWMSSortingData<


and __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_starts.

__encode2()

_CASable __gnu_parallel::__encode2 (
int __a,
int __b) [inline]
Encode two integers into one gnu_parallel::_CASable.

Parameters

_←- First integer, to be encoded in the most-significant _CASable_bits/2 bits.


_a
_←- Second integer, to be encoded in the least-significant _CASable_bits/2 bits.
_b

Returns

value encoding __a and __b.

See also

__decode2

References _CASable_bits.
Referenced by __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::_RestrictedBoundedConcurrentQueue(),
__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_back(), __gnu_parallel::_RestrictedBoundedConcurrentQueue< _T
and __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::push_front().

__equally_split()

template<typename _DifferenceType , typename _OutputIterator >


_OutputIterator __gnu_parallel::__equally_split (
_DifferenceType __n,
_ThreadIndex __num_threads,
_OutputIterator __s)
function to split a sequence into parts of almost equal size.
The resulting sequence __s of length __num_threads+1 contains the splitting positions when splitting the range [0,__n)
into parts of almost equal size (plus minus 1). The first entry is 0, the last one n. There may result empty parts.

Parameters

__n Number of elements


__num_threads Number of parts
__s Splitters

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 425

Returns

End of __splitter sequence, i.e. __s+__num_threads+1

Referenced by __determine_samples(), __find_template(), __parallel_partial_sum_linear(), __parallel_unique_copy(),


__search_template(), and multiway_merge_exact_splitting().

__equally_split_point()

template<typename _DifferenceType >


_DifferenceType __gnu_parallel::__equally_split_point (
_DifferenceType __n,
_ThreadIndex __num_threads,
_ThreadIndex __thread_no)
function to split a sequence into parts of almost equal size.
Returns the position of the splitting point between thread number __thread_no (included) and thread number __thread←-
_no+1 (excluded).

Parameters

__n Number of elements


__num_threads Number of parts
__thread_no Number of threads

Returns

splitting point

Referenced by __for_each_template_random_access_ed().

__fetch_and_add()

template<typename _Tp >


_Tp __gnu_parallel::__fetch_and_add (
volatile _Tp ∗ __ptr,
_Tp __addend) [inline]
Add a value to a variable, atomically.

Parameters
__ptr Pointer to a signed integer.
__addend Value to add.

Referenced by __find_template(), __for_each_template_random_access_workstealing(), __parallel_partition(), and


__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::push_front().

__find_template() [1/4]

template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >


std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__find_template (
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred,
_Selector __selector) [inline]
Parallel std::find, switch for different algorithms.

Generated by Doxygen
426

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence. Must have same length as first sequence.
__pred Find predicate.
__selector _Functionality (e. g. std::find_if(), std::equal(),...)

Returns

Place of finding in both sequences.

References __find_template(), __gnu_parallel::_Settings::get(), and std::make_pair().


Referenced by __find_template().

__find_template() [2/4]

template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >


std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__find_template (
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred,
_Selector __selector,
constant_size_blocks_tag )
Parallel std::find, constant block size variant.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence. Second __sequence must have same length as first sequence.
__pred Find predicate.
__selector _Functionality (e. g. std::find_if(), std::equal(),...)

Returns

Place of finding in both sequences.

See also

__gnu_parallel::_Settings::find_sequential_search_size
__gnu_parallel::_Settings::find_block_size There are two main differences between the growing blocks and the
constant-size blocks variants.

1. For GB, the block size grows; for CSB, the block size is fixed.
2. For GB, the blocks are allocated dynamically; for CSB, the blocks are allocated in a predetermined manner,
namely spacial round-robin.

References _GLIBCXX_CALL, __gnu_parallel::_Settings::find_initial_block_size, __gnu_parallel::_Settings::find_sequential_search_size,


std::pair< _T1, _T2 >::first, __gnu_parallel::_Settings::get(), and std::min().

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 427

__find_template() [3/4]

template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >


std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__find_template (
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred,
_Selector __selector,
equal_split_tag )
Parallel std::find, equal splitting variant.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence. Second __sequence must have same length as first sequence.
__pred Find predicate.
__selector _Functionality (e. g. std::find_if(), std::equal(),...)

Returns

Place of finding in both sequences.

References __equally_split(), and _GLIBCXX_CALL.

__find_template() [4/4]

template<typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector >


std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__find_template (
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred,
_Selector __selector,
growing_blocks_tag )
Parallel std::find, growing block size variant.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence. Second __sequence must have same length as first sequence.
__pred Find predicate.
__selector _Functionality (e. g. std::find_if(), std::equal(),...)

Returns

Place of finding in both sequences.

Generated by Doxygen
428

See also

__gnu_parallel::_Settings::find_sequential_search_size
__gnu_parallel::_Settings::find_scale_factor

There are two main differences between the growing blocks and the constant-size blocks variants.

1. For GB, the block size grows; for CSB, the block size is fixed.

2. For GB, the blocks are allocated dynamically; for CSB, the blocks are allocated in a predetermined manner,
namely spacial round-robin.

References __fetch_and_add(), _GLIBCXX_CALL, __gnu_parallel::_Settings::find_scale_factor, __gnu_parallel::_Settings::find_sequentia


std::pair< _T1, _T2 >::first, __gnu_parallel::_Settings::get(), std::max(), and std::min().

__for_each_template_random_access()

template<typename _IIter , typename _UserOp , typename _Functionality , typename _Red , typename


_Result >
_UserOp __gnu_parallel::__for_each_template_random_access (
_IIter __begin,
_IIter __end,
_UserOp __user_op,
_Functionality & __functionality,
_Red __reduction,
_Result __reduction_start,
_Result & __output,
typename std::iterator_traits< _IIter >::difference_type __bound,
_Parallelism __parallelism_tag)
Chose the desired algorithm by evaluating __parallelism_tag.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__user_op A user-specified functor (comparator, predicate, associative operator,...)
__functionality functor to process an element with __user_op (depends on desired functionality, e. g.
accumulate, for_each,...
__reduction Reduction functor.
__reduction_start Initial value for reduction.
__output Output iterator.
__bound Maximum number of elements processed.
__parallelism_tag Parallelization method

References __for_each_template_random_access_ed(), __for_each_template_random_access_omp_loop(), __for_each_template_rando


parallel_omp_loop, parallel_omp_loop_static, and parallel_unbalanced.

__for_each_template_random_access_ed()

template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __gnu_parallel::__for_each_template_random_access_ed (
_RAIter __begin,
_RAIter __end,
_Op __o,
_Fu & __f,

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 429

_Red __r,
_Result __base,
_Result & __output,
typename std::iterator_traits< _RAIter >::difference_type __bound)
Embarrassingly parallel algorithm for random access iterators, using hand-crafted parallelization by equal splitting the
work.

Parameters

__begin Begin iterator of element sequence.


__end End iterator of element sequence.
__o User-supplied functor (comparator, predicate, adding functor, ...)
__f Functor to "process" an element with __op (depends on desired functionality, e. g. for std::for_each(), ...).
__r Functor to "add" a single __result to the already processed elements (depends on functionality).
__base Base value for reduction.
__output Pointer to position where final result is written to
__bound Maximum number of elements processed (e. g. for std::count_n()).

Returns

User-supplied functor (that may contain a part of the result).

References __equally_split_point(), and min().


Referenced by __for_each_template_random_access().

__for_each_template_random_access_omp_loop()

template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __gnu_parallel::__for_each_template_random_access_omp_loop (
_RAIter __begin,
_RAIter __end,
_Op __o,
_Fu & __f,
_Red __r,
_Result __base,
_Result & __output,
typename std::iterator_traits< _RAIter >::difference_type __bound)
Embarrassingly parallel algorithm for random access iterators, using an OpenMP for loop.

Parameters

__begin Begin iterator of element sequence.


__end End iterator of element sequence.
__o User-supplied functor (comparator, predicate, adding functor, etc.).
__f Functor to process an element with __op (depends on desired functionality, e. g. for std::for_each(), ...).
__r Functor to add a single __result to the already processed elements (depends on functionality).
__base Base value for reduction.
__output Pointer to position where final result is written to
__bound Maximum number of elements processed (e. g. for std::count_n()).

Generated by Doxygen
430

Returns

User-supplied functor (that may contain a part of the result).

References min().
Referenced by __for_each_template_random_access().

__for_each_template_random_access_omp_loop_static()

template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __gnu_parallel::__for_each_template_random_access_omp_loop_static (
_RAIter __begin,
_RAIter __end,
_Op __o,
_Fu & __f,
_Red __r,
_Result __base,
_Result & __output,
typename std::iterator_traits< _RAIter >::difference_type __bound)
Embarrassingly parallel algorithm for random access iterators, using an OpenMP for loop with static scheduling.

Parameters

__begin Begin iterator of element sequence.


__end End iterator of element sequence.
__o User-supplied functor (comparator, predicate, adding functor, ...).
__f Functor to process an element with __op (depends on desired functionality, e. g. for std::for_each(), ...).
__r Functor to add a single __result to the already processed __elements (depends on functionality).
__base Base value for reduction.
__output Pointer to position where final result is written to
__bound Maximum number of elements processed (e. g. for std::count_n()).

Returns

User-supplied functor (that may contain a part of the result).

References std::min().

__for_each_template_random_access_workstealing()

template<typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result >
_Op __gnu_parallel::__for_each_template_random_access_workstealing (
_RAIter __begin,
_RAIter __end,
_Op __op,
_Fu & __f,
_Red __r,
_Result __base,
_Result & __output,
typename std::iterator_traits< _RAIter >::difference_type __bound)
Work stealing algorithm for random access iterators.
Uses O(1) additional memory. Synchronization at job lists is done with atomic operations.

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 431

Parameters

__begin Begin iterator of element sequence.


__end End iterator of element sequence.
__op User-supplied functor (comparator, predicate, adding functor, ...).
__f Functor to process an element with __op (depends on desired functionality, e. g. for std::for_each(), ...).
__r Functor to add a single __result to the already processed elements (depends on functionality).
__base Base value for reduction.
__output Pointer to position where final result is written to
__bound Maximum number of elements processed (e. g. for std::count_n()).

Returns

User-supplied functor (that may contain a part of the result).

References __fetch_and_add(), __yield(), _GLIBCXX_CALL, __gnu_parallel::_Job< _DifferenceTp >::_M_first,


__gnu_parallel::_Job< _DifferenceTp >::_M_last, __gnu_parallel::_Job< _DifferenceTp >::_M_load, __gnu_parallel::_Settings::cache_li
__gnu_parallel::_Settings::get(), max(), and min().
Referenced by __for_each_template_random_access().

__is_sorted()

template<typename _IIter , typename _Compare >


bool __gnu_parallel::__is_sorted (
_IIter __begin,
_IIter __end,
_Compare __comp)
Check whether [__begin, __end) is sorted according to __comp.

Parameters

__begin Begin iterator of sequence.


__end End iterator of sequence.
__comp Comparator.

Returns

true if sorted, false otherwise.

Referenced by __sequential_multiway_merge(), multiway_merge_loser_tree_sentinel(), and parallel_multiway_merge().

__median_of_three_iterators()

template<typename _RAIter , typename _Compare >


_RAIter __gnu_parallel::__median_of_three_iterators (
_RAIter __a,
_RAIter __b,
_RAIter __c,
_Compare __comp)
Compute the median of three referenced elements, according to __comp.

Generated by Doxygen
432

Parameters
__a First iterator.
__b Second iterator.
__c Third iterator.
__comp Comparator.

Referenced by __qsb_divide().

__merge_advance()

template<typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _Difference←-


Tp , typename _Compare >
_OutputIterator __gnu_parallel::__merge_advance (
_RAIter1 & __begin1,
_RAIter1 __end1,
_RAIter2 & __begin2,
_RAIter2 __end2,
_OutputIterator __target,
_DifferenceTp __max_length,
_Compare __comp) [inline]
Merge routine being able to merge only the __max_length smallest elements.
The __begin iterators are advanced accordingly, they might not reach __end, in contrast to the usual variant. Static
switch on whether to use the conditional-move variant.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__end2 End iterator of second sequence.
__target Target begin iterator.
__max_length Maximum number of elements to merge.
__comp Comparator.

Returns

Output end iterator.

References __merge_advance_movc(), and _GLIBCXX_CALL.


Referenced by __parallel_merge_advance(), and __sequential_multiway_merge().

__merge_advance_movc()

template<typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _Difference←-


Tp , typename _Compare >
_OutputIterator __gnu_parallel::__merge_advance_movc (
_RAIter1 & __begin1,
_RAIter1 __end1,
_RAIter2 & __begin2,
_RAIter2 __end2,
_OutputIterator __target,

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 433

_DifferenceTp __max_length,
_Compare __comp)
Merge routine being able to merge only the __max_length smallest elements.
The __begin iterators are advanced accordingly, they might not reach __end, in contrast to the usual variant. Spe-
cially designed code should allow the compiler to generate conditional moves instead of branches.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__end2 End iterator of second sequence.
__target Target begin iterator.
__max_length Maximum number of elements to merge.
__comp Comparator.

Returns

Output end iterator.

Referenced by __merge_advance().

__merge_advance_usual()

template<typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _Difference←-


Tp , typename _Compare >
_OutputIterator __gnu_parallel::__merge_advance_usual (
_RAIter1 & __begin1,
_RAIter1 __end1,
_RAIter2 & __begin2,
_RAIter2 __end2,
_OutputIterator __target,
_DifferenceTp __max_length,
_Compare __comp)
Merge routine being able to merge only the __max_length smallest elements.
The __begin iterators are advanced accordingly, they might not reach __end, in contrast to the usual variant.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__end2 End iterator of second sequence.
__target Target begin iterator.
__max_length Maximum number of elements to merge.
__comp Comparator.

Returns

Output end iterator.

Generated by Doxygen
434

__parallel_merge_advance() [1/2]

template<typename _RAIter1 , typename _RAIter3 , typename _Compare >


_RAIter3 __gnu_parallel::__parallel_merge_advance (
_RAIter1 & __begin1,
_RAIter1 __end1,
_RAIter1 & __begin2,
_RAIter1 __end2,
_RAIter3 __target,
typename std::iterator_traits< _RAIter1 >::difference_type __max_length,
_Compare __comp) [inline]
Parallel merge routine being able to merge only the __max_length smallest elements.
The __begin iterators are advanced accordingly, they might not reach __end, in contrast to the usual variant. The
functionality is projected onto parallel_multiway_merge.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__end2 End iterator of second sequence.
__target Target begin iterator.
__max_length Maximum number of elements to merge.
__comp Comparator.

Returns

Output end iterator.

References std::make_pair(), multiway_merge_exact_splitting(), and parallel_multiway_merge().

__parallel_merge_advance() [2/2]

template<typename _RAIter1 , typename _RAIter2 , typename _RAIter3 , typename _Compare >


_RAIter3 __gnu_parallel::__parallel_merge_advance (
_RAIter1 & __begin1,
_RAIter1 __end1,
_RAIter2 & __begin2,
_RAIter2 __end2,
_RAIter3 __target,
typename std::iterator_traits< _RAIter1 >::difference_type __max_length,
_Compare __comp) [inline]
Merge routine fallback to sequential in case the iterators of the two input sequences are of different type.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__end2 End iterator of second sequence.
__target Target begin iterator.
__max_length Maximum number of elements to merge.
__comp Comparator.

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 435

Returns

Output end iterator.

References __merge_advance().

__parallel_nth_element()

template<typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_nth_element (
_RAIter __begin,
_RAIter __nth,
_RAIter __end,
_Compare __comp)
Parallel implementation of std::nth_element().

Parameters

__begin Begin iterator of input sequence.


__nth _Iterator of element that must be in position afterwards.
__end End iterator of input sequence.
__comp Comparator.

References __parallel_partition(), _GLIBCXX_CALL, __gnu_parallel::_Settings::get(), std::max(), __gnu_parallel::_Settings::nth_element_


and __gnu_parallel::_Settings::partition_minimal_n.
Referenced by __parallel_partial_sort().

__parallel_partial_sort()

template<typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_partial_sort (
_RAIter __begin,
_RAIter __middle,
_RAIter __end,
_Compare __comp)
Parallel implementation of std::partial_sort().

Parameters

__begin Begin iterator of input sequence.


__middle Sort until this position.
__end End iterator of input sequence.
__comp Comparator.

References __parallel_nth_element().

__parallel_partial_sum()

template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >


_OutputIterator __gnu_parallel::__parallel_partial_sum (
_IIter __begin,

Generated by Doxygen
436

_IIter __end,
_OutputIterator __result,
_BinaryOperation __bin_op)
Parallel partial sum front-__end.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__result Begin iterator of output sequence.
__bin_op Associative binary function.

Returns

End iterator of output sequence.

References __parallel_partial_sum_linear(), _GLIBCXX_CALL, and __gnu_parallel::_Settings::get().

__parallel_partial_sum_basecase()

template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >


_OutputIterator __gnu_parallel::__parallel_partial_sum_basecase (
_IIter __begin,
_IIter __end,
_OutputIterator __result,
_BinaryOperation __bin_op,
typename std::iterator_traits< _IIter >::value_type __value)
Base case prefix sum routine.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__result Begin iterator of output sequence.
__bin_op Associative binary function.
__value Start value. Must be passed since the neutral element is unknown in general.

Returns

End iterator of output sequence.

Referenced by __parallel_partial_sum_linear().

__parallel_partial_sum_linear()

template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >


_OutputIterator __gnu_parallel::__parallel_partial_sum_linear (
_IIter __begin,
_IIter __end,
_OutputIterator __result,
_BinaryOperation __bin_op,
typename std::iterator_traits< _IIter >::difference_type __n)
Parallel partial sum implementation, two-phase approach, no recursion.

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 437

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__result Begin iterator of output sequence.
__bin_op Associative binary function.
__n Length of sequence.

Returns

End iterator of output sequence.

References __equally_split(), __parallel_partial_sum_basecase(), __gnu_parallel::_Settings::get(), std::max(),


std::min(), and __gnu_parallel::_Settings::partial_sum_dilation.
Referenced by __parallel_partial_sum().

__parallel_partition()

template<typename _RAIter , typename _Predicate >


std::iterator_traits< _RAIter >::difference_type __gnu_parallel::__parallel_partition (
_RAIter __begin,
_RAIter __end,
_Predicate __pred,
_ThreadIndex __num_threads)
Parallel implementation of std::partition.

Parameters

__begin Begin iterator of input sequence to split.


__end End iterator of input sequence to split.
__pred Partition predicate, possibly including some kind of pivot.
__num_threads Maximum number of threads to use for this task.

Returns

Number of elements not fulfilling the predicate.

References __compare_and_swap(), __fetch_and_add(), _GLIBCXX_CALL, _GLIBCXX_VOLATILE, __gnu_parallel::_Settings::get(),


std::max(), __gnu_parallel::_Settings::partition_chunk_share, and __gnu_parallel::_Settings::partition_chunk_size.
Referenced by __parallel_nth_element(), __parallel_sort_qs_divide(), and __qsb_divide().

__parallel_random_shuffle()

template<typename _RAIter , typename _RandomNumberGenerator >


void __gnu_parallel::__parallel_random_shuffle (
_RAIter __begin,
_RAIter __end,
_RandomNumberGenerator __rng = _RandomNumber()) [inline]
Parallel random public call.

Parameters

__begin Begin iterator of sequence.

Generated by Doxygen
438

__end End iterator of sequence.


__rng Random number generator to use.

References __parallel_random_shuffle_drs().

__parallel_random_shuffle_drs()

template<typename _RAIter , typename _RandomNumberGenerator >


void __gnu_parallel::__parallel_random_shuffle_drs (
_RAIter __begin,
_RAIter __end,
typename std::iterator_traits< _RAIter >::difference_type __n,
_ThreadIndex __num_threads,
_RandomNumberGenerator & __rng)
Main parallel random shuffle step.

Parameters

__begin Begin iterator of sequence.


__end End iterator of sequence.
__n Length of sequence.
__num_threads Number of threads to use.
__rng Random number generator to use.

References __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::__bins_end, __parallel_random_shuffle_drs_pu(),


__rd_log2(), __round_up_to_pow2(), __sequential_random_shuffle(), _GLIBCXX_CALL, __gnu_parallel::_DRandomShufflingGlobalData<
__gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_bins_begin, __gnu_parallel::_DRandomShufflingGlobalDa
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_num_bins, __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >
__gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_num_threads, __gnu_parallel::_DRSSorterPU< _RAIter, _
__gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_seed, __gnu_parallel::_DRandomShufflingGlobalData< _
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_temporaries, __gnu_parallel::_Settings::get(),
__gnu_parallel::_Settings::L2_cache_size, std::max(), std::min(), and __gnu_parallel::_Settings::TLB_size.
Referenced by __parallel_random_shuffle().

__parallel_random_shuffle_drs_pu()

template<typename _RAIter , typename _RandomNumberGenerator >


void __gnu_parallel::__parallel_random_shuffle_drs_pu (
_DRSSorterPU< _RAIter, _RandomNumberGenerator > ∗ __pus)
Random shuffle code executed by each thread.

Parameters

__pus Array of thread-local data records.

References __random_number_pow2(), __sequential_random_shuffle(), __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M


__gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_bins_begin, __gnu_parallel::_DRandomShufflingGlobalDa
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_num_bins, __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >
__gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_num_threads, __gnu_parallel::_DRSSorterPU< _RAIter, _
__gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_seed, __gnu_parallel::_DRandomShufflingGlobalData< _
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_starts, __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M
and std::partial_sum().
Referenced by __parallel_random_shuffle_drs().

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 439

__parallel_sort() [1/7]

template<bool __stable, typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
balanced_quicksort_tag __parallelism) [inline]
Choose balanced quicksort for parallel sorting.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__comp Comparator.

Template Parameters

__stable Sort stable.

References __gnu_parallel::parallel_tag::__get_num_threads(), __parallel_sort_qsb(), and _GLIBCXX_CALL.


Here is the call graph for this function:

std::make_pair std::forward

__gnu_parallel::parallel
_tag::__get_num_threads std::min
__gnu_parallel::__yield
__gnu_parallel::__parallel_sort
__gnu_parallel::__parallel __gnu_parallel::__qsb __gnu_parallel::__qsb
__gnu_parallel::_Settings::get
_sort_qsb _conquer _local_sort_with_helping

__gnu_parallel::__median __gnu_parallel::__compare
__gnu_parallel::__rd_log2 __gnu_parallel::__qsb
_of_three_iterators _and_swap
_divide

__gnu_parallel::__parallel __gnu_parallel::__fetch
_partition _and_add

std::max

__parallel_sort() [2/7]

template<bool __stable, typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
default_parallel_tag __parallelism) [inline]
Choose multiway mergesort with exact splitting, for parallel sorting.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__comp Comparator.

Generated by Doxygen
440

Template Parameters

__stable Sort stable.

References __gnu_parallel::parallel_tag::__get_num_threads(), and _GLIBCXX_CALL.


Here is the call graph for this function:

__gnu_parallel::parallel
__gnu_parallel::__parallel_sort
_tag::__get_num_threads

__parallel_sort() [3/7]

template<bool __stable, typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
multiway_mergesort_exact_tag __parallelism) [inline]
Choose multiway mergesort with exact splitting, for parallel sorting.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__comp Comparator.

Template Parameters

__stable Sort stable.

References __gnu_parallel::parallel_tag::__get_num_threads(), _GLIBCXX_CALL, and parallel_sort_mwms().


Here is the call graph for this function:

__gnu_parallel::parallel
_tag::__get_num_threads
__gnu_parallel::__parallel_sort __gnu_parallel::_Settings::get
__gnu_parallel::parallel
_sort_mwms
__gnu_parallel::parallel std::make_pair std::forward
_sort_mwms_pu

std::uninitialized_copy std::to_address

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 441

__parallel_sort() [4/7]

template<bool __stable, typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
multiway_mergesort_sampling_tag __parallelism) [inline]
Choose multiway mergesort with splitting by sampling, for parallel sorting.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__comp Comparator.

Template Parameters

__stable Sort stable.

References __gnu_parallel::parallel_tag::__get_num_threads(), _GLIBCXX_CALL, and parallel_sort_mwms().


Here is the call graph for this function:

__gnu_parallel::parallel
_tag::__get_num_threads
__gnu_parallel::__parallel_sort __gnu_parallel::_Settings::get
__gnu_parallel::parallel
_sort_mwms
__gnu_parallel::parallel std::make_pair std::forward
_sort_mwms_pu

std::uninitialized_copy std::to_address

__parallel_sort() [5/7]

template<bool __stable, typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
multiway_mergesort_tag __parallelism) [inline]
Choose multiway mergesort, splitting variant at run-time, for parallel sorting.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__comp Comparator.

Template Parameters

__stable Sort stable.

Generated by Doxygen
442

References __gnu_parallel::parallel_tag::__get_num_threads(), _GLIBCXX_CALL, __gnu_parallel::_Settings::get(),


and parallel_sort_mwms().
Here is the call graph for this function:

__gnu_parallel::parallel
_tag::__get_num_threads

__gnu_parallel::__parallel_sort

__gnu_parallel::parallel __gnu_parallel::_Settings::get
_sort_mwms

__gnu_parallel::parallel std::make_pair std::forward


_sort_mwms_pu

std::uninitialized_copy std::to_address

__parallel_sort() [6/7]

template<bool __stable, typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
parallel_tag __parallelism) [inline]
Choose a parallel sorting algorithm.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__comp Comparator.

Template Parameters

__stable Sort stable.

References __gnu_parallel::parallel_tag::__get_num_threads(), __parallel_sort_qs(), __parallel_sort_qsb(), _GLIBCXX_CALL,


__gnu_parallel::_Settings::get(), and parallel_sort_mwms().

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 443

Here is the call graph for this function:

std::min
__gnu_parallel::__compare
__gnu_parallel::parallel _and_swap
_tag::__get_num_threads __gnu_parallel::__parallel __gnu_parallel::__parallel
_sort_qs_divide _partition
__gnu_parallel::__fetch
__gnu_parallel::__parallel __gnu_parallel::__parallel _and_add
_sort_qs _sort_qs_conquer

__gnu_parallel::__parallel_sort

std::max

__gnu_parallel::__median
_of_three_iterators
__gnu_parallel::__qsb __gnu_parallel::__qsb __gnu_parallel::_Settings::get
_conquer _divide

__gnu_parallel::__parallel
_sort_qsb
__gnu_parallel::__qsb
_local_sort_with_helping __gnu_parallel::__yield

std::make_pair std::forward

__gnu_parallel::__rd_log2

__gnu_parallel::parallel __gnu_parallel::parallel
_sort_mwms _sort_mwms_pu

std::uninitialized_copy std::to_address

__parallel_sort() [7/7]

template<bool __stable, typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
quicksort_tag __parallelism) [inline]
Choose quicksort for parallel sorting.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__comp Comparator.

Template Parameters

__stable Sort stable.

References __gnu_parallel::parallel_tag::__get_num_threads(), __parallel_sort_qs(), and _GLIBCXX_CALL.


Here is the call graph for this function:

__gnu_parallel::__compare
_and_swap

__gnu_parallel::__parallel __gnu_parallel::__fetch
__gnu_parallel::parallel _partition _and_add
_tag::__get_num_threads
__gnu_parallel::__parallel_sort __gnu_parallel::__parallel
_sort_qs_divide std::min std::max
__gnu_parallel::__parallel __gnu_parallel::__parallel
_sort_qs _sort_qs_conquer
__gnu_parallel::_Settings::get

Generated by Doxygen
444

__parallel_sort_qs()

template<typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort_qs (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
_ThreadIndex __num_threads)
Unbalanced quicksort main call.

Parameters

__begin Begin iterator of input sequence.


__end End iterator input sequence, ignored.
__comp Comparator.
__num_threads Number of threads that are allowed to work on this part.

References __parallel_sort_qs_conquer(), and _GLIBCXX_CALL.


Referenced by __parallel_sort(), and __parallel_sort().

__parallel_sort_qs_conquer()

template<typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort_qs_conquer (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
_ThreadIndex __num_threads)
Unbalanced quicksort conquer step.

Parameters

__begin Begin iterator of subsequence.


__end End iterator of subsequence.
__comp Comparator.
__num_threads Number of threads that are allowed to work on this part.

References __parallel_sort_qs_conquer(), __parallel_sort_qs_divide(), and __gnu_parallel::_Settings::get().


Referenced by __parallel_sort_qs(), and __parallel_sort_qs_conquer().

__parallel_sort_qs_divide()

template<typename _RAIter , typename _Compare >


std::iterator_traits< _RAIter >::difference_type __gnu_parallel::__parallel_sort_qs_divide (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
typename std::iterator_traits< _RAIter >::difference_type __pivot_rank,
typename std::iterator_traits< _RAIter >::difference_type __num_samples,
_ThreadIndex __num_threads)
Unbalanced quicksort divide step.

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 445

Parameters

__begin Begin iterator of subsequence.


__end End iterator of subsequence.
__comp Comparator.
__pivot_rank Desired __rank of the pivot.
__num_samples Choose pivot from that many samples.
__num_threads Number of threads that are allowed to work on this part.

References __parallel_partition(), and std::min().


Referenced by __parallel_sort_qs_conquer().

__parallel_sort_qsb()

template<typename _RAIter , typename _Compare >


void __gnu_parallel::__parallel_sort_qsb (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
_ThreadIndex __num_threads)
Top-level quicksort routine.

Parameters

__begin Begin iterator of sequence.


__end End iterator of sequence.
__comp Comparator.
__num_threads Number of threads that are allowed to work on this part.

References __qsb_conquer(), __rd_log2(), _GLIBCXX_CALL, and std::make_pair().


Referenced by __parallel_sort(), and __parallel_sort().

__parallel_unique_copy() [1/2]

template<typename _IIter , class _OutputIterator >


_OutputIterator __gnu_parallel::__parallel_unique_copy (
_IIter __first,
_IIter __last,
_OutputIterator __result) [inline]
Parallel std::unique_copy(), without explicit equality predicate.

Parameters

__first Begin iterator of input sequence.


__last End iterator of input sequence.
__result Begin iterator of result __sequence.

Returns

End iterator of result __sequence.

References __parallel_unique_copy().

Generated by Doxygen
446

__parallel_unique_copy() [2/2]

template<typename _IIter , class _OutputIterator , class _BinaryPredicate >


_OutputIterator __gnu_parallel::__parallel_unique_copy (
_IIter __first,
_IIter __last,
_OutputIterator __result,
_BinaryPredicate __binary_pred)
Parallel std::unique_copy(), w/__o explicit equality predicate.

Parameters

__first Begin iterator of input sequence.


__last End iterator of input sequence.
__result Begin iterator of result __sequence.
__binary_pred Equality predicate.

Returns

End iterator of result __sequence.

References __equally_split(), and _GLIBCXX_CALL.


Referenced by __parallel_unique_copy().

__qsb_conquer()

template<typename _RAIter , typename _Compare >


void __gnu_parallel::__qsb_conquer (
_QSBThreadLocal< _RAIter > ∗∗ __tls,
_RAIter __begin,
_RAIter __end,
_Compare __comp,
_ThreadIndex __iam,
_ThreadIndex __num_threads,
bool __parent_wait)
Quicksort conquer step.

Parameters

__tls Array of thread-local storages.


__begin Begin iterator of subsequence.
__end End iterator of subsequence.
__comp Comparator.
__iam Number of the thread processing this function.
__num_threads Number of threads that are allowed to work on this part.

References __qsb_conquer(), __qsb_divide(), __qsb_local_sort_with_helping(), __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_elem


__gnu_parallel::_QSBThreadLocal< _RAIter >::_M_initial, std::max(), and std::min().
Referenced by __parallel_sort_qsb(), and __qsb_conquer().

__qsb_divide()

template<typename _RAIter , typename _Compare >


std::iterator_traits< _RAIter >::difference_type __gnu_parallel::__qsb_divide (

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 447

_RAIter __begin,
_RAIter __end,
_Compare __comp,
_ThreadIndex __num_threads)
Balanced quicksort divide step.

Parameters

__begin Begin iterator of subsequence.


__end End iterator of subsequence.
__comp Comparator.
__num_threads Number of threads that are allowed to work on this part.

Precondition

(__end-__begin)>=1

References __median_of_three_iterators(), and __parallel_partition().


Referenced by __qsb_conquer().

__qsb_local_sort_with_helping()

template<typename _RAIter , typename _Compare >


void __gnu_parallel::__qsb_local_sort_with_helping (
_QSBThreadLocal< _RAIter > ∗∗ __tls,
_Compare & __comp,
_ThreadIndex __iam,
bool __wait)
Quicksort step doing load-balanced local sort.

Parameters

__tls Array of thread-local storages.


__comp Comparator.
__iam Number of the thread processing this function.

References __yield(), _GLIBCXX_PARALLEL_ASSERTIONS, __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_elements_leftover,


__gnu_parallel::_QSBThreadLocal< _RAIter >::_M_initial, __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_leftover_parts,
__gnu_parallel::_QSBThreadLocal< _RAIter >::_M_num_threads, __gnu_parallel::_Settings::get(), std::make_pair(),
and __gnu_parallel::_Settings::sort_qsb_base_case_maximal_n.
Referenced by __qsb_conquer().

__random_number_pow2()

template<typename _RandomNumberGenerator >


int __gnu_parallel::__random_number_pow2 (
int __logp,
_RandomNumberGenerator & __rng) [inline]
Generate a random number in [0,2∧ __logp).

Parameters

__logp Logarithm (basis 2) of the upper range __bound.

Generated by Doxygen
448

__rng Random number generator to use.

Referenced by __parallel_random_shuffle_drs_pu(), and __sequential_random_shuffle().

__rd_log2()

template<typename _Size >


_Size __gnu_parallel::__rd_log2 (
_Size __n) [inline]
Calculates the rounded-down logarithm of __n for base 2.

Parameters
_←- Argument.
_n

Returns

Returns 0 for any argument <1.

Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase(), __parallel_random_shuffle_drs(),


__parallel_sort_qsb(), __round_up_to_pow2(), __sequential_random_shuffle(), multiseq_partition(), and multiseq_selection().

__round_up_to_pow2()

template<typename _Tp >


_Tp __gnu_parallel::__round_up_to_pow2 (
_Tp __x)
Round up to the next greater power of 2.

Parameters
_←- _Integer to round up
_x

References __rd_log2().
Referenced by __parallel_random_shuffle_drs(), __sequential_random_shuffle(), and multiseq_selection().

__search_template()

template<typename __RAIter1 , typename __RAIter2 , typename _Pred >


__RAIter1 __gnu_parallel::__search_template (
__RAIter1 __begin1,
__RAIter1 __end1,
__RAIter2 __begin2,
__RAIter2 __end2,
_Pred __pred)
Parallel std::search.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 449

Parameters

__begin2 Begin iterator of second sequence.


__end2 End iterator of second sequence.
__pred Find predicate.

Returns

Place of finding in first sequences.

References __calc_borders(), __equally_split(), _GLIBCXX_CALL, std::max(), and std::min().

__sequential_multiway_merge()

template<bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename


_DifferenceTp , typename _Compare >
_RAIter3 __gnu_parallel::__sequential_multiway_merge (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_RAIter3 __target,
const typename std::iterator_traits< typename std::iterator_traits< _RAIterIterator
>::value_type::first_type >::value_type & __sentinel,
_DifferenceTp __length,
_Compare __comp)
Sequential multi-way merging switch.
The _GLIBCXX_PARALLEL_DECISION is based on the branching factor and runtime settings.

Parameters

__seqs_begin Begin iterator of iterator pair input sequence.


__seqs_end End iterator of iterator pair input sequence.
__target Begin iterator of output sequence.
__comp Comparator.
__length Maximum length to merge, possibly larger than the number of elements available.
__sentinel The sequences have __a __sentinel element.

Returns

End iterator of output sequence.

References __is_sorted(), __merge_advance(), _GLIBCXX_CALL, _GLIBCXX_PARALLEL_LENGTH, and std::min().


Referenced by multiway_merge(), multiway_merge_sentinels(), and parallel_multiway_merge().

__sequential_random_shuffle()

template<typename _RAIter , typename _RandomNumberGenerator >


void __gnu_parallel::__sequential_random_shuffle (
_RAIter __begin,
_RAIter __end,
_RandomNumberGenerator & __rng)
Sequential cache-efficient random shuffle.

Generated by Doxygen
450

Parameters

__begin Begin iterator of sequence.


__end End iterator of sequence.
__rng Random number generator to use.

References __random_number_pow2(), __rd_log2(), __round_up_to_pow2(), __sequential_random_shuffle(),


__gnu_parallel::_Settings::get(), __gnu_parallel::_Settings::L2_cache_size, std::max(), std::min(), std::partial_sum(),
and __gnu_parallel::_Settings::TLB_size.
Referenced by __parallel_random_shuffle_drs(), __parallel_random_shuffle_drs_pu(), and __sequential_random_shuffle().

__shrink()

template<typename _IIter >


void __gnu_parallel::__shrink (
std::vector< _IIter > & __os_starts,
size_t & __count_to_two,
size_t & __range_length)
Combines two ranges into one and thus halves the number of ranges.

Parameters

__os_starts Start positions worked on (oversampled).


__count_to_two Counts up to 2.
__range_length Current length of a chunk.

References std::vector< _Tp, _Alloc >::size().


Referenced by __shrink_and_double().

__shrink_and_double()

template<typename _IIter >


void __gnu_parallel::__shrink_and_double (
std::vector< _IIter > & __os_starts,
size_t & __count_to_two,
size_t & __range_length,
const bool __make_twice)
Shrinks and doubles the ranges.

Parameters

__os_starts Start positions worked on (oversampled).


__count_to_two Counts up to 2.
__range_length Current length of a chunk.
__make_twice Whether the __os_starts is allowed to be grown or not

References __shrink(), std::vector< _Tp, _Alloc >::resize(), and std::vector< _Tp, _Alloc >::size().
Referenced by list_partition().

__yield()

void __gnu_parallel::__yield () [inline]


Yield control to another thread, without waiting for the end of the time slice.
Referenced by __for_each_template_random_access_workstealing(), and __qsb_local_sort_with_helping().

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 451

list_partition()

template<typename _IIter , typename _FunctorType >


size_t __gnu_parallel::list_partition (
const _IIter __begin,
const _IIter __end,
_IIter ∗ __starts,
size_t ∗ __lengths,
const int __num_parts,
_FunctorType & __f,
int __oversampling = 0)
Splits a sequence given by input iterators into parts of almost equal size.
The function needs only one pass over the sequence.

Parameters

__begin Begin iterator of input sequence.


__end End iterator of input sequence.
__starts Start iterators for the resulting parts, dimension __num_parts+1. For convenience,
__starts [__num_parts] contains the end iterator of the sequence.
__lengths Length of the resulting parts.
__num_parts Number of parts to split the sequence into.
__f Functor to be applied to each element by traversing __it

__oversampling Oversampling factor. If 0, then the partitions will differ in at most end − begin elements.
Otherwise, the ratio between the longest and the shortest part is bounded by
1/(oversampling · num_parts)

Returns

Length of the whole sequence.

References __shrink_and_double(), and std::vector< _Tp, _Alloc >::size().

max()

template<typename _Tp >


const _Tp & __gnu_parallel::max (
const _Tp & __a,
const _Tp & __b) [inline]
Equivalent to std::max.
Referenced by __for_each_template_random_access_workstealing().

min()

template<typename _Tp >


const _Tp & __gnu_parallel::min (
const _Tp & __a,
const _Tp & __b) [inline]
Equivalent to std::min.
Referenced by __for_each_template_random_access_ed(), __for_each_template_random_access_omp_loop(), and
__for_each_template_random_access_workstealing().

Generated by Doxygen
452

multiseq_partition()

template<typename _RanSeqs , typename _RankType , typename _RankIterator , typename _Compare >


void __gnu_parallel::multiseq_partition (
_RanSeqs __begin_seqs,
_RanSeqs __end_seqs,
_RankType __rank,
_RankIterator __begin_offsets,
_Compare __comp = std::less< typename std::iterator_traits<typename std::iterator_traits<←-
_RanSeqs>::value_type:: first_type>::value_type>())
Splits several sorted sequences at a certain global __rank, resulting in a splitting point for each sequence. The se-
quences are passed via a sequence of random-access iterator pairs, none of the sequences may be empty. If there are
several equal elements across the split, the ones on the __left side will be chosen from sequences with smaller number.

Parameters

__begin_seqs Begin of the sequence of iterator pairs.


__end_seqs End of the sequence of iterator pairs.
__rank The global rank to partition at.
__begin_offsets A random-access __sequence __begin where the __result will be stored in. Each element of the
sequence is an iterator that points to the first element on the greater part of the respective
__sequence.
__comp The ordering functor, defaults to std::less<_Tp>.

References __rd_log2(), _GLIBCXX_CALL, std::distance(), std::priority_queue< _Tp, _Sequence, _Compare >::empty(),


std::make_pair(), std::max(), std::min(), std::priority_queue< _Tp, _Sequence, _Compare >::pop(), std::priority_queue< _Tp, _Sequence
and std::priority_queue< _Tp, _Sequence, _Compare >::top().
Referenced by multiway_merge_exact_splitting().

multiseq_selection()

template<typename _Tp , typename _RanSeqs , typename _RankType , typename _Compare >


_Tp __gnu_parallel::multiseq_selection (
_RanSeqs __begin_seqs,
_RanSeqs __end_seqs,
_RankType __rank,
_RankType & __offset,
_Compare __comp = std::less<_Tp>())
Selects the element at a certain global __rank from several sorted sequences.
The sequences are passed via a sequence of random-access iterator pairs, none of the sequences may be empty.

Parameters

__begin_seqs Begin of the sequence of iterator pairs.


__end_seqs End of the sequence of iterator pairs.
__rank The global rank to partition at.
__offset The rank of the selected element in the global subsequence of elements equal to the selected
element. If the selected element is unique, this number is 0.
__comp The ordering functor, defaults to std::less.

References __rd_log2(), __round_up_to_pow2(), _GLIBCXX_CALL, std::distance(), std::priority_queue< _Tp, _Sequence, _Compare >::
std::make_pair(), std::max(), std::min(), std::priority_queue< _Tp, _Sequence, _Compare >::pop(), std::priority_queue< _Tp, _Sequence
and std::priority_queue< _Tp, _Sequence, _Compare >::top().

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 453

multiway_merge()

template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename ←-


_Compare >
_RAIterOut __gnu_parallel::multiway_merge (
_RAIterPairIterator __seqs_begin,
_RAIterPairIterator __seqs_end,
_RAIterOut __target,
_DifferenceTp __length,
_Compare __comp,
__gnu_parallel::sequential_tag )
Multiway Merge Frontend.
Merge the sequences specified by seqs_begin and __seqs_end into __target. __seqs_begin and __seqs_end must
point to a sequence of pairs. These pairs must contain an iterator to the beginning of a sequence in their first entry and
an iterator the _M_end of the same sequence in their second entry.
Ties are broken arbitrarily. See stable_multiway_merge for a variant that breaks ties by sequence number but is slower.
The first entries of the pairs (i.e. the begin iterators) will be moved forward.
The output sequence has to provide enough space for all elements that are written to it.
This function will merge the input sequences:

• not stable

• parallel, depending on the input size and Settings

• using sampling for splitting

• not using sentinels

Example:

int sequences[10][10];
for (int __i = 0; __i < 10; ++__i)
for (int __j = 0; __i < 10; ++__j)
sequences[__i][__j] = __j;

int __out[33];
std::vector<std::pair<int*> > seqs;
for (int __i = 0; __i < 10; ++__i)
{ seqs.push(std::make_pair<int*>(sequences[__i],
sequences[__i] + 10)) }

multiway_merge(seqs.begin(), seqs.end(), __target, std::less<int>(), 33);

See also

stable_multiway_merge

Precondition

All input sequences must be sorted.


Target must provide enough space to merge out length elements or the number of elements in all sequences,
whichever is smaller.

Postcondition

[__target, return __value) contains merged __elements from the input sequences.
return __value - __target = min(__length, number of elements in all sequences).

Generated by Doxygen
454

Template Parameters

_RAIterPairIterator iterator over sequence of pairs of iterators


_RAIterOut iterator over target sequence
_DifferenceTp difference type for the sequence
_Compare strict weak ordering type to compare elements in sequences

Parameters

__seqs_begin __begin of sequence __sequence


__seqs_end _M_end of sequence __sequence
__target target sequence to merge to.
__comp strict weak ordering to use for element comparison.
__length Maximum length to merge, possibly larger than the number of elements available.

Returns

_M_end iterator of output sequence

References __sequential_multiway_merge(), and _GLIBCXX_CALL.

multiway_merge_3_variant()

template<template< typename _RAI, typename _Cp > class iterator, typename _RAIterIterator , typename
_RAIter3 , typename _DifferenceTp , typename _Compare >
_RAIter3 __gnu_parallel::multiway_merge_3_variant (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_RAIter3 __target,
_DifferenceTp __length,
_Compare __comp)
Highly efficient 3-way merging procedure.
Merging is done with the algorithm implementation described by Peter Sanders. Basically, the idea is to minimize the
number of necessary comparison after merging an element. The implementation trick that makes this fast is that the
order of the sequences is stored in the instruction pointer (translated into labels in C++).
This works well for merging up to 4 sequences.
Note that making the merging stable does not come at a performance hit.
Whether the merging is done guarded or unguarded is selected by the used iterator class.

Parameters

__seqs_begin Begin iterator of iterator pair input sequence.


__seqs_end End iterator of iterator pair input sequence.
__target Begin iterator of output sequence.
__comp Comparator.
__length Maximum length to merge, less equal than the total number of elements available.

Returns

End iterator of output sequence.

References _GLIBCXX_CALL.

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 455

multiway_merge_4_variant()

template<template< typename _RAI, typename _Cp > class iterator, typename _RAIterIterator , typename
_RAIter3 , typename _DifferenceTp , typename _Compare >
_RAIter3 __gnu_parallel::multiway_merge_4_variant (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_RAIter3 __target,
_DifferenceTp __length,
_Compare __comp)
Highly efficient 4-way merging procedure.
Merging is done with the algorithm implementation described by Peter Sanders. Basically, the idea is to minimize the
number of necessary comparison after merging an element. The implementation trick that makes this fast is that the
order of the sequences is stored in the instruction pointer (translated into goto labels in C++).
This works well for merging up to 4 sequences.
Note that making the merging stable does not come at a performance hit.
Whether the merging is done guarded or unguarded is selected by the used iterator class.

Parameters

__seqs_begin Begin iterator of iterator pair input sequence.


__seqs_end End iterator of iterator pair input sequence.
__target Begin iterator of output sequence.
__comp Comparator.
__length Maximum length to merge, less equal than the total number of elements available.

Returns

End iterator of output sequence.

References _GLIBCXX_CALL.

multiway_merge_exact_splitting()

template<bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType >


void __gnu_parallel::multiway_merge_exact_splitting (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_DifferenceType __length,
_DifferenceType __total_length,
_Compare __comp,
std::vector< std::pair< _DifferenceType, _DifferenceType > > ∗ __pieces)
Exact splitting for parallel multiway-merge routine.
None of the passed sequences may be empty.
References __equally_split(), _GLIBCXX_PARALLEL_LENGTH, std::vector< _Tp, _Alloc >::begin(), std::vector< _Tp, _Alloc >::end(),
multiseq_partition(), and std::vector< _Tp, _Alloc >::resize().
Referenced by __parallel_merge_advance().

multiway_merge_loser_tree()

template<typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp ,


typename _Compare >
_RAIter3 __gnu_parallel::multiway_merge_loser_tree (
_RAIterIterator __seqs_begin,

Generated by Doxygen
456

_RAIterIterator __seqs_end,
_RAIter3 __target,
_DifferenceTp __length,
_Compare __comp)
Multi-way merging procedure for a high branching factor, guarded case.
This merging variant uses a LoserTree class as selected by _LT.
Stability is selected through the used LoserTree class _LT.
At least one non-empty sequence is required.

Parameters

__seqs_begin Begin iterator of iterator pair input sequence.


__seqs_end End iterator of iterator pair input sequence.
__target Begin iterator of output sequence.
__comp Comparator.
__length Maximum length to merge, less equal than the total number of elements available.

Returns

End iterator of output sequence.

References _GLIBCXX_CALL, and _GLIBCXX_PARALLEL_LENGTH.

multiway_merge_loser_tree_sentinel()

template<typename _UnguardedLoserTree , typename _RAIterIterator , typename _RAIter3 , typename ←-


_DifferenceTp , typename _Compare >
_RAIter3 __gnu_parallel::multiway_merge_loser_tree_sentinel (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_RAIter3 __target,
const typename std::iterator_traits< typename std::iterator_traits< _RAIterIterator
>::value_type::first_type >::value_type & __sentinel,
_DifferenceTp __length,
_Compare __comp)
Multi-way merging procedure for a high branching factor, requiring sentinels to exist.

Template Parameters

_UnguardedLoserTree Loser Tree variant to use for the unguarded merging.

Parameters

__seqs_begin Begin iterator of iterator pair input sequence.


__seqs_end End iterator of iterator pair input sequence.
__target Begin iterator of output sequence.
__comp Comparator.
__length Maximum length to merge, less equal than the total number of elements available.

Returns

End iterator of output sequence.

References __is_sorted(), _GLIBCXX_CALL, and multiway_merge_loser_tree_unguarded().

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 457

multiway_merge_loser_tree_unguarded()

template<typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp ,


typename _Compare >
_RAIter3 __gnu_parallel::multiway_merge_loser_tree_unguarded (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_RAIter3 __target,
const typename std::iterator_traits< typename std::iterator_traits< _RAIterIterator
>::value_type::first_type >::value_type & __sentinel,
_DifferenceTp __length,
_Compare __comp)
Multi-way merging procedure for a high branching factor, unguarded case.
Merging is done using the LoserTree class _LT.
Stability is selected by the used LoserTrees.

Precondition

No input will run out of elements during the merge.

Parameters

__seqs_begin Begin iterator of iterator pair input sequence.


__seqs_end End iterator of iterator pair input sequence.
__target Begin iterator of output sequence.
__comp Comparator.
__length Maximum length to merge, less equal than the total number of elements available.

Returns

End iterator of output sequence.

References _GLIBCXX_CALL.
Referenced by multiway_merge_loser_tree_sentinel().

multiway_merge_sampling_splitting()

template<bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType >


void __gnu_parallel::multiway_merge_sampling_splitting (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_DifferenceType __length,
_DifferenceType __total_length,
_Compare __comp,
std::vector< std::pair< _DifferenceType, _DifferenceType > > ∗ __pieces)
Sampling based splitting for parallel multiway-merge routine.
References _GLIBCXX_PARALLEL_LENGTH, __gnu_parallel::_Settings::get(), and __gnu_parallel::_Settings::merge_oversampling.

multiway_merge_sentinels()

template<typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename ←-


_Compare >
_RAIterOut __gnu_parallel::multiway_merge_sentinels (
_RAIterPairIterator __seqs_begin,

Generated by Doxygen
458

_RAIterPairIterator __seqs_end,
_RAIterOut __target,
_DifferenceTp __length,
_Compare __comp,
__gnu_parallel::sequential_tag )
Multiway Merge Frontend.
Merge the sequences specified by seqs_begin and __seqs_end into __target. __seqs_begin and __seqs_end must
point to a sequence of pairs. These pairs must contain an iterator to the beginning of a sequence in their first entry and
an iterator the _M_end of the same sequence in their second entry.
Ties are broken arbitrarily. See stable_multiway_merge for a variant that breaks ties by sequence number but is slower.
The first entries of the pairs (i.e. the begin iterators) will be moved forward accordingly.
The output sequence has to provide enough space for all elements that are written to it.
This function will merge the input sequences:

• not stable

• parallel, depending on the input size and Settings

• using sampling for splitting

• using sentinels

You have to take care that the element the _M_end iterator points to is readable and contains a value that is greater
than any other non-sentinel value in all sequences.
Example:

int sequences[10][11];
for (int __i = 0; __i < 10; ++__i)
for (int __j = 0; __i < 11; ++__j)
sequences[__i][__j] = __j; // __last one is sentinel!

int __out[33];
std::vector<std::pair<int*> > seqs;
for (int __i = 0; __i < 10; ++__i)
{ seqs.push(std::make_pair<int*>(sequences[__i],
sequences[__i] + 10)) }

multiway_merge(seqs.begin(), seqs.end(), __target, std::less<int>(), 33);

Precondition

All input sequences must be sorted.


Target must provide enough space to merge out length elements or the number of elements in all sequences,
whichever is smaller.
For each __i, __seqs_begin[__i].second must be the end marker of the sequence, but also reference the one
more __sentinel element.

Postcondition

[__target, return __value) contains merged __elements from the input sequences.
return __value - __target = min(__length, number of elements in all sequences).

See also

stable_multiway_merge_sentinels

Generated by Doxygen
4.6 __gnu_parallel Namespace Reference 459

Template Parameters

_RAIterPairIterator iterator over sequence of pairs of iterators


_RAIterOut iterator over target sequence
_DifferenceTp difference type for the sequence
_Compare strict weak ordering type to compare elements in sequences

Parameters

__seqs_begin __begin of sequence __sequence


__seqs_end _M_end of sequence __sequence
__target target sequence to merge to.
__comp strict weak ordering to use for element comparison.
__length Maximum length to merge, possibly larger than the number of elements available.

Returns

_M_end iterator of output sequence

References __sequential_multiway_merge(), and _GLIBCXX_CALL.

parallel_multiway_merge()

template<bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename


_DifferenceTp , typename _Splitter , typename _Compare >
_RAIter3 __gnu_parallel::parallel_multiway_merge (
_RAIterIterator __seqs_begin,
_RAIterIterator __seqs_end,
_RAIter3 __target,
_Splitter __splitter,
_DifferenceTp __length,
_Compare __comp,
_ThreadIndex __num_threads)
Parallel multi-way merge routine.
The _GLIBCXX_PARALLEL_DECISION is based on the branching factor and runtime settings.
Must not be called if the number of sequences is 1.

Template Parameters

_Splitter functor to split input (either __exact or sampling based)


__stable Stable merging incurs a performance penalty.
__sentinel Ignored.

Parameters

__seqs_begin Begin iterator of iterator pair input sequence.


__seqs_end End iterator of iterator pair input sequence.
__target Begin iterator of output sequence.
__comp Comparator.
__length Maximum length to merge, possibly larger than the number of elements available.

Generated by Doxygen
460

Returns

End iterator of output sequence.

References __is_sorted(), __sequential_multiway_merge(), _GLIBCXX_CALL, _GLIBCXX_PARALLEL_LENGTH,


__gnu_parallel::_Settings::get(), std::make_pair(), __gnu_parallel::_Settings::merge_oversampling, and std::min().
Referenced by __parallel_merge_advance().

parallel_sort_mwms()

template<bool __stable, bool __exact, typename _RAIter , typename _Compare >


void __gnu_parallel::parallel_sort_mwms (
_RAIter __begin,
_RAIter __end,
_Compare __comp,
_ThreadIndex __num_threads)
PMWMS main call.

Parameters

__begin Begin iterator of sequence.


__end End iterator of sequence.
__comp Comparator.
__num_threads Number of threads to use.

References _GLIBCXX_CALL, __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_num_threads, __gnu_parallel::_PMWMSSortingD


__gnu_parallel::_PMWMSSortingData< _RAIter >::_M_pieces, __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_samples,
__gnu_parallel::_PMWMSSortingData< _RAIter >::_M_source, __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_starts,
__gnu_parallel::_PMWMSSortingData< _RAIter >::_M_temporary, __gnu_parallel::_Settings::get(), parallel_sort_mwms_pu(),
and __gnu_parallel::_Settings::sort_mwms_oversampling.
Referenced by __parallel_sort(), __parallel_sort(), __parallel_sort(), and __parallel_sort().

parallel_sort_mwms_pu()

template<bool __stable, bool __exact, typename _RAIter , typename _Compare >


void __gnu_parallel::parallel_sort_mwms_pu (
_PMWMSSortingData< _RAIter > ∗ __sd,
_Compare & __comp)
PMWMS code executed by each thread.

Parameters
__sd Pointer to algorithm data.
__comp Comparator.

References __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_num_threads, __gnu_parallel::_PMWMSSortingData< _RAIter >::_


__gnu_parallel::_PMWMSSortingData< _RAIter >::_M_source, __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_starts,
__gnu_parallel::_PMWMSSortingData< _RAIter >::_M_temporary, __gnu_parallel::_Settings::get(), std::make_pair(),
__gnu_parallel::_Settings::sort_mwms_oversampling, and std::uninitialized_copy().
Referenced by parallel_sort_mwms().

4.6.5 Variable Documentation

_CASable_bits

const int __gnu_parallel::_CASable_bits [static]

Generated by Doxygen
4.7 __gnu_pbds Namespace Reference 461

Number of bits of _CASable.


Referenced by __decode2(), and __encode2().

_CASable_mask

const _CASable __gnu_parallel::_CASable_mask [static]


_CASable with the right half of bits set to 1.
Referenced by __decode2().

4.7 __gnu_pbds Namespace Reference


Classes

• struct associative_tag
• class basic_branch
• struct basic_branch_tag
• class basic_hash_table
• struct basic_hash_tag
• struct basic_invalidation_guarantee
• struct binary_heap_tag
• struct binomial_heap_tag
• class cc_hash_max_collision_check_resize_trigger
• class cc_hash_table
• struct cc_hash_tag
• struct container_error
• struct container_tag
• struct container_traits
• struct container_traits_base
• struct container_traits_base< binary_heap_tag >
• struct container_traits_base< binomial_heap_tag >
• struct container_traits_base< cc_hash_tag >
• struct container_traits_base< gp_hash_tag >
• struct container_traits_base< list_update_tag >
• struct container_traits_base< ov_tree_tag >
• struct container_traits_base< pairing_heap_tag >
• struct container_traits_base< pat_trie_tag >
• struct container_traits_base< rb_tree_tag >
• struct container_traits_base< rc_binomial_heap_tag >
• struct container_traits_base< splay_tree_tag >
• struct container_traits_base< thin_heap_tag >
• class direct_mask_range_hashing
• class direct_mod_range_hashing
• class gp_hash_table
• struct gp_hash_tag
• class hash_exponential_size_policy
• class hash_load_check_resize_trigger
• class hash_prime_size_policy
• class hash_standard_resize_policy
• struct insert_error
• struct join_error
• class linear_probe_fn
• class list_update

Generated by Doxygen
462

• struct list_update_tag
• class lu_counter_policy
• class lu_move_to_front_policy
• struct null_node_update
• struct null_type
• struct ov_tree_tag
• struct pairing_heap_tag
• struct pat_trie_tag
• struct point_invalidation_guarantee
• class priority_queue
• struct priority_queue_tag
• class quadratic_probe_fn
• struct range_invalidation_guarantee
• struct rb_tree_tag
• struct rc_binomial_heap_tag
• struct resize_error
• class sample_probe_fn
• class sample_range_hashing
• class sample_ranged_hash_fn
• class sample_ranged_probe_fn
• class sample_resize_policy
• class sample_resize_trigger
• class sample_size_policy
• class sample_tree_node_update
• struct sample_trie_access_traits
• class sample_trie_node_update
• struct sample_update_policy
• struct sequence_tag
• struct splay_tree_tag
• struct string_tag
• struct thin_heap_tag
• class tree
• class tree_order_statistics_node_update
• struct tree_tag
• class trie
• class trie_order_statistics_node_update
• class trie_prefix_search_node_update
• struct trie_string_access_traits
• struct trie_tag
• struct trivial_iterator_tag

Typedefs

• typedef void trivial_iterator_difference_type

Functions

• void __throw_container_error ()
• void __throw_insert_error ()
• void __throw_join_error ()
• void __throw_resize_error ()

Generated by Doxygen
4.8 __gnu_sequential Namespace Reference 463

4.7.1 Detailed Description

GNU extensions for policy-based data structures for public use.

4.8 __gnu_sequential Namespace Reference


4.8.1 Detailed Description

GNU sequential classes for public use.

4.9 abi Namespace Reference


4.9.1 Detailed Description

The cross-vendor C++ Application Binary Interface. A namespace alias to __cxxabiv1, but user programs should use
the alias 'abi'.
A brief overview of an ABI is given in the libstdc++ FAQ, question 5.8 (you may have a copy of the FAQ locally, or you
can view the online version at http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#5_8 ).
GCC subscribes to a cross-vendor ABI for C++, sometimes called the IA64 ABI because it happens to be the native
ABI for that platform. It is summarized at http://www.codesourcery.com/cxx-abi/ along with the current
specification.
For users of GCC greater than or equal to 3.x, entry points are available in <cxxabi.h>, which notes, 'It is not normally
necessary for user programs to include this header, or use the entry points directly. However, this header is available
should that be needed.'

4.10 std Namespace Reference


Namespaces

• namespace __debug
• namespace __detail
• namespace __parallel
• namespace chrono
• namespace decimal
• namespace experimental
• namespace filesystem
• namespace literals
• namespace placeholders
• namespace regex_constants
• namespace rel_ops
• namespace this_thread
• namespace tr1
• namespace tr2

Classes

• class __basic_future
• class __codecvt_abstract_base
• class __ctype_abstract_base
• struct __is_fast_hash
• struct __is_location_invariant
• class __new_allocator
• struct __numeric_limits_base
• struct _Base_bitset

Generated by Doxygen
464

• struct _Base_bitset< 0 >


• struct _Base_bitset< 1 >
• class _Bind
• class _Bind_result
• class _Deque_base
• struct _Deque_iterator
• class _Function_base
• struct _Fwd_list_base
• struct _Fwd_list_const_iterator
• struct _Fwd_list_iterator
• struct _Fwd_list_node
• struct _Fwd_list_node_base
• class _List_base
• struct _List_const_iterator
• struct _List_iterator
• struct _List_node
• class _Node_handle
• class _Node_handle< _Value, _Value, _NodeAlloc >
• class _Node_handle_common
• struct _Node_insert_return
• class _Not_fn
• struct _Placeholder
• struct _Sp_ebo_helper< _Nm, _Tp, false >
• struct _Sp_ebo_helper< _Nm, _Tp, true >
• class _Temporary_buffer
• struct _Vector_base
• struct add_const
• struct add_cv
• struct add_lvalue_reference
• struct add_pointer
• struct add_rvalue_reference
• struct add_volatile
• struct adopt_lock_t
• struct aligned_storage
• struct aligned_union
• struct alignment_of
• class allocator
• class allocator< void >
• struct allocator_traits
• struct allocator_traits< allocator< _Tp > >
• struct allocator_traits< allocator< void > >
• struct allocator_traits< pmr::polymorphic_allocator< _Tp > >
• struct array
• struct atomic
• struct atomic< _Tp ∗ >
• struct atomic< bool >
• struct atomic< char >
• struct atomic< char16_t >
• struct atomic< char32_t >
• struct atomic< int >
• struct atomic< long >

Generated by Doxygen
4.10 std Namespace Reference 465

• struct atomic< long long >


• struct atomic< short >
• struct atomic< signed char >
• struct atomic< unsigned char >
• struct atomic< unsigned int >
• struct atomic< unsigned long >
• struct atomic< unsigned long long >
• struct atomic< unsigned short >
• struct atomic< wchar_t >
• struct atomic_flag
• class auto_ptr
• struct auto_ptr_ref
• class back_insert_iterator
• class bad_alloc
• class bad_cast
• class bad_exception
• class bad_function_call
• class bad_typeid
• class bad_weak_ptr
• class basic_filebuf
• class basic_fstream
• class basic_ifstream
• class basic_ios
• class basic_iostream
• class basic_istream
• class basic_istringstream
• class basic_ofstream
• class basic_ostream
• class basic_ostringstream
• class basic_regex
• class basic_streambuf
• class basic_string
• class basic_string_view
• class basic_stringbuf
• class basic_stringstream
• class bernoulli_distribution
• struct bidirectional_iterator_tag
• struct binary_function
• class binary_negate
• class binder1st
• class binder2nd
• class binomial_distribution
• class bitset
• class cauchy_distribution
• struct char_traits
• struct char_traits< __gnu_cxx::character< _Value, _Int, _St > >
• struct char_traits< char >
• struct char_traits< wchar_t >
• class chi_squared_distribution
• class codecvt
• class codecvt< _InternT, _ExternT, encoding_state >

Generated by Doxygen
466

• class codecvt< char, char, mbstate_t >


• class codecvt< char16_t, char, mbstate_t >
• class codecvt< char32_t, char, mbstate_t >
• class codecvt< wchar_t, char, mbstate_t >
• class codecvt_base
• class codecvt_byname
• class common_iterator
• struct common_type
• struct common_type< chrono::duration< _Rep, _Period > >
• struct common_type< chrono::duration< _Rep, _Period >, chrono::duration< _Rep, _Period > >
• struct common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration< _Rep2, _Period2 > >
• struct common_type< chrono::time_point< _Clock, _Duration > >
• struct common_type< chrono::time_point< _Clock, _Duration >, chrono::time_point< _Clock, _Duration > >
• struct common_type< chrono::time_point< _Clock, _Duration1 >, chrono::time_point< _Clock, _Duration2 > >
• struct compare_three_way_result
• class complex
• class complex< double >
• class complex< float >
• class complex< long double >
• class condition_variable
• class condition_variable_any
• struct conditional
• class const_mem_fun1_ref_t
• class const_mem_fun1_t
• class const_mem_fun_ref_t
• class const_mem_fun_t
• struct contiguous_iterator_tag
• class counted_iterator
• class ctype
• class ctype< char >
• class ctype< wchar_t >
• struct ctype_base
• class ctype_byname
• class ctype_byname< char >
• struct decay
• struct default_delete
• struct default_delete< _Tp[ ]>
• struct default_sentinel_t
• struct defer_lock_t
• class deque
• struct destroying_delete_t
• class discard_block_engine
• class discrete_distribution
• struct divides
• struct divides< void >
• class domain_error
• struct enable_if
• class enable_shared_from_this
• struct equal_to
• struct equal_to< void >
• class error_category

Generated by Doxygen
4.10 std Namespace Reference 467

• class error_code
• class error_condition
• class exception
• class exponential_distribution
• struct extent
• class extreme_value_distribution
• class fisher_f_distribution
• struct forward_iterator_tag
• class forward_list
• class fpos
• struct from_chars_result
• class front_insert_iterator
• class function< _Res(_ArgTypes...)>
• class future
• class future< _Res & >
• class future< void >
• class future_error
• class gamma_distribution
• class geometric_distribution
• struct greater
• struct greater< void >
• struct greater_equal
• struct greater_equal< void >
• class gslice
• class gslice_array
• struct has_virtual_destructor
• struct hash
• struct hash< __debug::bitset< _Nb > >
• struct hash< __debug::vector< bool, _Alloc > >
• struct hash< __gnu_cxx::__u16vstring >
• struct hash< __gnu_cxx::__u32vstring >
• struct hash< __gnu_cxx::__vstring >
• struct hash< __gnu_cxx::__wvstring >
• struct hash< __gnu_cxx::throw_value_limit >
• struct hash< __gnu_cxx::throw_value_random >
• struct hash< __gnu_debug::basic_string< _CharT > >
• struct hash< __shared_ptr< _Tp, _Lp > >
• struct hash< _Tp ∗ >
• struct hash< basic_string< char, char_traits< char >, _Alloc > >
• struct hash< basic_string< char16_t, char_traits< char16_t >, _Alloc > >
• struct hash< basic_string< char32_t, char_traits< char32_t >, _Alloc > >
• struct hash< basic_string< wchar_t, char_traits< wchar_t >, _Alloc > >
• struct hash< bool >
• struct hash< char >
• struct hash< char16_t >
• struct hash< char32_t >
• struct hash< double >
• struct hash< error_code >
• struct hash< error_condition >
• struct hash< experimental::optional< _Tp > >
• struct hash< experimental::shared_ptr< _Tp > >

Generated by Doxygen
468

• struct hash< float >


• struct hash< int >
• struct hash< long >
• struct hash< long double >
• struct hash< long long >
• struct hash< shared_ptr< _Tp > >
• struct hash< short >
• struct hash< signed char >
• struct hash< thread::id >
• struct hash< type_index >
• struct hash< unique_ptr< _Tp, _Dp > >
• struct hash< unsigned char >
• struct hash< unsigned int >
• struct hash< unsigned long >
• struct hash< unsigned long long >
• struct hash< unsigned short >
• struct hash< wchar_t >
• struct hash<::bitset< _Nb > >
• struct hash<::vector< bool, _Alloc > >
• struct identity
• class independent_bits_engine
• class indirect_array
• class initializer_list
• struct input_iterator_tag
• class insert_iterator
• struct integer_sequence
• struct integral_constant
• class invalid_argument
• class ios_base
• struct is_abstract
• struct is_arithmetic
• struct is_array
• struct is_assignable
• struct is_base_of
• struct is_bind_expression
• struct is_bind_expression< _Bind< _Signature > >
• struct is_bind_expression< _Bind_result< _Result, _Signature > >
• struct is_bind_expression< const _Bind< _Signature > >
• struct is_bind_expression< const _Bind_result< _Result, _Signature > >
• struct is_bind_expression< const volatile _Bind< _Signature > >
• struct is_bind_expression< const volatile _Bind_result< _Result, _Signature > >
• struct is_bind_expression< volatile _Bind< _Signature > >
• struct is_bind_expression< volatile _Bind_result< _Result, _Signature > >
• struct is_class
• struct is_compound
• struct is_const
• struct is_constructible
• struct is_copy_assignable
• struct is_copy_constructible
• struct is_default_constructible
• struct is_destructible

Generated by Doxygen
4.10 std Namespace Reference 469

• struct is_empty
• struct is_enum
• struct is_error_code_enum
• struct is_error_code_enum< future_errc >
• struct is_error_condition_enum
• struct is_floating_point
• struct is_function
• struct is_fundamental
• struct is_integral
• struct is_layout_compatible
• struct is_literal_type
• struct is_lvalue_reference
• struct is_member_function_pointer
• struct is_member_object_pointer
• struct is_member_pointer
• struct is_move_assignable
• struct is_move_constructible
• struct is_nothrow_assignable
• struct is_nothrow_constructible
• struct is_nothrow_copy_assignable
• struct is_nothrow_copy_constructible
• struct is_nothrow_default_constructible
• struct is_nothrow_destructible
• struct is_nothrow_move_assignable
• struct is_nothrow_move_constructible
• struct is_object
• struct is_placeholder
• struct is_placeholder< _Placeholder< _Num > >
• struct is_pod
• struct is_pointer
• struct is_pointer_interconvertible_base_of
• struct is_polymorphic
• struct is_reference
• struct is_rvalue_reference
• struct is_same
• struct is_scalar
• struct is_signed
• struct is_standard_layout
• struct is_trivial
• struct is_trivially_assignable
• struct is_trivially_constructible
• struct is_trivially_copy_assignable
• struct is_trivially_copy_constructible
• struct is_trivially_copyable
• struct is_trivially_default_constructible
• struct is_trivially_destructible
• struct is_trivially_move_assignable
• struct is_trivially_move_constructible
• struct is_union
• struct is_unsigned
• struct is_void

Generated by Doxygen
470

• struct is_volatile
• class istream_iterator
• class istreambuf_iterator
• struct iterator
• struct iterator_traits
• struct iterator_traits< _Tp ∗ >
• class length_error
• struct less
• struct less< void >
• struct less_equal
• struct less_equal< void >
• class linear_congruential_engine
• class list
• class locale
• class lock_guard
• class logic_error
• struct logical_and
• struct logical_and< void >
• struct logical_not
• struct logical_not< void >
• struct logical_or
• struct logical_or< void >
• class lognormal_distribution
• struct make_signed
• struct make_unsigned
• class map
• class mask_array
• class match_results
• class mem_fun1_ref_t
• class mem_fun1_t
• class mem_fun_ref_t
• class mem_fun_t
• class mersenne_twister_engine
• class messages
• struct messages_base
• class messages_byname
• struct minus
• struct minus< void >
• struct modulus
• struct modulus< void >
• class money_base
• class money_get
• class money_put
• class moneypunct
• class moneypunct_byname
• class move_iterator
• class move_only_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noexcept(_Noex)>
• class move_sentinel
• class multimap
• struct multiplies
• struct multiplies< void >

Generated by Doxygen
4.10 std Namespace Reference 471

• class multiset
• class mutex
• struct negate
• struct negate< void >
• class negative_binomial_distribution
• class nested_exception
• class normal_distribution
• struct nostopstate_t
• struct not_equal_to
• struct not_equal_to< void >
• class num_get
• class num_put
• struct numeric_limits
• struct numeric_limits< bool >
• struct numeric_limits< char >
• struct numeric_limits< char16_t >
• struct numeric_limits< char32_t >
• struct numeric_limits< double >
• struct numeric_limits< float >
• struct numeric_limits< int >
• struct numeric_limits< long >
• struct numeric_limits< long double >
• struct numeric_limits< long long >
• struct numeric_limits< short >
• struct numeric_limits< signed char >
• struct numeric_limits< unsigned char >
• struct numeric_limits< unsigned int >
• struct numeric_limits< unsigned long >
• struct numeric_limits< unsigned long long >
• struct numeric_limits< unsigned short >
• struct numeric_limits< wchar_t >
• class numpunct
• class numpunct_byname
• struct once_flag
• class ostream_iterator
• class ostreambuf_iterator
• class out_of_range
• struct output_iterator_tag
• class overflow_error
• struct owner_less
• struct owner_less< shared_ptr< _Tp > >
• struct owner_less< void >
• struct owner_less< weak_ptr< _Tp > >
• class packaged_task< _Res(_ArgTypes...)>
• struct pair
• class piecewise_constant_distribution
• struct piecewise_construct_t
• class piecewise_linear_distribution
• struct plus
• class pointer_to_binary_function
• class pointer_to_unary_function

Generated by Doxygen
472

• struct pointer_traits
• struct pointer_traits< _Tp ∗ >
• class poisson_distribution
• class priority_queue
• class promise
• class promise< _Res & >
• class promise< void >
• class queue
• struct random_access_iterator_tag
• class random_device
• class range_error
• struct rank
• struct ratio
• struct ratio_equal
• struct ratio_greater
• struct ratio_greater_equal
• struct ratio_less
• struct ratio_less_equal
• struct ratio_not_equal
• class raw_storage_iterator
• class recursive_mutex
• class recursive_timed_mutex
• class reference_wrapper
• class regex_error
• class regex_iterator
• class regex_token_iterator
• class regex_traits
• struct remove_all_extents
• struct remove_const
• struct remove_cv
• struct remove_extent
• struct remove_pointer
• struct remove_reference
• struct remove_volatile
• struct result_of
• class reverse_iterator
• class runtime_error
• class scoped_allocator_adaptor
• class seed_seq
• class set
• class shared_future
• class shared_future< _Res & >
• class shared_future< void >
• class shared_lock
• class shared_ptr
• class shared_timed_mutex
• class shuffle_order_engine
• class slice
• class slice_array
• class stack
• class stop_callback

Generated by Doxygen
4.10 std Namespace Reference 473

• class stop_source
• class stop_token
• class student_t_distribution
• class sub_match
• class subtract_with_carry_engine
• class system_error
• class thread
• class time_base
• class time_get
• class time_get_byname
• class time_put
• class time_put_byname
• class timed_mutex
• struct to_chars_result
• struct try_to_lock_t
• class tuple
• class tuple< _T1, _T2 >
• struct tuple_element
• struct tuple_element< 0, pair< _Tp1, _Tp2 > >
• struct tuple_element< 1, pair< _Tp1, _Tp2 > >
• struct tuple_element< __i, tuple< _Types... > >
• struct tuple_element< _Ind, array< _Tp, _Nm > >
• struct tuple_size
• struct tuple_size< array< _Tp, _Nm > >
• struct tuple_size< pair< _Tp1, _Tp2 > >
• struct tuple_size< tuple< _Elements... > >
• struct type_index
• class type_info
• struct unary_function
• class unary_negate
• class underflow_error
• struct underlying_type
• class uniform_int_distribution
• class uniform_real_distribution
• class unique_lock
• class unique_ptr
• class unique_ptr< _Tp[ ], _Dp >
• class unordered_map
• class unordered_multimap
• class unordered_multiset
• class unordered_set
• struct uses_allocator
• struct uses_allocator< tuple< _Types... >, _Alloc >
• class valarray
• class vector
• class vector< bool, _Alloc >
• class wbuffer_convert
• class weak_ptr
• class weibull_distribution
• class wstring_convert

Generated by Doxygen
474

Typedefs

• template<typename _Tp >


using __allocator_base
• typedef unsigned char __atomic_flag_data_type
• typedef FILE __c_file
• typedef __locale_t __c_locale
• typedef __gthread_mutex_t __c_lock
• template<bool _Cond, typename _If , typename _Else >
using __conditional_t
• template<typename _Tp , typename _Up = typename remove_cv<_Tp>::type, typename = typename enable_if<is_same<_Tp, _Up>←-
::value>::type, size_t = tuple_size<_Tp>::value>
using __enable_if_has_tuple_size
• template<bool _Cond, typename _Tp = void>
using __enable_if_t
• template<typename _Fn , typename _Op >
using __function_guide_t
• template<typename _Func , typename _SfinaeType >
using __has_is_transparent_t
• template<typename _ToElementType , typename _FromElementType >
using __is_array_convertible
• template<typename _Tp , typename _Tp2 = typename decay<_Tp>::type>
using __is_socketlike
• template<typename _Iter >
using __iter_category_t
• template<typename _InputIterator >
using __iter_key_t
• template<typename _InputIterator >
using __iter_to_alloc_t
• template<typename _Ptr , typename _Tp >
using __ptr_rebind
• template<typename _Is , typename _Tp >
using __rvalue_stream_extraction_t
• template<typename _Os , typename _Tp >
using __rvalue_stream_insertion_t
• using __semaphore_impl
• typedef basic_string< char > __sso_string
• template<size_t __i, typename _Tp >
using __tuple_element_t
• template<typename _Key , typename _Tp , typename _Hash = hash<_Key>, typename _Pred = std::equal_to<_Key>, typename _Alloc =
std::allocator<std::pair<const _Key, _Tp> >, typename _Tr = __umap_traits<__cache_default<_Key, _Hash>::value>>
using __umap_hashtable
• template<bool _Cache>
using __umap_traits
• template<typename _Key , typename _Tp , typename _Hash = hash<_Key>, typename _Pred = std::equal_to<_Key>, typename _Alloc =
std::allocator<std::pair<const _Key, _Tp> >, typename _Tr = __ummap_traits<__cache_default<_Key, _Hash>::value>>
using __ummap_hashtable
• template<bool _Cache>
using __ummap_traits
• template<typename _Value , typename _Hash = hash<_Value>, typename _Pred = std::equal_to<_Value>, typename _Alloc = std←-
::allocator<_Value>, typename _Tr = __umset_traits<__cache_default<_Value, _Hash>::value>>
using __umset_hashtable

Generated by Doxygen
4.10 std Namespace Reference 475

• template<bool _Cache>
using __umset_traits
• template<typename _Value , typename _Hash = hash<_Value>, typename _Pred = std::equal_to<_Value>, typename _Alloc = std←-
::allocator<_Value>, typename _Tr = __uset_traits<__cache_default<_Value, _Hash>::value>>
using __uset_hashtable
• template<bool _Cache>
using __uset_traits
• typedef unsigned long _Bit_type
• template<typename _Path , typename _Result = _Path, typename _Path2 = decltype(std::declval<_Path&>().make_preferred().←-
filename())>
using _If_fs_path
• template<typename _InIter >
using _RequireInputIter
• template<typename _Tp >
using add_lvalue_reference_t
• template<typename _Tp >
using add_pointer_t
• template<typename _Tp >
using add_rvalue_reference_t
• template<size_t _Len, size_t _Align = __aligned_storage_default_alignment(_Len)>
using aligned_storage_t
• template<size_t _Len, typename... _Types>
using aligned_union_t
• typedef atomic< bool > atomic_bool
• typedef atomic< char > atomic_char
• typedef atomic< char16_t > atomic_char16_t
• typedef atomic< char32_t > atomic_char32_t
• typedef atomic< int > atomic_int
• typedef atomic< int16_t > atomic_int16_t
• typedef atomic< int32_t > atomic_int32_t
• typedef atomic< int64_t > atomic_int64_t
• typedef atomic< int8_t > atomic_int8_t
• typedef atomic< int_fast16_t > atomic_int_fast16_t
• typedef atomic< int_fast32_t > atomic_int_fast32_t
• typedef atomic< int_fast64_t > atomic_int_fast64_t
• typedef atomic< int_fast8_t > atomic_int_fast8_t
• typedef atomic< int_least16_t > atomic_int_least16_t
• typedef atomic< int_least32_t > atomic_int_least32_t
• typedef atomic< int_least64_t > atomic_int_least64_t
• typedef atomic< int_least8_t > atomic_int_least8_t
• typedef atomic< intmax_t > atomic_intmax_t
• typedef atomic< intptr_t > atomic_intptr_t
• typedef atomic< long long > atomic_llong
• typedef atomic< long > atomic_long
• typedef atomic< ptrdiff_t > atomic_ptrdiff_t
• typedef atomic< signed char > atomic_schar
• typedef atomic< short > atomic_short
• typedef atomic< size_t > atomic_size_t
• typedef atomic< unsigned char > atomic_uchar
• typedef atomic< unsigned int > atomic_uint
• typedef atomic< uint16_t > atomic_uint16_t

Generated by Doxygen
476

• typedef atomic< uint32_t > atomic_uint32_t


• typedef atomic< uint64_t > atomic_uint64_t
• typedef atomic< uint8_t > atomic_uint8_t
• typedef atomic< uint_fast16_t > atomic_uint_fast16_t
• typedef atomic< uint_fast32_t > atomic_uint_fast32_t
• typedef atomic< uint_fast64_t > atomic_uint_fast64_t
• typedef atomic< uint_fast8_t > atomic_uint_fast8_t
• typedef atomic< uint_least16_t > atomic_uint_least16_t
• typedef atomic< uint_least32_t > atomic_uint_least32_t
• typedef atomic< uint_least64_t > atomic_uint_least64_t
• typedef atomic< uint_least8_t > atomic_uint_least8_t
• typedef atomic< uintmax_t > atomic_uintmax_t
• typedef atomic< uintptr_t > atomic_uintptr_t
• typedef atomic< unsigned long long > atomic_ullong
• typedef atomic< unsigned long > atomic_ulong
• typedef atomic< unsigned short > atomic_ushort
• typedef atomic< wchar_t > atomic_wchar_t
• using atto
• using centi
• typedef match_results< const char ∗ > cmatch
• template<typename... _Ts>
using common_comparison_category_t
• template<typename... _Tp>
using common_type_t
• template<typename _Tp , typename _Up = _Tp>
using compare_three_way_result_t
• template<bool _Cond, typename _Iftrue , typename _Iffalse >
using conditional_t
• typedef regex_iterator< const char ∗ > cregex_iterator
• typedef regex_token_iterator< const char ∗ > cregex_token_iterator
• typedef sub_match< const char ∗ > csub_match
• using deca
• template<typename _Tp >
using decay_t
• using deci
• typedef minstd_rand0 default_random_engine
• template<bool _Cond, typename _Tp = void>
using enable_if_t
• using exa
• using false_type
• using femto
• typedef basic_filebuf< char > filebuf
• typedef basic_fstream< char > fstream
• using giga
• using hecto
• typedef basic_ifstream< char > ifstream
• template<size_t... _Idx>
using index_sequence
• template<typename... _Types>
using index_sequence_for
• typedef basic_ios< char > ios

Generated by Doxygen
4.10 std Namespace Reference 477

• typedef basic_iostream< char > iostream


• typedef basic_istream< char > istream
• typedef basic_istringstream< char > istringstream
• using kilo
• typedef shuffle_order_engine< minstd_rand0, 256 > knuth_b
• template<size_t _Num>
using make_index_sequence
• template<typename _Tp , _Tp _Num>
using make_integer_sequence
• template<typename _Tp >
using make_signed_t
• template<typename _Tp >
using make_unsigned_t
• using mega
• using micro
• using milli
• typedef linear_congruential_engine< uint_fast32_t, 48271UL, 0UL, 2147483647UL > minstd_rand
• typedef linear_congruential_engine< uint_fast32_t, 16807UL, 0UL, 2147483647UL > minstd_rand0
• typedef mersenne_twister_engine< uint_fast32_t, 32, 624, 397, 31, 0x9908b0dfUL, 11, 0xffffffffUL, 7,
0x9d2c5680UL, 15, 0xefc60000UL, 18, 1812433253UL > mt19937
• typedef mersenne_twister_engine< uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9ULL, 29,
0x5555555555555555ULL, 17, 0x71d67fffeda60000ULL, 37, 0xfff7eee000000000ULL, 43, 6364136223846793005ULL
> mt19937_64
• using nano
• typedef void(∗ new_handler) ()
• typedef decltype(nullptr) nullptr_t
• typedef basic_ofstream< char > ofstream
• typedef basic_ostream< char > ostream
• typedef basic_ostringstream< char > ostringstream
• using peta
• using pico
• typedef __PTRDIFF_TYPE__ ptrdiff_t
• typedef discard_block_engine< ranlux24_base, 223, 23 > ranlux24
• typedef subtract_with_carry_engine< uint_fast32_t, 24, 10, 24 > ranlux24_base
• typedef discard_block_engine< ranlux48_base, 389, 11 > ranlux48
• typedef subtract_with_carry_engine< uint_fast64_t, 48, 5, 12 > ranlux48_base
• template<typename _R1 , typename _R2 >
using ratio_add
• template<typename _R1 , typename _R2 >
using ratio_divide
• template<typename _R1 , typename _R2 >
using ratio_multiply
• template<typename _R1 , typename _R2 >
using ratio_subtract
• typedef basic_regex< char > regex
• template<typename _Tp >
using remove_all_extents_t
• template<typename _Tp >
using remove_extent_t
• template<typename _Tp >
using remove_pointer_t

Generated by Doxygen
478

• template<typename _Tp >


using remove_reference_t
• template<typename _Tp >
using result_of_t
• typedef __SIZE_TYPE__ size_t
• typedef match_results< string::const_iterator > smatch
• typedef regex_iterator< string::const_iterator > sregex_iterator
• typedef regex_token_iterator< string::const_iterator > sregex_token_iterator
• typedef sub_match< string::const_iterator > ssub_match
• typedef basic_streambuf< char > streambuf
• typedef long long streamoff
• typedef fpos< mbstate_t > streampos
• typedef ptrdiff_t streamsize
• typedef basic_string< char > string
• using string_view
• typedef basic_stringbuf< char > stringbuf
• typedef basic_stringstream< char > stringstream
• using tera
• typedef void(∗ terminate_handler) ()
• using true_type
• template<size_t __i, typename _Tp >
using tuple_element_t
• typedef fpos< mbstate_t > u16streampos
• typedef basic_string< char16_t > u16string
• using u16string_view
• typedef fpos< mbstate_t > u32streampos
• typedef basic_string< char32_t > u32string
• using u32string_view
• template<typename _Tp >
using underlying_type_t
• typedef void(∗ unexpected_handler) ()
• typedef match_results< const wchar_t ∗ > wcmatch
• typedef regex_iterator< const wchar_t ∗ > wcregex_iterator
• typedef regex_token_iterator< const wchar_t ∗ > wcregex_token_iterator
• typedef sub_match< const wchar_t ∗ > wcsub_match
• typedef basic_filebuf< wchar_t > wfilebuf
• typedef basic_fstream< wchar_t > wfstream
• typedef basic_ifstream< wchar_t > wifstream
• typedef basic_ios< wchar_t > wios
• typedef basic_iostream< wchar_t > wiostream
• typedef basic_istream< wchar_t > wistream
• typedef basic_istringstream< wchar_t > wistringstream
• typedef basic_ofstream< wchar_t > wofstream
• typedef basic_ostream< wchar_t > wostream
• typedef basic_ostringstream< wchar_t > wostringstream
• typedef basic_regex< wchar_t > wregex
• typedef match_results< wstring::const_iterator > wsmatch
• typedef regex_iterator< wstring::const_iterator > wsregex_iterator
• typedef regex_token_iterator< wstring::const_iterator > wsregex_token_iterator
• typedef sub_match< wstring::const_iterator > wssub_match
• typedef basic_streambuf< wchar_t > wstreambuf

Generated by Doxygen
4.10 std Namespace Reference 479

• typedef fpos< mbstate_t > wstreampos


• typedef basic_string< wchar_t > wstring
• using wstring_view
• typedef basic_stringbuf< wchar_t > wstringbuf
• typedef basic_stringstream< wchar_t > wstringstream

Enumerations

• enum { _S_chunk_size }
• enum { _S_word_bit }
• enum _Ios_Fmtflags {
_S_boolalpha , _S_dec , _S_fixed , _S_hex ,
_S_internal , _S_left , _S_oct , _S_right ,
_S_scientific , _S_showbase , _S_showpoint , _S_showpos ,
_S_skipws , _S_unitbuf , _S_uppercase , _S_adjustfield ,
_S_basefield , _S_floatfield , _S_ios_fmtflags_end , _S_ios_fmtflags_max ,
_S_ios_fmtflags_min }
• enum _Ios_Iostate {
_S_goodbit , _S_badbit , _S_eofbit , _S_failbit ,
_S_ios_iostate_end , _S_ios_iostate_max , _S_ios_iostate_min }
• enum _Ios_Openmode {
_S_app , _S_ate , _S_bin , _S_in ,
_S_out , _S_trunc , _S_noreplace , _S_ios_openmode_end ,
_S_ios_openmode_max , _S_ios_openmode_min }
• enum _Ios_Seekdir { _S_beg , _S_cur , _S_end , _S_ios_seekdir_end }
• enum _Manager_operation { __get_type_info , __get_functor_ptr , __clone_functor , __destroy_functor }
• enum _Rb_tree_color { _S_red , _S_black }
• enum class align_val_t : size_t
• enum class chars_format { scientific , fixed , hex , general }
• enum codecvt_mode { consume_header , generate_header , little_endian }
• enum class cv_status { no_timeout , timeout }
• enum class errc {
address_family_not_supported , address_in_use , address_not_available , already_connected ,
argument_list_too_long , argument_out_of_domain , bad_address , bad_file_descriptor ,
broken_pipe , connection_aborted , connection_already_in_progress , connection_refused ,
connection_reset , cross_device_link , destination_address_required , device_or_resource_busy ,
directory_not_empty , executable_format_error , file_exists , file_too_large ,
filename_too_long , function_not_supported , host_unreachable , illegal_byte_sequence ,
inappropriate_io_control_operation , interrupted , invalid_argument , invalid_seek ,
io_error , is_a_directory , message_size , network_down ,
network_reset , network_unreachable , no_buffer_space , no_child_process ,
no_lock_available , no_message , no_protocol_option , no_space_on_device ,
no_such_device_or_address , no_such_device , no_such_file_or_directory , no_such_process ,
not_a_directory , not_a_socket , not_connected , not_enough_memory ,
operation_in_progress , operation_not_permitted , operation_not_supported , operation_would_block ,
permission_denied , protocol_not_supported , read_only_file_system , resource_deadlock_would_occur
,
resource_unavailable_try_again , result_out_of_range , timed_out , too_many_files_open_in_system ,
too_many_files_open , too_many_links , too_many_symbolic_link_levels , wrong_protocol_type }
• enum float_denorm_style { denorm_indeterminate , denorm_absent , denorm_present }
• enum float_round_style {
round_indeterminate , round_toward_zero , round_to_nearest , round_toward_infinity ,
round_toward_neg_infinity }

Generated by Doxygen
480

• enum class future_errc { future_already_retrieved , promise_already_satisfied , no_state , broken_promise


}
• enum class future_status { ready , timeout , deferred }
• enum class io_errc { stream }
• enum class launch { async , deferred }
• enum class memory_order : int {
relaxed , consume , acquire , release ,
acq_rel , seq_cst }
• enum class pointer_safety { relaxed , preferred , strict }

Functions

• template<typename _CharT >


_CharT ∗ __add_grouping (_CharT ∗__s, _CharT __sep, const char ∗__gbeg, size_t __gsize, const _CharT
∗__first, const _CharT ∗__last)
• template<typename _Tp >
constexpr _Tp ∗ __addressof (_Tp &__r) noexcept
• template<typename _ForwardIterator , typename _BinaryPredicate >
constexpr _ForwardIterator __adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate
__binary_pred)
• template<typename _RandomAccessIterator , typename _Distance , typename _Tp , typename _Compare >
constexpr void __adjust_heap (_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp
__value, _Compare __comp)
• template<typename _BidirectionalIterator , typename _Distance >
constexpr void __advance (_BidirectionalIterator &__i, _Distance __n, bidirectional_iterator_tag)
• template<typename _InputIterator , typename _Distance >
constexpr void __advance (_InputIterator &__i, _Distance __n, input_iterator_tag)
• template<typename _OutputIterator , typename _Distance >
void __advance (_OutputIterator &, _Distance, output_iterator_tag)=delete
• template<typename _RandomAccessIterator , typename _Distance >
constexpr void __advance (_RandomAccessIterator &__i, _Distance __n, random_access_iterator_tag)
• template<typename _Tp , _Lock_policy _Lp = __default_lock_policy, typename _Alloc , typename... _Args>
__shared_ptr< _Tp, _Lp > __allocate_shared (const _Alloc &__a, _Args &&... __args)
• template<bool _IsMove, typename _OutIter , typename _InIter >
constexpr void __assign_one (_OutIter &__out, _InIter &__in)
• template<typename _Tp >
void __atomic_notify_address (const _Tp ∗__addr, bool __all) noexcept
• void __atomic_notify_address_bare (const __detail::__platform_wait_t ∗__addr, bool __all) noexcept
• template<typename _Tp , typename _Pred >
void __atomic_wait_address (const _Tp ∗__addr, _Pred __pred) noexcept
• template<typename _Pred >
void __atomic_wait_address_bare (const __detail::__platform_wait_t ∗__addr, _Pred __pred) noexcept
• template<typename _Tp , typename _Pred , typename _Rep , typename _Period >
bool __atomic_wait_address_for (const _Tp ∗__addr, _Pred __pred, const chrono::duration< _Rep, _Period >
&__rtime) noexcept
• template<typename _Pred , typename _Rep , typename _Period >
bool __atomic_wait_address_for_bare (const __detail::__platform_wait_t ∗__addr, _Pred __pred, const
chrono::duration< _Rep, _Period > &__rtime) noexcept
• template<typename _Tp , typename _ValFn , typename _Rep , typename _Period >
bool __atomic_wait_address_for_v (const _Tp ∗__addr, _Tp &&__old, _ValFn &&__vfn, const chrono::duration<
_Rep, _Period > &__rtime) noexcept

Generated by Doxygen
4.10 std Namespace Reference 481

• template<typename _Tp , typename _Pred , typename _Clock , typename _Dur >


bool __atomic_wait_address_until (const _Tp ∗__addr, _Pred __pred, const chrono::time_point< _Clock, _Dur
> &__atime) noexcept
• template<typename _Pred , typename _Clock , typename _Dur >
bool __atomic_wait_address_until_bare (const __detail::__platform_wait_t ∗__addr, _Pred __pred, const
chrono::time_point< _Clock, _Dur > &__atime) noexcept
• template<typename _Tp , typename _ValFn , typename _Clock , typename _Dur >
bool __atomic_wait_address_until_v (const _Tp ∗__addr, _Tp &&__old, _ValFn &&__vfn, const chrono::time_point<
_Clock, _Dur > &__atime) noexcept
• template<typename _Tp , typename _ValFn >
void __atomic_wait_address_v (const _Tp ∗__addr, _Tp __old, _ValFn __vfn) noexcept
• template<typename _Facet >
const _Facet & __check_facet (const _Facet ∗__f)
• template<typename _RandomAccessIterator , typename _Distance , typename _Compare >
constexpr void __chunk_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _←-
Distance __chunk_size, _Compare __comp)
• template<typename _Tp >
_Tp __complex_abs (const complex< _Tp > &__z)
• __complex__ double __complex_acos (__complex__ double __z)
• __complex__ float __complex_acos (__complex__ float __z)
• __complex__ long double __complex_acos (const __complex__ long double &__z)
• template<typename _Tp >
std::complex< _Tp > __complex_acos (const std::complex< _Tp > &__z)
• __complex__ double __complex_acosh (__complex__ double __z)
• __complex__ float __complex_acosh (__complex__ float __z)
• __complex__ long double __complex_acosh (const __complex__ long double &__z)
• template<typename _Tp >
std::complex< _Tp > __complex_acosh (const std::complex< _Tp > &__z)
• template<typename _Tp >
_Tp __complex_arg (const complex< _Tp > &__z)
• __complex__ double __complex_asin (__complex__ double __z)
• __complex__ float __complex_asin (__complex__ float __z)
• __complex__ long double __complex_asin (const __complex__ long double &__z)
• template<typename _Tp >
std::complex< _Tp > __complex_asin (const std::complex< _Tp > &__z)
• __complex__ double __complex_asinh (__complex__ double __z)
• __complex__ float __complex_asinh (__complex__ float __z)
• __complex__ long double __complex_asinh (const __complex__ long double &__z)
• template<typename _Tp >
std::complex< _Tp > __complex_asinh (const std::complex< _Tp > &__z)
• __complex__ double __complex_atan (__complex__ double __z)
• __complex__ float __complex_atan (__complex__ float __z)
• __complex__ long double __complex_atan (const __complex__ long double &__z)
• template<typename _Tp >
std::complex< _Tp > __complex_atan (const std::complex< _Tp > &__z)
• __complex__ double __complex_atanh (__complex__ double __z)
• __complex__ float __complex_atanh (__complex__ float __z)
• __complex__ long double __complex_atanh (const __complex__ long double &__z)
• template<typename _Tp >
std::complex< _Tp > __complex_atanh (const std::complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_cos (const complex< _Tp > &__z)

Generated by Doxygen
482

• template<typename _Tp >


complex< _Tp > __complex_cosh (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_exp (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_log (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_pow (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
complex< _Tp > __complex_pow_unsigned (complex< _Tp > __x, unsigned __n)
• complex< double > __complex_proj (const complex< double > &__z)
• complex< float > __complex_proj (const complex< float > &__z)
• complex< long double > __complex_proj (const complex< long double > &__z)
• template<typename _Tp >
std::complex< _Tp > __complex_proj (const std::complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_sin (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_sinh (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_sqrt (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_tan (const complex< _Tp > &__z)
• template<typename _Tp >
complex< _Tp > __complex_tanh (const complex< _Tp > &__z)
• int __convert_from_v (const __c_locale &__cloc, char ∗__out, const int __size, const char ∗__fmt,...)
• template<typename _Tp >
void __convert_to_v (const char ∗, _Tp &, ios_base::iostate &, const __c_locale &) throw ()
• template<> void __convert_to_v (const char ∗, double &, ios_base::iostate &, const __c_locale &) throw ()
• template<> void __convert_to_v (const char ∗, float &, ios_base::iostate &, const __c_locale &) throw ()
• template<> void __convert_to_v (const char ∗, long double &, ios_base::iostate &, const __c_locale &) throw ()
• template<bool _IsMove, typename _II , typename _OI >
constexpr _OI __copy_move_a (_II __first, _II __last, _OI __result)
• template<bool _IsMove, typename _II , typename _Ite , typename _Seq , typename _Cat >
constexpr __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > __copy_move_a (_II, _II, const ::__gnu_debug::_Safe_iterator<
_Ite, _Seq, _Cat > &)
• template<bool _IsMove, typename _IIte , typename _ISeq , typename _ICat , typename _OIte , typename _OSeq , typename _OCat >
constexpr ::__gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat > __copy_move_a (const ::__gnu_debug::_Safe_iterator<
_IIte, _ISeq, _ICat > &, const ::__gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat > &, const ::__gnu_debug::_Safe_iterator<
_OIte, _OSeq, _OCat > &)
• template<bool _IsMove, typename _Ite , typename _Seq , typename _Cat , typename _OI >
constexpr _OI __copy_move_a (const ::__gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > &, const
::__gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > &, _OI)
• template<bool _IsMove, typename _ITp , typename _IRef , typename _IPtr , typename _OTp >
::_Deque_iterator< _OTp, _OTp &, _OTp ∗ > __copy_move_a1 (::_Deque_iterator< _ITp, _IRef, _IPtr > __first,
::_Deque_iterator< _ITp, _IRef, _IPtr > __last, ::_Deque_iterator< _OTp, _OTp &, _OTp ∗ > __result)
• template<bool _IsMove, typename _Tp , typename _Ref , typename _Ptr , typename _OI >
_OI __copy_move_a1 (::_Deque_iterator< _Tp, _Ref, _Ptr > __first, ::_Deque_iterator< _Tp, _Ref, _Ptr >
__last, _OI __result)
• template<bool _IsMove, typename _II , typename _Tp >
__gnu_cxx::__enable_if< __is_random_access_iter< _II >::__value,::_Deque_iterator< _Tp, _Tp &, _Tp ∗ >
>::__type __copy_move_a1 (_II __first, _II __last, ::_Deque_iterator< _Tp, _Tp &, _Tp ∗ > __result)

Generated by Doxygen
4.10 std Namespace Reference 483

• template<bool _IsMove, typename _II , typename _OI >


constexpr _OI __copy_move_a1 (_II __first, _II __last, _OI __result)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT, char_traits< _CharT
> > >::__type __copy_move_a2 (_CharT ∗, _CharT ∗, ostreambuf_iterator< _CharT, char_traits< _CharT >
>)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type __copy←-
_move_a2 (_CharT ∗__first, _CharT ∗__last, ostreambuf_iterator< _CharT > __result)
• template<bool _IsMove, typename _InIter , typename _Sent , typename _OutIter >
constexpr _OutIter __copy_move_a2 (_InIter __first, _Sent __last, _OutIter __result)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT, char_traits< _CharT
> > >::__type __copy_move_a2 (const _CharT ∗, const _CharT ∗, ostreambuf_iterator< _CharT, char_traits<
_CharT > >)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type __copy←-
_move_a2 (const _CharT ∗__first, const _CharT ∗__last, ostreambuf_iterator< _CharT > __result)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT ∗ >::__type __copy_move_a2 (istreambuf_iterator<
_CharT > __first, istreambuf_iterator< _CharT > __last, _CharT ∗__result)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value,::_Deque_iterator< _CharT, _CharT &, _←-
CharT ∗ > >::__type __copy_move_a2 (istreambuf_iterator< _CharT, char_traits< _CharT > > __first,
istreambuf_iterator< _CharT, char_traits< _CharT > > __last, ::_Deque_iterator< _CharT, _CharT &, _CharT ∗
> __result)
• template<bool _IsMove, typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT ∗ >::__type __copy_move_a2 (istreambuf_iterator<
_CharT, char_traits< _CharT > >, istreambuf_iterator< _CharT, char_traits< _CharT > >, _CharT ∗)
• template<bool _IsMove, typename _II , typename _OI >
constexpr _OI __copy_move_backward_a (_II __first, _II __last, _OI __result)
• template<bool _IsMove, typename _II , typename _Ite , typename _Seq , typename _Cat >
constexpr __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > __copy_move_backward_a (_II, _II, const
::__gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > &)
• template<bool _IsMove, typename _IIte , typename _ISeq , typename _ICat , typename _OIte , typename _OSeq , typename _OCat >
constexpr ::__gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat > __copy_move_backward_a (const
::__gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat > &, const ::__gnu_debug::_Safe_iterator< _IIte, _ISeq,
_ICat > &, const ::__gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat > &)
• template<bool _IsMove, typename _Ite , typename _Seq , typename _Cat , typename _OI >
constexpr _OI __copy_move_backward_a (const ::__gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > &, const
::__gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > &, _OI)
• template<bool _IsMove, typename _ITp , typename _IRef , typename _IPtr , typename _OTp >
::_Deque_iterator< _OTp, _OTp &, _OTp ∗ > __copy_move_backward_a1 (::_Deque_iterator< _ITp, _IRef,
_IPtr > __first, ::_Deque_iterator< _ITp, _IRef, _IPtr > __last, ::_Deque_iterator< _OTp, _OTp &, _OTp ∗ >
__result)
• template<bool _IsMove, typename _Tp , typename _Ref , typename _Ptr , typename _OI >
_OI __copy_move_backward_a1 (::_Deque_iterator< _Tp, _Ref, _Ptr > __first, ::_Deque_iterator< _Tp, _Ref,
_Ptr > __last, _OI __result)
• template<bool _IsMove, typename _BI1 , typename _BI2 >
constexpr _BI2 __copy_move_backward_a1 (_BI1 __first, _BI1 __last, _BI2 __result)
• template<bool _IsMove, typename _II , typename _Tp >
__gnu_cxx::__enable_if< __is_random_access_iter< _II >::__value,::_Deque_iterator< _Tp, _Tp &, _Tp ∗ >
>::__type __copy_move_backward_a1 (_II __first, _II __last, ::_Deque_iterator< _Tp, _Tp &, _Tp ∗ > __←-
result)

Generated by Doxygen
484

• template<bool _IsMove, typename _BI1 , typename _BI2 >


constexpr _BI2 __copy_move_backward_a2 (_BI1 __first, _BI1 __last, _BI2 __result)
• template<bool _IsMove, typename _Tp , typename _Ref , typename _Ptr , typename _OI >
_OI __copy_move_backward_dit (::_Deque_iterator< _Tp, _Ref, _Ptr > __first, ::_Deque_iterator< _Tp, _Ref,
_Ptr > __last, _OI __result)
• template<bool _IsMove, typename _Tp , typename _Ref , typename _Ptr , typename _OI >
_OI __copy_move_dit (::_Deque_iterator< _Tp, _Ref, _Ptr > __first, ::_Deque_iterator< _Tp, _Ref, _Ptr >
__last, _OI __result)
• template<typename _InputIterator , typename _Size , typename _OutputIterator >
constexpr _OutputIterator __copy_n_a (_InputIterator __first, _Size __n, _OutputIterator __result, bool)
• template<typename _CharT , typename _Size >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT ∗ >::__type __copy_n_a (istreambuf_iterator<
_CharT > __it, _Size __n, _CharT ∗__result, bool __strict)
• template<typename _CharT , typename _Size >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value,::_Deque_iterator< _CharT, _CharT &, _CharT ∗ >
>::__type __copy_n_a (istreambuf_iterator< _CharT, char_traits< _CharT > > __it, _Size __size, ::_Deque←-
_iterator< _CharT, _CharT &, _CharT ∗ > __result, bool __strict)
• template<typename _CharT , typename _Size >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT ∗ >::__type __copy_n_a (istreambuf_iterator<
_CharT, char_traits< _CharT > >, _Size, _CharT ∗, bool)
• template<typename _CharT , typename _Traits >
streamsize __copy_streambufs (basic_streambuf< _CharT, _Traits > ∗__sbin, basic_streambuf< _CharT, _←-
Traits > ∗__sbout)
• template<typename _CharT , typename _Traits >
streamsize __copy_streambufs_eof (basic_streambuf< _CharT, _Traits > ∗__sbin, basic_streambuf< _CharT,
_Traits > ∗__sbout, bool &__ineof)
• template<> streamsize __copy_streambufs_eof (basic_streambuf< char > ∗__sbin, basic_streambuf< char
> ∗__sbout, bool &__ineof)
• template<> streamsize __copy_streambufs_eof (basic_streambuf< wchar_t > ∗__sbin, basic_streambuf<
wchar_t > ∗__sbout, bool &__ineof)
• template<typename _InputIterator , typename _Predicate >
constexpr iterator_traits< _InputIterator >::difference_type __count_if (_InputIterator __first, _InputIterator __←-
last, _Predicate __pred)
• constexpr size_t __deque_buf_size (size_t __size)
• template<typename _Tp >
ptrdiff_t __distance (::_List_const_iterator< _Tp >, ::_List_const_iterator< _Tp >, input_iterator_tag)
• template<typename _Tp >
ptrdiff_t __distance (::_List_iterator< _Tp >, ::_List_iterator< _Tp >, input_iterator_tag)
• template<bool _Const, typename _Ptr >
ptrdiff_t __distance (__list::_Iterator< _Const, _Ptr > __first, __list::_Iterator< _Const, _Ptr > __last,
input_iterator_tag __tag)
• template<typename _InputIterator >
constexpr iterator_traits< _InputIterator >::difference_type __distance (_InputIterator __first, _InputIterator _←-
_last, input_iterator_tag)
• template<typename _OutputIterator >
void __distance (_OutputIterator, _OutputIterator, output_iterator_tag)=delete
• template<typename _RandomAccessIterator >
constexpr iterator_traits< _RandomAccessIterator >::difference_type __distance (_RandomAccessIterator _←-
_first, _RandomAccessIterator __last, random_access_iterator_tag)
• template<typename _OutStr , typename _InChar , typename _Codecvt , typename _State , typename _Fn >
bool __do_str_codecvt (const _InChar ∗__first, const _InChar ∗__last, _OutStr &__outstr, const _Codecvt &_←-
_cvt, _State &__state, size_t &__count, _Fn __fn)

Generated by Doxygen
4.10 std Namespace Reference 485

• template<typename _II1 , typename _II2 >


constexpr bool __equal4 (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
• template<typename _II1 , typename _II2 , typename _BinaryPredicate >
constexpr bool __equal4 (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _BinaryPredicate __binary_pred)
• template<typename _II1 , typename _II2 >
constexpr bool __equal_aux (_II1 __first1, _II1 __last1, _II2 __first2)
• template<typename _II1 , typename _II2 , typename _Seq2 , typename _Cat2 >
constexpr bool __equal_aux (_II1, _II1, const ::__gnu_debug::_Safe_iterator< _II2, _Seq2, _Cat2 > &)
• template<typename _II1 , typename _Seq1 , typename _Cat1 , typename _II2 >
constexpr bool __equal_aux (const ::__gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1 > &, const
::__gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1 > &, _II2)
• template<typename _II1 , typename _Seq1 , typename _Cat1 , typename _II2 , typename _Seq2 , typename _Cat2 >
constexpr bool __equal_aux (const ::__gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1 > &, const
::__gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1 > &, const ::__gnu_debug::_Safe_iterator< _II2, _Seq2,
_Cat2 > &)
• template<typename _Tp , typename _Ref , typename _Ptr , typename _II >
__gnu_cxx::__enable_if< __is_random_access_iter< _II >::__value, bool >::__type __equal_aux1 (::_←-
Deque_iterator< _Tp, _Ref, _Ptr > __first1, ::_Deque_iterator< _Tp, _Ref, _Ptr > __last1, _II __first2)
• template<typename _Tp1 , typename _Ref1 , typename _Ptr1 , typename _Tp2 , typename _Ref2 , typename _Ptr2 >
bool __equal_aux1 (::_Deque_iterator< _Tp1, _Ref1, _Ptr1 > __first1, ::_Deque_iterator< _Tp1, _Ref1, _Ptr1
> __last1, ::_Deque_iterator< _Tp2, _Ref2, _Ptr2 > __first2)
• template<typename _II , typename _Tp , typename _Ref , typename _Ptr >
__gnu_cxx::__enable_if< __is_random_access_iter< _II >::__value, bool >::__type __equal_aux1 (_II __first1,
_II __last1, ::_Deque_iterator< _Tp, _Ref, _Ptr > __first2)
• template<typename _II1 , typename _II2 >
constexpr bool __equal_aux1 (_II1 __first1, _II1 __last1, _II2 __first2)
• template<typename _Tp , typename _Ref , typename _Ptr , typename _II >
bool __equal_dit (const ::_Deque_iterator< _Tp, _Ref, _Ptr > &__first1, const ::_Deque_iterator< _Tp, _Ref,
_Ptr > &__last1, _II __first2)
• template<typename _ForwardIterator , typename _Tp , typename _CompareItTp , typename _CompareTpIt >
constexpr pair< _ForwardIterator, _ForwardIterator > __equal_range (_ForwardIterator __first, _ForwardIterator
__last, const _Tp &__val, _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it)
• template<typename _Tp , typename _Up = _Tp>
constexpr _Tp __exchange (_Tp &__obj, _Up &&__new_val)
• template<typename _FIte , typename _Tp >
constexpr void __fill_a (_FIte __first, _FIte __last, const _Tp &__value)
• template<typename _Ite , typename _Seq , typename _Cat , typename _Tp >
constexpr void __fill_a (const ::__gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > &, const ::__gnu_debug::_Safe_iterator<
_Ite, _Seq, _Cat > &, const _Tp &)
• template<typename _Ite , typename _Cont , typename _Tp >
constexpr void __fill_a1 (::__gnu_cxx::__normal_iterator< _Ite, _Cont > __first, ::__gnu_cxx::__normal_←-
iterator< _Ite, _Cont > __last, const _Tp &__value)
• constexpr void __fill_a1 (::_Bit_iterator, ::_Bit_iterator, const bool &)
• template<typename _ForwardIterator , typename _Tp >
constexpr void __fill_a1 (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
• template<typename _Up , typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_byte< _Up >::__value &&(__are_same< _Up, _Tp >::__value||__←-
memcpyable_integer< _Tp >::__width), void >::__type __fill_a1 (_Up ∗__first, _Up ∗__last, const _Tp &__x)
• template<typename _Tp , typename _VTp >
void __fill_a1 (const ::_Deque_iterator< _Tp, _Tp &, _Tp ∗ > &__first, const ::_Deque_iterator< _Tp, _Tp &,
_Tp ∗ > &__last, const _VTp &__value)
• constexpr void __fill_bvector (_Bit_type ∗__v, unsigned int __first, unsigned int __last, bool __x) noexcept
• constexpr void __fill_bvector_n (_Bit_type ∗, size_t, bool) noexcept

Generated by Doxygen
486

• template<typename _OutputIterator , typename _Size , typename _Tp >


constexpr _OutputIterator __fill_n_a (_OutputIterator __first, _Size __n, const _Tp &__value, std::input_iterator_tag)
• template<typename _OutputIterator , typename _Size , typename _Tp >
constexpr _OutputIterator __fill_n_a (_OutputIterator __first, _Size __n, const _Tp &__value, std::output_iterator_tag)
• template<typename _OutputIterator , typename _Size , typename _Tp >
constexpr _OutputIterator __fill_n_a (_OutputIterator __first, _Size __n, const _Tp &__value, std::random_access_iterator_tag)
• template<typename _Ite , typename _Seq , typename _Cat , typename _Size , typename _Tp >
constexpr ::__gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat > __fill_n_a (const ::__gnu_debug::_Safe_iterator<
_Ite, _Seq, _Cat > &__first, _Size __n, const _Tp &__value, std::input_iterator_tag)
• template<typename _OutputIterator , typename _Size , typename _Tp >
constexpr _OutputIterator __fill_n_a1 (_OutputIterator __first, _Size __n, const _Tp &__value)
• template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _BinaryPredicate >
constexpr _BidirectionalIterator1 __find_end (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _←-
BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag,
_BinaryPredicate __comp)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr _ForwardIterator1 __find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _Forward←-
Iterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag, _BinaryPredicate __←-
comp)
• template<typename _Iterator , typename _Predicate >
constexpr _Iterator __find_if (_Iterator __first, _Iterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _Predicate >
constexpr _InputIterator __find_if_not (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _Predicate , typename _Distance >
constexpr _InputIterator __find_if_not_n (_InputIterator __first, _Distance &__len, _Predicate __pred)
• template<typename _Tp , typename... _Types>
constexpr size_t __find_uniq_type_in_pack ()
• from_chars_result __from_chars_bfloat16_t (const char ∗__first, const char ∗__last, float &__value,
chars_format __fmt=chars_format::general) noexcept
• from_chars_result __from_chars_float16_t (const char ∗__first, const char ∗__last, float &__value, chars_format
__fmt=chars_format::general) noexcept
• template<typename _EuclideanRingElement >
constexpr _EuclideanRingElement __gcd (_EuclideanRingElement __m, _EuclideanRingElement __n)
• template<typename _IntType , typename _UniformRandomBitGenerator >
pair< _IntType, _IntType > __gen_two_uniform_ints (_IntType __b0, _IntType __b1, _UniformRandomBit←-
Generator &&__g)
• template<size_t __i, typename _Head , typename... _Tail>
constexpr _Head & __get_helper (_Tuple_impl< __i, _Head, _Tail... > &__t) noexcept
• template<size_t __i, typename _Head , typename... _Tail>
constexpr const _Head & __get_helper (const _Tuple_impl< __i, _Head, _Tail... > &__t) noexcept
• template<size_t __i, typename... _Types>
__enable_if_t<(__i >=sizeof...(_Types))> __get_helper (const tuple< _Types... > &)=delete
• void __glibcxx_assert_fail (const char ∗__file, int __line, const char ∗__function, const char ∗__condition) noex-
cept
• template<typename _Tp >
size_t __iconv_adaptor (size_t(∗__func)(iconv_t, _Tp, size_t ∗, char ∗∗, size_t ∗), iconv_t __cd, char ∗∗__inbuf,
size_t ∗__inbytes, char ∗∗__outbuf, size_t ∗__outbytes)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Compare >
constexpr bool __includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Input←-
Iterator2 __last2, _Compare __comp)
• template<typename _BidirectionalIterator , typename _Compare >
void __inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last,
_Compare __comp)

Generated by Doxygen
4.10 std Namespace Reference 487

• template<typename _RandomAccessIterator , typename _Compare >


void __inplace_stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _CharT , typename _ValueT >
int __int_to_char (_CharT ∗__bufend, _ValueT __v, const _CharT ∗__lit, ios_base::fmtflags __flags, bool __dec)
• template<typename _Tp , typename _Up = typename __inv_unwrap<_Tp>::type>
constexpr _Up && __invfwd (typename remove_reference< _Tp >::type &__t) noexcept
• template<typename _Callable , typename... _Args>
constexpr __invoke_result< _Callable, _Args... >::type __invoke (_Callable &&__fn, _Args &&... __args)
noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
• template<typename _Res , typename _MemFun , typename _Tp , typename... _Args>
constexpr _Res __invoke_impl (__invoke_memfun_deref, _MemFun &&__f, _Tp &&__t, _Args &&... __args)
• template<typename _Res , typename _MemFun , typename _Tp , typename... _Args>
constexpr _Res __invoke_impl (__invoke_memfun_ref, _MemFun &&__f, _Tp &&__t, _Args &&... __args)
• template<typename _Res , typename _MemPtr , typename _Tp >
constexpr _Res __invoke_impl (__invoke_memobj_deref, _MemPtr &&__f, _Tp &&__t)
• template<typename _Res , typename _MemPtr , typename _Tp >
constexpr _Res __invoke_impl (__invoke_memobj_ref, _MemPtr &&__f, _Tp &&__t)
• template<typename _Res , typename _Fn , typename... _Args>
constexpr _Res __invoke_impl (__invoke_other, _Fn &&__f, _Args &&... __args)
• template<typename _Res , typename _Callable , typename... _Args>
constexpr enable_if_t< is_invocable_r_v< _Res, _Callable, _Args... >, _Res > __invoke_r (_Callable &&__fn,
_Args &&... __args) noexcept(is_nothrow_invocable_r_v< _Res, _Callable, _Args... >)
• constexpr bool __is_constant_evaluated () noexcept
• template<typename _RandomAccessIterator , typename _Compare , typename _Distance >
constexpr bool __is_heap (_RandomAccessIterator __first, _Compare __comp, _Distance __n)
• template<typename _RandomAccessIterator , typename _Distance >
constexpr bool __is_heap (_RandomAccessIterator __first, _Distance __n)
• template<typename _RandomAccessIterator >
constexpr bool __is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr bool __is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _RandomAccessIterator , typename _Distance , typename _Compare >
constexpr _Distance __is_heap_until (_RandomAccessIterator __first, _Distance __n, _Compare &__comp)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr bool __is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 _←-
_first2, _BinaryPredicate __pred)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr bool __is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 _←-
_first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator __is_sorted_until (_ForwardIterator __first, _ForwardIterator __last, _Compare _←-
_comp)
• template<typename _CharT , typename _Traits >
void __istream_extract (basic_istream< _CharT, _Traits > &, _CharT ∗, streamsize)
• void __istream_extract (istream &, char ∗, streamsize)
• template<typename _Iter >
constexpr iterator_traits< _Iter >::iterator_category __iterator_category (const _Iter &)
• template<typename _Tp1 , typename _Ref , typename _Ptr , typename _Tp2 >
int __lex_cmp_dit (::_Deque_iterator< _Tp1, _Ref, _Ptr > __first1, ::_Deque_iterator< _Tp1, _Ref, _Ptr > _←-
_last1, const _Tp2 ∗__first2, const _Tp2 ∗__last2)
• template<typename _II1 , typename _II2 >
constexpr bool __lexicographical_compare_aux (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)

Generated by Doxygen
488

• template<typename _II1 , typename _Ite2 , typename _Seq2 , typename _Cat2 >


constexpr bool __lexicographical_compare_aux (_II1 __first1, _II1 __last1, const ::__gnu_debug::_Safe_iterator<
_Ite2, _Seq2, _Cat2 > &__first2, const ::__gnu_debug::_Safe_iterator< _Ite2, _Seq2, _Cat2 > &__last2)
• template<typename _II1 , typename _Iter2 , typename _Seq2 , typename _Cat2 >
constexpr bool __lexicographical_compare_aux (_II1, _II1, const ::__gnu_debug::_Safe_iterator< _Iter2, _←-
Seq2, _Cat2 > &, const ::__gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2 > &)
• template<typename _Ite1 , typename _Seq1 , typename _Cat1 , typename _II2 >
constexpr bool __lexicographical_compare_aux (const ::__gnu_debug::_Safe_iterator< _Ite1, _Seq1, _Cat1
> &__first1, const ::__gnu_debug::_Safe_iterator< _Ite1, _Seq1, _Cat1 > &__last1, _II2 __first2, _II2 __last2)
• template<typename _Ite1 , typename _Seq1 , typename _Cat1 , typename _Ite2 , typename _Seq2 , typename _Cat2 >
constexpr bool __lexicographical_compare_aux (const ::__gnu_debug::_Safe_iterator< _Ite1, _Seq1, ←-
_Cat1 > &__first1, const ::__gnu_debug::_Safe_iterator< _Ite1, _Seq1, _Cat1 > &__last1, const
::__gnu_debug::_Safe_iterator< _Ite2, _Seq2, _Cat2 > &__first2, const ::__gnu_debug::_Safe_iterator< ←-
_Ite2, _Seq2, _Cat2 > &__last2)
• template<typename _Iter1 , typename _Seq1 , typename _Cat1 , typename _II2 >
constexpr bool __lexicographical_compare_aux (const ::__gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1
> &, const ::__gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1 > &, _II2, _II2)
• template<typename _Iter1 , typename _Seq1 , typename _Cat1 , typename _Iter2 , typename _Seq2 , typename _Cat2 >
constexpr bool __lexicographical_compare_aux (const ::__gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1
> &, const ::__gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1 > &, const ::__gnu_debug::_Safe_iterator<
_Iter2, _Seq2, _Cat2 > &, const ::__gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2 > &)
• template<typename _Tp1 , typename _Ref1 , typename _Ptr1 , typename _Tp2 , typename _Ref2 , typename _Ptr2 >
bool __lexicographical_compare_aux1 (::_Deque_iterator< _Tp1, _Ref1, _Ptr1 > __first1, ::_Deque_iterator<
_Tp1, _Ref1, _Ptr1 > __last1, ::_Deque_iterator< _Tp2, _Ref2, _Ptr2 > __first2, ::_Deque_iterator< _Tp2,
_Ref2, _Ptr2 > __last2)
• template<typename _Tp1 , typename _Ref1 , typename _Ptr1 , typename _Tp2 >
bool __lexicographical_compare_aux1 (::_Deque_iterator< _Tp1, _Ref1, _Ptr1 > __first1, ::_Deque_iterator<
_Tp1, _Ref1, _Ptr1 > __last1, _Tp2 ∗__first2, _Tp2 ∗__last2)
• template<typename _II1 , typename _II2 >
constexpr bool __lexicographical_compare_aux1 (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
• template<typename _Tp1 , typename _Tp2 , typename _Ref2 , typename _Ptr2 >
bool __lexicographical_compare_aux1 (_Tp1 ∗__first1, _Tp1 ∗__last1, ::_Deque_iterator< _Tp2, _Ref2, _Ptr2
> __first2, ::_Deque_iterator< _Tp2, _Ref2, _Ptr2 > __last2)
• template<typename _II1 , typename _II2 , typename _Compare >
constexpr bool __lexicographical_compare_impl (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _←-
Compare __comp)
• template<typename _Tp >
constexpr _Tp __lg (_Tp __n)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr _ForwardIterator __lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val,
_Compare __comp)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void __make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare &_←-
_comp)
• template<typename _Iterator , typename _ReturnType = __conditional_t<__move_if_noexcept_cond <typename iterator_traits<_←-
Iterator>::value_type>::value, _Iterator, move_iterator<_Iterator>>>
constexpr _ReturnType __make_move_if_noexcept_iterator (_Iterator __i)
• template<typename _Tp , typename _ReturnType = __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp∗, move_←-
iterator<_Tp∗>>>
constexpr _ReturnType __make_move_if_noexcept_iterator (_Tp ∗__i)
• template<typename _Iterator >
constexpr reverse_iterator< _Iterator > __make_reverse_iterator (_Iterator __i)

Generated by Doxygen
4.10 std Namespace Reference 489

• template<typename _Tp , _Lock_policy _Lp = __default_lock_policy, typename... _Args>


__shared_ptr< _Tp, _Lp > __make_shared (_Args &&... __args)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator __max_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __←-
comp)
• template<typename _Tp , typename _Up >
constexpr int __memcmp (const _Tp ∗__first1, const _Up ∗__first2, size_t __num)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator __merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _←-
InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _BidirectionalIterator , typename _Distance , typename _Pointer , typename _Compare >
void __merge_adaptive (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __←-
last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Compare __comp)
• template<typename _BidirectionalIterator , typename _Distance , typename _Pointer , typename _Compare >
void __merge_adaptive_resize (_BidirectionalIterator __first, _BidirectionalIterator __middle, _Bidirectional←-
Iterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Compare ←-
__comp)
• template<typename _RandomAccessIterator1 , typename _RandomAccessIterator2 , typename _Distance , typename _Compare >
void __merge_sort_loop (_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _Random←-
AccessIterator2 __result, _Distance __step_size, _Compare __comp)
• template<typename _RandomAccessIterator , typename _Pointer , typename _Compare >
void __merge_sort_with_buffer (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __←-
buffer, _Compare __comp)
• template<typename _BidirectionalIterator , typename _Distance , typename _Compare >
void __merge_without_buffer (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator
__last, _Distance __len1, _Distance __len2, _Compare __comp)
• template<typename _Tp >
constexpr auto __min_cmp (_Tp __x, _Tp __y)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator __min_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __←-
comp)
• template<typename _ForwardIterator , typename _Compare >
constexpr pair< _ForwardIterator, _ForwardIterator > __minmax_element (_ForwardIterator __first, _Forward←-
Iterator __last, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
constexpr pair< _InputIterator1, _InputIterator2 > __mismatch (_InputIterator1 __first1, _InputIterator1 __last1,
_InputIterator2 __first2, _BinaryPredicate __binary_pred)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
constexpr pair< _InputIterator1, _InputIterator2 > __mismatch (_InputIterator1 __first1, _InputIterator1 __last1,
_InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __binary_pred)
• template<typename _Iterator >
constexpr _Iterator __miter_base (_Iterator __it)
• template<typename _Iterator , typename _Compare >
constexpr void __move_median_to_first (_Iterator __result, _Iterator __a, _Iterator __b, _Iterator __c, _Compare
__comp)
• template<typename _InputIterator , typename _OutputIterator , typename _Compare >
_OutputIterator __move_merge (_InputIterator __first1, _InputIterator __last1, _InputIterator __first2, _Input←-
Iterator __last2, _OutputIterator __result, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
void __move_merge_adaptive (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Input←-
Iterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _BidirectionalIterator3 , typename _Compare >
void __move_merge_adaptive_backward (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _←-
BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result, _Compare __comp)

Generated by Doxygen
490

• template<typename _BidirectionalIterator , typename _Compare >


constexpr bool __next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __←-
comp)
• template<typename _Ite , typename _Seq >
constexpr decltype(std::__niter_base(std::declval< _Ite >())) __niter_base (const ::__gnu_debug::_Safe_iterator<
_Ite, _Seq, std::random_access_iterator_tag > &__it) noexcept(std::is_nothrow_copy_constructible< _Ite >←-
::value)
• void __once_proxy (void)
• template<typename _BidirectionalIterator , typename _Predicate >
constexpr _BidirectionalIterator __partition (_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate
__pred, bidirectional_iterator_tag)
• template<typename _ForwardIterator , typename _Predicate >
constexpr _ForwardIterator __partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred,
forward_iterator_tag)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void __pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Random←-
AccessIterator __result, _Compare &__comp)
• template<typename _BidirectionalIterator , typename _Compare >
constexpr bool __prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __←-
comp)
• template<typename _RandomAccessIterator , typename _Distance , typename _Tp , typename _Compare >
constexpr void __push_heap (_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex,
_Tp __value, _Compare &__comp)
• template<typename _Out_iter , typename _Bi_iter , typename _Rx_traits , typename _Ch_type >
_Out_iter __regex_replace (_Out_iter __out, _Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _←-
Rx_traits > &__e, const _Ch_type ∗__fmt, size_t __len, regex_constants::match_flag_type __flags)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate >
constexpr _OutputIterator __remove_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _Predicate __pred)
• template<typename _ForwardIterator , typename _Predicate >
constexpr _ForwardIterator __remove_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate , typename _Tp >
constexpr _OutputIterator __replace_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _Predicate __pred, const _Tp &__new_value)
• template<typename _BidirectionalIterator >
constexpr void __reverse (_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag)
• template<typename _RandomAccessIterator >
constexpr void __reverse (_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag)
• template<typename _BidirectionalIterator >
constexpr _BidirectionalIterator __rotate (_BidirectionalIterator __first, _BidirectionalIterator __middle, _←-
BidirectionalIterator __last, bidirectional_iterator_tag)
• template<typename _ForwardIterator >
constexpr _ForwardIterator __rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __←-
last, forward_iterator_tag)
• template<typename _RandomAccessIterator >
constexpr _RandomAccessIterator __rotate (_RandomAccessIterator __first, _RandomAccessIterator __middle,
_RandomAccessIterator __last, random_access_iterator_tag)
• template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _Distance >
_BidirectionalIterator1 __rotate_adaptive (_BidirectionalIterator1 __first, _BidirectionalIterator1 __middle, _←-
BidirectionalIterator1 __last, _Distance __len1, _Distance __len2, _BidirectionalIterator2 __buffer, _Distance _←-
_buffer_size)

Generated by Doxygen
4.10 std Namespace Reference 491

• template<typename _ForwardIterator , typename _OutputIterator , typename _Cat , typename _Size , typename _UniformRandomBit←-
Generator >
_OutputIterator __sample (_ForwardIterator __first, _ForwardIterator __last, forward_iterator_tag, _OutputIterator
__out, _Cat, _Size __n, _UniformRandomBitGenerator &&__g)
• template<typename _InputIterator , typename _RandomAccessIterator , typename _Size , typename _UniformRandomBitGenerator >
_RandomAccessIterator __sample (_InputIterator __first, _InputIterator __last, input_iterator_tag, _Random←-
AccessIterator __out, random_access_iterator_tag, _Size __n, _UniformRandomBitGenerator &&__g)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr _ForwardIterator1 __search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2
__first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate)
• template<typename _ForwardIterator , typename _Integer , typename _UnaryPredicate >
constexpr _ForwardIterator __search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, _←-
UnaryPredicate __unary_pred)
• template<typename _ForwardIterator , typename _Integer , typename _UnaryPredicate >
constexpr _ForwardIterator __search_n_aux (_ForwardIterator __first, _ForwardIterator __last, _Integer __count,
_UnaryPredicate __unary_pred, std::forward_iterator_tag)
• template<typename _RandomAccessIter , typename _Integer , typename _UnaryPredicate >
constexpr _RandomAccessIter __search_n_aux (_RandomAccessIter __first, _RandomAccessIter __last, _←-
Integer __count, _UnaryPredicate __unary_pred, std::random_access_iterator_tag)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator __set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 _←-
_first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator __set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2
__first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator __set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _←-
InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator __set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _Tp >
_Tp ∗ __shared_ptr_deref (_Tp ∗__p)
• constexpr long long __size_to_integer (double __n)
• constexpr long long __size_to_integer (float __n)
• constexpr int __size_to_integer (int __n)
• constexpr long __size_to_integer (long __n)
• constexpr long long __size_to_integer (long double __n)
• constexpr long long __size_to_integer (long long __n)
• constexpr unsigned __size_to_integer (unsigned __n)
• constexpr unsigned long __size_to_integer (unsigned long __n)
• constexpr unsigned long long __size_to_integer (unsigned long long __n)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void __sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare &__←-
comp)
• template<typename _ForwardIterator , typename _Predicate >
_ForwardIterator __stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _ForwardIterator , typename _Pointer , typename _Predicate , typename _Distance >
_ForwardIterator __stable_partition_adaptive (_ForwardIterator __first, _ForwardIterator __last, _Predicate __←-
pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size)
• template<typename _RandomAccessIterator , typename _Compare >
void __stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)

Generated by Doxygen
492

• template<typename _RandomAccessIterator , typename _Pointer , typename _Compare >


void __stable_sort_adaptive (_RandomAccessIterator __first, _RandomAccessIterator __middle, _Random←-
AccessIterator __last, _Pointer __buffer, _Compare __comp)
• template<typename _RandomAccessIterator , typename _Pointer , typename _Distance , typename _Compare >
void __stable_sort_adaptive_resize (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer
__buffer, _Distance __buffer_size, _Compare __comp)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool __str_codecvt_in (const char ∗__first, const char ∗__last, basic_string< _CharT, _Traits, _Alloc > &__←-
outstr, const codecvt< _CharT, char, _State > &__cvt)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool __str_codecvt_in (const char ∗__first, const char ∗__last, basic_string< _CharT, _Traits, _Alloc > &__←-
outstr, const codecvt< _CharT, char, _State > &__cvt, _State &__state, size_t &__count)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool __str_codecvt_in_all (const char ∗__first, const char ∗__last, basic_string< _CharT, _Traits, _Alloc > &←-
__outstr, const codecvt< _CharT, char, _State > &__cvt)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool __str_codecvt_out (const _CharT ∗__first, const _CharT ∗__last, basic_string< char, _Traits, _Alloc >
&__outstr, const codecvt< _CharT, char, _State > &__cvt)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool __str_codecvt_out (const _CharT ∗__first, const _CharT ∗__last, basic_string< char, _Traits, _Alloc >
&__outstr, const codecvt< _CharT, char, _State > &__cvt, _State &__state, size_t &__count)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _State >
bool __str_codecvt_out_all (const _CharT ∗__first, const _CharT ∗__last, basic_string< char, _Traits, _Alloc >
&__outstr, const codecvt< _CharT, char, _State > &__cvt)
• template<typename _Str >
constexpr _Str __str_concat (typename _Str::value_type const ∗__lhs, typename _Str::size_type __lhs_len,
typename _Str::value_type const ∗__rhs, typename _Str::size_type __rhs_len, typename _Str::allocator_type
const &__a)
• constexpr size_t __sv_check (size_t __size, size_t __pos, const char ∗__s)
• constexpr size_t __sv_limit (size_t __size, size_t __pos, size_t __off) noexcept
• void __terminate () noexcept
• void __throw_bad_alloc (void)
• void __throw_bad_array_new_length (void)
• void __throw_bad_cast (void)
• void __throw_bad_exception (void)
• void __throw_bad_function_call ()
• void __throw_bad_typeid (void)
• void __throw_bad_weak_ptr ()
• void __throw_domain_error (const char ∗)
• void __throw_future_error (int)
• void __throw_invalid_argument (const char ∗)
• void __throw_ios_failure (const char ∗)
• void __throw_ios_failure (const char ∗, int)
• void __throw_length_error (const char ∗)
• void __throw_logic_error (const char ∗)
• void __throw_out_of_range (const char ∗)
• void __throw_out_of_range_fmt (const char ∗,...)
• void __throw_overflow_error (const char ∗)
• void __throw_range_error (const char ∗)
• void __throw_runtime_error (const char ∗)
• void __throw_system_error (int)
• void __throw_underflow_error (const char ∗)

Generated by Doxygen
4.10 std Namespace Reference 493

• template<typename _Tp >


constexpr to_chars_result __to_chars_i (char ∗__first, char ∗__last, _Tp __value, int __base=10)
• constexpr void __to_wstring_numeric (const char ∗__s, int __len, wchar_t ∗__wout)
• constexpr wstring __to_wstring_numeric (string_view __s)
• template<typename _Facet >
const _Facet ∗ __try_use_facet (const locale &__loc)
• template<typename _Cat , typename _Tp , typename _Up , typename _IndexSeq >
constexpr _Cat __tuple_cmp (const _Tp &__t, const _Up &__u, _IndexSeq __indices)
• template<typename _Tp , typename _ForwardIterator >
void __uninitialized_construct_buf (_Tp ∗__first, _Tp ∗__last, _ForwardIterator __seed)
• template<typename _ForwardIterator , typename _BinaryPredicate >
constexpr _ForwardIterator __unique (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __←-
binary_pred)
• template<typename _ForwardIterator , typename _OutputIterator , typename _BinaryPredicate >
constexpr _OutputIterator __unique_copy (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __←-
result, _BinaryPredicate __binary_pred, forward_iterator_tag, output_iterator_tag)
• template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate >
constexpr _ForwardIterator __unique_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result,
_BinaryPredicate __binary_pred, input_iterator_tag, forward_iterator_tag)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryPredicate >
constexpr _OutputIterator __unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_BinaryPredicate __binary_pred, input_iterator_tag, output_iterator_tag)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr _ForwardIterator __upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val,
_Compare __comp)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t __n)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, _Array< bool > __m, size_t __n, _Array< _Tp > __b, _Array< bool
> __k)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t __n)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool > __m)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t > __i)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __a, size_t __n, size_t __s1, _Array< _Tp > __b, size_t __s2)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __e, _Array< size_t > __f, size_t __n, _Array< _Tp > __a, _Array<
size_t > __i)
• template<typename _Tp >
void __valarray_copy (_Array< _Tp > __src, size_t __n, _Array< size_t > __i, _Array< _Tp > __dst, _Array<
size_t > __j)
• template<typename _Tp , class _Dom >
void __valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a)

Generated by Doxygen
494

• template<typename _Tp , class _Dom >


void __valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a, _Array< bool > __m)
• template<typename _Tp , class _Dom >
void __valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a, _Array< size_t >
__i)
• template<typename _Tp , class _Dom >
void __valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a, size_t __s)
• template<typename _Tp >
void __valarray_copy (const _Tp ∗__restrict__ __a, _Tp ∗__restrict__ __b, size_t __n, size_t __s)
• template<typename _Tp >
void __valarray_copy (const _Tp ∗__restrict__ __a, const size_t ∗__restrict__ __i, _Tp ∗__restrict__ __b, size←-
_t __n)
• template<typename _Tp >
void __valarray_copy (const _Tp ∗__restrict__ __a, size_t __n, _Tp ∗__restrict__ __b)
• template<typename _Tp >
void __valarray_copy (const _Tp ∗__restrict__ __a, size_t __n, _Tp ∗__restrict__ __b, const size_t ∗__restrict←-
__ __i)
• template<typename _Tp >
void __valarray_copy (const _Tp ∗__restrict__ __a, size_t __n, size_t __s, _Tp ∗__restrict__ __b)
• template<typename _Tp >
void __valarray_copy (const _Tp ∗__restrict__ __src, size_t __n, const size_t ∗__restrict__ __i, _Tp ∗__←-
restrict__ __dst, const size_t ∗__restrict__ __j)
• template<typename _Tp >
void __valarray_copy (const _Tp ∗__restrict__ __src, size_t __n, size_t __s1, _Tp ∗__restrict__ __dst, size_t
__s2)
• template<typename _Tp >
void __valarray_copy_construct (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t __n)
• template<typename _Tp >
void __valarray_copy_construct (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t __n)
• template<typename _Tp >
void __valarray_copy_construct (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void __valarray_copy_construct (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a)
• template<typename _Tp >
void __valarray_copy_construct (const _Tp ∗__b, const _Tp ∗__e, _Tp ∗__restrict__ __o)
• template<typename _Tp >
void __valarray_copy_construct (const _Tp ∗__restrict__ __a, const size_t ∗__restrict__ __i, _Tp ∗__restrict←-
__ __o, size_t __n)
• template<typename _Tp >
void __valarray_copy_construct (const _Tp ∗__restrict__ __a, size_t __n, size_t __s, _Tp ∗__restrict__ __o)
• template<typename _Tp >
void __valarray_default_construct (_Tp ∗__b, _Tp ∗__e)
• template<typename _Tp >
void __valarray_destroy_elements (_Tp ∗__b, _Tp ∗__e)
• template<typename _Tp >
void __valarray_fill (_Array< _Tp > __a, _Array< size_t > __i, size_t __n, const _Tp &__t)
• template<typename _Tp >
void __valarray_fill (_Array< _Tp > __a, size_t __n, _Array< bool > __m, const _Tp &__t)
• template<typename _Tp >
void __valarray_fill (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void __valarray_fill (_Array< _Tp > __a, size_t __n, size_t __s, const _Tp &__t)

Generated by Doxygen
4.10 std Namespace Reference 495

• template<typename _Tp >


void __valarray_fill (_Tp ∗__restrict__ __a, const size_t ∗__restrict__ __i, size_t __n, const _Tp &__t)
• template<typename _Tp >
void __valarray_fill (_Tp ∗__restrict__ __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void __valarray_fill (_Tp ∗__restrict__ __a, size_t __n, size_t __s, const _Tp &__t)
• template<typename _Tp >
void __valarray_fill_construct (_Tp ∗__b, _Tp ∗__e, const _Tp __t)
• template<typename _Tp >
_Tp ∗ __valarray_get_storage (size_t)
• template<typename _Ta >
_Ta::value_type __valarray_max (const _Ta &__a)
• template<typename _Ta >
_Ta::value_type __valarray_min (const _Ta &__a)
• void __valarray_release_memory (void ∗__p)
• template<typename _Tp >
_Tp __valarray_sum (const _Tp ∗__f, const _Tp ∗__l)
• template<template< typename > class _Trait, typename _Tp , typename _Up = _Tp>
constexpr _Up __value_or (_Up __def=_Up()) noexcept
• bool __verify_grouping (const char ∗__grouping, size_t __grouping_size, const string &__grouping_tmp) throw
()
• template<typename _CharT , typename _OutIter >
_OutIter __write (_OutIter __s, const _CharT ∗__ws, int __len)
• template<typename _CharT >
ostreambuf_iterator< _CharT > __write (ostreambuf_iterator< _CharT > __s, const _CharT ∗__ws, int __len)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b,
size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b,
size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool
> __m)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t
> __i)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___bitwise_and (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)

Generated by Doxygen
496

• template<typename _Tp , class _Dom >


void _Array_augmented___bitwise_and (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool >
__m)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t
> __i)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_or (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size←-
_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size←-
_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)

Generated by Doxygen
4.10 std Namespace Reference 497

• template<typename _Tp >


void _Array_augmented___bitwise_xor (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool >
__m)
• template<typename _Tp >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t
> __i)
• template<typename _Tp >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___bitwise_xor (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___divides (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___divides (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___divides (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool > __m)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t >
__i)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___divides (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___divides (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e, size_t
__n)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___minus (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t __n)

Generated by Doxygen
498

• template<typename _Tp , class _Dom >


void _Array_augmented___minus (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___minus (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool > __m)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t > __i)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___minus (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___minus (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e, size_t
__n)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___modulus (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___modulus (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___modulus (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool >
__m)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t >
__i)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___modulus (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___modulus (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp >
void _Array_augmented___multiplies (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)

Generated by Doxygen
4.10 std Namespace Reference 499

• template<typename _Tp >


void _Array_augmented___multiplies (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___multiplies (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___multiplies (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___multiplies (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___multiplies (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___multiplies (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___multiplies (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool >
__m)
• template<typename _Tp >
void _Array_augmented___multiplies (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t >
__i)
• template<typename _Tp >
void _Array_augmented___multiplies (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___multiplies (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___multiplies (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___plus (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___plus (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___plus (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool > __m)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t > __i)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___plus (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)

Generated by Doxygen
500

• template<typename _Tp , class _Dom >


void _Array_augmented___plus (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e, size_t
__n)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_left (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_left (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp >
&__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_left (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool >
__m)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t >
__i)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___shift_left (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_left (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp >
void _Array_augmented___shift_right (_Array< _Tp > __a, _Array< _Tp > __b, size_t __n, size_t __s)
• template<typename _Tp >
void _Array_augmented___shift_right (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_right (_Array< _Tp > __a, _Array< bool > __m, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___shift_right (_Array< _Tp > __a, _Array< size_t > __i, _Array< _Tp > __b, size_t
__n)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_right (_Array< _Tp > __a, _Array< size_t > __i, const _Expr< _Dom, _Tp
> &__e, size_t __n)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_right (_Array< _Tp > __a, const _Expr< _Dom, _Tp > &__e, size_t __n)
• template<typename _Tp >
void _Array_augmented___shift_right (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b)

Generated by Doxygen
4.10 std Namespace Reference 501

• template<typename _Tp >


void _Array_augmented___shift_right (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool >
__m)
• template<typename _Tp >
void _Array_augmented___shift_right (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< size_t >
__i)
• template<typename _Tp >
void _Array_augmented___shift_right (_Array< _Tp > __a, size_t __n, const _Tp &__t)
• template<typename _Tp >
void _Array_augmented___shift_right (_Array< _Tp > __a, size_t __n, size_t __s, _Array< _Tp > __b)
• template<typename _Tp , class _Dom >
void _Array_augmented___shift_right (_Array< _Tp > __a, size_t __s, const _Expr< _Dom, _Tp > &__e,
size_t __n)
• template<typename _Tp , typename... _Args>
constexpr void _Construct (_Tp ∗__p, _Args &&... __args)
• template<typename _T1 >
void _Construct_novalue (_T1 ∗__p)
• template<typename _ForwardIterator >
constexpr void _Destroy (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _Tp >
constexpr void _Destroy (_Tp ∗__pointer)
• template<typename _ForwardIterator , typename _Size >
constexpr _ForwardIterator _Destroy_n (_ForwardIterator __first, _Size __count)
• size_t _Fnv_hash_bytes (const void ∗__ptr, size_t __len, size_t __seed)
• size_t _Hash_bytes (const void ∗__ptr, size_t __len, size_t __seed)
• unsigned int _Rb_tree_black_count (const _Rb_tree_node_base ∗__node, const _Rb_tree_node_base ∗__←-
root) throw ()
• _Rb_tree_node_base ∗ _Rb_tree_decrement (_Rb_tree_node_base ∗__x) throw ()
• _Rb_tree_node_base ∗ _Rb_tree_increment (_Rb_tree_node_base ∗__x) throw ()
• void _Rb_tree_insert_and_rebalance (const bool __insert_left, _Rb_tree_node_base ∗__x, _Rb_tree_node_←-
base ∗__p, _Rb_tree_node_base &__header) throw ()
• _Rb_tree_node_base ∗ _Rb_tree_rebalance_for_erase (_Rb_tree_node_base ∗const __z, _Rb_tree_node_←-
base &__header) throw ()
• template<class _Dom >
_Expr< _UnClos< struct std::_Abs, _Expr, _Dom >, typename _Dom::value_type > abs (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
_Tp abs (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Abs, _ValArray, _Tp >, _Tp > abs (const valarray< _Tp > &__v)
• constexpr double abs (double __x)
• constexpr float abs (float __x)
• long abs (long __i)
• constexpr long double abs (long double __x)
• long long abs (long long __x)
• template<typename _InputIterator , typename _Tp >
constexpr _Tp accumulate (_InputIterator __first, _InputIterator __last, _Tp __init)
• template<typename _InputIterator , typename _Tp , typename _BinaryOperation >
constexpr _Tp accumulate (_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type acos (_Tp __x)

Generated by Doxygen
502

• template<class _Dom >


_Expr< _UnClos< struct std::_Acos, _Expr, _Dom >, typename _Dom::value_type > acos (const _Expr< _←-
Dom, typename _Dom::value_type > &__e)
• template<typename _Tp >
std::complex< _Tp > acos (const std::complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Acos, _ValArray, _Tp >, _Tp > acos (const valarray< _Tp > &__v)
• constexpr float acos (float __x)
• constexpr long double acos (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type acosh (_Tp __x)
• template<typename _Tp >
std::complex< _Tp > acosh (const std::complex< _Tp > &)
• constexpr float acosh (float __x)
• constexpr long double acosh (long double __x)
• template<typename _Tp >
constexpr _Tp ∗ addressof (_Tp &__r) noexcept
• template<typename _Tp >
const _Tp ∗ addressof (const _Tp &&)=delete
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator adjacent_difference (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >
constexpr _OutputIterator adjacent_difference (_InputIterator __first, _InputIterator __last, _OutputIterator __←-
result, _BinaryOperation __binary_op)
• template<typename _FIter >
constexpr _FIter adjacent_find (_FIter, _FIter)
• template<typename _FIter , typename _BinaryPredicate >
constexpr _FIter adjacent_find (_FIter, _FIter, _BinaryPredicate)
• template<typename _ForwardIterator >
constexpr _ForwardIterator adjacent_find (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _BinaryPredicate >
constexpr _ForwardIterator adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate ←-
__binary_pred)
• template<typename _InputIterator , typename _Distance >
constexpr void advance (_InputIterator &__i, _Distance __n)
• template<typename _CharT , typename _Distance >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, void >::__type advance (istreambuf_iterator< _←-
CharT > &__i, _Distance __n)
• void ∗ align (size_t __align, size_t __size, void ∗&__ptr, size_t &__space) noexcept
• template<typename _IIter , typename _Predicate >
constexpr bool all_of (_IIter, _IIter, _Predicate)
• template<typename _InputIterator , typename _Predicate >
constexpr bool all_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _IIter , typename _Predicate >
constexpr bool any_of (_IIter, _IIter, _Predicate)
• template<typename _InputIterator , typename _Predicate >
constexpr bool any_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type arg (_Tp __x)
• template<typename _Tp >
_Tp arg (const complex< _Tp > &)

Generated by Doxygen
4.10 std Namespace Reference 503

• template<typename _Tp , typename... _Up>


array (_Tp, _Up...) -> array< enable_if_t<(is_same_v< _Tp, _Up > &&...), _Tp >, 1+sizeof...(_Up)>
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type asin (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Asin, _Expr, _Dom >, typename _Dom::value_type > asin (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
std::complex< _Tp > asin (const std::complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Asin, _ValArray, _Tp >, _Tp > asin (const valarray< _Tp > &__v)
• constexpr float asin (float __x)
• constexpr long double asin (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type asinh (_Tp __x)
• template<typename _Tp >
std::complex< _Tp > asinh (const std::complex< _Tp > &)
• constexpr float asinh (float __x)
• constexpr long double asinh (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type assoc_laguerre (unsigned int __n, unsigned int __m, _Tp __x)
• float assoc_laguerref (unsigned int __n, unsigned int __m, float __x)
• long double assoc_laguerrel (unsigned int __n, unsigned int __m, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type assoc_legendre (unsigned int __l, unsigned int __m, _Tp __x)
• float assoc_legendref (unsigned int __l, unsigned int __m, float __x)
• long double assoc_legendrel (unsigned int __l, unsigned int __m, long double __x)
• template<size_t _Align, class _Tp >
constexpr _Tp ∗ assume_aligned (_Tp ∗__ptr) noexcept
• template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > async (_Fn &&__fn, _Args &&... __args)
• template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > async (launch __policy, _Fn &&__fn, _Args &&... __args)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type atan (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Atan, _Expr, _Dom >, typename _Dom::value_type > atan (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
std::complex< _Tp > atan (const std::complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Atan, _ValArray, _Tp >, _Tp > atan (const valarray< _Tp > &__v)
• constexpr float atan (float __x)
• constexpr long double atan (long double __x)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type atan2 (_Tp __y, _Up __x)
• template<class _Dom >
_Expr< _BinClos< struct std::_Atan2, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename _←-
Dom::value_type > atan2 (const _Expr< _Dom, typename _Dom::value_type > &__e, const typename _Dom←-
::value_type &__t)

Generated by Doxygen
504

• template<class _Dom >


_Expr< _BinClos< struct std::_Atan2, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename ←-
_Dom::value_type > atan2 (const _Expr< _Dom, typename _Dom::value_type > &__e, const valarray< type-
name _Dom::value_type > &__v)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::_Atan2, _Expr, _Expr, _Dom1, _Dom2 >, typename _Dom1::value_type > atan2
(const _Expr< _Dom1, typename _Dom1::value_type > &__e1, const _Expr< _Dom2, typename _Dom2←-
::value_type > &__e2)
• template<class _Dom >
_Expr< _BinClos< struct std::_Atan2, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename ←-
_Dom::value_type > atan2 (const typename _Dom::value_type &__t, const _Expr< _Dom, typename _Dom←-
::value_type > &__e)
• template<typename _Tp >
_Expr< _BinClos< struct std::_Atan2, _Constant, _ValArray, _Tp, _Tp >, _Tp > atan2 (const typename
valarray< _Tp >::value_type &__t, const valarray< _Tp > &__v)
• template<typename _Tp >
_Expr< _BinClos< struct std::_Atan2, _ValArray, _Constant, _Tp, _Tp >, _Tp > atan2 (const valarray< _Tp >
&__v, const typename valarray< _Tp >::value_type &__t)
• template<typename _Tp >
_Expr< _BinClos< struct std::_Atan2, _ValArray, _ValArray, _Tp, _Tp >, _Tp > atan2 (const valarray< _Tp >
&__v, const valarray< _Tp > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::_Atan2, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename _←-
Dom::value_type > atan2 (const valarray< typename _Dom::valarray > &__v, const _Expr< _Dom, typename
_Dom::value_type > &__e)
• constexpr float atan2 (float __y, float __x)
• constexpr long double atan2 (long double __y, long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type atanh (_Tp __x)
• template<typename _Tp >
std::complex< _Tp > atanh (const std::complex< _Tp > &)
• constexpr float atanh (float __x)
• constexpr long double atanh (long double __x)
• template<typename _ITp >
bool atomic_compare_exchange_strong (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, __atomic_←-
val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool atomic_compare_exchange_strong (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, __←-
atomic_val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool atomic_compare_exchange_strong_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, _←-
_atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
• template<typename _ITp >
bool atomic_compare_exchange_strong_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗←-
__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
• template<typename _ITp >
bool atomic_compare_exchange_weak (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, __atomic_←-
val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool atomic_compare_exchange_weak (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, __←-
atomic_val_t< _ITp > __i2) noexcept
• template<typename _ITp >
bool atomic_compare_exchange_weak_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗__i1, __←-
atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept

Generated by Doxygen
4.10 std Namespace Reference 505

• template<typename _ITp >


bool atomic_compare_exchange_weak_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > ∗←-
__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
• template<typename _ITp >
_ITp atomic_exchange (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_exchange (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_exchange_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order __m)
noexcept
• template<typename _ITp >
_ITp atomic_exchange_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order
__m) noexcept
• template<typename _ITp >
_ITp atomic_fetch_add (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_add (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_add_explicit (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i, memory_order __m)
noexcept
• template<typename _ITp >
_ITp atomic_fetch_add_explicit (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i, memory_order
__m) noexcept
• template<typename _ITp >
_ITp atomic_fetch_and (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_and (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_and_explicit (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order
__m) noexcept
• template<typename _ITp >
_ITp atomic_fetch_and_explicit (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp atomic_fetch_or (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_or (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_or_explicit (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order
__m) noexcept
• template<typename _ITp >
_ITp atomic_fetch_or_explicit (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• template<typename _ITp >
_ITp atomic_fetch_sub (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_sub (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_sub_explicit (atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i, memory_order __m)
noexcept
• template<typename _ITp >
_ITp atomic_fetch_sub_explicit (volatile atomic< _ITp > ∗__a, __atomic_diff_t< _ITp > __i, memory_order
__m) noexcept

Generated by Doxygen
506

• template<typename _ITp >


_ITp atomic_fetch_xor (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_xor (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
_ITp atomic_fetch_xor_explicit (__atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order
__m) noexcept
• template<typename _ITp >
_ITp atomic_fetch_xor_explicit (volatile __atomic_base< _ITp > ∗__a, __atomic_val_t< _ITp > __←-
i, memory_order __m) noexcept
• void atomic_flag_clear (atomic_flag ∗__a) noexcept
• void atomic_flag_clear (volatile atomic_flag ∗__a) noexcept
• void atomic_flag_clear_explicit (atomic_flag ∗__a, memory_order __m) noexcept
• void atomic_flag_clear_explicit (volatile atomic_flag ∗__a, memory_order __m) noexcept
• bool atomic_flag_test_and_set (atomic_flag ∗__a) noexcept
• bool atomic_flag_test_and_set (volatile atomic_flag ∗__a) noexcept
• bool atomic_flag_test_and_set_explicit (atomic_flag ∗__a, memory_order __m) noexcept
• bool atomic_flag_test_and_set_explicit (volatile atomic_flag ∗__a, memory_order __m) noexcept
• template<typename _ITp >
void atomic_init (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
void atomic_init (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
bool atomic_is_lock_free (const atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
bool atomic_is_lock_free (const volatile atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
_ITp atomic_load (const atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
_ITp atomic_load (const volatile atomic< _ITp > ∗__a) noexcept
• template<typename _ITp >
_ITp atomic_load_explicit (const atomic< _ITp > ∗__a, memory_order __m) noexcept
• template<typename _ITp >
_ITp atomic_load_explicit (const volatile atomic< _ITp > ∗__a, memory_order __m) noexcept
• void atomic_signal_fence (memory_order __m) noexcept
• template<typename _ITp >
void atomic_store (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
void atomic_store (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i) noexcept
• template<typename _ITp >
void atomic_store_explicit (atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
• template<typename _ITp >
void atomic_store_explicit (volatile atomic< _ITp > ∗__a, __atomic_val_t< _ITp > __i, memory_order __m)
noexcept
• void atomic_thread_fence (memory_order __m) noexcept
• template<typename _Container >
constexpr back_insert_iterator< _Container > back_inserter (_Container &__x)
• template<typename _ForwardIterator >
basic_regex (_ForwardIterator, _ForwardIterator, regex_constants::syntax_option_type={}) -> basic_regex<
typename iterator_traits< _ForwardIterator >::value_type >

Generated by Doxygen
4.10 std Namespace Reference 507

• template<typename _InputIterator , typename _CharT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =


allocator<_CharT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
basic_string (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> basic_string< _CharT, char_traits< _←-
CharT >, _Allocator >
• template<typename _CharT , typename _Traits , typename _Allocator = allocator<_CharT>, typename = _RequireAllocator<_Allocator>>
basic_string (basic_string_view< _CharT, _Traits >, const _Allocator &=_Allocator()) -> basic_string< _CharT,
_Traits, _Allocator >
• template<typename _CharT , typename _Traits , typename _Allocator = allocator<_CharT>, typename = _RequireAllocator<_Allocator>>
basic_string (basic_string_view< _CharT, _Traits >, typename basic_string< _CharT, _Traits, _Allocator >←-
::size_type, typename basic_string< _CharT, _Traits, _Allocator >::size_type, const _Allocator &=_Allocator())
-> basic_string< _CharT, _Traits, _Allocator >
• template<typename _Operation >
void basic_string< _CharT, _Traits, _Alloc >__resize_and_overwrite (const size_type __n, _Operation __op)
• template<typename _Container >
constexpr auto begin (_Container &__cont) noexcept(noexcept(__cont.begin())) -> decltype(__cont.begin())
• template<typename _Tp , size_t _Nm>
constexpr _Tp ∗ begin (_Tp(&__arr)[_Nm]) noexcept
• template<typename _Container >
constexpr auto begin (const _Container &__cont) noexcept(noexcept(__cont.begin())) -> decltype(__cont.←-
begin())
• template<class _Tp >
const _Tp ∗ begin (const valarray< _Tp > &__va) noexcept
• template<class _Tp >
_Tp ∗ begin (valarray< _Tp > &__va) noexcept
• template<class _Tp >
constexpr const _Tp ∗ begin (initializer_list< _Tp > __ils) noexcept
• template<typename _Tpa , typename _Tpb >
__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type beta (_Tpa __a, _Tpb __b)
• float betaf (float __a, float __b)
• long double betal (long double __a, long double __b)
• template<typename _FIter , typename _Tp >
constexpr bool binary_search (_FIter, _FIter, const _Tp &)
• template<typename _FIter , typename _Tp , typename _Compare >
constexpr bool binary_search (_FIter, _FIter, const _Tp &, _Compare)
• template<typename _ForwardIterator , typename _Tp >
constexpr bool binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr bool binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare
__comp)
• template<typename _Func , typename... _BoundArgs>
constexpr _Bind_helper< __is_socketlike< _Func >::value, _Func, _BoundArgs... >::type bind (_Func &&__f,
_BoundArgs &&... __args)
• template<typename _Result , typename _Func , typename... _BoundArgs>
constexpr _Bindres_helper< _Result, _Func, _BoundArgs... >::type bind (_Func &&__f, _BoundArgs &&... __←-
args)
• template<typename _Operation , typename _Tp >
binder1st< _Operation > bind1st (const _Operation &__fn, const _Tp &__x)
• template<typename _Operation , typename _Tp >
binder2nd< _Operation > bind2nd (const _Operation &__fn, const _Tp &__x)
• ios_base & boolalpha (ios_base &__base)
• template<typename _Callable , typename... _Args>
void call_once (once_flag &__once, _Callable &&__f, _Args &&... __args)

Generated by Doxygen
508

• template<typename _Container >


constexpr auto cbegin (const _Container &__cont) noexcept(noexcept(std::begin(__cont))) -> decltype(std::begin(←-
__cont))
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type cbrt (_Tp __x)
• constexpr float cbrt (float __x)
• constexpr long double cbrt (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type ceil (_Tp __x)
• constexpr float ceil (float __x)
• constexpr long double ceil (long double __x)
• template<typename _Container >
constexpr auto cend (const _Container &__cont) noexcept(noexcept(std::end(__cont))) -> decltype(std::end(_←-
_cont))
• template<typename _Tp >
constexpr const _Tp & clamp (const _Tp &__val, const _Tp &__lo, const _Tp &__hi)
• template<typename _Tp , typename _Compare >
constexpr const _Tp & clamp (const _Tp &__val, const _Tp &__lo, const _Tp &__hi, _Compare __comp)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type comp_ellint_1 (_Tp __k)
• float comp_ellint_1f (float __k)
• long double comp_ellint_1l (long double __k)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type comp_ellint_2 (_Tp __k)
• float comp_ellint_2f (float __k)
• long double comp_ellint_2l (long double __k)
• template<typename _Tp , typename _Tpn >
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3 (_Tp __k, _Tpn __nu)
• float comp_ellint_3f (float __k, float __nu)
• long double comp_ellint_3l (long double __k, long double __nu)
• template<typename _Tp >
constexpr std::complex< typename __gnu_cxx::__promote< _Tp >::__type > conj (_Tp __x)
• template<typename _Tp >
constexpr complex< _Tp > conj (const complex< _Tp > &)
• template<typename _Tp , typename _Tp1 , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > const_pointer_cast (const __shared_ptr< _Tp1, _Lp > &__r) noexcept
• template<typename _Tp , typename... _Args>
requires (!is_unbounded_array_v<_Tp>) && requires { ::new((void∗)0) _Tp(std::declval<_Args>()...); }
constexpr _Tp ∗ construct_at (_Tp ∗__location, _Args &&... __args) noexcept(noexcept(::new((void ∗) 0) _←-
Tp(std::declval< _Args >()...)))
• template<typename _II , typename _OI >
constexpr _OI copy (_II __first, _II __last, _OI __result)
• template<typename _IIter , typename _OIter >
constexpr _OIter copy (_IIter, _IIter, _OIter)
• template<typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type copy
(istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, ostreambuf_iterator< _CharT
> __result)
• template<typename _BI1 , typename _BI2 >
constexpr _BI2 copy_backward (_BI1 __first, _BI1 __last, _BI2 __result)
• template<typename _BIter1 , typename _BIter2 >
constexpr _BIter2 copy_backward (_BIter1, _BIter1, _BIter2)

Generated by Doxygen
4.10 std Namespace Reference 509

• template<typename _IIter , typename _OIter , typename _Predicate >


constexpr _OIter copy_if (_IIter, _IIter, _OIter, _Predicate)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate >
constexpr _OutputIterator copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate
__pred)
• template<typename _IIter , typename _Size , typename _OIter >
constexpr _OIter copy_n (_IIter, _Size, _OIter)
• template<typename _InputIterator , typename _Size , typename _OutputIterator >
constexpr _OutputIterator copy_n (_InputIterator __first, _Size __n, _OutputIterator __result)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type copysign (_Tp __x, _Up __y)
• constexpr float copysign (float __x, float __y)
• constexpr long double copysign (long double __x, long double __y)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type cos (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Cos, _Expr, _Dom >, typename _Dom::value_type > cos (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > cos (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Cos, _ValArray, _Tp >, _Tp > cos (const valarray< _Tp > &__v)
• constexpr float cos (float __x)
• constexpr long double cos (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type cosh (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Cosh, _Expr, _Dom >, typename _Dom::value_type > cosh (const _Expr< _←-
Dom, typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > cosh (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Cosh, _ValArray, _Tp >, _Tp > cosh (const valarray< _Tp > &__v)
• constexpr float cosh (float __x)
• constexpr long double cosh (long double __x)
• template<typename _IIter , typename _Tp >
constexpr iterator_traits< _IIter >::difference_type count (_IIter, _IIter, const _Tp &)
• template<typename _InputIterator , typename _Tp >
constexpr iterator_traits< _InputIterator >::difference_type count (_InputIterator __first, _InputIterator __last,
const _Tp &__value)
• template<typename _IIter , typename _Predicate >
constexpr iterator_traits< _IIter >::difference_type count_if (_IIter, _IIter, _Predicate)
• template<typename _InputIterator , typename _Predicate >
constexpr iterator_traits< _InputIterator >::difference_type count_if (_InputIterator __first, _InputIterator __last,
_Predicate __pred)
• template<typename _Container >
constexpr auto crbegin (const _Container &__cont) noexcept(noexcept(std::rbegin(__cont))) -> decltype(std::rbegin(←-
__cont))
• template<typename _Container >
constexpr auto crend (const _Container &__cont) noexcept(noexcept(std::rend(__cont))) -> decltype(std::rend(←-
__cont))
• exception_ptr current_exception () noexcept

Generated by Doxygen
510

• template<typename _Tpnu , typename _Tp >


__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i (_Tpnu __nu, _Tp __x)
• float cyl_bessel_if (float __nu, float __x)
• long double cyl_bessel_il (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j (_Tpnu __nu, _Tp __x)
• float cyl_bessel_jf (float __nu, float __x)
• long double cyl_bessel_jl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k (_Tpnu __nu, _Tp __x)
• float cyl_bessel_kf (float __nu, float __x)
• long double cyl_bessel_kl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann (_Tpnu __nu, _Tp __x)
• float cyl_neumannf (float __nu, float __x)
• long double cyl_neumannl (long double __nu, long double __x)
• template<typename _Container >
constexpr auto data (_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
• template<typename _Tp , size_t _Nm>
constexpr _Tp ∗ data (_Tp(&__array)[_Nm]) noexcept
• template<typename _Container >
constexpr auto data (const _Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
• template<typename _Tp >
constexpr const _Tp ∗ data (initializer_list< _Tp > __il) noexcept
• ios_base & dec (ios_base &__base)
• void declare_no_pointers (char ∗, size_t)
• void declare_reachable (void ∗)
• template<typename _Tp >
auto declval () noexcept -> decltype(__declval< _Tp >(0))
• ios_base & defaultfloat (ios_base &__base)
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =
allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
deque (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> deque< _ValT, _Allocator >
• template<typename _ForwardIterator >
constexpr void destroy (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _Tp >
constexpr void destroy_at (_Tp ∗__location)
• template<typename _ForwardIterator , typename _Size >
constexpr _ForwardIterator destroy_n (_ForwardIterator __first, _Size __count)
• template<typename _InputIterator >
constexpr iterator_traits< _InputIterator >::difference_type distance (_InputIterator __first, _InputIterator __last)
• ldiv_t div (long __i, long __j) noexcept
• template<typename _Tp , typename _Tp1 , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > dynamic_pointer_cast (const __shared_ptr< _Tp1, _Lp > &__r) noexcept
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1 (_Tp __k, _Tpp __phi)
• float ellint_1f (float __k, float __phi)
• long double ellint_1l (long double __k, long double __phi)
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2 (_Tp __k, _Tpp __phi)
• float ellint_2f (float __k, float __phi)
• long double ellint_2l (long double __k, long double __phi)

Generated by Doxygen
4.10 std Namespace Reference 511

• template<typename _Tp , typename _Tpn , typename _Tpp >


__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3 (_Tp __k, _Tpn __nu, _Tpp __phi)
• float ellint_3f (float __k, float __nu, float __phi)
• long double ellint_3l (long double __k, long double __nu, long double __phi)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & emit_on_flush (basic_ostream< _CharT, _Traits > &__os)
• template<typename _Container >
constexpr auto empty (const _Container &__cont) noexcept(noexcept(__cont.empty())) -> decltype(__cont.←-
empty())
• template<typename _Tp , size_t _Nm>
constexpr bool empty (const _Tp(&)[_Nm]) noexcept
• template<typename _Tp >
constexpr bool empty (initializer_list< _Tp > __il) noexcept
• template<typename _Container >
constexpr auto end (_Container &__cont) noexcept(noexcept(__cont.end())) -> decltype(__cont.end())
• template<typename _Tp , size_t _Nm>
constexpr _Tp ∗ end (_Tp(&__arr)[_Nm]) noexcept
• template<typename _Container >
constexpr auto end (const _Container &__cont) noexcept(noexcept(__cont.end())) -> decltype(__cont.end())
• template<class _Tp >
const _Tp ∗ end (const valarray< _Tp > &__va) noexcept
• template<class _Tp >
_Tp ∗ end (valarray< _Tp > &__va) noexcept
• template<class _Tp >
constexpr const _Tp ∗ end (initializer_list< _Tp > __ils) noexcept
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & endl (basic_ostream< _CharT, _Traits > &__os)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & ends (basic_ostream< _CharT, _Traits > &__os)
• template<typename _II1 , typename _II2 >
constexpr bool equal (_II1 __first1, _II1 __last1, _II2 __first2)
• template<typename _II1 , typename _II2 >
constexpr bool equal (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
• template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
constexpr bool equal (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _BinaryPredicate __binary_pred)
• template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
constexpr bool equal (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary←-
_pred)
• template<typename _IIter1 , typename _IIter2 >
constexpr bool equal (_IIter1, _IIter1, _IIter2)
• template<typename _FIter , typename _Tp >
constexpr pair< _FIter, _FIter > equal_range (_FIter, _FIter, const _Tp &)
• template<typename _FIter , typename _Tp , typename _Compare >
constexpr pair< _FIter, _FIter > equal_range (_FIter, _FIter, const _Tp &, _Compare)
• template<typename _ForwardIterator , typename _Tp >
constexpr pair< _ForwardIterator, _ForwardIterator > equal_range (_ForwardIterator __first, _ForwardIterator
__last, const _Tp &__val)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr pair< _ForwardIterator, _ForwardIterator > equal_range (_ForwardIterator __first, _ForwardIterator
__last, const _Tp &__val, _Compare __comp)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc , typename _Predicate >
map< _Key, _Tp, _Compare, _Alloc >::size_type erase_if (map< _Key, _Tp, _Compare, _Alloc > &__cont,
_Predicate __pred)

Generated by Doxygen
512

• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc , typename _Predicate >
multimap< _Key, _Tp, _Compare, _Alloc >::size_type erase_if (multimap< _Key, _Tp, _Compare, _Alloc >
&__cont, _Predicate __pred)
• template<typename _Key , typename _Compare , typename _Alloc , typename _Predicate >
multiset< _Key, _Compare, _Alloc >::size_type erase_if (multiset< _Key, _Compare, _Alloc > &__cont, _←-
Predicate __pred)
• template<typename _Key , typename _Compare , typename _Alloc , typename _Predicate >
set< _Key, _Compare, _Alloc >::size_type erase_if (set< _Key, _Compare, _Alloc > &__cont, _Predicate __←-
pred)
• template<typename _Key , typename _Tp , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
unordered_map< _Key, _Tp, _Hash, _CPred, _Alloc >::size_type erase_if (unordered_map< _Key, _Tp, _Hash,
_CPred, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Tp , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
unordered_multimap< _Key, _Tp, _Hash, _CPred, _Alloc >::size_type erase_if (unordered_multimap< _Key,
_Tp, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
unordered_multiset< _Key, _Hash, _CPred, _Alloc >::size_type erase_if (unordered_multiset< _Key, _Hash,
_CPred, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
unordered_set< _Key, _Hash, _CPred, _Alloc >::size_type erase_if (unordered_set< _Key, _Hash, _CPred,
_Alloc > &__cont, _Predicate __pred)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type erf (_Tp __x)
• constexpr float erf (float __x)
• constexpr long double erf (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type erfc (_Tp __x)
• constexpr float erfc (float __x)
• constexpr long double erfc (long double __x)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp >
constexpr _OutputIterator exclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_Tp __init)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp , typename _BinaryOperation >
constexpr _OutputIterator exclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_Tp __init, _BinaryOperation __binary_op)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type exp (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Exp, _Expr, _Dom >, typename _Dom::value_type > exp (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > exp (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Exp, _ValArray, _Tp >, _Tp > exp (const valarray< _Tp > &__v)
• constexpr float exp (float __x)
• constexpr long double exp (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type exp2 (_Tp __x)
• constexpr float exp2 (float __x)
• constexpr long double exp2 (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type expint (_Tp __x)

Generated by Doxygen
4.10 std Namespace Reference 513

• float expintf (float __x)


• long double expintl (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type expm1 (_Tp __x)
• constexpr float expm1 (float __x)
• constexpr long double expm1 (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type fabs (_Tp __x)
• template<typename _Tp >
_Tp fabs (const std::complex< _Tp > &__z)
• constexpr float fabs (float __x)
• constexpr long double fabs (long double __x)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type fdim (_Tp __x, _Up __y)
• constexpr float fdim (float __x, float __y)
• constexpr long double fdim (long double __x, long double __y)
• template<typename _FIter , typename _Tp >
constexpr void fill (_FIter, _FIter, const _Tp &)
• template<typename _ForwardIterator , typename _Tp >
constexpr void fill (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
• template<typename _OI , typename _Size , typename _Tp >
constexpr _OI fill_n (_OI __first, _Size __n, const _Tp &__value)
• template<typename _OIter , typename _Size , typename _Tp >
constexpr _OIter fill_n (_OIter, _Size, const _Tp &)
• template<typename _IIter , typename _Tp >
constexpr _IIter find (_IIter, _IIter, const _Tp &)
• template<typename _InputIterator , typename _Tp >
constexpr _InputIterator find (_InputIterator __first, _InputIterator __last, const _Tp &__val)
• template<typename _CharT >
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, istreambuf_iterator< _CharT > >::__type find
(istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, const _CharT &__val)
• template<typename _FIter1 , typename _FIter2 >
constexpr _FIter1 find_end (_FIter1, _FIter1, _FIter2, _FIter2)
• template<typename _FIter1 , typename _FIter2 , typename _BinaryPredicate >
constexpr _FIter1 find_end (_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr _ForwardIterator1 find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2
__first2, _ForwardIterator2 __last2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr _ForwardIterator1 find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2
__first2, _ForwardIterator2 __last2, _BinaryPredicate __comp)
• template<typename _FIter1 , typename _FIter2 >
constexpr _FIter1 find_first_of (_FIter1, _FIter1, _FIter2, _FIter2)
• template<typename _FIter1 , typename _FIter2 , typename _BinaryPredicate >
constexpr _FIter1 find_first_of (_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate)
• template<typename _InputIterator , typename _ForwardIterator >
constexpr _InputIterator find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _←-
ForwardIterator __last2)
• template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate >
constexpr _InputIterator find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _←-
ForwardIterator __last2, _BinaryPredicate __comp)
• template<typename _IIter , typename _Predicate >
constexpr _IIter find_if (_IIter, _IIter, _Predicate)

Generated by Doxygen
514

• template<typename _InputIterator , typename _Predicate >


constexpr _InputIterator find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _IIter , typename _Predicate >
constexpr _IIter find_if_not (_IIter, _IIter, _Predicate)
• template<typename _InputIterator , typename _Predicate >
constexpr _InputIterator find_if_not (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• ios_base & fixed (ios_base &__base)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type floor (_Tp __x)
• constexpr float floor (float __x)
• constexpr long double floor (long double __x)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & flush (basic_ostream< _CharT, _Traits > &__os)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & flush_emit (basic_ostream< _CharT, _Traits > &__os)
• template<typename _Tp , typename _Up , typename _Vp >
constexpr __gnu_cxx::__promote_3< _Tp, _Up, _Vp >::__type fma (_Tp __x, _Up __y, _Vp __z)
• constexpr float fma (float __x, float __y, float __z)
• constexpr long double fma (long double __x, long double __y, long double __z)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type fmax (_Tp __x, _Up __y)
• constexpr float fmax (float __x, float __y)
• constexpr long double fmax (long double __x, long double __y)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type fmin (_Tp __x, _Up __y)
• constexpr float fmin (float __x, float __y)
• constexpr long double fmin (long double __x, long double __y)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type fmod (_Tp __x, _Up __y)
• constexpr float fmod (float __x, float __y)
• constexpr long double fmod (long double __x, long double __y)
• template<typename _IIter , typename _Funct >
constexpr _Funct for_each (_IIter, _IIter, _Funct)
• template<typename _InputIterator , typename _Function >
constexpr _Function for_each (_InputIterator __first, _InputIterator __last, _Function __f)
• template<typename _InputIterator , typename _Size , typename _Function >
constexpr _InputIterator for_each_n (_InputIterator __first, _Size __n, _Function __f)
• template<typename _Tp >
constexpr _Tp && forward (typename std::remove_reference< _Tp >::type &&__t) noexcept
• template<typename _Tp >
constexpr _Tp && forward (typename std::remove_reference< _Tp >::type &__t) noexcept
• template<typename... _Elements>
constexpr tuple< _Elements &&... > forward_as_tuple (_Elements &&... __args) noexcept
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =
allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
forward_list (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> forward_list< _ValT, _Allocator >
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, int >::__type fpclassify (_Tp __x)
• constexpr int fpclassify (double __x)
• constexpr int fpclassify (float __x)
• constexpr int fpclassify (long double __x)

Generated by Doxygen
4.10 std Namespace Reference 515

• template<typename _Tp >


constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type frexp (_Tp __x, int ∗__←-
exp)
• float frexp (float __x, int ∗__exp)
• long double frexp (long double __x, int ∗__exp)
• template<typename _Tp , enable_if_t< __or_< __is_standard_integer< _Tp >, is_same< char, remove_cv_t< _Tp > > >::value, int >
= 0>
constexpr from_chars_result from_chars (const char ∗__first, const char ∗__last, _Tp &__value, int __base=10)
• from_chars_result from_chars (const char ∗__first, const char ∗__last, double &__value, chars_format __←-
fmt=chars_format::general) noexcept
• from_chars_result from_chars (const char ∗__first, const char ∗__last, float &__value, chars_format __←-
fmt=chars_format::general) noexcept
• from_chars_result from_chars (const char ∗__first, const char ∗__last, long double &__value, chars_format _←-
_fmt=chars_format::general) noexcept
• template<typename _Container >
constexpr front_insert_iterator< _Container > front_inserter (_Container &__x)
• template<typename _Fn , typename _Signature = __function_guide_t<_Fn, decltype(&_Fn::operator())>>
function (_Fn) -> function< _Signature >
• template<typename _Res , typename... _ArgTypes>
function (_Res(∗)(_ArgTypes...)) -> function< _Res(_ArgTypes...)>
• const error_category & future_category () noexcept
• template<typename _FIter , typename _Generator >
constexpr void generate (_FIter, _FIter, _Generator)
• template<typename _ForwardIterator , typename _Generator >
constexpr void generate (_ForwardIterator __first, _ForwardIterator __last, _Generator __gen)
• template<typename _RealType , size_t __bits, typename _UniformRandomNumberGenerator >
_RealType generate_canonical (_UniformRandomNumberGenerator &__g)
• template<typename _OIter , typename _Size , typename _Generator >
constexpr _OIter generate_n (_OIter, _Size, _Generator)
• template<typename _OutputIterator , typename _Size , typename _Generator >
constexpr _OutputIterator generate_n (_OutputIterator __first, _Size __n, _Generator __gen)
• const error_category & generic_category () noexcept
• template<std::size_t _Int, typename _Tp , std::size_t _Nm>
constexpr _Tp && get (array< _Tp, _Nm > &&__arr) noexcept
• template<std::size_t _Int, typename _Tp , std::size_t _Nm>
constexpr _Tp & get (array< _Tp, _Nm > &__arr) noexcept
• template<std::size_t _Int, typename _Tp , std::size_t _Nm>
constexpr const _Tp && get (const array< _Tp, _Nm > &&__arr) noexcept
• template<std::size_t _Int, typename _Tp , std::size_t _Nm>
constexpr const _Tp & get (const array< _Tp, _Nm > &__arr) noexcept
• template<size_t __i, typename... _Elements>
constexpr const __tuple_element_t< __i, tuple< _Elements... > > && get (const tuple< _Elements... > &&__t)
noexcept
• template<size_t __i, typename... _Elements>
constexpr const __tuple_element_t< __i, tuple< _Elements... > > & get (const tuple< _Elements... > &__t)
noexcept
• template<size_t __i, typename... _Elements>
constexpr __tuple_element_t< __i, tuple< _Elements... > > && get (tuple< _Elements... > &&__t) noexcept
• template<size_t __i, typename... _Elements>
constexpr __tuple_element_t< __i, tuple< _Elements... > > & get (tuple< _Elements... > &__t) noexcept
• Catalogs & get_catalogs ()
• template<typename _Del , typename _Tp , _Lock_policy _Lp>
_Del ∗ get_deleter (const __shared_ptr< _Tp, _Lp > &__p) noexcept

Generated by Doxygen
516

• template<typename _Del , typename _Tp >


_Del ∗ get_deleter (const shared_ptr< _Tp > &__p) noexcept
• template<typename _MoneyT >
_Get_money< _MoneyT > get_money (_MoneyT &__mon, bool __intl=false)
• new_handler get_new_handler () noexcept
• pointer_safety get_pointer_safety () noexcept
• template<typename _Tp >
pair< _Tp ∗, ptrdiff_t > get_temporary_buffer (ptrdiff_t __len) noexcept
• terminate_handler get_terminate () noexcept
• template<typename _CharT >
_Get_time< _CharT > get_time (std::tm ∗__tmb, const _CharT ∗__fmt)
• unexpected_handler get_unexpected () noexcept
• template<typename _CharT , typename _Traits , typename _Alloc >
basic_istream< _CharT, _Traits > & getline (basic_istream< _CharT, _Traits > &&__is, basic_string< _CharT,
_Traits, _Alloc > &__str)
• template<typename _CharT , typename _Traits , typename _Alloc >
basic_istream< _CharT, _Traits > & getline (basic_istream< _CharT, _Traits > &&__is, basic_string< _CharT,
_Traits, _Alloc > &__str, _CharT __delim)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
basic_istream< _CharT, _Traits > & getline (basic_istream< _CharT, _Traits > &__is, __gnu_cxx::__versa_string<
_CharT, _Traits, _Alloc, _Base > &__str)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
basic_istream< _CharT, _Traits > & getline (basic_istream< _CharT, _Traits > &__is, __gnu_cxx::__versa_string<
_CharT, _Traits, _Alloc, _Base > &__str, _CharT __delim)
• template<typename _CharT , typename _Traits , typename _Alloc >
basic_istream< _CharT, _Traits > & getline (basic_istream< _CharT, _Traits > &__is, basic_string< _CharT,
_Traits, _Alloc > &__str)
• template<typename _CharT , typename _Traits , typename _Alloc >
basic_istream< _CharT, _Traits > & getline (basic_istream< _CharT, _Traits > &__is, basic_string< _CharT,
_Traits, _Alloc > &__str, _CharT __delim)
• template<> basic_istream< char > & getline (basic_istream< char > &__in, basic_string< char > &__str, char
__delim)
• template<> basic_istream< wchar_t > & getline (basic_istream< wchar_t > &__in, basic_string< wchar_t >
&__str, wchar_t __delim)
• template<typename _Facet >
bool has_facet (const locale &__loc)
• template bool has_facet< codecvt< char, char, mbstate_t > > (const locale &)
• template bool has_facet< codecvt< wchar_t, char, mbstate_t > > (const locale &)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type hermite (unsigned int __n, _Tp __x)
• float hermitef (unsigned int __n, float __x)
• long double hermitel (unsigned int __n, long double __x)
• ios_base & hex (ios_base &__base)
• ios_base & hexfloat (ios_base &__base)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type hypot (_Tp __x, _Up __y)
• constexpr float hypot (float __x, float __y)
• constexpr long double hypot (long double __x, long double __y)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, int >::__type ilogb (_Tp __x)
• constexpr int ilogb (float __x)
• constexpr int ilogb (long double __x)

Generated by Doxygen
4.10 std Namespace Reference 517

• template<typename _Tp >


constexpr __gnu_cxx::__promote< _Tp >::__type imag (_Tp)
• template<typename _Tp >
constexpr _Tp imag (const complex< _Tp > &__z)
• template<typename _IIter1 , typename _IIter2 >
constexpr bool includes (_IIter1, _IIter1, _IIter2, _IIter2)
• template<typename _IIter1 , typename _IIter2 , typename _Compare >
constexpr bool includes (_IIter1, _IIter1, _IIter2, _IIter2, _Compare)
• template<typename _InputIterator1 , typename _InputIterator2 >
constexpr bool includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2
__last2)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Compare >
constexpr bool includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2
__last2, _Compare __comp)
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >
constexpr _OutputIterator inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_BinaryOperation __binary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename _Tp >
constexpr _OutputIterator inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_BinaryOperation __binary_op, _Tp __init)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp >
constexpr _Tp inner_product (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp , typename _BinaryOperation1 , typename _BinaryOperation2
>
constexpr _Tp inner_product (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init,
_BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2)
• template<typename _BidirectionalIterator >
void inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last)
• template<typename _BidirectionalIterator , typename _Compare >
void inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, ←-
_Compare __comp)
• template<typename _BIter >
void inplace_merge (_BIter, _BIter, _BIter)
• template<typename _BIter , typename _Compare >
void inplace_merge (_BIter, _BIter, _BIter, _Compare)
• template<typename _Container >
constexpr insert_iterator< _Container > inserter (_Container &__x, std::__detail::__range_iter_t< _Container >
__i)
• ios_base & internal (ios_base &__base)
• const error_category & iostream_category () noexcept
• template<typename _ForwardIterator , typename _Tp >
constexpr void iota (_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
• constexpr bool is_eq (partial_ordering __cmp) noexcept
• constexpr bool is_gt (partial_ordering __cmp) noexcept
• constexpr bool is_gteq (partial_ordering __cmp) noexcept
• template<typename _RAIter >
constexpr bool is_heap (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr bool is_heap (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr bool is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)

Generated by Doxygen
518

• template<typename _RandomAccessIterator , typename _Compare >


constexpr bool is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _RAIter >
constexpr _RAIter is_heap_until (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr _RAIter is_heap_until (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr _RandomAccessIterator is_heap_until (_RandomAccessIterator __first, _RandomAccessIterator __←-
last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr _RandomAccessIterator is_heap_until (_RandomAccessIterator __first, _RandomAccessIterator __←-
last, _Compare __comp)
• constexpr bool is_lt (partial_ordering __cmp) noexcept
• constexpr bool is_lteq (partial_ordering __cmp) noexcept
• constexpr bool is_neq (partial_ordering __cmp) noexcept
• template<typename _IIter , typename _Predicate >
constexpr bool is_partitioned (_IIter, _IIter, _Predicate)
• template<typename _InputIterator , typename _Predicate >
constexpr bool is_partitioned (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _FIter1 , typename _FIter2 >
constexpr bool is_permutation (_FIter1, _FIter1, _FIter2)
• template<typename _FIter1 , typename _FIter2 , typename _BinaryPredicate >
constexpr bool is_permutation (_FIter1, _FIter1, _FIter2, _BinaryPredicate)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr bool is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr bool is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
_BinaryPredicate __pred)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr bool is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
_ForwardIterator2 __last2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr bool is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
_ForwardIterator2 __last2, _BinaryPredicate __pred)
• template<typename _FIter >
constexpr bool is_sorted (_FIter, _FIter)
• template<typename _FIter , typename _Compare >
constexpr bool is_sorted (_FIter, _FIter, _Compare)
• template<typename _ForwardIterator >
constexpr bool is_sorted (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr bool is_sorted (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
• template<typename _FIter >
constexpr _FIter is_sorted_until (_FIter, _FIter)
• template<typename _FIter , typename _Compare >
constexpr _FIter is_sorted_until (_FIter, _FIter, _Compare)
• template<typename _ForwardIterator >
constexpr _ForwardIterator is_sorted_until (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator is_sorted_until (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
• template<typename _CharT >
bool isalnum (_CharT __c, const locale &__loc)

Generated by Doxygen
4.10 std Namespace Reference 519

• template<typename _CharT >


bool isalpha (_CharT __c, const locale &__loc)
• template<typename _CharT >
bool isblank (_CharT __c, const locale &__loc)
• template<typename _CharT >
bool iscntrl (_CharT __c, const locale &__loc)
• template<typename _CharT >
bool isdigit (_CharT __c, const locale &__loc)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, bool >::__type isfinite (_Tp)
• constexpr bool isfinite (double __x)
• constexpr bool isfinite (float __x)
• constexpr bool isfinite (long double __x)
• template<typename _CharT >
bool isgraph (_CharT __c, const locale &__loc)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__enable_if<(__is_arithmetic< _Tp >::__value &&__is_arithmetic< _Up >::__value),
bool >::__type isgreater (_Tp __x, _Up __y)
• constexpr bool isgreater (double __x, double __y)
• constexpr bool isgreater (float __x, float __y)
• constexpr bool isgreater (long double __x, long double __y)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__enable_if<(__is_arithmetic< _Tp >::__value &&__is_arithmetic< _Up >::__value),
bool >::__type isgreaterequal (_Tp __x, _Up __y)
• constexpr bool isgreaterequal (double __x, double __y)
• constexpr bool isgreaterequal (float __x, float __y)
• constexpr bool isgreaterequal (long double __x, long double __y)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, bool >::__type isinf (_Tp)
• constexpr bool isinf (double __x)
• constexpr bool isinf (float __x)
• constexpr bool isinf (long double __x)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__enable_if<(__is_arithmetic< _Tp >::__value &&__is_arithmetic< _Up >::__value),
bool >::__type isless (_Tp __x, _Up __y)
• constexpr bool isless (double __x, double __y)
• constexpr bool isless (float __x, float __y)
• constexpr bool isless (long double __x, long double __y)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__enable_if<(__is_arithmetic< _Tp >::__value &&__is_arithmetic< _Up >::__value),
bool >::__type islessequal (_Tp __x, _Up __y)
• constexpr bool islessequal (double __x, double __y)
• constexpr bool islessequal (float __x, float __y)
• constexpr bool islessequal (long double __x, long double __y)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__enable_if<(__is_arithmetic< _Tp >::__value &&__is_arithmetic< _Up >::__value),
bool >::__type islessgreater (_Tp __x, _Up __y)
• constexpr bool islessgreater (double __x, double __y)
• constexpr bool islessgreater (float __x, float __y)
• constexpr bool islessgreater (long double __x, long double __y)
• template<typename _CharT >
bool islower (_CharT __c, const locale &__loc)

Generated by Doxygen
520

• template<typename _Tp >


constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, bool >::__type isnan (_Tp)
• constexpr bool isnan (double __x)
• constexpr bool isnan (float __x)
• constexpr bool isnan (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, bool >::__type isnormal (_Tp __x)
• constexpr bool isnormal (double __x)
• constexpr bool isnormal (float __x)
• constexpr bool isnormal (long double __x)
• template<typename _CharT >
bool isprint (_CharT __c, const locale &__loc)
• template<typename _CharT >
bool ispunct (_CharT __c, const locale &__loc)
• template<typename _CharT >
bool isspace (_CharT __c, const locale &__loc)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__enable_if<(__is_arithmetic< _Tp >::__value &&__is_arithmetic< _Up >::__value),
bool >::__type isunordered (_Tp __x, _Up __y)
• constexpr bool isunordered (double __x, double __y)
• constexpr bool isunordered (float __x, float __y)
• constexpr bool isunordered (long double __x, long double __y)
• template<typename _CharT >
bool isupper (_CharT __c, const locale &__loc)
• template<typename _CharT >
bool isxdigit (_CharT __c, const locale &__loc)
• template<typename _FIter1 , typename _FIter2 >
constexpr void iter_swap (_FIter1, _FIter2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr void iter_swap (_ForwardIterator1 __a, _ForwardIterator2 __b)
• template<typename _Tp >
_Tp kill_dependency (_Tp __y) noexcept
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type laguerre (unsigned int __n, _Tp __x)
• float laguerref (unsigned int __n, float __x)
• long double laguerrel (unsigned int __n, long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type ldexp (_Tp __x, int __exp)
• constexpr float ldexp (float __x, int __exp)
• constexpr long double ldexp (long double __x, int __exp)
• ios_base & left (ios_base &__base)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type legendre (unsigned int __l, _Tp __x)
• float legendref (unsigned int __l, float __x)
• long double legendrel (unsigned int __l, long double __x)
• template<typename _II1 , typename _II2 >
constexpr bool lexicographical_compare (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
• template<typename _II1 , typename _II2 , typename _Compare >
constexpr bool lexicographical_compare (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _Compare __comp)
• template<typename _IIter1 , typename _IIter2 >
constexpr bool lexicographical_compare (_IIter1, _IIter1, _IIter2, _IIter2)

Generated by Doxygen
4.10 std Namespace Reference 521

• template<typename _IIter1 , typename _IIter2 , typename _Compare >


constexpr bool lexicographical_compare (_IIter1, _IIter1, _IIter2, _IIter2, _Compare)
• template<typename _InputIter1 , typename _InputIter2 >
constexpr auto lexicographical_compare_three_way (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __←-
first2, _InputIter2 __last2)
• template<typename _InputIter1 , typename _InputIter2 , typename _Comp >
constexpr auto lexicographical_compare_three_way (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2,
_InputIter2 __last2, _Comp __comp) -> decltype(__comp(∗__first1, ∗__first2))
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type lgamma (_Tp __x)
• constexpr float lgamma (float __x)
• constexpr long double lgamma (long double __x)
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =
allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
list (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> list< _ValT, _Allocator >
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, longlong >::__type llrint (_Tp __x)
• constexpr long long llrint (float __x)
• constexpr long long llrint (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, longlong >::__type llround (_Tp __x)
• constexpr long long llround (float __x)
• constexpr long long llround (long double __x)
• template<typename _L1 , typename _L2 , typename... _L3>
void lock (_L1 &__l1, _L2 &__l2, _L3 &... __l3)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type log (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Log, _Expr, _Dom >, typename _Dom::value_type > log (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > log (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Log, _ValArray, _Tp >, _Tp > log (const valarray< _Tp > &__v)
• constexpr float log (float __x)
• constexpr long double log (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type log10 (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Log10, _Expr, _Dom >, typename _Dom::value_type > log10 (const _Expr<
_Dom, typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > log10 (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Log10, _ValArray, _Tp >, _Tp > log10 (const valarray< _Tp > &__v)
• constexpr float log10 (float __x)
• constexpr long double log10 (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type log1p (_Tp __x)
• constexpr float log1p (float __x)
• constexpr long double log1p (long double __x)

Generated by Doxygen
522

• template<typename _Tp >


constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type log2 (_Tp __x)
• constexpr float log2 (float __x)
• constexpr long double log2 (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type logb (_Tp __x)
• constexpr float logb (float __x)
• constexpr long double logb (long double __x)
• template<typename _FIter , typename _Tp >
constexpr _FIter lower_bound (_FIter, _FIter, const _Tp &)
• template<typename _FIter , typename _Tp , typename _Compare >
constexpr _FIter lower_bound (_FIter, _FIter, const _Tp &, _Compare)
• template<typename _ForwardIterator , typename _Tp >
constexpr _ForwardIterator lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
• template<typename _ForwardIterator , typename _Tp , typename _Compare >
constexpr _ForwardIterator lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, ←-
_Compare __comp)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, long >::__type lrint (_Tp __x)
• constexpr long lrint (float __x)
• constexpr long lrint (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, long >::__type lround (_Tp __x)
• constexpr long lround (float __x)
• constexpr long lround (long double __x)
• error_code make_error_code (errc __e) noexcept
• error_code make_error_code (future_errc __errc) noexcept
• error_code make_error_code (io_errc __e) noexcept
• error_condition make_error_condition (errc __e) noexcept
• error_condition make_error_condition (future_errc __errc) noexcept
• error_condition make_error_condition (io_errc __e) noexcept
• template<typename _Ex >
exception_ptr make_exception_ptr (_Ex __ex) noexcept
• template<typename _RAIter >
constexpr void make_heap (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr void make_heap (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr void make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _Iterator >
constexpr move_iterator< _Iterator > make_move_iterator (_Iterator __i)
• template<typename _Tp , typename _Alloc , typename... _Args>
constexpr _Tp make_obj_using_allocator (const _Alloc &__a, _Args &&... __args)
• template<typename _T1 , typename _T2 >
constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type
> make_pair (_T1 &&__x, _T2 &&__y)
• template<typename _Iterator >
constexpr reverse_iterator< _Iterator > make_reverse_iterator (_Iterator __i)
• template<typename... _Elements>
constexpr tuple< typename __decay_and_strip< _Elements >::__type... > make_tuple (_Elements &&... __←-
args)

Generated by Doxygen
4.10 std Namespace Reference 523

• template<typename _Tp , typename... _Args>


constexpr __detail::__unique_ptr_t< _Tp > make_unique (_Args &&... __args)
• template<typename _Tp , typename... _Args>
__detail::__invalid_make_unique_t< _Tp > make_unique (_Args &&...)=delete
• template<typename _Tp >
constexpr __detail::__unique_ptr_array_t< _Tp > make_unique (size_t __num)
• template<typename _Tp >
constexpr __detail::__unique_ptr_t< _Tp > make_unique_for_overwrite ()
• template<typename _Tp , typename... _Args>
__detail::__invalid_make_unique_t< _Tp > make_unique_for_overwrite (_Args &&...)=delete
• template<typename _Tp >
constexpr __detail::__unique_ptr_array_t< _Tp > make_unique_for_overwrite (size_t __num)
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
map (_InputIterator, _InputIterator, _Allocator) -> map< __iter_key_t< _InputIterator >, __iter_val_t< _Input←-
Iterator >, less< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Compare = less<__iter_key_t<_InputIterator>>, typename _Allocator = allocator<__←-
iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocator<_Compare>, type-
name = _RequireAllocator<_Allocator>>
map (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> map< __iter_key_t< ←-
_InputIterator >, __iter_val_t< _InputIterator >, _Compare, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
map (initializer_list< pair< _Key, _Tp > >, _Allocator) -> map< _Key, _Tp, less< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Compare = less<_Key>, typename _Allocator = allocator<pair<const _Key, _←-
Tp>>, typename = _RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
map (initializer_list< pair< _Key, _Tp > >, _Compare=_Compare(), _Allocator=_Allocator()) -> map< _Key,
_Tp, _Compare, _Allocator >
• template<typename _Tp >
constexpr const _Tp & max (const _Tp &__a, const _Tp &__b)
• template<typename _Tp , typename _Compare >
constexpr const _Tp & max (const _Tp &__a, const _Tp &__b, _Compare __comp)
• template<typename _Tp >
constexpr _Tp max (initializer_list< _Tp >)
• template<typename _Tp , typename _Compare >
constexpr _Tp max (initializer_list< _Tp >, _Compare)
• template<typename _FIter >
constexpr _FIter max_element (_FIter, _FIter)
• template<typename _FIter , typename _Compare >
constexpr _FIter max_element (_FIter, _FIter, _Compare)
• template<typename _ForwardIterator >
constexpr _ForwardIterator max_element (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator max_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
• template<typename _Tp , typename _Class >
constexpr _Mem_fn< _Tp _Class::∗ > mem_fn (_Tp _Class::∗__pm) noexcept
• template<typename _Ret , typename _Tp >
const_mem_fun_t< _Ret, _Tp > mem_fun (_Ret(_Tp::∗__f)() const)
• template<typename _Ret , typename _Tp >
mem_fun_t< _Ret, _Tp > mem_fun (_Ret(_Tp::∗__f)())
• template<typename _Ret , typename _Tp , typename _Arg >
const_mem_fun1_t< _Ret, _Tp, _Arg > mem_fun (_Ret(_Tp::∗__f)(_Arg) const)
• template<typename _Ret , typename _Tp , typename _Arg >
mem_fun1_t< _Ret, _Tp, _Arg > mem_fun (_Ret(_Tp::∗__f)(_Arg))

Generated by Doxygen
524

• template<typename _Ret , typename _Tp >


const_mem_fun_ref_t< _Ret, _Tp > mem_fun_ref (_Ret(_Tp::∗__f)() const)
• template<typename _Ret , typename _Tp >
mem_fun_ref_t< _Ret, _Tp > mem_fun_ref (_Ret(_Tp::∗__f)())
• template<typename _Ret , typename _Tp , typename _Arg >
const_mem_fun1_ref_t< _Ret, _Tp, _Arg > mem_fun_ref (_Ret(_Tp::∗__f)(_Arg) const)
• template<typename _Ret , typename _Tp , typename _Arg >
mem_fun1_ref_t< _Ret, _Tp, _Arg > mem_fun_ref (_Ret(_Tp::∗__f)(_Arg))
• void ∗ memchr (void ∗__s, int __c, size_t __n)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
constexpr _OIter merge (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >
constexpr _OIter merge (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _←-
InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _←-
InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _Tp >
constexpr const _Tp & min (const _Tp &__a, const _Tp &__b)
• template<typename _Tp , typename _Compare >
constexpr const _Tp & min (const _Tp &__a, const _Tp &__b, _Compare __comp)
• template<typename _Tp >
constexpr _Tp min (initializer_list< _Tp >)
• template<typename _Tp , typename _Compare >
constexpr _Tp min (initializer_list< _Tp >, _Compare)
• template<typename _FIter >
constexpr _FIter min_element (_FIter, _FIter)
• template<typename _FIter , typename _Compare >
constexpr _FIter min_element (_FIter, _FIter, _Compare)
• template<typename _ForwardIterator >
constexpr _ForwardIterator min_element (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr _ForwardIterator min_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
• template<typename _Tp >
constexpr pair< const _Tp &, const _Tp & > minmax (const _Tp &__a, const _Tp &__b)
• template<typename _Tp , typename _Compare >
constexpr pair< const _Tp &, const _Tp & > minmax (const _Tp &__a, const _Tp &__b, _Compare __comp)
• template<typename _Tp >
constexpr pair< _Tp, _Tp > minmax (initializer_list< _Tp >)
• template<typename _Tp , typename _Compare >
constexpr pair< _Tp, _Tp > minmax (initializer_list< _Tp >, _Compare)
• template<typename _FIter >
constexpr pair< _FIter, _FIter > minmax_element (_FIter, _FIter)
• template<typename _FIter , typename _Compare >
constexpr pair< _FIter, _FIter > minmax_element (_FIter, _FIter, _Compare)
• template<typename _ForwardIterator >
constexpr pair< _ForwardIterator, _ForwardIterator > minmax_element (_ForwardIterator __first, _Forward←-
Iterator __last)
• template<typename _ForwardIterator , typename _Compare >
constexpr pair< _ForwardIterator, _ForwardIterator > minmax_element (_ForwardIterator __first, _Forward←-
Iterator __last, _Compare __comp)

Generated by Doxygen
4.10 std Namespace Reference 525

• template<typename _IIter1 , typename _IIter2 >


constexpr pair< _IIter1, _IIter2 > mismatch (_IIter1, _IIter1, _IIter2)
• template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
constexpr pair< _IIter1, _IIter2 > mismatch (_IIter1, _IIter1, _IIter2, _BinaryPredicate)
• template<typename _InputIterator1 , typename _InputIterator2 >
constexpr pair< _InputIterator1, _InputIterator2 > mismatch (_InputIterator1 __first1, _InputIterator1 __last1, ←-
_InputIterator2 __first2)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
constexpr pair< _InputIterator1, _InputIterator2 > mismatch (_InputIterator1 __first1, _InputIterator1 __last1, ←-
_InputIterator2 __first2, _BinaryPredicate __binary_pred)
• template<typename _InputIterator1 , typename _InputIterator2 >
constexpr pair< _InputIterator1, _InputIterator2 > mismatch (_InputIterator1 __first1, _InputIterator1 __last1, ←-
_InputIterator2 __first2, _InputIterator2 __last2)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
constexpr pair< _InputIterator1, _InputIterator2 > mismatch (_InputIterator1 __first1, _InputIterator1 __last1, ←-
_InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __binary_pred)
• float modf (float __x, float ∗__iptr)
• long double modf (long double __x, long double ∗__iptr)
• template<typename _II , typename _OI >
constexpr _OI move (_II __first, _II __last, _OI __result)
• template<typename _Tp >
constexpr std::remove_reference< _Tp >::type && move (_Tp &&__t) noexcept
• template<typename _BI1 , typename _BI2 >
constexpr _BI2 move_backward (_BI1 __first, _BI1 __last, _BI2 __result)
• template<typename _Tp >
constexpr __conditional_t< __move_if_noexcept_cond< _Tp >::value, const _Tp &, _Tp && > move_if_noexcept
(_Tp &__x) noexcept
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
multimap (_InputIterator, _InputIterator, _Allocator) -> multimap< __iter_key_t< _InputIterator >, __iter_val_t<
_InputIterator >, less< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Compare = less<__iter_key_t<_InputIterator>>, typename _Allocator = allocator<__←-
iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocator<_Compare>, type-
name = _RequireAllocator<_Allocator>>
multimap (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> multimap< __iter←-
_key_t< _InputIterator >, __iter_val_t< _InputIterator >, _Compare, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
multimap (initializer_list< pair< _Key, _Tp > >, _Allocator) -> multimap< _Key, _Tp, less< _Key >, _Allocator
>
• template<typename _Key , typename _Tp , typename _Compare = less<_Key>, typename _Allocator = allocator<pair<const _Key, _←-
Tp>>, typename = _RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
multimap (initializer_list< pair< _Key, _Tp > >, _Compare=_Compare(), _Allocator=_Allocator()) -> multimap<
_Key, _Tp, _Compare, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
multiset (_InputIterator, _InputIterator, _Allocator) -> multiset< typename iterator_traits< _InputIterator >←-
::value_type, less< typename iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Compare = less<typename iterator_traits<_InputIterator>::value_type>, typename _←-
Allocator = allocator<typename iterator_traits<_InputIterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
multiset (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> multiset< typename
iterator_traits< _InputIterator >::value_type, _Compare, _Allocator >

Generated by Doxygen
526

• template<typename _Key , typename _Allocator , typename = _RequireAllocator<_Allocator>>


multiset (initializer_list< _Key >, _Allocator) -> multiset< _Key, less< _Key >, _Allocator >
• template<typename _Key , typename _Compare = less<_Key>, typename _Allocator = allocator<_Key>, typename = _RequireNot←-
Allocator<_Compare>, typename = _RequireAllocator<_Allocator>>
multiset (initializer_list< _Key >, _Compare=_Compare(), _Allocator=_Allocator()) -> multiset< _Key, _←-
Compare, _Allocator >
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type nearbyint (_Tp __x)
• constexpr float nearbyint (float __x)
• constexpr long double nearbyint (long double __x)
• template<typename _InputIterator >
constexpr _InputIterator next (_InputIterator __x, typename iterator_traits< _InputIterator >::difference_type _←-
_n=1)
• template<typename _BidirectionalIterator >
constexpr bool next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
• template<typename _BidirectionalIterator , typename _Compare >
constexpr bool next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
• template<typename _BIter >
constexpr bool next_permutation (_BIter, _BIter)
• template<typename _BIter , typename _Compare >
constexpr bool next_permutation (_BIter, _BIter, _Compare)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type nextafter (_Tp __x, _Up __y)
• constexpr float nextafter (float __x, float __y)
• constexpr long double nextafter (long double __x, long double __y)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type nexttoward (_Tp __x, long
double __y)
• constexpr float nexttoward (float __x, long double __y)
• constexpr long double nexttoward (long double __x, long double __y)
• ios_base & noboolalpha (ios_base &__base)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & noemit_on_flush (basic_ostream< _CharT, _Traits > &__os)
• template<typename _IIter , typename _Predicate >
constexpr bool none_of (_IIter, _IIter, _Predicate)
• template<typename _InputIterator , typename _Predicate >
constexpr bool none_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
• template<typename _Tp >
constexpr __gnu_cxx::__promote< _Tp >::__type norm (_Tp __x)
• template<typename _Tp >
_Tp constexpr norm (const complex< _Tp > &)
• template<typename _Tp >
constexpr _Tp norm (const complex< _Tp > &__z)
• ios_base & noshowbase (ios_base &__base)
• ios_base & noshowpoint (ios_base &__base)
• ios_base & noshowpos (ios_base &__base)
• ios_base & noskipws (ios_base &__base)
• template<typename _Predicate >
constexpr unary_negate< _Predicate > not1 (const _Predicate &__pred)
• template<typename _Predicate >
constexpr binary_negate< _Predicate > not2 (const _Predicate &__pred)
• void notify_all_at_thread_exit (condition_variable &, unique_lock< mutex >)

Generated by Doxygen
4.10 std Namespace Reference 527

• ios_base & nounitbuf (ios_base &__base)


• ios_base & nouppercase (ios_base &__base)
• template<typename _RAIter >
constexpr void nth_element (_RAIter, _RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr void nth_element (_RAIter, _RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr void nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccess←-
Iterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccess←-
Iterator __last, _Compare __comp)
• ios_base & oct (ios_base &__base)
• strong_ordering operator (const error_code &__lhs, const error_code &__rhs) noexcept
• strong_ordering operator (const error_condition &__lhs, const error_condition &__rhs) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__not_equal_to, _Expr, _ValArray, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__not_equal_to, typename _Dom::value_type >::result_type > operator!= (const _←-
Expr< _Dom, typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__not_equal_to, _Expr, _Constant, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__not_equal_to, typename _Dom::value_type >::result_type > operator!= (const _←-
Expr< _Dom, typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__not_equal_to, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std←-
::__not_equal_to, typename _Dom1::value_type >::result_type > operator!= (const _Expr< _Dom1, typename
_Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<typename _StateT >
bool operator!= (const fpos< _StateT > &__lhs, const fpos< _StateT > &__rhs)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
bool operator!= (const multimap< _Key, _Tp, _Compare, _Alloc > &__x, const multimap< _Key, _Tp, _Compare,
_Alloc > &__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator!= (const multiset< _Key, _Compare, _Alloc > &__x, const multiset< _Key, _Compare, _Alloc >
&__y)
• template<typename _Tp , typename _Seq >
bool operator!= (const queue< _Tp, _Seq > &__x, const queue< _Tp, _Seq > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() != __y.base() } -> convertible_to<bool>; }
constexpr bool operator!= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &←-
__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator!= (const set< _Key, _Compare, _Alloc > &__x, const set< _Key, _Compare, _Alloc > &__y)
• template<typename _Tp , typename _Seq >
bool operator!= (const stack< _Tp, _Seq > &__x, const stack< _Tp, _Seq > &__y)
• template<class _Dom >
_Expr< _BinClos< struct std::__not_equal_to, _Constant, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__not_equal_to, typename _Dom::value_type >::result_type > operator!= (const type-
name _Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__not_equal_to, _ValArray, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__not_equal_to, typename _Dom::value_type >::result_type > operator!= (const
valarray< typename _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)

Generated by Doxygen
528

• template<class _Dom >


_Expr< _BinClos< struct std::__modulus, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__modulus, typename _Dom::value_type >::result_type > operator% (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__modulus, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__modulus, typename _Dom::value_type >::result_type > operator% (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__modulus, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::←-
__modulus, typename _Dom1::value_type >::result_type > operator% (const _Expr< _Dom1, typename _←-
Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__modulus, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__modulus, typename _Dom::value_type >::result_type > operator% (const typename _←-
Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__modulus, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__modulus, typename _Dom::value_type >::result_type > operator% (const valarray< type-
name _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• constexpr _Ios_Fmtflags operator& (_Ios_Fmtflags __a, _Ios_Fmtflags __b) noexcept
• constexpr _Ios_Iostate operator& (_Ios_Iostate __a, _Ios_Iostate __b) noexcept
• constexpr _Ios_Openmode operator& (_Ios_Openmode __a, _Ios_Openmode __b) noexcept
• constexpr chars_format operator& (chars_format __lhs, chars_format __rhs) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_and, _Expr, _ValArray, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__bitwise_and, typename _Dom::value_type >::result_type > operator& (const _Expr<
_Dom, typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_and, _Expr, _Constant, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__bitwise_and, typename _Dom::value_type >::result_type > operator& (const _Expr<
_Dom, typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__bitwise_and, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std←-
::__bitwise_and, typename _Dom1::value_type >::result_type > operator& (const _Expr< _Dom1, typename
_Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_and, _Constant, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__bitwise_and, typename _Dom::value_type >::result_type > operator& (const type-
name _Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_and, _ValArray, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__bitwise_and, typename _Dom::value_type >::result_type > operator& (const
valarray< typename _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• constexpr launch operator& (launch __x, launch __y) noexcept
• constexpr memory_order operator& (memory_order __m, __memory_order_modifier __mod) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_and, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__logical_and, typename _Dom::value_type >::result_type > operator&& (const _Expr< _←-
Dom, typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_and, _Expr, _Constant, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__logical_and, typename _Dom::value_type >::result_type > operator&& (const _←-
Expr< _Dom, typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)

Generated by Doxygen
4.10 std Namespace Reference 529

• template<class _Dom1 , class _Dom2 >


_Expr< _BinClos< struct std::__logical_and, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std←-
::__logical_and, typename _Dom1::value_type >::result_type > operator&& (const _Expr< _Dom1, typename
_Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_and, _Constant, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__logical_and, typename _Dom::value_type >::result_type > operator&& (const type-
name _Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_and, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__logical_and, typename _Dom::value_type >::result_type > operator&& (const valarray<
typename _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• constexpr const _Ios_Fmtflags & operator&= (_Ios_Fmtflags &__a, _Ios_Fmtflags __b) noexcept
• constexpr const _Ios_Iostate & operator&= (_Ios_Iostate &__a, _Ios_Iostate __b) noexcept
• constexpr const _Ios_Openmode & operator&= (_Ios_Openmode &__a, _Ios_Openmode __b) noexcept
• constexpr chars_format & operator&= (chars_format &__lhs, chars_format __rhs) noexcept
• constexpr launch & operator&= (launch &__x, launch __y) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__multiplies, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__multiplies, typename _Dom::value_type >::result_type > operator∗ (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__multiplies, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__multiplies, typename _Dom::value_type >::result_type > operator∗ (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__multiplies, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::←-
__multiplies, typename _Dom1::value_type >::result_type > operator∗ (const _Expr< _Dom1, typename _←-
Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__multiplies, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__multiplies, typename _Dom::value_type >::result_type > operator∗ (const typename _←-
Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__multiplies, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__multiplies, typename _Dom::value_type >::result_type > operator∗ (const valarray< type-
name _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (_CharT __lhs, basic_string< _CharT, _Traits, _←-
Alloc > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (_CharT __lhs, const basic_string< _CharT, _Traits,
_Alloc > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (basic_string< _CharT, _Traits, _Alloc > &&__lhs,
_CharT __rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (basic_string< _CharT, _Traits, _Alloc > &&__lhs,
basic_string< _CharT, _Traits, _Alloc > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (basic_string< _CharT, _Traits, _Alloc > &&__lhs,
const _CharT ∗__rhs)

Generated by Doxygen
530

• template<typename _CharT , typename _Traits , typename _Alloc >


constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (basic_string< _CharT, _Traits, _Alloc > &&__lhs,
const basic_string< _CharT, _Traits, _Alloc > &__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (const _CharT ∗__lhs, basic_string< _CharT, _←-
Traits, _Alloc > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (const _CharT ∗__lhs, const basic_string< _CharT,
_Traits, _Alloc > &__rhs)
• template<class _Dom >
_Expr< _BinClos< struct std::__plus, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename _←-
_fun< struct std::__plus, typename _Dom::value_type >::result_type > operator+ (const _Expr< _Dom, type-
name _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__plus, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename _←-
_fun< struct std::__plus, typename _Dom::value_type >::result_type > operator+ (const _Expr< _Dom, type-
name _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__plus, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::__plus,
typename _Dom1::value_type >::result_type > operator+ (const _Expr< _Dom1, typename _Dom1::value_←-
type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (const basic_string< _CharT, _Traits, _Alloc > &←-
__lhs, _CharT __rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (const basic_string< _CharT, _Traits, _Alloc >
&__lhs, basic_string< _CharT, _Traits, _Alloc > &&__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (const basic_string< _CharT, _Traits, _Alloc > &←-
__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr basic_string< _CharT, _Traits, _Alloc > operator+ (const basic_string< _CharT, _Traits, _Alloc > &←-
__lhs, const basic_string< _CharT, _Traits, _Alloc > &__rhs)
• template<typename _Tp >
constexpr complex< _Tp > operator+ (const complex< _Tp > &__x)
• template<class _Dom >
_Expr< _BinClos< struct std::__plus, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename ←-
__fun< struct std::__plus, typename _Dom::value_type >::result_type > operator+ (const typename _Dom←-
::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__plus, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename _←-
_fun< struct std::__plus, typename _Dom::value_type >::result_type > operator+ (const valarray< typename
_Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<typename _Iterator >
requires requires { { __x.base() + __n } -> same_as<_Iterator>; }
constexpr move_iterator< _Iterator > operator+ (typename move_iterator< _Iterator >::difference_type __n,
const move_iterator< _Iterator > &__x)
• template<typename _Iterator >
constexpr reverse_iterator< _Iterator > operator+ (typename reverse_iterator< _Iterator >::difference_type ←-
__n, const reverse_iterator< _Iterator > &__x)
• template<class _Dom >
_Expr< _BinClos< struct std::__minus, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename _←-
_fun< struct std::__minus, typename _Dom::value_type >::result_type > operator- (const _Expr< _Dom, type-
name _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)

Generated by Doxygen
4.10 std Namespace Reference 531

• template<class _Dom >


_Expr< _BinClos< struct std::__minus, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename _←-
_fun< struct std::__minus, typename _Dom::value_type >::result_type > operator- (const _Expr< _Dom, type-
name _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__minus, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::__minus,
typename _Dom1::value_type >::result_type > operator- (const _Expr< _Dom1, typename _Dom1::value_type
> &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<typename _Tp >
constexpr complex< _Tp > operator- (const complex< _Tp > &__x)
• template<typename _IteratorL , typename _IteratorR >
constexpr auto operator- (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y) ->
decltype(__x.base() - __y.base())
• template<typename _IteratorL , typename _IteratorR >
constexpr auto operator- (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
-> decltype(__y.base() - __x.base())
• template<class _Dom >
_Expr< _BinClos< struct std::__minus, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__minus, typename _Dom::value_type >::result_type > operator- (const typename _Dom←-
::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__minus, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename _←-
_fun< struct std::__minus, typename _Dom::value_type >::result_type > operator- (const valarray< typename
_Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<class _Dom >
_Expr< _BinClos< struct std::__divides, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename ←-
__fun< struct std::__divides, typename _Dom::value_type >::result_type > operator/ (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__divides, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__divides, typename _Dom::value_type >::result_type > operator/ (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__divides, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::__←-
divides, typename _Dom1::value_type >::result_type > operator/ (const _Expr< _Dom1, typename _Dom1←-
::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__divides, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__divides, typename _Dom::value_type >::result_type > operator/ (const typename _Dom←-
::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__divides, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename _←-
_fun< struct std::__divides, typename _Dom::value_type >::result_type > operator/ (const valarray< typename
_Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<class _Dom >
_Expr< _BinClos< struct std::__less, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename _←-
_fun< struct std::__less, typename _Dom::value_type >::result_type > operator< (const _Expr< _Dom, type-
name _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__less, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename _←-
_fun< struct std::__less, typename _Dom::value_type >::result_type > operator< (const _Expr< _Dom, type-
name _Dom::value_type > &__v, const typename _Dom::value_type &__t)

Generated by Doxygen
532

• template<class _Dom1 , class _Dom2 >


_Expr< _BinClos< struct std::__less, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::__less,
typename _Dom1::value_type >::result_type > operator< (const _Expr< _Dom1, typename _Dom1::value_←-
type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool operator< (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
bool operator< (const multimap< _Key, _Tp, _Compare, _Alloc > &__x, const multimap< _Key, _Tp, _Compare,
_Alloc > &__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator< (const multiset< _Key, _Compare, _Alloc > &__x, const multiset< _Key, _Compare, _Alloc >
&__y)
• template<typename _Tp , typename _Seq >
bool operator< (const queue< _Tp, _Seq > &__x, const queue< _Tp, _Seq > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() > __y.base() } -> convertible_to<bool>; }
constexpr bool operator< (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &←-
__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator< (const set< _Key, _Compare, _Alloc > &__x, const set< _Key, _Compare, _Alloc > &__y)
• template<typename _Tp , typename _Seq >
bool operator< (const stack< _Tp, _Seq > &__x, const stack< _Tp, _Seq > &__y)
• template<class _Dom >
_Expr< _BinClos< struct std::__less, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename ←-
__fun< struct std::__less, typename _Dom::value_type >::result_type > operator< (const typename _Dom←-
::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool operator< (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool operator< (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<class _Dom >
_Expr< _BinClos< struct std::__less, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename _←-
_fun< struct std::__less, typename _Dom::value_type >::result_type > operator< (const valarray< typename
_Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<typename _Tp , typename _Dp >
constexpr bool operator< (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const error_code
&__e)
• template<typename _Ostream , typename _Tp >
__rvalue_stream_insertion_t< _Ostream, _Tp > operator<< (_Ostream &&__os, const _Tp &__x)
• template<typename _CharT , typename _Traits , typename _MoneyT >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Put_money<
_MoneyT > __f)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Put_time< _←-
CharT > __f)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Resetiosflags
__f)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Setbase __f)

Generated by Doxygen
4.10 std Namespace Reference 533

• template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Setfill< _CharT
> __f)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Setiosflags __f)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Setprecision
__f)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, _Setw __f)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, basic_string_view<
_CharT, _Traits > __str)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > &__str)
• template<typename _CharT , typename _Traits , typename _Alloc >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const
basic_string< _CharT, _Traits, _Alloc > &__str)
• template<typename _Tp , typename _CharT , class _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const complex<
_Tp > &__x)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_left, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__shift_left, typename _Dom::value_type >::result_type > operator<< (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_left, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__shift_left, typename _Dom::value_type >::result_type > operator<< (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__shift_left, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::_←-
_shift_left, typename _Dom1::value_type >::result_type > operator<< (const _Expr< _Dom1, typename _←-
Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_left, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__shift_left, typename _Dom::value_type >::result_type > operator<< (const typename _←-
Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_left, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__shift_left, typename _Dom::value_type >::result_type > operator<< (const valarray< type-
name _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template ostream & operator<< (ostream &, _Resetiosflags)
• template ostream & operator<< (ostream &, _Setbase)
• template ostream & operator<< (ostream &, _Setfill< char >)
• template ostream & operator<< (ostream &, _Setiosflags)
• template ostream & operator<< (ostream &, _Setprecision)
• template ostream & operator<< (ostream &, _Setw)
• template ostream & operator<< (ostream &, const complex< double > &)
• template ostream & operator<< (ostream &, const complex< float > &)
• template ostream & operator<< (ostream &, const complex< long double > &)

Generated by Doxygen
534

• template<typename _IntType , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &, const
std::uniform_int_distribution< _IntType > &)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &, const
std::uniform_real_distribution< _RealType > &)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
binomial_distribution< _IntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
chi_squared_distribution< _RealType > &__x)
• template<typename _RandomNumberEngine , size_t __p, size_t __r, typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
discard_block_engine< _RandomNumberEngine, __p, __r > &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
discrete_distribution< _IntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
fisher_f_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
gamma_distribution< _RealType > &__x)
• template<typename _UIntType , _UIntType __a, _UIntType __c, _UIntType __m, typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
linear_congruential_engine< _UIntType, __a, __c, __m > &__lcr)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
lognormal_distribution< _RealType > &__x)
• template<typename _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _←-
UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f, typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f > &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
negative_binomial_distribution< _IntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
normal_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
piecewise_constant_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
piecewise_linear_distribution< _RealType > &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
poisson_distribution< _IntType > &__x)
• template<typename _RandomNumberEngine , size_t __k, typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
shuffle_order_engine< _RandomNumberEngine, __k > &__x)

Generated by Doxygen
4.10 std Namespace Reference 535

• template<typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::bernoulli_distribution &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::cauchy_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::exponential_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::extreme_value_distribution< _RealType > &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::geometric_distribution< _IntType > &__x)
• template<typename _RandomNumberEngine , size_t __w, typename _UIntType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::weibull_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
student_t_distribution< _RealType > &__x)
• template<typename _UIntType , size_t __w, size_t __s, size_t __r, typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
subtract_with_carry_engine< _UIntType, __w, __s, __r > &__x)
• template wostream & operator<< (wostream &, _Resetiosflags)
• template wostream & operator<< (wostream &, _Setbase)
• template wostream & operator<< (wostream &, _Setfill< wchar_t >)
• template wostream & operator<< (wostream &, _Setiosflags)
• template wostream & operator<< (wostream &, _Setprecision)
• template wostream & operator<< (wostream &, _Setw)
• template wostream & operator<< (wostream &, const complex< double > &)
• template wostream & operator<< (wostream &, const complex< float > &)
• template wostream & operator<< (wostream &, const complex< long double > &)
• template<typename _Ch , typename _Tr , typename _Tp , _Lock_policy _Lp>
std::basic_ostream< _Ch, _Tr > & operator<< (std::basic_ostream< _Ch, _Tr > &__os, const __shared_ptr<
_Tp, _Lp > &__p)
• template<typename _CharT , typename _Traits , typename _Tp , typename _Dp >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const unique_ptr<
_Tp, _Dp > &__p)
• template<class _Dom >
_Expr< _BinClos< struct std::__less_equal, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__less_equal, typename _Dom::value_type >::result_type > operator<= (const _Expr< _←-
Dom, typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__less_equal, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__less_equal, typename _Dom::value_type >::result_type > operator<= (const _Expr< _←-
Dom, typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__less_equal, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std←-
::__less_equal, typename _Dom1::value_type >::result_type > operator<= (const _Expr< _Dom1, typename
_Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)

Generated by Doxygen
536

• template<typename _IteratorL , typename _IteratorR >


requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }
constexpr bool operator<= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
bool operator<= (const multimap< _Key, _Tp, _Compare, _Alloc > &__x, const multimap< _Key, _Tp, _←-
Compare, _Alloc > &__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator<= (const multiset< _Key, _Compare, _Alloc > &__x, const multiset< _Key, _Compare, _Alloc >
&__y)
• template<typename _Tp , typename _Seq >
bool operator<= (const queue< _Tp, _Seq > &__x, const queue< _Tp, _Seq > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() >= __y.base() } -> convertible_to<bool>; }
constexpr bool operator<= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR >
&__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator<= (const set< _Key, _Compare, _Alloc > &__x, const set< _Key, _Compare, _Alloc > &__y)
• template<typename _Tp , typename _Seq >
bool operator<= (const stack< _Tp, _Seq > &__x, const stack< _Tp, _Seq > &__y)
• template<class _Dom >
_Expr< _BinClos< struct std::__less_equal, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__less_equal, typename _Dom::value_type >::result_type > operator<= (const typename ←-
_Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool operator<= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool operator<= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<class _Dom >
_Expr< _BinClos< struct std::__less_equal, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__less_equal, typename _Dom::value_type >::result_type > operator<= (const valarray<
typename _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<typename _Tp , typename _Dp >
constexpr bool operator<= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<typename _CharT , typename _Traits >
constexpr auto operator<=> (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view<
_CharT, _Traits > > __y) noexcept -> decltype(__detail::__char_traits_cmp_cat< _Traits >(0))
• template<typename _Tp , typename _Up , _Lock_policy _Lp>
strong_ordering operator<=> (const __shared_ptr< _Tp, _Lp > &__a, const __shared_ptr< _Up, _Lp > &__b)
noexcept
• template<typename _Tp , _Lock_policy _Lp>
strong_ordering operator<=> (const __shared_ptr< _Tp, _Lp > &__a, nullptr_t) noexcept
• template<typename _Tp , size_t _Nm>
constexpr __detail::__synth3way_t< _Tp > operator<=> (const array< _Tp, _Nm > &__a, const array< _Tp,
_Nm > &__b)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr auto operator<=> (const basic_string< _CharT, _Traits, _Alloc > &__lhs, const _CharT ∗__rhs) noex-
cept -> decltype(__detail::__char_traits_cmp_cat< _Traits >(0))
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr auto operator<=> (const basic_string< _CharT, _Traits, _Alloc > &__lhs, const basic_string< _CharT,
_Traits, _Alloc > &__rhs) noexcept -> decltype(__detail::__char_traits_cmp_cat< _Traits >(0))
• template<typename _Tp , typename _Alloc >
__detail::__synth3way_t< _Tp > operator<=> (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc
> &__y)

Generated by Doxygen
4.10 std Namespace Reference 537

• template<typename _Tp , typename _Alloc >


__detail::__synth3way_t< _Tp > operator<=> (const forward_list< _Tp, _Alloc > &__x, const forward_list<
_Tp, _Alloc > &__y)
• template<typename _Tp , typename _Alloc >
__detail::__synth3way_t< _Tp > operator<=> (const list< _Tp, _Alloc > &__x, const list< _Tp, _Alloc > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
__detail::__synth3way_t< pair< const _Key, _Tp > > operator<=> (const map< _Key, _Tp, _Compare, _Alloc
> &__x, const map< _Key, _Tp, _Compare, _Alloc > &__y)
• template<three_way_comparable _Iterator>
constexpr compare_three_way_result_t< _Iterator > operator<=> (const move_iterator< _Iterator > &__x,
const move_iterator< _Iterator > &__y)
• template<typename _IteratorL , three_way_comparable_with< _IteratorL > _IteratorR>
constexpr compare_three_way_result_t< _IteratorL, _IteratorR > operator<=> (const move_iterator< _←-
IteratorL > &__x, const move_iterator< _IteratorR > &__y)
• template<typename _Tp , three_way_comparable _Seq>
compare_three_way_result_t< _Seq > operator<=> (const queue< _Tp, _Seq > &__x, const queue< _Tp,
_Seq > &__y)
• template<three_way_comparable _Iterator>
constexpr compare_three_way_result_t< _Iterator, _Iterator > operator<=> (const reverse_iterator< _Iterator
> &__x, const reverse_iterator< _Iterator > &__y)
• template<typename _IteratorL , three_way_comparable_with< _IteratorL > _IteratorR>
constexpr compare_three_way_result_t< _IteratorL, _IteratorR > operator<=> (const reverse_iterator< _←-
IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
• template<typename _Tp , three_way_comparable _Seq>
compare_three_way_result_t< _Seq > operator<=> (const stack< _Tp, _Seq > &__x, const stack< _Tp, _Seq
> &__y)
• template<typename... _Tps, typename... _Ups>
requires (sizeof...(_Tps) == sizeof...(_Ups)) && (requires { typename __detail::__synth3way_t<_Tps, _Ups>; } && ...)
constexpr common_comparison_category_t< __detail::__synth3way_t< _Tps, _Ups >... > operator<=>
(const tuple< _Tps... > &__t, const tuple< _Ups... > &__u)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
requires three_way_comparable_with<typename unique_ptr<_Tp, _Dp>::pointer, typename unique_ptr<_Up, _Ep>::pointer>
constexpr compare_three_way_result_t< typename unique_ptr< _Tp, _Dp >::pointer, typename unique_ptr<
_Up, _Ep >::pointer > operator<=> (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep >
&__y)
• template<typename _Tp , typename _Dp >
requires three_way_comparable<typename unique_ptr<_Tp, _Dp>::pointer>
constexpr compare_three_way_result_t< typename unique_ptr< _Tp, _Dp >::pointer > operator<=> (const
unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<typename _Tp , typename _Alloc >
constexpr __detail::__synth3way_t< _Tp > operator<=> (const vector< _Tp, _Alloc > &__x, const vector<
_Tp, _Alloc > &__y)
• constexpr strong_ordering operator<=> (monostate, monostate) noexcept
• template<typename _T1 , typename _T2 >
constexpr bool operator== (const allocator< _T1 > &, const allocator< _T2 > &) noexcept
• bool operator== (const error_code &__lhs, const error_code &__rhs) noexcept
• bool operator== (const error_code &__lhs, const error_condition &__rhs) noexcept
• bool operator== (const error_condition &__lhs, const error_condition &__rhs) noexcept
• template<typename _Bi_iter , typename _Alloc >
bool operator== (const match_results< _Bi_iter, _Alloc > &__m1, const match_results< _Bi_iter, _Alloc > &_←-
_m2)
• template<typename _CharT , typename _Traits >
constexpr bool operator== (basic_string_view< _CharT, _Traits > __x, type_identity_t< basic_string_view< ←-
_CharT, _Traits > > __y) noexcept

Generated by Doxygen
538

• template<typename _Tp , _Lock_policy _Lp>


bool operator== (const __shared_ptr< _Tp, _Lp > &__a, nullptr_t) noexcept
• template<typename _Tp1 , typename _Tp2 , _Lock_policy _Lp>
bool operator== (const __shared_ptr< _Tp1, _Lp > &__a, const __shared_ptr< _Tp2, _Lp > &__b) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__equal_to, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__equal_to, typename _Dom::value_type >::result_type > operator== (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__equal_to, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__equal_to, typename _Dom::value_type >::result_type > operator== (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__equal_to, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::_←-
_equal_to, typename _Dom1::value_type >::result_type > operator== (const _Expr< _Dom1, typename _←-
Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<typename _Tp , std::size_t _Nm>
constexpr bool operator== (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr bool operator== (const basic_string< _CharT, _Traits, _Alloc > &__lhs, const _CharT ∗__rhs)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr bool operator== (const basic_string< _CharT, _Traits, _Alloc > &__lhs, const basic_string< _CharT,
_Traits, _Alloc > &__rhs) noexcept
• template<typename _Tp , typename _Alloc >
bool operator== (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc > &__y)
• template<typename _Tp , typename _Alloc >
bool operator== (const forward_list< _Tp, _Alloc > &__lx, const forward_list< _Tp, _Alloc > &__ly)
• template<typename _StateT >
bool operator== (const fpos< _StateT > &__lhs, const fpos< _StateT > &__rhs)
• template<typename _Res , typename... _Args>
bool operator== (const function< _Res(_Args...)> &__f, nullptr_t) noexcept
• template<typename _CharT , typename _Traits >
bool operator== (const istreambuf_iterator< _CharT, _Traits > &__a, const istreambuf_iterator< _CharT, _Traits
> &__b)
• template<typename _Tp , typename _Alloc >
bool operator== (const list< _Tp, _Alloc > &__x, const list< _Tp, _Alloc > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
bool operator== (const map< _Key, _Tp, _Compare, _Alloc > &__x, const map< _Key, _Tp, _Compare, _Alloc
> &__y)
• template<typename _Iterator >
constexpr bool operator== (const move_iterator< _Iterator > &__x, const move_iterator< _Iterator > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool operator== (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
bool operator== (const multimap< _Key, _Tp, _Compare, _Alloc > &__x, const multimap< _Key, _Tp, _Compare,
_Alloc > &__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator== (const multiset< _Key, _Compare, _Alloc > &__x, const multiset< _Key, _Compare, _Alloc >
&__y)
• template<typename _Tp , typename _Seq >
bool operator== (const queue< _Tp, _Seq > &__x, const queue< _Tp, _Seq > &__y)

Generated by Doxygen
4.10 std Namespace Reference 539

• template<typename _Iterator >


requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool operator== (const reverse_iterator< _Iterator > &__x, const reverse_iterator< _Iterator > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool operator== (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &←-
__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator== (const set< _Key, _Compare, _Alloc > &__x, const set< _Key, _Compare, _Alloc > &__y)
• template<typename _Tp , typename _Seq >
bool operator== (const stack< _Tp, _Seq > &__x, const stack< _Tp, _Seq > &__y)
• template<typename _RealType >
bool operator== (const std::normal_distribution< _RealType > &__d1, const std::normal_distribution< _Real←-
Type > &__d2)
• template<typename... _Tps, typename... _Ups>
requires (sizeof...(_Tps) == sizeof...(_Ups)) && (requires (const _Tps& __t, const _Ups& __u) { { __t == __u } -> __detail::__boolean_testable;
} && ...)
constexpr bool operator== (const tuple< _Tps... > &__t, const tuple< _Ups... > &__u)
• template<class _Dom >
_Expr< _BinClos< struct std::__equal_to, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__equal_to, typename _Dom::value_type >::result_type > operator== (const typename _←-
Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool operator== (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool operator== (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) noexcept
• template<class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
bool operator== (const unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, const unordered_map<
_Key, _Tp, _Hash, _Pred, _Alloc > &__y)
• template<class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
bool operator== (const unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, const unordered_multimap<
_Key, _Tp, _Hash, _Pred, _Alloc > &__y)
• template<class _Value , class _Hash , class _Pred , class _Alloc >
bool operator== (const unordered_multiset< _Value, _Hash, _Pred, _Alloc > &__x, const unordered_multiset<
_Value, _Hash, _Pred, _Alloc > &__y)
• template<class _Value , class _Hash , class _Pred , class _Alloc >
bool operator== (const unordered_set< _Value, _Hash, _Pred, _Alloc > &__x, const unordered_set< _Value,
_Hash, _Pred, _Alloc > &__y)
• template<class _Dom >
_Expr< _BinClos< struct std::__equal_to, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__equal_to, typename _Dom::value_type >::result_type > operator== (const valarray< type-
name _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<typename _Tp , typename _Alloc >
constexpr bool operator== (const vector< _Tp, _Alloc > &__x, const vector< _Tp, _Alloc > &__y)
• constexpr bool operator== (monostate, monostate) noexcept
• template<typename _OutA1 , typename _OutA2 , typename... _InA>
bool operator== (const scoped_allocator_adaptor< _OutA1, _InA... > &__a, const scoped_allocator_adaptor<
_OutA2, _InA... > &__b) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__greater, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename ←-
__fun< struct std::__greater, typename _Dom::value_type >::result_type > operator> (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)

Generated by Doxygen
540

• template<class _Dom >


_Expr< _BinClos< struct std::__greater, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__greater, typename _Dom::value_type >::result_type > operator> (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__greater, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::__←-
greater, typename _Dom1::value_type >::result_type > operator> (const _Expr< _Dom1, typename _Dom1←-
::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }
constexpr bool operator> (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
bool operator> (const multimap< _Key, _Tp, _Compare, _Alloc > &__x, const multimap< _Key, _Tp, _Compare,
_Alloc > &__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator> (const multiset< _Key, _Compare, _Alloc > &__x, const multiset< _Key, _Compare, _Alloc >
&__y)
• template<typename _Tp , typename _Seq >
bool operator> (const queue< _Tp, _Seq > &__x, const queue< _Tp, _Seq > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool operator> (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &←-
__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator> (const set< _Key, _Compare, _Alloc > &__x, const set< _Key, _Compare, _Alloc > &__y)
• template<typename _Tp , typename _Seq >
bool operator> (const stack< _Tp, _Seq > &__x, const stack< _Tp, _Seq > &__y)
• template<class _Dom >
_Expr< _BinClos< struct std::__greater, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__greater, typename _Dom::value_type >::result_type > operator> (const typename _←-
Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool operator> (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool operator> (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<class _Dom >
_Expr< _BinClos< struct std::__greater, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__greater, typename _Dom::value_type >::result_type > operator> (const valarray< type-
name _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<typename _Tp , typename _Dp >
constexpr bool operator> (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<class _Dom >
_Expr< _BinClos< struct std::__greater_equal, _Expr, _ValArray, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__greater_equal, typename _Dom::value_type >::result_type > operator>= (const ←-
_Expr< _Dom, typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__greater_equal, _Expr, _Constant, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__greater_equal, typename _Dom::value_type >::result_type > operator>= (const ←-
_Expr< _Dom, typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__greater_equal, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::←-
__greater_equal, typename _Dom1::value_type >::result_type > operator>= (const _Expr< _Dom1, typename
_Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)

Generated by Doxygen
4.10 std Namespace Reference 541

• template<typename _IteratorL , typename _IteratorR >


requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool operator>= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
bool operator>= (const multimap< _Key, _Tp, _Compare, _Alloc > &__x, const multimap< _Key, _Tp, _←-
Compare, _Alloc > &__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator>= (const multiset< _Key, _Compare, _Alloc > &__x, const multiset< _Key, _Compare, _Alloc >
&__y)
• template<typename _Tp , typename _Seq >
bool operator>= (const queue< _Tp, _Seq > &__x, const queue< _Tp, _Seq > &__y)
• template<typename _IteratorL , typename _IteratorR >
requires requires { { __x.base() <= __y.base() } -> convertible_to<bool>; }
constexpr bool operator>= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR >
&__y)
• template<typename _Key , typename _Compare , typename _Alloc >
bool operator>= (const set< _Key, _Compare, _Alloc > &__x, const set< _Key, _Compare, _Alloc > &__y)
• template<typename _Tp , typename _Seq >
bool operator>= (const stack< _Tp, _Seq > &__x, const stack< _Tp, _Seq > &__y)
• template<class _Dom >
_Expr< _BinClos< struct std::__greater_equal, _Constant, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__greater_equal, typename _Dom::value_type >::result_type > operator>= (const
typename _Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
constexpr bool operator>= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
• template<typename _Tp , typename _Dp >
constexpr bool operator>= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
• template<class _Dom >
_Expr< _BinClos< struct std::__greater_equal, _ValArray, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__greater_equal, typename _Dom::value_type >::result_type > operator>= (const
valarray< typename _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template<typename _Tp , typename _Dp >
bool operator>= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
• template<typename _Istream , typename _Tp >
__rvalue_stream_extraction_t< _Istream, _Tp > operator>> (_Istream &&__is, _Tp &&__x)
• template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename, typename > class _Base>
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, __gnu_cxx::__versa_string<
_CharT, _Traits, _Alloc, _Base > &__str)
• template<typename _CharT , typename _Traits , typename _MoneyT >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Get_money< _←-
MoneyT > __f)
• template<typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Get_time< _CharT
> __f)
• template<typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Resetiosflags __f)
• template<typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Setbase __f)
• template<typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Setfill< _CharT >
__f)
• template<typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Setiosflags __f)

Generated by Doxygen
542

• template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Setprecision __f)
• template<typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, _Setw __f)
• template<typename _CharT , typename _Traits , typename _Alloc >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, basic_string< _←-
CharT, _Traits, _Alloc > &__str)
• template<typename _Tp , typename _CharT , class _Traits >
basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__is, complex< _Tp >
&__x)
• template<> basic_istream< char > & operator>> (basic_istream< char > &__is, basic_string< char > &_←-
_str)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_right, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__shift_right, typename _Dom::value_type >::result_type > operator>> (const _Expr< _←-
Dom, typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_right, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__shift_right, typename _Dom::value_type >::result_type > operator>> (const _Expr< _←-
Dom, typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__shift_right, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std←-
::__shift_right, typename _Dom1::value_type >::result_type > operator>> (const _Expr< _Dom1, typename
_Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_right, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__shift_right, typename _Dom::value_type >::result_type > operator>> (const typename
_Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__shift_right, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__shift_right, typename _Dom::value_type >::result_type > operator>> (const valarray<
typename _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• template istream & operator>> (istream &, _Resetiosflags)
• template istream & operator>> (istream &, _Setbase)
• template istream & operator>> (istream &, _Setfill< char >)
• template istream & operator>> (istream &, _Setiosflags)
• template istream & operator>> (istream &, _Setprecision)
• template istream & operator>> (istream &, _Setw)
• template istream & operator>> (istream &, complex< double > &)
• template istream & operator>> (istream &, complex< float > &)
• template istream & operator>> (istream &, complex< long double > &)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &, std::uniform_int_distribution<
_IntType > &)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &, std::uniform_real_distribution<
_RealType > &)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
binomial_distribution< _IntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
chi_squared_distribution< _RealType > &__x)

Generated by Doxygen
4.10 std Namespace Reference 543

• template<typename _RandomNumberEngine , size_t __p, size_t __r, typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
discard_block_engine< _RandomNumberEngine, __p, __r > &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
discrete_distribution< _IntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
fisher_f_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
gamma_distribution< _RealType > &__x)
• template<typename _UIntType , _UIntType __a, _UIntType __c, _UIntType __m, typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
linear_congruential_engine< _UIntType, __a, __c, __m > &__lcr)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
lognormal_distribution< _RealType > &__x)
• template<typename _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s,
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f, typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >
&__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
negative_binomial_distribution< _IntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
normal_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
piecewise_constant_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
piecewise_linear_distribution< _RealType > &__x)
• template<typename _IntType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
poisson_distribution< _IntType > &__x)
• template<typename _RandomNumberEngine , size_t __k, typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
shuffle_order_engine< _RandomNumberEngine, __k > &__x)
• template<typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::bernoulli_distribution &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::cauchy_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::exponential_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::extreme_value_distribution< _RealType > &__x)

Generated by Doxygen
544

• template<typename _IntType , typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::geometric_distribution< _IntType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::weibull_distribution< _RealType > &__x)
• template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
student_t_distribution< _RealType > &__x)
• template<typename _UIntType , size_t __w, size_t __s, size_t __r, typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
subtract_with_carry_engine< _UIntType, __w, __s, __r > &__x)
• template wistream & operator>> (wistream &, _Resetiosflags)
• template wistream & operator>> (wistream &, _Setbase)
• template wistream & operator>> (wistream &, _Setfill< wchar_t >)
• template wistream & operator>> (wistream &, _Setiosflags)
• template wistream & operator>> (wistream &, _Setprecision)
• template wistream & operator>> (wistream &, _Setw)
• template wistream & operator>> (wistream &, complex< double > &)
• template wistream & operator>> (wistream &, complex< float > &)
• template wistream & operator>> (wistream &, complex< long double > &)
• constexpr _Ios_Fmtflags operator∧ (_Ios_Fmtflags __a, _Ios_Fmtflags __b) noexcept
• constexpr _Ios_Iostate operator∧ (_Ios_Iostate __a, _Ios_Iostate __b) noexcept
• constexpr _Ios_Openmode operator∧ (_Ios_Openmode __a, _Ios_Openmode __b) noexcept
• constexpr chars_format operator∧ (chars_format __lhs, chars_format __rhs) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_xor, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__bitwise_xor, typename _Dom::value_type >::result_type > operator∧ (const _Expr< _←-
Dom, typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_xor, _Expr, _Constant, _Dom, typename _Dom::value_type >, type-
name __fun< struct std::__bitwise_xor, typename _Dom::value_type >::result_type > operator∧ (const _Expr<
_Dom, typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__bitwise_xor, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std←-
::__bitwise_xor, typename _Dom1::value_type >::result_type > operator∧ (const _Expr< _Dom1, typename
_Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_xor, _Constant, _Expr, typename _Dom::value_type, _Dom >, type-
name __fun< struct std::__bitwise_xor, typename _Dom::value_type >::result_type > operator∧ (const type-
name _Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_xor, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__bitwise_xor, typename _Dom::value_type >::result_type > operator∧ (const valarray<
typename _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• constexpr launch operator∧ (launch __x, launch __y) noexcept
• constexpr const _Ios_Fmtflags & operator∧ = (_Ios_Fmtflags &__a, _Ios_Fmtflags __b) noexcept
• constexpr const _Ios_Iostate & operator∧ = (_Ios_Iostate &__a, _Ios_Iostate __b) noexcept
• constexpr const _Ios_Openmode & operator∧ = (_Ios_Openmode &__a, _Ios_Openmode __b) noexcept
• constexpr chars_format & operator∧ = (chars_format &__lhs, chars_format __rhs) noexcept
• constexpr launch & operator∧ = (launch &__x, launch __y) noexcept
• constexpr _Ios_Fmtflags operator| (_Ios_Fmtflags __a, _Ios_Fmtflags __b) noexcept

Generated by Doxygen
4.10 std Namespace Reference 545

• constexpr _Ios_Iostate operator| (_Ios_Iostate __a, _Ios_Iostate __b) noexcept


• constexpr _Ios_Openmode operator| (_Ios_Openmode __a, _Ios_Openmode __b) noexcept
• constexpr chars_format operator| (chars_format __lhs, chars_format __rhs) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_or, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__bitwise_or, typename _Dom::value_type >::result_type > operator| (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_or, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__bitwise_or, typename _Dom::value_type >::result_type > operator| (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__bitwise_or, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::←-
__bitwise_or, typename _Dom1::value_type >::result_type > operator| (const _Expr< _Dom1, typename _←-
Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_or, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__bitwise_or, typename _Dom::value_type >::result_type > operator| (const typename _←-
Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__bitwise_or, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__bitwise_or, typename _Dom::value_type >::result_type > operator| (const valarray< type-
name _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• constexpr launch operator| (launch __x, launch __y) noexcept
• constexpr memory_order operator| (memory_order __m, __memory_order_modifier __mod) noexcept
• constexpr const _Ios_Fmtflags & operator|= (_Ios_Fmtflags &__a, _Ios_Fmtflags __b) noexcept
• constexpr const _Ios_Iostate & operator|= (_Ios_Iostate &__a, _Ios_Iostate __b) noexcept
• constexpr const _Ios_Openmode & operator|= (_Ios_Openmode &__a, _Ios_Openmode __b) noexcept
• constexpr chars_format & operator|= (chars_format &__lhs, chars_format __rhs) noexcept
• constexpr launch & operator|= (launch &__x, launch __y) noexcept
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_or, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__logical_or, typename _Dom::value_type >::result_type > operator|| (const _Expr< _Dom,
typename _Dom::value_type > &__e, const valarray< typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_or, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename
__fun< struct std::__logical_or, typename _Dom::value_type >::result_type > operator|| (const _Expr< _Dom,
typename _Dom::value_type > &__v, const typename _Dom::value_type &__t)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::__logical_or, _Expr, _Expr, _Dom1, _Dom2 >, typename __fun< struct std::←-
__logical_or, typename _Dom1::value_type >::result_type > operator|| (const _Expr< _Dom1, typename _←-
Dom1::value_type > &__v, const _Expr< _Dom2, typename _Dom2::value_type > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_or, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__logical_or, typename _Dom::value_type >::result_type > operator|| (const typename _←-
Dom::value_type &__t, const _Expr< _Dom, typename _Dom::value_type > &__v)
• template<class _Dom >
_Expr< _BinClos< struct std::__logical_or, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename
__fun< struct std::__logical_or, typename _Dom::value_type >::result_type > operator|| (const valarray< type-
name _Dom::value_type > &__v, const _Expr< _Dom, typename _Dom::value_type > &__e)
• constexpr _Ios_Fmtflags operator∼ (_Ios_Fmtflags __a) noexcept
• constexpr _Ios_Iostate operator∼ (_Ios_Iostate __a) noexcept
• constexpr _Ios_Openmode operator∼ (_Ios_Openmode __a) noexcept

Generated by Doxygen
546

• constexpr chars_format operator∼ (chars_format __fmt) noexcept


• constexpr launch operator∼ (launch __x) noexcept
• template<typename _Fun , typename _Signature = __function_guide_t<_Fun, decltype(&_Fun::operator())>>
packaged_task (_Fun) -> packaged_task< _Signature >
• template<typename _Res , typename... _ArgTypes>
packaged_task (_Res(∗)(_ArgTypes...)) -> packaged_task< _Res(_ArgTypes...)>
• template<typename _RAIter >
constexpr void partial_sort (_RAIter, _RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr void partial_sort (_RAIter, _RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr void partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _Random←-
AccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _Random←-
AccessIterator __last, _Compare __comp)
• template<typename _IIter , typename _RAIter >
constexpr _RAIter partial_sort_copy (_IIter, _IIter, _RAIter, _RAIter)
• template<typename _IIter , typename _RAIter , typename _Compare >
constexpr _RAIter partial_sort_copy (_IIter, _IIter, _RAIter, _RAIter, _Compare)
• template<typename _InputIterator , typename _RandomAccessIterator >
constexpr _RandomAccessIterator partial_sort_copy (_InputIterator __first, _InputIterator __last, _Random←-
AccessIterator __result_first, _RandomAccessIterator __result_last)
• template<typename _InputIterator , typename _RandomAccessIterator , typename _Compare >
constexpr _RandomAccessIterator partial_sort_copy (_InputIterator __first, _InputIterator __last, _Random←-
AccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp)
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator partial_sum (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation >
constexpr _OutputIterator partial_sum (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _←-
BinaryOperation __binary_op)
• template<typename _BIter , typename _Predicate >
constexpr _BIter partition (_BIter, _BIter, _Predicate)
• template<typename _ForwardIterator , typename _Predicate >
constexpr _ForwardIterator partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _IIter , typename _OIter1 , typename _OIter2 , typename _Predicate >
constexpr pair< _OIter1, _OIter2 > partition_copy (_IIter, _IIter, _OIter1, _OIter2, _Predicate)
• template<typename _InputIterator , typename _OutputIterator1 , typename _OutputIterator2 , typename _Predicate >
constexpr pair< _OutputIterator1, _OutputIterator2 > partition_copy (_InputIterator __first, _InputIterator __last,
_OutputIterator1 __out_true, _OutputIterator2 __out_false, _Predicate __pred)
• template<typename _FIter , typename _Predicate >
constexpr _FIter partition_point (_FIter, _FIter, _Predicate)
• template<typename _ForwardIterator , typename _Predicate >
constexpr _ForwardIterator partition_point (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _Tp >
complex< _Tp > polar (const _Tp &, const _Tp &=0)
• template<typename _RAIter >
constexpr void pop_heap (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr void pop_heap (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr void pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)

Generated by Doxygen
4.10 std Namespace Reference 547

• template<typename _RandomAccessIterator , typename _Compare >


constexpr void pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type pow (_Tp __x, _Up __y)
• template<class _Dom >
_Expr< _BinClos< struct std::_Pow, _Expr, _Constant, _Dom, typename _Dom::value_type >, typename _←-
Dom::value_type > pow (const _Expr< _Dom, typename _Dom::value_type > &__e, const typename _Dom←-
::value_type &__t)
• template<class _Dom >
_Expr< _BinClos< struct std::_Pow, _Expr, _ValArray, _Dom, typename _Dom::value_type >, typename _←-
Dom::value_type > pow (const _Expr< _Dom, typename _Dom::value_type > &__e, const valarray< typename
_Dom::value_type > &__v)
• template<class _Dom1 , class _Dom2 >
_Expr< _BinClos< struct std::_Pow, _Expr, _Expr, _Dom1, _Dom2 >, typename _Dom1::value_type > pow
(const _Expr< _Dom1, typename _Dom1::value_type > &__e1, const _Expr< _Dom2, typename _Dom2←-
::value_type > &__e2)
• template<typename _Tp >
complex< _Tp > pow (const _Tp &, const complex< _Tp > &)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > pow (const _Tp &__x, const
std::complex< _Up > &__y)
• template<typename _Tp >
complex< _Tp > pow (const complex< _Tp > &, const _Tp &)
• template<typename _Tp >
complex< _Tp > pow (const complex< _Tp > &, const complex< _Tp > &)
• template<typename _Tp >
complex< _Tp > pow (const complex< _Tp > &, int)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > pow (const std::complex< _Tp >
&__x, const _Up &__y)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > pow (const std::complex< _Tp >
&__x, const std::complex< _Up > &__y)
• template<class _Dom >
_Expr< _BinClos< struct std::_Pow, _Constant, _Expr, typename _Dom::value_type, _Dom >, typename ←-
_Dom::value_type > pow (const typename _Dom::value_type &__t, const _Expr< _Dom, typename _Dom←-
::value_type > &__e)
• template<typename _Tp >
_Expr< _BinClos< struct std::_Pow, _Constant, _ValArray, _Tp, _Tp >, _Tp > pow (const typename valarray<
_Tp >::value_type &__t, const valarray< _Tp > &__v)
• template<typename _Tp >
_Expr< _BinClos< struct std::_Pow, _ValArray, _Constant, _Tp, _Tp >, _Tp > pow (const valarray< _Tp >
&__v, const typename valarray< _Tp >::value_type &__t)
• template<typename _Tp >
_Expr< _BinClos< struct std::_Pow, _ValArray, _ValArray, _Tp, _Tp >, _Tp > pow (const valarray< _Tp > &__v,
const valarray< _Tp > &__w)
• template<class _Dom >
_Expr< _BinClos< struct std::_Pow, _ValArray, _Expr, typename _Dom::value_type, _Dom >, typename _←-
Dom::value_type > pow (const valarray< typename _Dom::valarray > &__v, const _Expr< _Dom, typename
_Dom::value_type > &__e)
• constexpr float pow (float __x, float __y)
• constexpr long double pow (long double __x, long double __y)

Generated by Doxygen
548

• template<typename _BidirectionalIterator >


constexpr _BidirectionalIterator prev (_BidirectionalIterator __x, typename iterator_traits< _BidirectionalIterator
>::difference_type __n=1)
• template<typename _BidirectionalIterator >
constexpr bool prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
• template<typename _BidirectionalIterator , typename _Compare >
constexpr bool prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
• template<typename _BIter >
constexpr bool prev_permutation (_BIter, _BIter)
• template<typename _BIter , typename _Compare >
constexpr bool prev_permutation (_BIter, _BIter, _Compare)
• template<typename _Compare , typename _Container , typename = _RequireNotAllocator<_Compare>, typename = _RequireNot←-
Allocator<_Container>>
priority_queue (_Compare, _Container) -> priority_queue< typename _Container::value_type, _Container, _←-
Compare >
• template<typename _Compare , typename _Container , typename _Allocator , typename = _RequireNotAllocator<_Compare>, typename
= _RequireNotAllocator<_Container>>
priority_queue (_Compare, _Container, _Allocator) -> priority_queue< typename _Container::value_type, _←-
Container, _Compare >
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Compare =
less<_ValT>, typename _Container = vector<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNot←-
Allocator<_Compare>, typename = _RequireNotAllocator<_Container>>
priority_queue (_InputIterator, _InputIterator, _Compare=_Compare(), _Container=_Container()) -> priority_←-
queue< _ValT, _Container, _Compare >
• template<typename _Tp >
std::complex< typename __gnu_cxx::__promote< _Tp >::__type > proj (_Tp __x)
• template<typename _Tp >
std::complex< _Tp > proj (const std::complex< _Tp > &)
• template<typename _Arg , typename _Result >
pointer_to_unary_function< _Arg, _Result > ptr_fun (_Result(∗__x)(_Arg))
• template<typename _Arg1 , typename _Arg2 , typename _Result >
pointer_to_binary_function< _Arg1, _Arg2, _Result > ptr_fun (_Result(∗__x)(_Arg1, _Arg2))
• template<typename _RAIter >
constexpr void push_heap (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr void push_heap (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr void push_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void push_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _MoneyT >
_Put_money< _MoneyT > put_money (const _MoneyT &__mon, bool __intl=false)
• template<typename _CharT >
_Put_time< _CharT > put_time (const std::tm ∗__tmb, const _CharT ∗__fmt)
• template<typename _Container , typename = _RequireNotAllocator<_Container>>
queue (_Container) -> queue< typename _Container::value_type, _Container >
• template<typename _Container , typename _Allocator , typename = _RequireNotAllocator<_Container>>
queue (_Container, _Allocator) -> queue< typename _Container::value_type, _Container >
• template<typename _RAIter >
void random_shuffle (_RAIter, _RAIter)
• template<typename _RAIter , typename _Generator >
void random_shuffle (_RAIter, _RAIter, _Generator &&)

Generated by Doxygen
4.10 std Namespace Reference 549

• template<typename _RandomAccessIterator >


void random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _RandomNumberGenerator >
void random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumber←-
Generator &&__rand)
• template<typename _Container >
constexpr auto rbegin (_Container &__cont) noexcept(noexcept(__cont.rbegin())) -> decltype(__cont.rbegin())
• template<typename _Tp , size_t _Nm>
constexpr reverse_iterator< _Tp ∗ > rbegin (_Tp(&__arr)[_Nm]) noexcept
• template<typename _Container >
constexpr auto rbegin (const _Container &__cont) noexcept(noexcept(__cont.rbegin())) -> decltype(__cont.←-
rbegin())
• template<typename _Tp >
constexpr reverse_iterator< const _Tp ∗ > rbegin (initializer_list< _Tp > __il) noexcept
• template<typename _Tp >
constexpr __gnu_cxx::__promote< _Tp >::__type real (_Tp __x)
• template<typename _Tp >
constexpr _Tp real (const complex< _Tp > &__z)
• template<typename _InputIterator >
constexpr iterator_traits< _InputIterator >::value_type reduce (_InputIterator __first, _InputIterator __last)
• template<typename _InputIterator , typename _Tp >
constexpr _Tp reduce (_InputIterator __first, _InputIterator __last, _Tp __init)
• template<typename _InputIterator , typename _Tp , typename _BinaryOperation >
constexpr _Tp reduce (_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op)
• template<typename _Tp >
reference_wrapper (_Tp &) -> reference_wrapper< _Tp >
• template<typename _Tp , typename _Tp1 , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > reinterpret_pointer_cast (const __shared_ptr< _Tp1, _Lp > &__r) noexcept
• template<typename _Tp , typename _Up >
constexpr __gnu_cxx::__promote_2< _Tp, _Up >::__type remainder (_Tp __x, _Up __y)
• constexpr float remainder (float __x, float __y)
• constexpr long double remainder (long double __x, long double __y)
• template<typename _FIter , typename _Tp >
constexpr _FIter remove (_FIter, _FIter, const _Tp &)
• template<typename _ForwardIterator , typename _Tp >
constexpr _ForwardIterator remove (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
• template<typename _IIter , typename _OIter , typename _Tp >
constexpr _OIter remove_copy (_IIter, _IIter, _OIter, const _Tp &)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp >
constexpr _OutputIterator remove_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
const _Tp &__value)
• template<typename _IIter , typename _OIter , typename _Predicate >
constexpr _OIter remove_copy_if (_IIter, _IIter, _OIter, _Predicate)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate >
constexpr _OutputIterator remove_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_Predicate __pred)
• template<typename _FIter , typename _Predicate >
constexpr _FIter remove_if (_FIter, _FIter, _Predicate)
• template<typename _ForwardIterator , typename _Predicate >
constexpr _ForwardIterator remove_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _Tp , typename _Up >
__gnu_cxx::__promote_2< _Tp, _Up >::__type remquo (_Tp __x, _Up __y, int ∗__pquo)

Generated by Doxygen
550

• float remquo (float __x, float __y, int ∗__pquo)


• long double remquo (long double __x, long double __y, int ∗__pquo)
• template<typename _Container >
constexpr auto rend (_Container &__cont) noexcept(noexcept(__cont.rend())) -> decltype(__cont.rend())
• template<typename _Tp , size_t _Nm>
constexpr reverse_iterator< _Tp ∗ > rend (_Tp(&__arr)[_Nm]) noexcept
• template<typename _Container >
constexpr auto rend (const _Container &__cont) noexcept(noexcept(__cont.rend())) -> decltype(__cont.rend())
• template<typename _Tp >
constexpr reverse_iterator< const _Tp ∗ > rend (initializer_list< _Tp > __il) noexcept
• template<typename _FIter , typename _Tp >
constexpr void replace (_FIter, _FIter, const _Tp &, const _Tp &)
• template<typename _ForwardIterator , typename _Tp >
constexpr void replace (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__old_value, const _Tp
&__new_value)
• template<typename _IIter , typename _OIter , typename _Tp >
constexpr _OIter replace_copy (_IIter, _IIter, _OIter, const _Tp &, const _Tp &)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp >
constexpr _OutputIterator replace_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
const _Tp &__old_value, const _Tp &__new_value)
• template<typename _InputIterator , typename _OutputIterator , typename _Predicate , typename _Tp >
constexpr _OutputIterator replace_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result,
_Predicate __pred, const _Tp &__new_value)
• template<typename _Iter , typename _OIter , typename _Predicate , typename _Tp >
constexpr _OIter replace_copy_if (_Iter, _Iter, _OIter, _Predicate, const _Tp &)
• template<typename _FIter , typename _Predicate , typename _Tp >
constexpr void replace_if (_FIter, _FIter, _Predicate, const _Tp &)
• template<typename _ForwardIterator , typename _Predicate , typename _Tp >
constexpr void replace_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp &__←-
new_value)
• _Resetiosflags resetiosflags (ios_base::fmtflags __mask)
• void rethrow_exception (exception_ptr)
• template<typename _Ex >
void rethrow_if_nested (const _Ex &__ex)
• template<typename _Tp >
void return_temporary_buffer (_Tp ∗__p)
• template<typename _BidirectionalIterator >
constexpr void reverse (_BidirectionalIterator __first, _BidirectionalIterator __last)
• template<typename _BIter >
constexpr void reverse (_BIter, _BIter)
• template<typename _BidirectionalIterator , typename _OutputIterator >
constexpr _OutputIterator reverse_copy (_BidirectionalIterator __first, _BidirectionalIterator __last, _Output←-
Iterator __result)
• template<typename _BIter , typename _OIter >
constexpr _OIter reverse_copy (_BIter, _BIter, _OIter)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type riemann_zeta (_Tp __s)
• float riemann_zetaf (float __s)
• long double riemann_zetal (long double __s)
• ios_base & right (ios_base &__base)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type rint (_Tp __x)

Generated by Doxygen
4.10 std Namespace Reference 551

• constexpr float rint (float __x)


• constexpr long double rint (long double __x)
• template<typename _FIter >
constexpr _FIter rotate (_FIter, _FIter, _FIter)
• template<typename _ForwardIterator >
constexpr _ForwardIterator rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last)
• template<typename _FIter , typename _OIter >
constexpr _OIter rotate_copy (_FIter, _FIter, _FIter, _OIter)
• template<typename _ForwardIterator , typename _OutputIterator >
constexpr _OutputIterator rotate_copy (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator _←-
_last, _OutputIterator __result)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type round (_Tp __x)
• constexpr float round (float __x)
• constexpr long double round (long double __x)
• template<typename _PopulationIterator , typename _SampleIterator , typename _Distance , typename _UniformRandomBitGenerator >
_SampleIterator sample (_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __out, _Distance
__n, _UniformRandomBitGenerator &&__g)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type scalbln (_Tp __x, long
__ex)
• constexpr float scalbln (float __x, long __ex)
• constexpr long double scalbln (long double __x, long __ex)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type scalbn (_Tp __x, int __ex)
• constexpr float scalbn (float __x, int __ex)
• constexpr long double scalbn (long double __x, int __ex)
• ios_base & scientific (ios_base &__base)
• template<typename _FIter1 , typename _FIter2 >
constexpr _FIter1 search (_FIter1, _FIter1, _FIter2, _FIter2)
• template<typename _FIter1 , typename _FIter2 , typename _BinaryPredicate >
constexpr _FIter1 search (_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate)
• template<typename _ForwardIterator , typename _Searcher >
constexpr _ForwardIterator search (_ForwardIterator __first, _ForwardIterator __last, const _Searcher &__←-
searcher)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr _ForwardIterator1 search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 ←-
__first2, _ForwardIterator2 __last2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
constexpr _ForwardIterator1 search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 ←-
__first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate)
• template<typename _FIter , typename _Size , typename _Tp >
constexpr _FIter search_n (_FIter, _FIter, _Size, const _Tp &)
• template<typename _FIter , typename _Size , typename _Tp , typename _BinaryPredicate >
constexpr _FIter search_n (_FIter, _FIter, _Size, const _Tp &, _BinaryPredicate)
• template<typename _ForwardIterator , typename _Integer , typename _Tp >
constexpr _ForwardIterator search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const
_Tp &__val)
• template<typename _ForwardIterator , typename _Integer , typename _Tp , typename _BinaryPredicate >
constexpr _ForwardIterator search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const
_Tp &__val, _BinaryPredicate __binary_pred)

Generated by Doxygen
552

• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-


Allocator<_Allocator>>
set (_InputIterator, _InputIterator, _Allocator) -> set< typename iterator_traits< _InputIterator >::value_type,
less< typename iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Compare = less<typename iterator_traits<_InputIterator>::value_type>, typename _←-
Allocator = allocator<typename iterator_traits<_InputIterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
set (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> set< typename
iterator_traits< _InputIterator >::value_type, _Compare, _Allocator >
• template<typename _Key , typename _Allocator , typename = _RequireAllocator<_Allocator>>
set (initializer_list< _Key >, _Allocator) -> set< _Key, less< _Key >, _Allocator >
• template<typename _Key , typename _Compare = less<_Key>, typename _Allocator = allocator<_Key>, typename = _RequireNot←-
Allocator<_Compare>, typename = _RequireAllocator<_Allocator>>
set (initializer_list< _Key >, _Compare=_Compare(), _Allocator=_Allocator()) -> set< _Key, _Compare, _←-
Allocator >
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
constexpr _OIter set_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >
constexpr _OIter set_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,
_InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
constexpr _OIter set_intersection (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >
constexpr _OIter set_intersection (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __←-
first2, _InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __←-
first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• new_handler set_new_handler (new_handler) throw ()
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
constexpr _OIter set_symmetric_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >
constexpr _OIter set_symmetric_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >
constexpr _OutputIterator set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _Input←-
Iterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _Input←-
Iterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• terminate_handler set_terminate (terminate_handler) noexcept
• unexpected_handler set_unexpected (unexpected_handler) noexcept
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
constexpr _OIter set_union (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >
constexpr _OIter set_union (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)

Generated by Doxygen
4.10 std Namespace Reference 553

• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator >


constexpr _OutputIterator set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, ←-
_InputIterator2 __last2, _OutputIterator __result)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare >
constexpr _OutputIterator set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, ←-
_InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
• _Setbase setbase (int __base)
• template<typename _CharT >
_Setfill< _CharT > setfill (_CharT __c)
• _Setiosflags setiosflags (ios_base::fmtflags __mask)
• _Setprecision setprecision (int __n)
• _Setw setw (int __n)
• template<typename _Tp , typename _Del >
shared_ptr (unique_ptr< _Tp, _Del >) -> shared_ptr< _Tp >
• template<typename _Tp >
shared_ptr (weak_ptr< _Tp >) -> shared_ptr< _Tp >
• template<typename _ForwardIterator >
constexpr _ForwardIterator shift_left (_ForwardIterator __first, _ForwardIterator __last, typename iterator_traits<
_ForwardIterator >::difference_type __n)
• template<typename _ForwardIterator >
constexpr _ForwardIterator shift_right (_ForwardIterator __first, _ForwardIterator __last, typename iterator_traits<
_ForwardIterator >::difference_type __n)
• ios_base & showbase (ios_base &__base)
• ios_base & showpoint (ios_base &__base)
• ios_base & showpos (ios_base &__base)
• template<typename _RAIter , typename _UGenerator >
void shuffle (_RAIter, _RAIter, _UGenerator &&)
• template<typename _RandomAccessIterator , typename _UniformRandomNumberGenerator >
void shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _UniformRandomNumberGenerator
&&__g)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, bool >::__type signbit (_Tp __x)
• constexpr bool signbit (double __x)
• constexpr bool signbit (float __x)
• constexpr bool signbit (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type sin (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Sin, _Expr, _Dom >, typename _Dom::value_type > sin (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > sin (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Sin, _ValArray, _Tp >, _Tp > sin (const valarray< _Tp > &__v)
• constexpr float sin (float __x)
• constexpr long double sin (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type sinh (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Sinh, _Expr, _Dom >, typename _Dom::value_type > sinh (const _Expr< _Dom,
typename _Dom::value_type > &__e)

Generated by Doxygen
554

• template<typename _Tp >


complex< _Tp > sinh (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Sinh, _ValArray, _Tp >, _Tp > sinh (const valarray< _Tp > &__v)
• constexpr float sinh (float __x)
• constexpr long double sinh (long double __x)
• template<typename _Container >
constexpr auto size (const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
• template<typename _Tp , size_t _Nm>
constexpr size_t size (const _Tp(&)[_Nm]) noexcept
• ios_base & skipws (ios_base &__base)
• template<typename _RAIter >
constexpr void sort (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr void sort (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr void sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _RAIter >
constexpr void sort_heap (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
constexpr void sort_heap (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
constexpr void sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
constexpr void sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type sph_bessel (unsigned int __n, _Tp __x)
• float sph_besself (unsigned int __n, float __x)
• long double sph_bessell (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type sph_legendre (unsigned int __l, unsigned int __m, _Tp __theta)
• float sph_legendref (unsigned int __l, unsigned int __m, float __theta)
• long double sph_legendrel (unsigned int __l, unsigned int __m, long double __theta)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type sph_neumann (unsigned int __n, _Tp __x)
• float sph_neumannf (unsigned int __n, float __x)
• long double sph_neumannl (unsigned int __n, long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type sqrt (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Sqrt, _Expr, _Dom >, typename _Dom::value_type > sqrt (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > sqrt (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Sqrt, _ValArray, _Tp >, _Tp > sqrt (const valarray< _Tp > &__v)
• constexpr float sqrt (float __x)
• constexpr long double sqrt (long double __x)
• template<typename _Container >
constexpr auto ssize (const _Container &__cont) noexcept(noexcept(__cont.size())) -> common_type_t<
ptrdiff_t, make_signed_t< decltype(__cont.size())> >

Generated by Doxygen
4.10 std Namespace Reference 555

• template<typename _Tp , ptrdiff_t _Num>


constexpr ptrdiff_t ssize (const _Tp(&)[_Num]) noexcept
• template<typename _BIter , typename _Predicate >
_BIter stable_partition (_BIter, _BIter, _Predicate)
• template<typename _ForwardIterator , typename _Predicate >
_ForwardIterator stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
• template<typename _RAIter >
void stable_sort (_RAIter, _RAIter)
• template<typename _RAIter , typename _Compare >
void stable_sort (_RAIter, _RAIter, _Compare)
• template<typename _RandomAccessIterator >
void stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _RandomAccessIterator , typename _Compare >
void stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
• template<typename _Container , typename = _RequireNotAllocator<_Container>>
stack (_Container) -> stack< typename _Container::value_type, _Container >
• template<typename _Container , typename _Allocator , typename = _RequireNotAllocator<_Container>>
stack (_Container, _Allocator) -> stack< typename _Container::value_type, _Container >
• template<typename _Tp , typename _Tp1 , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > static_pointer_cast (const __shared_ptr< _Tp1, _Lp > &__r) noexcept
• double stod (const string &__str, size_t ∗__idx=0)
• double stod (const wstring &__str, size_t ∗__idx=0)
• float stof (const string &__str, size_t ∗__idx=0)
• float stof (const wstring &__str, size_t ∗__idx=0)
• int stoi (const string &__str, size_t ∗__idx=0, int __base=10)
• int stoi (const wstring &__str, size_t ∗__idx=0, int __base=10)
• long stol (const string &__str, size_t ∗__idx=0, int __base=10)
• long stol (const wstring &__str, size_t ∗__idx=0, int __base=10)
• long double stold (const string &__str, size_t ∗__idx=0)
• long double stold (const wstring &__str, size_t ∗__idx=0)
• long long stoll (const string &__str, size_t ∗__idx=0, int __base=10)
• long long stoll (const wstring &__str, size_t ∗__idx=0, int __base=10)
• template<typename _Callback >
stop_callback (stop_token, _Callback) -> stop_callback< _Callback >
• unsigned long stoul (const string &__str, size_t ∗__idx=0, int __base=10)
• unsigned long stoul (const wstring &__str, size_t ∗__idx=0, int __base=10)
• unsigned long long stoull (const string &__str, size_t ∗__idx=0, int __base=10)
• unsigned long long stoull (const wstring &__str, size_t ∗__idx=0, int __base=10)
• char ∗ strchr (char ∗__s, int __n)
• char ∗ strpbrk (char ∗__s1, const char ∗__s2)
• char ∗ strrchr (char ∗__s, int __n)
• char ∗ strstr (char ∗__s1, const char ∗__s2)
• template<typename _Ch_type , typename _Rx_traits >
void swap (basic_regex< _Ch_type, _Rx_traits > &__lhs, basic_regex< _Ch_type, _Rx_traits > &__rhs) noex-
cept
• template<typename _Bi_iter , typename _Alloc >
void swap (match_results< _Bi_iter, _Alloc > &__lhs, match_results< _Bi_iter, _Alloc > &__rhs) noexcept
• template<typename _Tp , _Lock_policy _Lp>
void swap (__shared_ptr< _Tp, _Lp > &__a, __shared_ptr< _Tp, _Lp > &__b) noexcept
• template<typename _Tp , _Lock_policy _Lp>
void swap (__weak_ptr< _Tp, _Lp > &__a, __weak_ptr< _Tp, _Lp > &__b) noexcept

Generated by Doxygen
556

• template<typename _Key , typename _Val , typename _KeyOfValue , typename _Compare , typename _Alloc >
void swap (_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc > &__x, _Rb_tree< _Key, _Val, _KeyOf←-
Value, _Compare, _Alloc > &__y)
• template<typename _Tp >
constexpr _Require< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >, is_move_assignable<
_Tp > > swap (_Tp &, _Tp &) noexcept(__and_< is_nothrow_move_constructible< _Tp >, is_nothrow_move_assignable<
_Tp > >::value)
• template<typename _Tp >
constexpr enable_if< __and_< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >,
is_move_assignable< _Tp > >::value >::type swap (_Tp &__a, _Tp &__b) noexcept(/∗conditional ∗/)
is_nothrow_move_assignable< _Tp > >
• template<typename _Tp , size_t _Nm>
constexpr enable_if< __is_swappable< _Tp >::value >::type swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm])
noexcept(/∗conditional ∗/)
• template<typename _Tp , size_t _Nm>
constexpr __enable_if_t< __is_swappable< _Tp >::value > swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm])
noexcept(__is_nothrow_swappable< _Tp >::value)
• template<typename _Tp , std::size_t _Nm>
__enable_if_t<!__array_traits< _Tp, _Nm >::_Is_swappable::value > swap (array< _Tp, _Nm > &, array< _Tp,
_Nm > &)=delete
• template<typename _Tp , std::size_t _Nm>
constexpr __enable_if_t< __array_traits< _Tp, _Nm >::_Is_swappable::value > swap (array< _Tp, _Nm > &←-
__one, array< _Tp, _Nm > &__two) noexcept(noexcept(__one.swap(__two)))
• template<class _CharT , class _Traits >
void swap (basic_filebuf< _CharT, _Traits > &__x, basic_filebuf< _CharT, _Traits > &__y)
• template<class _CharT , class _Traits >
void swap (basic_fstream< _CharT, _Traits > &__x, basic_fstream< _CharT, _Traits > &__y)
• template<class _CharT , class _Traits >
void swap (basic_ifstream< _CharT, _Traits > &__x, basic_ifstream< _CharT, _Traits > &__y)
• template<class _CharT , class _Traits , class _Allocator >
void swap (basic_istringstream< _CharT, _Traits, _Allocator > &__x, basic_istringstream< _CharT, _Traits, _←-
Allocator > &__y)
• template<class _CharT , class _Traits >
void swap (basic_ofstream< _CharT, _Traits > &__x, basic_ofstream< _CharT, _Traits > &__y)
• template<class _CharT , class _Traits , class _Allocator >
void swap (basic_ostringstream< _CharT, _Traits, _Allocator > &__x, basic_ostringstream< _CharT, _Traits,
_Allocator > &__y)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr void swap (basic_string< _CharT, _Traits, _Alloc > &__lhs, basic_string< _CharT, _Traits, _Alloc >
&__rhs) noexcept(/∗conditional ∗/)
• template<class _CharT , class _Traits , class _Allocator >
void swap (basic_stringbuf< _CharT, _Traits, _Allocator > &__x, basic_stringbuf< _CharT, _Traits, _Allocator >
&__y) noexcept(noexcept(__x.swap(__y)))
• template<class _CharT , class _Traits , class _Allocator >
void swap (basic_stringstream< _CharT, _Traits, _Allocator > &__x, basic_stringstream< _CharT, _Traits, _←-
Allocator > &__y)
• template<typename _Tp , typename _Alloc >
void swap (deque< _Tp, _Alloc > &__x, deque< _Tp, _Alloc > &__y) noexcept(/∗conditional ∗/)
• template<typename _Tp , typename _Alloc >
void swap (forward_list< _Tp, _Alloc > &__lx, forward_list< _Tp, _Alloc > &__ly) noexcept(noexcept(__lx.←-
swap(__ly)))
• template<typename _Res , typename... _Args>
void swap (function< _Res(_Args...)> &__x, function< _Res(_Args...)> &__y) noexcept

Generated by Doxygen
4.10 std Namespace Reference 557

• template<typename _Tp , typename _Alloc >


void swap (list< _Tp, _Alloc > &__x, list< _Tp, _Alloc > &__y) noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
void swap (map< _Key, _Tp, _Compare, _Alloc > &__x, map< _Key, _Tp, _Compare, _Alloc > &__←-
y) noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
void swap (multimap< _Key, _Tp, _Compare, _Alloc > &__x, multimap< _Key, _Tp, _Compare, _Alloc > &__y)
noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Compare , typename _Alloc >
void swap (multiset< _Key, _Compare, _Alloc > &__x, multiset< _Key, _Compare, _Alloc > &__←-
y) noexcept(/∗conditional ∗/)
• template<typename _Res , typename... _ArgTypes>
void swap (packaged_task< _Res(_ArgTypes...)> &__x, packaged_task< _Res(_ArgTypes...)> &__y) noexcept
• template<typename _Tp , typename _Sequence , typename _Compare >
enable_if< __and_< __is_swappable< _Sequence >, __is_swappable< _Compare > >::value >::type swap
(priority_queue< _Tp, _Sequence, _Compare > &__x, priority_queue< _Tp, _Sequence, _Compare > &__y)
noexcept(noexcept(__x.swap(__y)))
• template<typename _Res >
void swap (promise< _Res > &__x, promise< _Res > &__y) noexcept
• template<typename _Tp , typename _Seq >
enable_if< __is_swappable< _Seq >::value >::type swap (queue< _Tp, _Seq > &__x, queue< _Tp, _Seq >
&__y) noexcept(noexcept(__x.swap(__y)))
• template<typename _Key , typename _Compare , typename _Alloc >
void swap (set< _Key, _Compare, _Alloc > &__x, set< _Key, _Compare, _Alloc > &__y) noexcept(/∗conditional
∗/)
• template<typename _Tp , typename _Seq >
enable_if< __is_swappable< _Seq >::value >::type swap (stack< _Tp, _Seq > &__x, stack< _Tp, _Seq >
&__y) noexcept(noexcept(__x.swap(__y)))
• template<typename... _Elements>
constexpr enable_if<!__and_< __is_swappable< _Elements >... >::value >::type swap (tuple< _Elements...
> &, tuple< _Elements... > &)=delete
• template<typename... _Elements>
constexpr enable_if< __and_< __is_swappable< _Elements >... >::value >::type swap (tuple< _Elements...
> &__x, tuple< _Elements... > &__y) noexcept(noexcept(__x.swap(__y)))
• template<typename _Tp , typename _Dp >
enable_if<!__is_swappable< _Dp >::value >::type swap (unique_ptr< _Tp, _Dp > &, unique_ptr< _Tp, _Dp >
&)=delete
• template<class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
void swap (unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, unordered_map< _Key, _Tp, _Hash,
_Pred, _Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
void swap (unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, unordered_multimap< _Key, _Tp,
_Hash, _Pred, _Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<class _Value , class _Hash , class _Pred , class _Alloc >
void swap (unordered_multiset< _Value, _Hash, _Pred, _Alloc > &__x, unordered_multiset< _Value, _Hash,
_Pred, _Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<class _Value , class _Hash , class _Pred , class _Alloc >
void swap (unordered_set< _Value, _Hash, _Pred, _Alloc > &__x, unordered_set< _Value, _Hash, _Pred, _←-
Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<typename _Tp , typename _Alloc >
constexpr void swap (vector< _Tp, _Alloc > &__x, vector< _Tp, _Alloc > &__y) noexcept(/∗conditional ∗/)
• void swap (thread &__x, thread &__y) noexcept

Generated by Doxygen
558

• template<typename _Mutex >


void swap (unique_lock< _Mutex > &__x, unique_lock< _Mutex > &__y) noexcept
• template<typename _Tp , typename _Dp >
constexpr enable_if< __is_swappable< _Dp >::value >::type swap (unique_ptr< _Tp, _Dp > &__←-
x, unique_ptr< _Tp, _Dp > &__y) noexcept
• template<typename _Tp >
void swap (weak_ptr< _Tp > &__a, weak_ptr< _Tp > &__b) noexcept
• template<typename _FIter1 , typename _FIter2 >
constexpr _FIter2 swap_ranges (_FIter1, _FIter1, _FIter2)
• template<typename _ForwardIterator1 , typename _ForwardIterator2 >
constexpr _ForwardIterator2 swap_ranges (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _Forward←-
Iterator2 __first2)
• const error_category & system_category () noexcept
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type tan (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Tan, _Expr, _Dom >, typename _Dom::value_type > tan (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > tan (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Tan, _ValArray, _Tp >, _Tp > tan (const valarray< _Tp > &__v)
• constexpr float tan (float __x)
• constexpr long double tan (long double __x)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type tanh (_Tp __x)
• template<class _Dom >
_Expr< _UnClos< struct std::_Tanh, _Expr, _Dom >, typename _Dom::value_type > tanh (const _Expr< _Dom,
typename _Dom::value_type > &__e)
• template<typename _Tp >
complex< _Tp > tanh (const complex< _Tp > &)
• template<typename _Tp >
_Expr< _UnClos< struct std::_Tanh, _ValArray, _Tp >, _Tp > tanh (const valarray< _Tp > &__v)
• constexpr float tanh (float __x)
• constexpr long double tanh (long double __x)
• void terminate () noexcept
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type tgamma (_Tp __x)
• constexpr float tgamma (float __x)
• constexpr long double tgamma (long double __x)
• template<typename _Tp >
void throw_with_nested (_Tp &&__t)
• template<typename... _Elements>
constexpr tuple< _Elements &... > tie (_Elements &... __args) noexcept
• template<typename _Tp >
constexpr _Tp ∗ to_address (_Tp ∗__ptr) noexcept
• template<typename _Ptr >
constexpr auto to_address (const _Ptr &__ptr) noexcept
• to_chars_result to_chars (char ∗, char ∗, bool, int=10)=delete
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, char __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, signed char __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, signed int __value, int __base=10)

Generated by Doxygen
4.10 std Namespace Reference 559

• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, signed long __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, signed long long __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, signed short __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, unsigned char __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, unsigned int __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, unsigned long __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, unsigned long long __value, int __base=10)
• constexpr to_chars_result to_chars (char ∗__first, char ∗__last, unsigned short __value, int __base=10)
• string to_string (double __val)
• string to_string (float __val)
• string to_string (int __val) noexcept
• string to_string (long __val) noexcept
• string to_string (long double __val)
• string to_string (long long __val)
• string to_string (unsigned __val) noexcept
• string to_string (unsigned long __val) noexcept
• string to_string (unsigned long long __val)
• wstring to_wstring (double __val)
• wstring to_wstring (float __val)
• wstring to_wstring (int __val)
• wstring to_wstring (long __val)
• wstring to_wstring (long double __val)
• wstring to_wstring (long long __val)
• wstring to_wstring (unsigned __val)
• wstring to_wstring (unsigned long __val)
• wstring to_wstring (unsigned long long __val)
• template<typename _CharT >
_CharT tolower (_CharT __c, const locale &__loc)
• template<typename _CharT >
_CharT toupper (_CharT __c, const locale &__loc)
• template<typename _IIter , typename _OIter , typename _UnaryOperation >
constexpr _OIter transform (_IIter, _IIter, _OIter, _UnaryOperation)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _BinaryOperation >
constexpr _OIter transform (_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
• template<typename _InputIterator , typename _OutputIterator , typename _UnaryOperation >
constexpr _OutputIterator transform (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _←-
UnaryOperation __unary_op)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _BinaryOperation >
constexpr _OutputIterator transform (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _←-
OutputIterator __result, _BinaryOperation __binary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _Tp , typename _BinaryOperation , typename _UnaryOperation >
constexpr _OutputIterator transform_exclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator
__result, _Tp __init, _BinaryOperation __binary_op, _UnaryOperation __unary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename _UnaryOperation >
constexpr _OutputIterator transform_inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator
__result, _BinaryOperation __binary_op, _UnaryOperation __unary_op)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryOperation , typename _UnaryOperation , typename _Tp >
constexpr _OutputIterator transform_inclusive_scan (_InputIterator __first, _InputIterator __last, _OutputIterator
__result, _BinaryOperation __binary_op, _UnaryOperation __unary_op, _Tp __init)
• template<typename _InputIterator , typename _Tp , typename _BinaryOperation , typename _UnaryOperation >
constexpr _Tp transform_reduce (_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __←-
binary_op, _UnaryOperation __unary_op)

Generated by Doxygen
560

• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp >


constexpr _Tp transform_reduce (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp
__init)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _Tp , typename _BinaryOperation1 , typename _BinaryOperation2
>
constexpr _Tp transform_reduce (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp
__init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2)
• template<typename _Tp >
constexpr __gnu_cxx::__enable_if< __is_integer< _Tp >::__value, double >::__type trunc (_Tp __x)
• constexpr float trunc (float __x)
• constexpr long double trunc (long double __x)
• template<typename _L1 , typename _L2 , typename... _L3>
int try_lock (_L1 &__l1, _L2 &__l2, _L3 &... __l3)
• template<typename... _UTypes>
tuple (_UTypes...) -> tuple< _UTypes... >
• template<typename _Alloc , typename... _UTypes>
tuple (allocator_arg_t, _Alloc, _UTypes...) -> tuple< _UTypes... >
• template<typename _Alloc , typename _T1 , typename _T2 >
tuple (allocator_arg_t, _Alloc, pair< _T1, _T2 >) -> tuple< _T1, _T2 >
• template<typename _Alloc , typename... _UTypes>
tuple (allocator_arg_t, _Alloc, tuple< _UTypes... >) -> tuple< _UTypes... >
• template<typename _T1 , typename _T2 >
tuple (pair< _T1, _T2 >) -> tuple< _T1, _T2 >
• template<typename... _Tpls, typename = typename enable_if<__and_<__is_tuple_like<_Tpls>...>::value>::type>
constexpr auto tuple_cat (_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type
• bool uncaught_exception () noexcept
• void undeclare_no_pointers (char ∗, size_t)
• template<typename _Tp >
_Tp ∗ undeclare_reachable (_Tp ∗__p)
• void unexpected ()
• template<typename _Tp , typename _Alloc , typename... _Args>
constexpr _Tp ∗ uninitialized_construct_using_allocator (_Tp ∗__p, const _Alloc &__a, _Args &&... __args)
• template<typename _InputIterator , typename _ForwardIterator >
_ForwardIterator uninitialized_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
• template<typename _InputIterator , typename _Size , typename _ForwardIterator >
_ForwardIterator uninitialized_copy_n (_InputIterator __first, _Size __n, _ForwardIterator __result)
• template<typename _ForwardIterator >
void uninitialized_default_construct (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Size >
_ForwardIterator uninitialized_default_construct_n (_ForwardIterator __first, _Size __count)
• template<typename _ForwardIterator , typename _Tp >
void uninitialized_fill (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__x)
• template<typename _ForwardIterator , typename _Size , typename _Tp >
_ForwardIterator uninitialized_fill_n (_ForwardIterator __first, _Size __n, const _Tp &__x)
• template<typename _InputIterator , typename _ForwardIterator >
_ForwardIterator uninitialized_move (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
• template<typename _InputIterator , typename _Size , typename _ForwardIterator >
pair< _InputIterator, _ForwardIterator > uninitialized_move_n (_InputIterator __first, _Size __count, _Forward←-
Iterator __result)
• template<typename _ForwardIterator >
void uninitialized_value_construct (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _Size >
_ForwardIterator uninitialized_value_construct_n (_ForwardIterator __first, _Size __count)

Generated by Doxygen
4.10 std Namespace Reference 561

• template<typename _FIter >


constexpr _FIter unique (_FIter, _FIter)
• template<typename _FIter , typename _BinaryPredicate >
constexpr _FIter unique (_FIter, _FIter, _BinaryPredicate)
• template<typename _ForwardIterator >
constexpr _ForwardIterator unique (_ForwardIterator __first, _ForwardIterator __last)
• template<typename _ForwardIterator , typename _BinaryPredicate >
constexpr _ForwardIterator unique (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __←-
binary_pred)
• template<typename _IIter , typename _OIter >
constexpr _OIter unique_copy (_IIter, _IIter, _OIter)
• template<typename _IIter , typename _OIter , typename _BinaryPredicate >
constexpr _OIter unique_copy (_IIter, _IIter, _OIter, _BinaryPredicate)
• template<typename _InputIterator , typename _OutputIterator >
constexpr _OutputIterator unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
• template<typename _InputIterator , typename _OutputIterator , typename _BinaryPredicate >
constexpr _OutputIterator unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _←-
BinaryPredicate __binary_pred)
• ios_base & unitbuf (ios_base &__base)
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_map (_InputIterator, _InputIterator, _Allocator) -> unordered_map< __iter_key_t< _InputIterator >,
__iter_val_t< _InputIterator >, hash< __iter_key_t< _InputIterator > >, equal_to< __iter_key_t< _InputIterator
> >, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_map (_InputIterator, _InputIterator, typename unordered_map< int, int >::size_type, _Allocator) ->
unordered_map< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, hash< __iter_key_t< _Input←-
Iterator > >, equal_to< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_map (_InputIterator, _InputIterator, typename unordered_map< int, int >::size_type, _Hash, ←-
_Allocator) -> unordered_map< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, _Hash,
equal_to< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Hash = hash<__iter_key_t<_InputIterator>>, typename _Pred = equal_to<__iter_key_←-
t<_InputIterator>>, typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_map (_InputIterator, _InputIterator, typename unordered_map< int, int >::size_type={}, _Hash=_←-
Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_map< __iter_key_t< _InputIterator >, __iter_←-
val_t< _InputIterator >, _Hash, _Pred, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, _Allocator) -> unordered_map< _Key, _Tp, hash< _Key
>, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, typename unordered_map< int, int >::size_type, _←-
Allocator) -> unordered_map< _Key, _Tp, hash< _Key >, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>,
typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, typename unordered_map< int, int >::size_type, _Hash,
_Allocator) -> unordered_map< _Key, _Tp, _Hash, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash = hash<_Key>, typename _Pred = equal_to<_Key>, typename _Allocator
= allocator<pair<const _Key, _Tp>>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>,

Generated by Doxygen
562

typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, typename unordered_map< int, int >::size_type={},
_Hash=_Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_map< _Key, _Tp, _Hash, _Pred, _←-
Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_multimap (_InputIterator, _InputIterator, _Allocator) -> unordered_multimap< __iter_key_t< _←-
InputIterator >, __iter_val_t< _InputIterator >, hash< __iter_key_t< _InputIterator > >, equal_to< __iter_←-
key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_multimap (_InputIterator, _InputIterator, unordered_multimap< int, int >::size_type, _Allocator) ->
unordered_multimap< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, hash< __iter_key_t< _←-
InputIterator > >, equal_to< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_multimap (_InputIterator, _InputIterator, unordered_multimap< int, int >::size_type, _Hash, _←-
Allocator) -> unordered_multimap< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, _Hash,
equal_to< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Hash = hash<__iter_key_t<_InputIterator>>, typename _Pred = equal_to<__iter_key_←-
t<_InputIterator>>, typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_multimap (_InputIterator, _InputIterator, unordered_multimap< int, int >::size_type={}, _Hash=_←-
Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multimap< __iter_key_t< _InputIterator >, __←-
iter_val_t< _InputIterator >, _Hash, _Pred, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_multimap (initializer_list< pair< _Key, _Tp > >, _Allocator) -> unordered_multimap< _Key, _Tp,
hash< _Key >, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_multimap (initializer_list< pair< _Key, _Tp > >, unordered_multimap< int, int >::size_type, _←-
Allocator) -> unordered_multimap< _Key, _Tp, hash< _Key >, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>,
typename = _RequireAllocator<_Allocator>>
unordered_multimap (initializer_list< pair< _Key, _Tp > >, unordered_multimap< int, int >::size_type, _Hash,
_Allocator) -> unordered_multimap< _Key, _Tp, _Hash, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash = hash<_Key>, typename _Pred = equal_to<_Key>, typename _Allocator
= allocator<pair<const _Key, _Tp>>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>,
typename = _RequireAllocator<_Allocator>>
unordered_multimap (initializer_list< pair< _Key, _Tp > >, unordered_multimap< int, int >::size_type={}, ←-
_Hash=_Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multimap< _Key, _Tp, _Hash, _Pred,
_Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_multiset (_InputIterator, _InputIterator, unordered_multiset< int >::size_type, _Allocator) ->
unordered_multiset< typename iterator_traits< _InputIterator >::value_type, hash< typename iterator_traits<
_InputIterator >::value_type >, equal_to< typename iterator_traits< _InputIterator >::value_type >, _Allocator
>
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_multiset (_InputIterator, _InputIterator, unordered_multiset< int >::size_type, _Hash, _Allocator) -
> unordered_multiset< typename iterator_traits< _InputIterator >::value_type, _Hash, equal_to< typename
iterator_traits< _InputIterator >::value_type >, _Allocator >

Generated by Doxygen
4.10 std Namespace Reference 563

• template<typename _InputIterator , typename _Hash = hash<typename iterator_traits<_InputIterator>::value_type>, typename _Pred


= equal_to<typename iterator_traits<_InputIterator>::value_type>, typename _Allocator = allocator<typename iterator_traits<_Input←-
Iterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename
= _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_Allocator>>
unordered_multiset (_InputIterator, _InputIterator, unordered_multiset< int >::size_type={}, _Hash=_Hash(),
_Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multiset< typename iterator_traits< _InputIterator >←-
::value_type, _Hash, _Pred, _Allocator >
• template<typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_multiset (initializer_list< _Tp >, unordered_multiset< int >::size_type, _Allocator) -> unordered←-
_multiset< _Tp, hash< _Tp >, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = ←-
_RequireAllocator<_Allocator>>
unordered_multiset (initializer_list< _Tp >, unordered_multiset< int >::size_type, _Hash, _Allocator) ->
unordered_multiset< _Tp, _Hash, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash = hash<_Tp>, typename _Pred = equal_to<_Tp>, typename _Allocator = allocator<_Tp>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_multiset (initializer_list< _Tp >, unordered_multiset< int >::size_type={}, _Hash=_Hash(), _←-
Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multiset< _Tp, _Hash, _Pred, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_set (_InputIterator, _InputIterator, unordered_set< int >::size_type, _Allocator) -> unordered_←-
set< typename iterator_traits< _InputIterator >::value_type, hash< typename iterator_traits< _InputIterator >←-
::value_type >, equal_to< typename iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_set (_InputIterator, _InputIterator, unordered_set< int >::size_type, _Hash, _Allocator) ->
unordered_set< typename iterator_traits< _InputIterator >::value_type, _Hash, equal_to< typename
iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Hash = hash<typename iterator_traits<_InputIterator>::value_type>, typename _Pred
= equal_to<typename iterator_traits<_InputIterator>::value_type>, typename _Allocator = allocator<typename iterator_traits<_Input←-
Iterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename
= _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_Allocator>>
unordered_set (_InputIterator, _InputIterator, unordered_set< int >::size_type={}, _Hash=_Hash(), _Pred=_←-
Pred(), _Allocator=_Allocator()) -> unordered_set< typename iterator_traits< _InputIterator >::value_type, _←-
Hash, _Pred, _Allocator >
• template<typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_set (initializer_list< _Tp >, unordered_set< int >::size_type, _Allocator) -> unordered_set< _Tp,
hash< _Tp >, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = ←-
_RequireAllocator<_Allocator>>
unordered_set (initializer_list< _Tp >, unordered_set< int >::size_type, _Hash, _Allocator) -> unordered_set<
_Tp, _Hash, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash = hash<_Tp>, typename _Pred = equal_to<_Tp>, typename _Allocator = allocator<_Tp>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_set (initializer_list< _Tp >, unordered_set< int >::size_type={}, _Hash=_Hash(), _Pred=_Pred(),
_Allocator=_Allocator()) -> unordered_set< _Tp, _Hash, _Pred, _Allocator >
• template<typename _FIter , typename _Tp >
constexpr _FIter upper_bound (_FIter, _FIter, const _Tp &)
• template<typename _FIter , typename _Tp , typename _Compare >
constexpr _FIter upper_bound (_FIter, _FIter, const _Tp &, _Compare)
• template<typename _ForwardIterator , typename _Tp >
constexpr _ForwardIterator upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)

Generated by Doxygen
564

• template<typename _ForwardIterator , typename _Tp , typename _Compare >


constexpr _ForwardIterator upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val,
_Compare __comp)
• ios_base & uppercase (ios_base &__base)
• template<typename _Facet >
const _Facet & use_facet (const locale &__loc)
• template const codecvt< char, char, mbstate_t > & use_facet< codecvt< char, char, mbstate_t > > (const
locale &)
• template const codecvt< wchar_t, char, mbstate_t > & use_facet< codecvt< wchar_t, char, mbstate_t > >
(const locale &)
• template<_Std_pair _Tp, typename _Alloc >
constexpr auto uses_allocator_construction_args (const _Alloc &) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto uses_allocator_construction_args (const _Alloc &, _Up &&, _Vp &&) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto uses_allocator_construction_args (const _Alloc &, const pair< _Up, _Vp > &) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto uses_allocator_construction_args (const _Alloc &, pair< _Up, _Vp > &&) noexcept
• template<typename _Tp , typename _Alloc , typename... _Args>
requires (! _Std_pair<_Tp>)
constexpr auto uses_allocator_construction_args (const _Alloc &__a, _Args &&... __args) noexcept
• template<_Std_pair _Tp, typename _Alloc , typename _Tuple1 , typename _Tuple2 >
constexpr auto uses_allocator_construction_args (const _Alloc &__a, piecewise_construct_t, _Tuple1 &&__x,
_Tuple2 &&__y) noexcept
• template<typename _Tp , size_t _Nm>
valarray (const _Tp(&)[_Nm], size_t) -> valarray< _Tp >
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =
allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
vector (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> vector< _ValT, _Allocator >
• wchar_t ∗ wcschr (wchar_t ∗__p, wchar_t __c)
• wchar_t ∗ wcspbrk (wchar_t ∗__s1, const wchar_t ∗__s2)
• wchar_t ∗ wcsrchr (wchar_t ∗__p, wchar_t __c)
• wchar_t ∗ wcsstr (wchar_t ∗__s1, const wchar_t ∗__s2)
• template<typename _Tp >
weak_ptr (shared_ptr< _Tp >) -> weak_ptr< _Tp >
• wchar_t ∗ wmemchr (wchar_t ∗__p, wchar_t __c, size_t __n)
• template<typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & ws (basic_istream< _CharT, _Traits > &__is)

• template<size_t _Nb>
constexpr bitset< _Nb > operator& (const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
• template<size_t _Nb>
constexpr bitset< _Nb > operator| (const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
• template<size_t _Nb>
constexpr bitset< _Nb > operator∧ (const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept

• template<class _CharT , class _Traits , size_t _Nb>


std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb
> &__x)

Generated by Doxygen
4.10 std Namespace Reference 565

• template<class _CharT , class _Traits , size_t _Nb>


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
bitset< _Nb > &__x)

• template<typename _Tp >


constexpr complex< _Tp > operator+ (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator+ (const complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator+ (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr complex< _Tp > operator- (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator- (const complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator- (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr complex< _Tp > operator∗ (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator∗ (const complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator∗ (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr complex< _Tp > operator/ (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator/ (const complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp >
constexpr complex< _Tp > operator/ (const _Tp &__x, const complex< _Tp > &__y)

• template<typename _Tp >


constexpr bool operator== (const complex< _Tp > &__x, const complex< _Tp > &__y)
• template<typename _Tp >
constexpr bool operator== (const complex< _Tp > &__x, const _Tp &__y)

• template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__in, _CharT &__c)
• template<class _Traits >
basic_istream< char, _Traits > & operator>> (basic_istream< char, _Traits > &__in, unsigned char &__c)
• template<class _Traits >
basic_istream< char, _Traits > & operator>> (basic_istream< char, _Traits > &__in, signed char &__c)

Generated by Doxygen
566

• template<typename _CharT , typename _Traits , size_t _Num>


basic_istream< _CharT, _Traits > & operator>> (basic_istream< _CharT, _Traits > &__in, _CharT(&__s)[_←-
Num])
• template<class _Traits , size_t _Num>
basic_istream< char, _Traits > & operator>> (basic_istream< char, _Traits > &__in, unsigned char(&__s)[_←-
Num])
• template<class _Traits , size_t _Num>
basic_istream< char, _Traits > & operator>> (basic_istream< char, _Traits > &__in, signed char(&__s)[_Num])

• template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__out, _CharT __c)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__out, char __c)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &__out, char __c)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &__out, signed char __c)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &__out, unsigned char __c)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &, wchar_t)=delete
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &, char16_t)=delete
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &, char32_t)=delete
• template<typename _Traits >
basic_ostream< wchar_t, _Traits > & operator<< (basic_ostream< wchar_t, _Traits > &, char16_t)=delete
• template<typename _Traits >
basic_ostream< wchar_t, _Traits > & operator<< (basic_ostream< wchar_t, _Traits > &, char32_t)=delete

• template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__out, const _CharT
∗__s)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__out, const char ∗__s)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &__out, const char ∗__s)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &__out, const signed char ∗__s)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &__out, const unsigned char
∗__s)
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &, const wchar_t ∗)=delete
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &, const char16_t ∗)=delete
• template<typename _Traits >
basic_ostream< char, _Traits > & operator<< (basic_ostream< char, _Traits > &, const char32_t ∗)=delete

Generated by Doxygen
4.10 std Namespace Reference 567

• template<typename _Traits >


basic_ostream< wchar_t, _Traits > & operator<< (basic_ostream< wchar_t, _Traits > &, const char16_←-
t ∗)=delete
• template<typename _Traits >
basic_ostream< wchar_t, _Traits > & operator<< (basic_ostream< wchar_t, _Traits > &, const char32_←-
t ∗)=delete

Matching, Searching, and Replacing

• template<typename _Bi_iter , typename _Alloc , typename _Ch_type , typename _Rx_traits >


bool regex_match (_Bi_iter __s, _Bi_iter __e, match_results< _Bi_iter, _Alloc > &__m, const basic_regex<
_Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Bi_iter , typename _Ch_type , typename _Rx_traits >
bool regex_match (_Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _Rx_traits > &__re,
regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Ch_type , typename _Alloc , typename _Rx_traits >
bool regex_match (const _Ch_type ∗__s, match_results< const _Ch_type ∗, _Alloc > &__m, const
basic_regex< _Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool regex_match (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &__s, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &__m, const basic_regex< _Ch←-
_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool regex_match (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &&, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &, const basic_regex< _Ch_type,
_Rx_traits > &, regex_constants::match_flag_type=regex_constants::match_default)=delete
• template<typename _Ch_type , class _Rx_traits >
bool regex_match (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type
__f=regex_constants::match_default)
• template<typename _Ch_traits , typename _Str_allocator , typename _Ch_type , typename _Rx_traits >
bool regex_match (const basic_string< _Ch_type, _Ch_traits, _Str_allocator > &__s, const basic_regex<
_Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Bi_iter , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool regex_search (_Bi_iter __s, _Bi_iter __e, match_results< _Bi_iter, _Alloc > &__m, const basic_regex<
_Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Bi_iter , typename _Ch_type , typename _Rx_traits >
bool regex_search (_Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _Rx_traits > &__re,
regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Ch_type , class _Alloc , class _Rx_traits >
bool regex_search (const _Ch_type ∗__s, match_results< const _Ch_type ∗, _Alloc > &__m, const
basic_regex< _Ch_type, _Rx_traits > &__e, regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_type , typename _Rx_traits >
bool regex_search (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx_traits > &__e, regex_constants::match_flag_type
__f=regex_constants::match_default)
• template<typename _Ch_traits , typename _String_allocator , typename _Ch_type , typename _Rx_traits >
bool regex_search (const basic_string< _Ch_type, _Ch_traits, _String_allocator > &__s, const basic_regex<
_Ch_type, _Rx_traits > &__e, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool regex_search (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &__s, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &__m, const basic_regex< _Ch←-
_type, _Rx_traits > &__e, regex_constants::match_flag_type __f=regex_constants::match_default)
• template<typename _Ch_traits , typename _Ch_alloc , typename _Alloc , typename _Ch_type , typename _Rx_traits >
bool regex_search (const basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &&, match_results< typename
basic_string< _Ch_type, _Ch_traits, _Ch_alloc >::const_iterator, _Alloc > &, const basic_regex< _Ch_type,
_Rx_traits > &, regex_constants::match_flag_type=regex_constants::match_default)=delete

Generated by Doxygen
568

• template<typename _Out_iter , typename _Bi_iter , typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >
_Out_iter regex_replace (_Out_iter __out, _Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, ←-
_Rx_traits > &__e, const basic_string< _Ch_type, _St, _Sa > &__fmt, regex_constants::match_flag_type
__flags=regex_constants::match_default)
• template<typename _Out_iter , typename _Bi_iter , typename _Rx_traits , typename _Ch_type >
_Out_iter regex_replace (_Out_iter __out, _Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _←-
Rx_traits > &__e, const _Ch_type ∗__fmt, regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa , typename _Fst , typename _Fsa >
basic_string< _Ch_type, _St, _Sa > regex_replace (const basic_string< _Ch_type, _St, _Sa > &__←-
s, const basic_regex< _Ch_type, _Rx_traits > &__e, const basic_string< _Ch_type, _Fst, _Fsa > &__fmt,
regex_constants::match_flag_type __flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >
basic_string< _Ch_type, _St, _Sa > regex_replace (const basic_string< _Ch_type, _St, _Sa > &__s, const
basic_regex< _Ch_type, _Rx_traits > &__e, const _Ch_type ∗__fmt, regex_constants::match_flag_type __←-
flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type , typename _St , typename _Sa >
basic_string< _Ch_type > regex_replace (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx_←-
traits > &__e, const basic_string< _Ch_type, _St, _Sa > &__fmt, regex_constants::match_flag_type __←-
flags=regex_constants::match_default)
• template<typename _Rx_traits , typename _Ch_type >
basic_string< _Ch_type > regex_replace (const _Ch_type ∗__s, const basic_regex< _Ch_type, _Rx_traits >
&__e, const _Ch_type ∗__fmt, regex_constants::match_flag_type __flags=regex_constants::match_default)

• template<typename _Tp , _Lock_policy _Lp>


bool atomic_is_lock_free (const __shared_ptr< _Tp, _Lp > ∗)
• template<typename _Tp >
bool atomic_is_lock_free (const shared_ptr< _Tp > ∗__p)

• template<typename _Tp >


shared_ptr< _Tp > atomic_load_explicit (const shared_ptr< _Tp > ∗__p, memory_order)
• template<typename _Tp >
shared_ptr< _Tp > atomic_load (const shared_ptr< _Tp > ∗__p)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > atomic_load_explicit (const __shared_ptr< _Tp, _Lp > ∗__p, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > atomic_load (const __shared_ptr< _Tp, _Lp > ∗__p)

• template<typename _Tp >


void atomic_store_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r, memory_order)
• template<typename _Tp >
void atomic_store (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r)
• template<typename _Tp , _Lock_policy _Lp>
void atomic_store_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > __r, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
void atomic_store (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > __r)

• template<typename _Tp >


shared_ptr< _Tp > atomic_exchange_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __←-
r, memory_order)

Generated by Doxygen
4.10 std Namespace Reference 569

• template<typename _Tp >


shared_ptr< _Tp > atomic_exchange (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > atomic_exchange_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp,
_Lp > __r, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
__shared_ptr< _Tp, _Lp > atomic_exchange (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > __r)

• template<typename _Tp >


bool atomic_compare_exchange_strong_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__←-
v, shared_ptr< _Tp > __w, memory_order, memory_order)
• template<typename _Tp >
bool atomic_compare_exchange_strong (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__v, shared_ptr< _Tp
> __w)
• template<typename _Tp >
bool atomic_compare_exchange_weak_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__←-
v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
• template<typename _Tp >
bool atomic_compare_exchange_weak (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__v, shared_ptr< _Tp
> __w)
• template<typename _Tp , _Lock_policy _Lp>
bool atomic_compare_exchange_strong_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp >
∗__v, __shared_ptr< _Tp, _Lp > __w, memory_order, memory_order)
• template<typename _Tp , _Lock_policy _Lp>
bool atomic_compare_exchange_strong (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > ∗__v,
__shared_ptr< _Tp, _Lp > __w)
• template<typename _Tp , _Lock_policy _Lp>
bool atomic_compare_exchange_weak_explicit (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp >
∗__v, __shared_ptr< _Tp, _Lp > __w, memory_order __success, memory_order __failure)
• template<typename _Tp , _Lock_policy _Lp>
bool atomic_compare_exchange_weak (__shared_ptr< _Tp, _Lp > ∗__p, __shared_ptr< _Tp, _Lp > ∗__v, _←-
_shared_ptr< _Tp, _Lp > __w)

• template<size_t _Int, class _Tp1 , class _Tp2 >


constexpr tuple_element< _Int, pair< _Tp1, _Tp2 > >::type & get (pair< _Tp1, _Tp2 > &__in) noexcept
• template<size_t _Int, class _Tp1 , class _Tp2 >
constexpr tuple_element< _Int, pair< _Tp1, _Tp2 > >::type && get (pair< _Tp1, _Tp2 > &&__in) noexcept
• template<size_t _Int, class _Tp1 , class _Tp2 >
constexpr const tuple_element< _Int, pair< _Tp1, _Tp2 > >::type & get (const pair< _Tp1, _Tp2 > &__in)
noexcept
• template<size_t _Int, class _Tp1 , class _Tp2 >
constexpr const tuple_element< _Int, pair< _Tp1, _Tp2 > >::type && get (const pair< _Tp1, _Tp2 > &&__in)
noexcept
• template<typename _Tp , typename _Up >
constexpr _Tp & get (pair< _Tp, _Up > &__p) noexcept
• template<typename _Tp , typename _Up >
constexpr const _Tp & get (const pair< _Tp, _Up > &__p) noexcept
• template<typename _Tp , typename _Up >
constexpr _Tp && get (pair< _Tp, _Up > &&__p) noexcept

Generated by Doxygen
570

• template<typename _Tp , typename _Up >


constexpr const _Tp && get (const pair< _Tp, _Up > &&__p) noexcept
• template<typename _Tp , typename _Up >
constexpr _Tp & get (pair< _Up, _Tp > &__p) noexcept
• template<typename _Tp , typename _Up >
constexpr const _Tp & get (const pair< _Up, _Tp > &__p) noexcept
• template<typename _Tp , typename _Up >
constexpr _Tp && get (pair< _Up, _Tp > &&__p) noexcept
• template<typename _Tp , typename _Up >
constexpr const _Tp && get (const pair< _Up, _Tp > &&__p) noexcept

Variables

• template<typename _ValT , typename _Tp >


constexpr bool __can_use_memchr_for_find
• template<typename _Tp >
constexpr auto __denorm_min_v
• template<typename _Tp >
constexpr auto __digits10_v
• template<typename _Tp >
constexpr auto __digits_v
• template<typename _Tp >
constexpr auto __epsilon_v
• template<typename _Tp >
constexpr auto __finite_max_v
• template<typename _Tp >
constexpr auto __finite_min_v
• template<template< typename > class _Trait, typename _Tp >
constexpr bool __has_iec559_behavior_v
• template<typename _Tp >
constexpr bool __has_iec559_storage_format_v
• template<typename _Tp >
constexpr auto __infinity_v
• static ios_base::Init __ioinit
• template<typename _Tp , typename = void>
constexpr bool __is_hash_enabled_for
• template<typename _Tp >
constexpr bool __is_hash_enabled_for< _Tp, __void_t< decltype(hash< _Tp >()(declval< _Tp >()))>
• template<typename >
constexpr bool __is_in_place_index_v
• template<size_t _Nm>
constexpr bool __is_in_place_index_v< in_place_index_t< _Nm > >
• template<typename >
constexpr bool __is_in_place_type_v
• template<typename _Tp >
constexpr bool __is_in_place_type_v< in_place_type_t< _Tp > >
• template<typename _Tp , typename... _Args>
constexpr bool __is_nothrow_new_constructible
• template<typename _Tp >
constexpr bool __is_pair
• template<typename _Tp , typename _Up >
constexpr bool __is_pair< pair< _Tp, _Up > >

Generated by Doxygen
4.10 std Namespace Reference 571

• template<typename _Tp >


constexpr auto __max_digits10_v
• template<typename _Tp >
constexpr auto __max_exponent10_v
• template<typename _Tp >
constexpr auto __max_exponent_v
• template<typename _Tp >
constexpr auto __min_exponent10_v
• template<typename _Tp >
constexpr auto __min_exponent_v
• template<typename _Tp >
constexpr auto __norm_min_v
• template<typename _Tp >
constexpr bool __platform_wait_uses_type
• template<typename _Tp >
constexpr auto __quiet_NaN_v
• template<typename _Tp >
constexpr auto __radix_v
• template<typename _Tp >
constexpr auto __reciprocal_overflow_threshold_v
• template<typename _Tp >
constexpr auto __round_error_v
• template<typename _Tp >
constexpr auto __signaling_NaN_v
• template<template< typename > class _Trait, typename _Tp >
constexpr bool __value_exists_v
• constexpr adopt_lock_t adopt_lock
• constexpr __compare::_Partial_fallback compare_partial_order_fallback
• constexpr __compare::_Strong_fallback compare_strong_order_fallback
• constexpr __compare::_Weak_fallback compare_weak_order_fallback
• constexpr default_sentinel_t default_sentinel
• constexpr defer_lock_t defer_lock
• constexpr destroying_delete_t destroying_delete
• template<typename _Iterator1 , typename _Iterator2 >
constexpr bool disable_sized_sentinel_for< move_iterator< _Iterator1 >, move_iterator< _Iterator2 > >
• template<typename _Iterator1 , typename _Iterator2 >
constexpr bool disable_sized_sentinel_for< reverse_iterator< _Iterator1 >, reverse_iterator< _Iterator2 >
>
• constexpr _Swallow_assign ignore
• constexpr in_place_t in_place
• template<size_t _Idx>
constexpr in_place_index_t< _Idx > in_place_index
• template<typename _Tp >
constexpr in_place_type_t< _Tp > in_place_type
• template<typename _Tp >
constexpr bool is_bind_expression_v
• template<typename _Tp >
constexpr bool is_error_code_enum_v
• template<typename _Tp >
constexpr bool is_error_condition_enum_v
• template<typename _Tp >
constexpr int is_placeholder_v

Generated by Doxygen
572

• constexpr memory_order memory_order_acq_rel


• constexpr memory_order memory_order_acquire
• constexpr memory_order memory_order_consume
• constexpr memory_order memory_order_relaxed
• constexpr memory_order memory_order_release
• constexpr memory_order memory_order_seq_cst
• constexpr nostopstate_t nostopstate
• const nothrow_t nothrow
• constexpr __compare::_Partial_order partial_order
• constexpr piecewise_construct_t piecewise_construct
• template<typename _R1 , typename _R2 >
constexpr bool ratio_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_greater_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_greater_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_less_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_less_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_not_equal_v
• constexpr __compare::_Strong_order strong_order
• constexpr try_to_lock_t try_to_lock
• template<typename _Tp >
constexpr size_t tuple_size_v
• template<typename _Tp , size_t _Nm>
constexpr size_t tuple_size_v< array< _Tp, _Nm > >
• template<typename _Tp , size_t _Nm>
constexpr size_t tuple_size_v< const array< _Tp, _Nm > >
• template<typename _Tp1 , typename _Tp2 >
constexpr size_t tuple_size_v< const pair< _Tp1, _Tp2 > >
• template<typename... _Types>
constexpr size_t tuple_size_v< const tuple< _Types... > >
• template<typename _Tp1 , typename _Tp2 >
constexpr size_t tuple_size_v< pair< _Tp1, _Tp2 > >
• template<typename... _Types>
constexpr size_t tuple_size_v< tuple< _Types... > >
• constexpr __compare::_Weak_order weak_order

Standard Stream Objects


The <iostream> header declares the eight standard stream objects. For other declarations, see https←-
://gcc.gnu.org/onlinedocs/libstdc++/manual/io.html and the I/O forward declarations
They are required by default to cooperate with the global C library's FILE streams, and to be available during
program startup and termination. For more information, see the section of the manual linked to above.

• istream cin
• ostream cout
• ostream cerr
• ostream clog
• wistream wcin
• wostream wcout
• wostream wcerr

Generated by Doxygen
4.10 std Namespace Reference 573

• wostream wclog

• template<typename... _Tp>
using common_reference_t
• template<typename _Tp , typename _Up >
constexpr bool is_layout_compatible_v
• template<typename _Base , typename _Derived >
constexpr bool is_pointer_interconvertible_base_of_v
• template<typename _S1 , typename _S2 , typename _M1 , typename _M2 >
constexpr bool is_corresponding_member (_M1 _S1::∗__m1, _M2 _S2::∗__m2) noexcept
• template<typename _Tp , typename _Mem >
constexpr bool is_pointer_interconvertible_with_class (_Mem _Tp::∗__mp) noexcept

4.10.1 Detailed Description

ISO C++ entities toplevel namespace is std.

4.10.2 Typedef Documentation

__ptr_rebind

template<typename _Ptr , typename _Tp >


using std::__ptr_rebind
Convenience alias for rebinding pointers.

__umap_traits

template<bool _Cache>
using std::__umap_traits
Base types for unordered_map.

__ummap_traits

template<bool _Cache>
using std::__ummap_traits
Base types for unordered_multimap.

__umset_traits

template<bool _Cache>
using std::__umset_traits
Base types for unordered_multiset.

__uset_traits

template<bool _Cache>
using std::__uset_traits
Base types for unordered_set.

compare_three_way_result_t

template<typename _Tp , typename _Up = _Tp>


using std::compare_three_way_result_t
[cmp.result], result of three-way comparison

Generated by Doxygen
574

index_sequence

template<size_t... _Idx>
using std::index_sequence
Alias template index_sequence.

index_sequence_for

template<typename... _Types>
using std::index_sequence_for
Alias template index_sequence_for.

make_index_sequence

template<size_t _Num>
using std::make_index_sequence
Alias template make_index_sequence.

make_integer_sequence

template<typename _Tp , _Tp _Num>


using std::make_integer_sequence
Alias template make_integer_sequence.

new_handler

typedef void(∗ std::new_handler) ()


If you write your own error handler to be called by new, it must be of this type.

streamoff

typedef long long std::streamoff


Type used by fpos, char_traits<char>, and char_traits<wchar_t>.
In clauses 21.1.3.1 and 27.4.1 streamoff is described as an implementation defined type. Note: In versions of GCC up
to and including GCC 3.3, streamoff was typedef long.

streampos

typedef fpos<mbstate_t> std::streampos


File position for char streams.

streamsize

typedef ptrdiff_t std::streamsize


Integral type for I/O operation counts and buffer sizes.

u16streampos

typedef fpos<mbstate_t> std::u16streampos


File position for char16_t streams.

u32streampos

typedef fpos<mbstate_t> std::u32streampos


File position for char32_t streams.

Generated by Doxygen
4.10 std Namespace Reference 575

wstreampos

typedef fpos<mbstate_t> std::wstreampos


File position for wchar_t streams.

4.10.3 Enumeration Type Documentation

chars_format

enum class std::chars_format [strong]


floating-point format for primitive numerical conversion

float_denorm_style

enum std::float_denorm_style
Describes the denormalization for floating-point types.
These values represent the presence or absence of a variable number of exponent bits. This type is used in the std←-
::numeric_limits class.

Enumerator
denorm_indeterminate Indeterminate at compile time whether denormalized values are allowed.
denorm_absent The type does not allow denormalized values.
denorm_present The type allows denormalized values.

float_round_style

enum std::float_round_style
Describes the rounding style for floating-point types.
This is used in the std::numeric_limits class.

Enumerator
round_indeterminate Intermediate.
round_toward_zero To zero.
round_to_nearest To the nearest representable value.
round_toward_infinity To infinity.
round_toward_neg_infinity To negative infinity.

io_errc

enum class std::io_errc [strong]


I/O error code.

4.10.4 Function Documentation

__find_if_not()

template<typename _InputIterator , typename _Predicate >


_InputIterator std::__find_if_not (
_InputIterator __first,
_InputIterator __last,
_Predicate __pred) [inline], [constexpr]

Generated by Doxygen
576

Provided for stable_partition to use.


Referenced by find_if_not().

__find_if_not_n()

template<typename _InputIterator , typename _Predicate , typename _Distance >


_InputIterator std::__find_if_not_n (
_InputIterator __first,
_Distance & __len,
_Predicate __pred) [constexpr]
Like find_if_not(), but uses and updates a count of the remaining range length instead of comparing against an end
iterator.
Referenced by __stable_partition_adaptive().

__gcd()

template<typename _EuclideanRingElement >


_EuclideanRingElement std::__gcd (
_EuclideanRingElement __m,
_EuclideanRingElement __n) [constexpr]
This is a helper function for the rotate algorithm specialized on RAIs. It returns the greatest common divisor of two
integer values.

__gen_two_uniform_ints()

template<typename _IntType , typename _UniformRandomBitGenerator >


pair< _IntType, _IntType > std::__gen_two_uniform_ints (
_IntType __b0,
_IntType __b1,
_UniformRandomBitGenerator && __g)
Generate two uniformly distributed integers using a single distribution invocation.

Parameters

__b0 The upper bound for the first integer.


__b1 The upper bound for the second integer.
__g A UniformRandomBitGenerator.

Returns

A pair (i, j) with i and j uniformly distributed over [0, __b0) and [0, __b1), respectively.

Requires: __b0 ∗ __b1 <= __g.max() - __g.min().


Using uniform_int_distribution with a range that is very small relative to the range of the generator ends up wasting po-
tentially expensively generated randomness, since uniform_int_distribution does not store leftover randomness between
invocations.
If we know we want two integers in ranges that are sufficiently small, we can compose the ranges, use a single distribu-
tion invocation, and significantly reduce the waste.
References make_pair().
Referenced by __sample(), and shuffle().

__inplace_stable_sort()

template<typename _RandomAccessIterator , typename _Compare >


void std::__inplace_stable_sort (

Generated by Doxygen
4.10 std Namespace Reference 577

_RandomAccessIterator __first,
_RandomAccessIterator __last,
_Compare __comp)
This is a helper function for the stable sorting routines.
References __inplace_stable_sort(), and __merge_without_buffer().
Referenced by __inplace_stable_sort().

__lg()

template<typename _Tp >


_Tp std::__lg (
_Tp __n) [inline], [constexpr]
This is a helper function for the sort routines and for random.tcc.
Referenced by nth_element(), nth_element(), std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::operator()(),
and std::linear_congruential_engine< _UIntType, __a, __c, __m >::seed().

__merge_adaptive()

template<typename _BidirectionalIterator , typename _Distance , typename _Pointer , typename _←-


Compare >
void std::__merge_adaptive (
_BidirectionalIterator __first,
_BidirectionalIterator __middle,
_BidirectionalIterator __last,
_Distance __len1,
_Distance __len2,
_Pointer __buffer,
_Compare __comp)
This is a helper function for the merge routines.
References __move_merge_adaptive(), and __move_merge_adaptive_backward().

__merge_without_buffer()

template<typename _BidirectionalIterator , typename _Distance , typename _Compare >


void std::__merge_without_buffer (
_BidirectionalIterator __first,
_BidirectionalIterator __middle,
_BidirectionalIterator __last,
_Distance __len1,
_Distance __len2,
_Compare __comp)
This is a helper function for the merge routines.
References __merge_without_buffer(), advance(), and distance().
Referenced by __inplace_stable_sort(), and __merge_without_buffer().

__move_median_to_first()

template<typename _Iterator , typename _Compare >


void std::__move_median_to_first (
_Iterator __result,
_Iterator __a,
_Iterator __b,
_Iterator __c,
_Compare __comp) [constexpr]
Swaps the median value of ∗__a, ∗__b and ∗__c under __comp to ∗__result.

Generated by Doxygen
578

__move_merge()

template<typename _InputIterator , typename _OutputIterator , typename _Compare >


_OutputIterator std::__move_merge (
_InputIterator __first1,
_InputIterator __last1,
_InputIterator __first2,
_InputIterator __last2,
_OutputIterator __result,
_Compare __comp)
This is a helper function for the __merge_sort_loop routines.

__move_merge_adaptive()

template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename


_Compare >
void std::__move_merge_adaptive (
_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_OutputIterator __result,
_Compare __comp)
This is a helper function for the __merge_adaptive routines.
Referenced by __merge_adaptive().

__move_merge_adaptive_backward()

template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _Bidirectional←-


Iterator3 , typename _Compare >
void std::__move_merge_adaptive_backward (
_BidirectionalIterator1 __first1,
_BidirectionalIterator1 __last1,
_BidirectionalIterator2 __first2,
_BidirectionalIterator2 __last2,
_BidirectionalIterator3 __result,
_Compare __comp)
This is a helper function for the __merge_adaptive routines.
Referenced by __merge_adaptive().

__partition() [1/2]

template<typename _BidirectionalIterator , typename _Predicate >


_BidirectionalIterator std::__partition (
_BidirectionalIterator __first,
_BidirectionalIterator __last,
_Predicate __pred,
bidirectional_iterator_tag ) [constexpr]
This is a helper function...

__partition() [2/2]

template<typename _ForwardIterator , typename _Predicate >


_ForwardIterator std::__partition (
_ForwardIterator __first,

Generated by Doxygen
4.10 std Namespace Reference 579

_ForwardIterator __last,
_Predicate __pred,
forward_iterator_tag ) [constexpr]
This is a helper function...
Referenced by partition().

__reverse() [1/2]

template<typename _BidirectionalIterator >


void std::__reverse (
_BidirectionalIterator __first,
_BidirectionalIterator __last,
bidirectional_iterator_tag ) [constexpr]
This is an uglified reverse(_BidirectionalIterator, _BidirectionalIterator) overloaded for bidirectional iterators.
Referenced by __rotate(), and reverse().

__reverse() [2/2]

template<typename _RandomAccessIterator >


void std::__reverse (
_RandomAccessIterator __first,
_RandomAccessIterator __last,
random_access_iterator_tag ) [constexpr]
This is an uglified reverse(_BidirectionalIterator, _BidirectionalIterator) overloaded for random access iterators.

__rotate() [1/3]

template<typename _BidirectionalIterator >


_BidirectionalIterator std::_V2::__rotate (
_BidirectionalIterator __first,
_BidirectionalIterator __middle,
_BidirectionalIterator __last,
bidirectional_iterator_tag ) [constexpr]
This is a helper function for the rotate algorithm.
References __reverse(), and __rotate().

__rotate() [2/3]

template<typename _ForwardIterator >


_ForwardIterator std::_V2::__rotate (
_ForwardIterator __first,
_ForwardIterator __middle,
_ForwardIterator __last,
forward_iterator_tag ) [constexpr]
This is a helper function for the rotate algorithm.
References __rotate().
Referenced by __rotate(), __rotate(), __rotate(), and rotate().

__rotate() [3/3]

template<typename _RandomAccessIterator >


_RandomAccessIterator std::_V2::__rotate (
_RandomAccessIterator __first,
_RandomAccessIterator __middle,

Generated by Doxygen
580

_RandomAccessIterator __last,
random_access_iterator_tag ) [constexpr]
This is a helper function for the rotate algorithm.
References __rotate().

__rotate_adaptive()

template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _Distance


>
_BidirectionalIterator1 std::__rotate_adaptive (
_BidirectionalIterator1 __first,
_BidirectionalIterator1 __middle,
_BidirectionalIterator1 __last,
_Distance __len1,
_Distance __len2,
_BidirectionalIterator2 __buffer,
_Distance __buffer_size)
This is a helper function for the merge routines.

__sample() [1/2]

template<typename _ForwardIterator , typename _OutputIterator , typename _Cat , typename _Size ,


typename _UniformRandomBitGenerator >
_OutputIterator std::__sample (
_ForwardIterator __first,
_ForwardIterator __last,
forward_iterator_tag ,
_OutputIterator __out,
_Cat ,
_Size __n,
_UniformRandomBitGenerator && __g)
Selection sampling algorithm.
References __gen_two_uniform_ints(), distance(), std::pair< _T1, _T2 >::first, min(), and std::pair< _T1, _T2 >::second.

__sample() [2/2]

template<typename _InputIterator , typename _RandomAccessIterator , typename _Size , typename _←-


UniformRandomBitGenerator >
_RandomAccessIterator std::__sample (
_InputIterator __first,
_InputIterator __last,
input_iterator_tag ,
_RandomAccessIterator __out,
random_access_iterator_tag ,
_Size __n,
_UniformRandomBitGenerator && __g)
Reservoir sampling algorithm.

__search_n_aux() [1/2]

template<typename _ForwardIterator , typename _Integer , typename _UnaryPredicate >


_ForwardIterator std::__search_n_aux (
_ForwardIterator __first,
_ForwardIterator __last,
_Integer __count,

Generated by Doxygen
4.10 std Namespace Reference 581

_UnaryPredicate __unary_pred,
std::forward_iterator_tag ) [constexpr]
This is an helper function for search_n overloaded for forward iterators.

__search_n_aux() [2/2]

template<typename _RandomAccessIter , typename _Integer , typename _UnaryPredicate >


_RandomAccessIter std::__search_n_aux (
_RandomAccessIter __first,
_RandomAccessIter __last,
_Integer __count,
_UnaryPredicate __unary_pred,
std::random_access_iterator_tag ) [constexpr]
This is an helper function for search_n overloaded for random access iterators.

__stable_partition_adaptive()

template<typename _ForwardIterator , typename _Pointer , typename _Predicate , typename _Distance


>
_ForwardIterator std::__stable_partition_adaptive (
_ForwardIterator __first,
_ForwardIterator __last,
_Predicate __pred,
_Distance __len,
_Pointer __buffer,
_Distance __buffer_size)
This is a helper function... Requires __first != __last and !__pred(__first) and __len == distance(__first, __last).
!__pred(__first) allows us to guarantee that we don't move-assign an element onto itself.
References __find_if_not_n(), __stable_partition_adaptive(), and advance().
Referenced by __stable_partition_adaptive().

__unique_copy() [1/3]

template<typename _ForwardIterator , typename _OutputIterator , typename _BinaryPredicate >


_OutputIterator std::__unique_copy (
_ForwardIterator __first,
_ForwardIterator __last,
_OutputIterator __result,
_BinaryPredicate __binary_pred,
forward_iterator_tag ,
output_iterator_tag ) [constexpr]
This is an uglified unique_copy(_InputIterator, _InputIterator, _OutputIterator, _BinaryPredicate) overloaded for forward
iterators and output iterator as result.
Referenced by unique_copy(), and unique_copy().

__unique_copy() [2/3]

template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate >


_ForwardIterator std::__unique_copy (
_InputIterator __first,
_InputIterator __last,
_ForwardIterator __result,
_BinaryPredicate __binary_pred,
input_iterator_tag ,
forward_iterator_tag ) [constexpr]

Generated by Doxygen
582

This is an uglified unique_copy(_InputIterator, _InputIterator, _OutputIterator, _BinaryPredicate) overloaded for input


iterators and forward iterator as result.

__unique_copy() [3/3]

template<typename _InputIterator , typename _OutputIterator , typename _BinaryPredicate >


_OutputIterator std::__unique_copy (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
_BinaryPredicate __binary_pred,
input_iterator_tag ,
output_iterator_tag ) [constexpr]
This is an uglified unique_copy(_InputIterator, _InputIterator, _OutputIterator, _BinaryPredicate) overloaded for input
iterators and output iterator as result.

_Construct()

template<typename _Tp , typename... _Args>


void std::_Construct (
_Tp ∗ __p,
_Args &&... __args) [inline], [constexpr]
Constructs an object in existing memory by invoking an allocated object's constructor with an initializer.
References forward().
Referenced by std::allocator_traits< typename >::construct(), std::allocator_traits< allocator< _Tp > >::construct(),
and std::allocator_traits< allocator< void > >::construct().

_Destroy() [1/2]

template<typename _ForwardIterator >


void std::_Destroy (
_ForwardIterator __first,
_ForwardIterator __last) [inline], [constexpr]
Destroy a range of objects. If the value_type of the object has a trivial destructor, the compiler should optimize all of this
away, otherwise the objects' destructors must be invoked.
References __addressof(), and _Destroy().
Referenced by std::vector< _Tp, _Alloc >::∼vector(), _Destroy(), _Destroy_n(), std::deque< _Tp, _Alloc >::_M_fill_initialize(),
std::deque< _Tp, _Alloc >::_M_range_initialize(), std::allocator_traits< typename >::destroy(), std::allocator_traits< allocator< void > >
and std::vector< _Tp, _Alloc >::reserve().

_Destroy() [2/2]

template<typename _Tp >


void std::_Destroy (
_Tp ∗ __pointer) [inline], [constexpr]
Destroy the object pointed to by a pointer type.

_Destroy_n()

template<typename _ForwardIterator , typename _Size >


_ForwardIterator std::_Destroy_n (
_ForwardIterator __first,
_Size __count) [inline], [constexpr]
Destroy a range of objects. If the value_type of the object has a trivial destructor, the compiler should optimize all of this
away, otherwise the objects' destructors must be invoked.

Generated by Doxygen
4.10 std Namespace Reference 583

References __addressof(), _Destroy(), and advance().

acosh()

float std::acosh (
float __x) [constexpr]
Additional overloads.

advance()

template<typename _InputIterator , typename _Distance >


void std::advance (
_InputIterator & __i,
_Distance __n) [inline], [constexpr]
A generalization of pointer arithmetic.

Parameters
_←- An input iterator.
_i
_←- The delta by which to change __i.
_n

Returns

Nothing.

This increments i by n. For bidirectional and random access iterators, __n may be negative, in which case __i is
decremented.
For random access iterators, this uses their + and - operations and are constant time. For other iterator classes they
are linear time.
References __iterator_category().
Referenced by __merge_without_buffer(), __stable_partition_adaptive(), _Destroy_n(), std::deque< _Tp, _Alloc >::_M_range_initialize(),
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::get_child(),
__gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::get_child(),
and partition_point().

arg()

template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type std::arg (
_Tp __x) [inline]
Additional overloads [8.1.9].

begin() [1/4]

template<typename _Container >


auto std::begin (
_Container & __cont) -> decltype(__cont.begin()) [inline], [constexpr], [noexcept]
Return an iterator pointing to the first element of the container.

Parameters

__cont Container.

Generated by Doxygen
584

begin() [2/4]

template<typename _Tp , size_t _Nm>


_Tp ∗ std::begin (
_Tp(&) __arr[_Nm]) [inline], [constexpr], [noexcept]
Return an iterator pointing to the first element of the array.

Parameters
__arr Array.

begin() [3/4]

template<typename _Container >


auto std::begin (
const _Container & __cont) -> decltype(__cont.begin()) [inline], [constexpr], [noexcept]
Return an iterator pointing to the first element of the const container.

Parameters

__cont Container.

boolalpha()

ios_base & std::boolalpha (


ios_base & __base) [inline]
Calls base.setf(ios_base::boolalpha).
References std::ios_base::boolalpha.

cbegin()

template<typename _Container >


auto std::cbegin (
const _Container & __cont) -> decltype(std::begin(__cont)) [constexpr], [noexcept]
Return an iterator pointing to the first element of the const container.

Parameters

__cont Container.

References begin().
Referenced by std::vector< _Tp, _Alloc >::insert().

cend()

template<typename _Container >


auto std::cend (
const _Container & __cont) -> decltype(std::end(__cont)) [constexpr], [noexcept]
Return an iterator pointing to one past the last element of the const container.

Parameters

__cont Container.

References end().

Generated by Doxygen
4.10 std Namespace Reference 585

const_pointer_cast()

template<typename _Tp , typename _Tp1 , _Lock_policy _Lp>


__shared_ptr< _Tp, _Lp > std::const_pointer_cast (
const __shared_ptr< _Tp1, _Lp > & __r) [inline], [noexcept]
const_pointer_cast

crbegin()

template<typename _Container >


auto std::crbegin (
const _Container & __cont) -> decltype(std::rbegin(__cont)) [inline], [constexpr],
[noexcept]
Return a reverse iterator pointing to the last element of the const container.

Parameters

__cont Container.

References rbegin().

crend()

template<typename _Container >


auto std::crend (
const _Container & __cont) -> decltype(std::rend(__cont)) [inline], [constexpr],
[noexcept]
Return a reverse iterator pointing one past the first element of the const container.

Parameters

__cont Container.

References rend().

data() [1/4]

template<typename _Container >


auto std::data (
_Container & __cont) -> decltype(__cont.data()) [nodiscard], [constexpr], [noexcept]
Return the data pointer of a container.

Parameters

__cont Container.

Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find().

data() [2/4]

template<typename _Tp , size_t _Nm>


_Tp ∗ std::data (
_Tp(&) __array[_Nm]) [nodiscard], [constexpr], [noexcept]
Return the data pointer of an array.

Generated by Doxygen
586

Parameters
__array Array.

data() [3/4]

template<typename _Container >


auto std::data (
const _Container & __cont) -> decltype(__cont.data()) [nodiscard], [constexpr],
[noexcept]
Return the data pointer of a const container.

Parameters

__cont Container.

data() [4/4]

template<typename _Tp >


const _Tp ∗ std::data (
initializer_list< _Tp > __il) [nodiscard], [constexpr], [noexcept]
Return the data pointer of an initializer list.

Parameters
_←- Initializer list.
_il

dec()

ios_base & std::dec (


ios_base & __base) [inline]
Calls base.setf(ios_base::dec, ios_base::basefield).
References std::ios_base::basefield, and std::ios_base::dec.

defaultfloat()

ios_base & std::defaultfloat (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::floatfield)
References std::ios_base::floatfield.

distance()

template<typename _InputIterator >


iterator_traits< _InputIterator >::difference_type std::distance (
_InputIterator __first,
_InputIterator __last) [inline], [nodiscard], [constexpr]
A generalization of pointer arithmetic.

Generated by Doxygen
4.10 std Namespace Reference 587

Parameters

__first An input iterator.


__last An input iterator.

Returns

The distance between them.

Returns n such that __first + n == __last. This requires that __last must be reachable from __first. Note that n
may be negative.
For random access iterators, this uses their + and - operations and are constant time. For other iterator classes they
are linear time.
References __iterator_category().
Referenced by __merge_without_buffer(), __sample(), std::deque< _Tp, _Alloc >::_M_range_initialize(), is_heap(),
is_heap_until(), is_heap_until(), std::sub_match< _BiIter >::length(), __gnu_parallel::multiseq_partition(), __gnu_parallel::multiseq_selec
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::num_children(),
partition_point(), std::match_results< _Bi_iter, _Alloc >::position(), std::list< _Tp, _Alloc >::size(), and std::list< _Tp, _Alloc >::splice().

dynamic_pointer_cast()

template<typename _Tp , typename _Tp1 , _Lock_policy _Lp>


__shared_ptr< _Tp, _Lp > std::dynamic_pointer_cast (
const __shared_ptr< _Tp1, _Lp > & __r) [inline], [noexcept]
dynamic_pointer_cast

empty() [1/3]

template<typename _Container >


auto std::empty (
const _Container & __cont) -> decltype(__cont.empty()) [nodiscard], [constexpr],
[noexcept]
Return whether a container is empty.

Parameters

__cont Container.

Referenced by std::forward_list< _Tp, _Alloc >::sort(), std::list< _Tp, _Alloc >::sort(), and std::list< _Tp, _Alloc >::sort().

empty() [2/3]

template<typename _Tp , size_t _Nm>


bool std::empty (
const _Tp(&)[_Nm]) [nodiscard], [constexpr], [noexcept]
Return whether an array is empty (always false).

empty() [3/3]

template<typename _Tp >


bool std::empty (
initializer_list< _Tp > __il) [nodiscard], [constexpr], [noexcept]
Return whether an initializer_list is empty.

Generated by Doxygen
588

Parameters
_←- Initializer list.
_il

end() [1/4]

template<typename _Container >


auto std::end (
_Container & __cont) -> decltype(__cont.end()) [inline], [constexpr], [noexcept]
Return an iterator pointing to one past the last element of the container.

Parameters

__cont Container.

end() [2/4]

template<typename _Tp , size_t _Nm>


_Tp ∗ std::end (
_Tp(&) __arr[_Nm]) [inline], [constexpr], [noexcept]
Return an iterator pointing to one past the last element of the array.

Parameters
__arr Array.

end() [3/4]

template<typename _Container >


auto std::end (
const _Container & __cont) -> decltype(__cont.end()) [inline], [constexpr], [noexcept]
Return an iterator pointing to one past the last element of the const container.

Parameters

__cont Container.

endl()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::endl (
basic_ostream< _CharT, _Traits > & __os) [inline]
Write a newline and flush the stream.
This manipulator is often mistakenly used when a simple newline is desired, leading to poor buffering perfor-
mance. See https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html#io.←-
streambuf.buffering for more on this subject.

Generated by Doxygen
4.10 std Namespace Reference 589

ends()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::ends (
basic_ostream< _CharT, _Traits > & __os) [inline]
Write a null character into the output sequence.
Null character is CharT() by definition. For CharT of char, this correctly writes the ASCII NUL character string
terminator.

fabs()

template<typename _Tp >


_Tp std::fabs (
const std::complex< _Tp > & __z) [inline]
fabs(__z) [8.1.8].

fixed()

ios_base & std::fixed (


ios_base & __base) [inline]
Calls base.setf(ios_base::fixed, ios_base::floatfield).
References fixed(), std::ios_base::fixed, and std::ios_base::floatfield.
Referenced by fixed().

flush()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::flush (
basic_ostream< _CharT, _Traits > & __os) [inline]
Flushes the output stream.
This manipulator simply calls the stream's flush() member function.

from_chars()

template<typename _Tp , enable_if_t< __or_< __is_standard_integer< _Tp >, is_same< char, remove←-
_cv_t< _Tp > > >::value, int > = 0>
from_chars_result std::from_chars (
const char ∗ __first,
const char ∗ __last,
_Tp & __value,
int __base = 10) [constexpr]
std::from_chars for integral types.

get() [1/12]

template<typename _Tp , typename _Up >


const _Tp && std::get (
const pair< _Tp, _Up > && __p) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair
References move().

get() [2/12]

template<typename _Tp , typename _Up >


const _Tp & std::get (
const pair< _Tp, _Up > & __p) [constexpr], [noexcept]

Generated by Doxygen
590

std::get overloads for accessing members of std::pair

get() [3/12]

template<size_t _Int, class _Tp1 , class _Tp2 >


const tuple_element< _Int, pair< _Tp1, _Tp2 > >::type && std::get (
const pair< _Tp1, _Tp2 > && __in) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair
References move().

get() [4/12]

template<size_t _Int, class _Tp1 , class _Tp2 >


const tuple_element< _Int, pair< _Tp1, _Tp2 > >::type & std::get (
const pair< _Tp1, _Tp2 > & __in) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair

get() [5/12]

template<typename _Tp , typename _Up >


const _Tp && std::get (
const pair< _Up, _Tp > && __p) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair
References move().

get() [6/12]

template<typename _Tp , typename _Up >


const _Tp & std::get (
const pair< _Up, _Tp > & __p) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair

get() [7/12]

template<typename _Tp , typename _Up >


_Tp && std::get (
pair< _Tp, _Up > && __p) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair
References move().

get() [8/12]

template<typename _Tp , typename _Up >


_Tp & std::get (
pair< _Tp, _Up > & __p) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair

get() [9/12]

template<size_t _Int, class _Tp1 , class _Tp2 >


tuple_element< _Int, pair< _Tp1, _Tp2 > >::type && std::get (
pair< _Tp1, _Tp2 > && __in) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair
References move().

Generated by Doxygen
4.10 std Namespace Reference 591

get() [10/12]

template<size_t _Int, class _Tp1 , class _Tp2 >


tuple_element< _Int, pair< _Tp1, _Tp2 > >::type & std::get (
pair< _Tp1, _Tp2 > & __in) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair

get() [11/12]

template<typename _Tp , typename _Up >


_Tp && std::get (
pair< _Up, _Tp > && __p) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair
References move().

get() [12/12]

template<typename _Tp , typename _Up >


_Tp & std::get (
pair< _Up, _Tp > & __p) [constexpr], [noexcept]
std::get overloads for accessing members of std::pair

get_money()

template<typename _MoneyT >


_Get_money< _MoneyT > std::get_money (
_MoneyT & __mon,
bool __intl = false) [inline]
Extended manipulator for extracting money.

Parameters

__mon Either long double or a specialization of basic_string.


__intl A bool indicating whether international format is to be used.

Sent to a stream object, this manipulator extracts __mon.

get_new_handler()

new_handler std::get_new_handler () [noexcept]


Return the current new handler.

get_temporary_buffer()

template<typename _Tp >


pair< _Tp ∗, ptrdiff_t > std::get_temporary_buffer (
ptrdiff_t __len) [noexcept]
Allocates a temporary buffer.

Parameters

__len The number of objects of type Tp.

Generated by Doxygen
592

Returns

See full description.

Reinventing the wheel, but this time with prettier spokes!


This function tries to obtain storage for __len adjacent Tp objects. The objects themselves are not constructed, of
course. A pair<> is returned containing the buffer's address and capacity (in the units of sizeof(_Tp)), or a pair of 0
values if no storage can be obtained. Note that the capacity obtained may be less than that requested if the memory is
unavailable; you should compare len with the .second return value.
Provides the nothrow exception guarantee.

get_time()

template<typename _CharT >


_Get_time< _CharT > std::get_time (
std::tm ∗ __tmb,
const _CharT ∗ __fmt) [inline]
Extended manipulator for extracting time.
This manipulator uses time_get::get to extract time. [ext.manip]

Parameters
__tmb struct to extract the time data to.
__fmt format string.

getline() [1/6]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_istream< _CharT, _Traits > & std::getline (
basic_istream< _CharT, _Traits > && __is,
basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Read a line from an rvalue stream into a string.
References getline().

getline() [2/6]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_istream< _CharT, _Traits > & std::getline (
basic_istream< _CharT, _Traits > && __is,
basic_string< _CharT, _Traits, _Alloc > & __str,
_CharT __delim) [inline]
Read a line from an rvalue stream into a string.
References getline().

getline() [3/6]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
basic_istream< _CharT, _Traits > & std::getline (
basic_istream< _CharT, _Traits > & __is,
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Read a line from stream into a string.

Generated by Doxygen
4.10 std Namespace Reference 593

Parameters
__is Input stream.
__str Buffer to store into.

Returns

Reference to the input stream.

Stores characters from is into __str until '


' is found, the end of the stream is encountered, or str.max_size() is reached. If is.width() is non-zero, that is the limit on
the number of characters stored into __str. Any previous contents of __str are erased. If end of line was encountered, it
is extracted but not stored into __str.
References getline(), and std::basic_ios< _CharT, _Traits >::widen().

getline() [4/6]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
basic_istream< _CharT, _Traits > & std::getline (
basic_istream< _CharT, _Traits > & __is,
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
_CharT __delim)
Read a line from stream into a string.

Parameters
__is Input stream.
__str Buffer to store into.
__delim Character marking end of line.

Returns

Reference to the input stream.

Stores characters from __is into __str until __delim is found, the end of the stream is encountered, or str.max_size() is
reached. If is.width() is non-zero, that is the limit on the number of characters stored into __str. Any previous contents
of __str are erased. If delim was encountered, it is extracted but not stored into __str.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append(), __gnu_cxx::__versa_string< _CharT, _Traits, _Allo
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::max_size(), std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

getline() [5/6]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_istream< _CharT, _Traits > & std::getline (
basic_istream< _CharT, _Traits > & __is,
basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Read a line from stream into a string.

Parameters
__is Input stream.
__str Buffer to store into.

Generated by Doxygen
594

Returns

Reference to the input stream.

Stores characters from is into __str until '


' is found, the end of the stream is encountered, or str.max_size() is reached. Any previous contents of __str are erased.
If end of line is encountered, it is extracted but not stored into __str.
References getline(), and std::basic_ios< _CharT, _Traits >::widen().

getline() [6/6]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_istream< _CharT, _Traits > & std::getline (
basic_istream< _CharT, _Traits > & __is,
basic_string< _CharT, _Traits, _Alloc > & __str,
_CharT __delim)
Read a line from stream into a string.

Parameters
__is Input stream.
__str Buffer to store into.
__delim Character marking end of line.

Returns

Reference to the input stream.

Stores characters from __is into __str until __delim is found, the end of the stream is encountered, or str.max_size() is
reached. Any previous contents of __str are erased. If __delim is encountered, it is extracted but not stored into __str.
References std::basic_string< _CharT, _Traits, _Alloc >::erase(), std::basic_string< _CharT, _Traits, _Alloc >::max_size(),
std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >::setstate().
Referenced by getline(), getline(), getline(), and getline().

hex()

ios_base & std::hex (


ios_base & __base) [inline]
Calls base.setf(ios_base::hex, ios_base::basefield).
References std::ios_base::basefield, hex(), and std::ios_base::hex.
Referenced by hex(), and std::regex_traits< typename >::value().

hexfloat()

ios_base & std::hexfloat (


ios_base & __base) [inline]
Calls base.setf(ios_base::fixed|ios_basescientific, ios_base::floatfield)
References std::ios_base::fixed, std::ios_base::floatfield, and std::ios_base::scientific.

internal()

ios_base & std::internal (


ios_base & __base) [inline]
Calls base.setf(ios_base::internal, ios_base::adjustfield).
References std::ios_base::adjustfield, and std::ios_base::internal.

Generated by Doxygen
4.10 std Namespace Reference 595

isalnum()

template<typename _CharT >


bool std::isalnum (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::alnum, __c).
References use_facet().

isalpha()

template<typename _CharT >


bool std::isalpha (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::alpha, __c).
References use_facet().

isblank()

template<typename _CharT >


bool std::isblank (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::blank, __c).
References use_facet().

iscntrl()

template<typename _CharT >


bool std::iscntrl (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::cntrl, __c).
References use_facet().

isdigit()

template<typename _CharT >


bool std::isdigit (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::digit, __c).
References use_facet().

isgraph()

template<typename _CharT >


bool std::isgraph (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::graph, __c).
References use_facet().

Generated by Doxygen
596

islower()

template<typename _CharT >


bool std::islower (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::lower, __c).
References use_facet().

isprint()

template<typename _CharT >


bool std::isprint (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::print, __c).
References use_facet().

ispunct()

template<typename _CharT >


bool std::ispunct (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::punct, __c).
References use_facet().

isspace()

template<typename _CharT >


bool std::isspace (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::space, __c).
References use_facet().

isupper()

template<typename _CharT >


bool std::isupper (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::upper, __c).
References use_facet().

isxdigit()

template<typename _CharT >


bool std::isxdigit (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.is(ctype_base::xdigit, __c).
References use_facet().

Generated by Doxygen
4.10 std Namespace Reference 597

left()

ios_base & std::left (


ios_base & __base) [inline]
Calls base.setf(ios_base::left, ios_base::adjustfield).
References std::ios_base::adjustfield, and std::ios_base::left.

noboolalpha()

ios_base & std::noboolalpha (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::boolalpha).
References std::ios_base::boolalpha.

noshowbase()

ios_base & std::noshowbase (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::showbase).
References std::ios_base::showbase.

noshowpoint()

ios_base & std::noshowpoint (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::showpoint).
References std::ios_base::showpoint.

noshowpos()

ios_base & std::noshowpos (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::showpos).
References std::ios_base::showpos.

noskipws()

ios_base & std::noskipws (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::skipws).
References std::ios_base::skipws.

nounitbuf()

ios_base & std::nounitbuf (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::unitbuf).
References std::ios_base::unitbuf.

nouppercase()

ios_base & std::nouppercase (


ios_base & __base) [inline]
Calls base.unsetf(ios_base::uppercase).
References std::ios_base::uppercase.

Generated by Doxygen
598

oct()

ios_base & std::oct (


ios_base & __base) [inline]
Calls base.setf(ios_base::oct, ios_base::basefield).
References std::ios_base::basefield, and std::ios_base::oct.
Referenced by std::regex_traits< typename >::value().

operator"!=() [1/5]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


bool std::operator!= (
const multimap< _Key, _Tp, _Compare, _Alloc > & __x,
const multimap< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Based on operator==.

operator"!=() [2/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator!= (
const multiset< _Key, _Compare, _Alloc > & __x,
const multiset< _Key, _Compare, _Alloc > & __y) [inline]
Returns !(x == y).

operator"!=() [3/5]

template<typename _Tp , typename _Seq >


bool std::operator!= (
const queue< _Tp, _Seq > & __x,
const queue< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator==.

operator"!=() [4/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator!= (
const set< _Key, _Compare, _Alloc > & __x,
const set< _Key, _Compare, _Alloc > & __y) [inline]
Returns !(x == y).

operator"!=() [5/5]

template<typename _Tp , typename _Seq >


bool std::operator!= (
const stack< _Tp, _Seq > & __x,
const stack< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator==.

operator&()

template<size_t _Nb>
bitset< _Nb > std::operator& (
const bitset< _Nb > & __x,
const bitset< _Nb > & __y) [inline], [constexpr], [noexcept]
Global bitwise operations on bitsets.

Generated by Doxygen
4.10 std Namespace Reference 599

Parameters
_←- A bitset.
_x
_←- A bitset of the same size as __x.
_y

Returns

A new bitset.

These should be self-explanatory.

operator+() [1/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > std::operator+ (
_CharT __lhs,
const basic_string< _CharT, _Traits, _Alloc > & __rhs) [inline], [nodiscard], [constexpr]
Concatenate character and string.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with __lhs followed by __rhs.

operator+() [2/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > std::operator+ (
const _CharT ∗ __lhs,
const basic_string< _CharT, _Traits, _Alloc > & __rhs) [inline], [nodiscard], [constexpr]
Concatenate C string and string.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with value of __lhs followed by __rhs.

operator+() [3/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > std::operator+ (
const basic_string< _CharT, _Traits, _Alloc > & __lhs,
_CharT __rhs) [inline], [nodiscard], [constexpr]
Concatenate string and character.

Generated by Doxygen
600

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with __lhs followed by __rhs.

operator+() [4/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > std::operator+ (
const basic_string< _CharT, _Traits, _Alloc > & __lhs,
const _CharT ∗ __rhs) [inline], [nodiscard], [constexpr]
Concatenate string and C string.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with __lhs followed by __rhs.

operator+() [5/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > std::operator+ (
const basic_string< _CharT, _Traits, _Alloc > & __lhs,
const basic_string< _CharT, _Traits, _Alloc > & __rhs) [inline], [nodiscard], [constexpr]
Concatenate two strings.

Parameters
__lhs First string.
__rhs Last string.

Returns

New string with value of __lhs followed by __rhs.

operator<() [1/5]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


bool std::operator< (
const multimap< _Key, _Tp, _Compare, _Alloc > & __x,
const multimap< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Multimap ordering relation.

Generated by Doxygen
4.10 std Namespace Reference 601

Parameters
_←- A multimap.
_x
_←- A multimap of the same type as __x.
_y

Returns

True iff x is lexicographically less than y.

This is a total ordering relation. It is linear in the size of the multimaps. The elements must be comparable with <.
See std::lexicographical_compare() for how the determination is made.

operator<() [2/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator< (
const multiset< _Key, _Compare, _Alloc > & __x,
const multiset< _Key, _Compare, _Alloc > & __y) [inline]
Multiset ordering relation.

Parameters
_←- A multiset.
_x
_←- A multiset of the same type as __x.
_y

Returns

True iff __x is lexicographically less than __y.

This is a total ordering relation. It is linear in the size of the sets. The elements must be comparable with <.
See std::lexicographical_compare() for how the determination is made.

operator<() [3/5]

template<typename _Tp , typename _Seq >


bool std::operator< (
const queue< _Tp, _Seq > & __x,
const queue< _Tp, _Seq > & __y) [inline], [nodiscard]
Queue ordering relation.

Parameters
_←- A queue.
_x
_←- A queue of the same type as x.
_y

Generated by Doxygen
602

Returns

True iff __x is lexicographically less than __y.

This is an total ordering relation. Complexity and semantics depend on the underlying sequence type, but the expected
rules are: this relation is linear in the size of the sequences, the elements must be comparable with <, and std←-
::lexicographical_compare() is usually used to make the determination.
References std::queue< _Tp, _Sequence >::c.

operator<() [4/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator< (
const set< _Key, _Compare, _Alloc > & __x,
const set< _Key, _Compare, _Alloc > & __y) [inline]
Set ordering relation.

Parameters
_←- A set.
_x
_←- A set of the same type as x.
_y

Returns

True iff __x is lexicographically less than __y.

This is a total ordering relation. It is linear in the size of the sets. The elements must be comparable with <.
See std::lexicographical_compare() for how the determination is made.

operator<() [5/5]

template<typename _Tp , typename _Seq >


bool std::operator< (
const stack< _Tp, _Seq > & __x,
const stack< _Tp, _Seq > & __y) [inline], [nodiscard]
Stack ordering relation.

Parameters
_←- A stack.
_x
_←- A stack of the same type as x.
_y

Returns

True iff x is lexicographically less than __y.

This is an total ordering relation. Complexity and semantics depend on the underlying sequence type, but the expected
rules are: this relation is linear in the size of the sequences, the elements must be comparable with <, and std←-
::lexicographical_compare() is usually used to make the determination.

Generated by Doxygen
4.10 std Namespace Reference 603

operator<<() [1/24]

template<typename _Ostream , typename _Tp >


__rvalue_stream_insertion_t< _Ostream, _Tp > std::operator<< (
_Ostream && __os,
const _Tp & __x) [inline]
Generic inserter for rvalue stream.

Parameters
__os An input stream.
__x A reference to the object being inserted.

Returns

__os
This is just a forwarding function to allow insertion to rvalue streams since they won't bind to the inserter functions that
take an lvalue reference.

operator<<() [2/24]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
basic_ostream< _CharT, _Traits > & std::operator<< (
basic_ostream< _CharT, _Traits > & __os,
const __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Write string to a stream.

Parameters

__os Output stream.


__str String to write out.

Returns

Reference to the output stream.


Output characters of __str into os following the same rules as for writing a C string.

operator<<() [3/24]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_ostream< _CharT, _Traits > & std::operator<< (
basic_ostream< _CharT, _Traits > & __os,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Write string to a stream.

Parameters

__os Output stream.


__str String to write out.

Returns

Reference to the output stream.


Output characters of __str into os following the same rules as for writing a C string.

Generated by Doxygen
604

operator<<() [4/24]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::operator<< (
basic_ostream< _CharT, _Traits > & __out,
_CharT __c) [inline]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [5/24]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::operator<< (
basic_ostream< _CharT, _Traits > & __out,
char __c) [inline]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [6/24]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::operator<< (
basic_ostream< _CharT, _Traits > & __out,
const _CharT ∗ __s) [inline]
String inserters.

Parameters
__out An output stream.
__s A character string.

Generated by Doxygen
4.10 std Namespace Reference 605

Returns

out

Precondition

__s must be a non-NULL pointer


Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [7/24]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::operator<< (
basic_ostream< _CharT, _Traits > & __out,
const char ∗ __s)
String inserters.

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer


Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [8/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & ,
char16_t ) [delete]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

Generated by Doxygen
606

operator<<() [9/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & ,
char32_t ) [delete]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [10/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & ,
const char16_t ∗ ) [delete]
String inserters.

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [11/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & ,
const char32_t ∗ ) [delete]
String inserters.

Generated by Doxygen
4.10 std Namespace Reference 607

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [12/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & ,
const wchar_t ∗ ) [delete]
String inserters.

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [13/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & ,
wchar_t ) [delete]
Character inserters.

Parameters
__out An output stream.
__c A character.

Generated by Doxygen
608

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [14/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & __out,
char __c) [inline]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [15/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & __out,
const char ∗ __s) [inline]
String inserters.

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

Generated by Doxygen
4.10 std Namespace Reference 609

operator<<() [16/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & __out,
const signed char ∗ __s) [inline]
String inserters.

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer


Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [17/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & __out,
const unsigned char ∗ __s) [inline]
String inserters.

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer


Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [18/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & __out,
signed char __c) [inline]
Character inserters.

Generated by Doxygen
610

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [19/24]

template<typename _Traits >


basic_ostream< char, _Traits > & std::operator<< (
basic_ostream< char, _Traits > & __out,
unsigned char __c) [inline]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [20/24]

template<typename _Traits >


basic_ostream< wchar_t, _Traits > & std::operator<< (
basic_ostream< wchar_t, _Traits > & ,
char16_t ) [delete]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

Generated by Doxygen
4.10 std Namespace Reference 611

operator<<() [21/24]

template<typename _Traits >


basic_ostream< wchar_t, _Traits > & std::operator<< (
basic_ostream< wchar_t, _Traits > & ,
char32_t ) [delete]
Character inserters.

Parameters
__out An output stream.
__c A character.

Returns

out

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts a single character and any required padding (as determined by [22.2.2.2.2]). _←-
_out.width(0) is then called.
If __c is of type char and the character type of the stream is not char, the character is widened before insertion.

operator<<() [22/24]

template<typename _Traits >


basic_ostream< wchar_t, _Traits > & std::operator<< (
basic_ostream< wchar_t, _Traits > & ,
const char16_t ∗ ) [delete]
String inserters.

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [23/24]

template<typename _Traits >


basic_ostream< wchar_t, _Traits > & std::operator<< (
basic_ostream< wchar_t, _Traits > & ,
const char32_t ∗ ) [delete]
String inserters.

Generated by Doxygen
612

Parameters
__out An output stream.
__s A character string.

Returns

out

Precondition

__s must be a non-NULL pointer

Behaves like one of the formatted arithmetic inserters described in std::basic_ostream. After constructing a sentry object
with good status, this function inserts traits::length(__s) characters starting at __s, widened if necessary,
followed by any required padding (as determined by [22.2.2.2.2]). __out.width(0) is then called.

operator<<() [24/24]

template<class _CharT , class _Traits , size_t _Nb>


std::basic_ostream< _CharT, _Traits > & std::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const bitset< _Nb > & __x)
Global I/O operators for bitsets.
Direct I/O between streams and bitsets is supported. Output is straightforward. Input will skip whitespace, only accept
0 and 1 characters, and will only extract as many digits as the bitset will hold.
Referenced by std::shared_ptr< _Tp >::operator<<().

operator<=() [1/5]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


bool std::operator<= (
const multimap< _Key, _Tp, _Compare, _Alloc > & __x,
const multimap< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Based on operator<.

operator<=() [2/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator<= (
const multiset< _Key, _Compare, _Alloc > & __x,
const multiset< _Key, _Compare, _Alloc > & __y) [inline]
Returns !(y < x)

operator<=() [3/5]

template<typename _Tp , typename _Seq >


bool std::operator<= (
const queue< _Tp, _Seq > & __x,
const queue< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator<.

Generated by Doxygen
4.10 std Namespace Reference 613

operator<=() [4/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator<= (
const set< _Key, _Compare, _Alloc > & __x,
const set< _Key, _Compare, _Alloc > & __y) [inline]
Returns !(y < x)

operator<=() [5/5]

template<typename _Tp , typename _Seq >


bool std::operator<= (
const stack< _Tp, _Seq > & __x,
const stack< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator<.

operator<=>() [1/7]

template<typename _CharT , typename _Traits , typename _Alloc >


auto std::operator<=> (
const basic_string< _CharT, _Traits, _Alloc > & __lhs,
const _CharT ∗ __rhs) -> decltype(__detail::__char_traits_cmp_cat<_Traits>(0)) [nodiscard],
[constexpr], [noexcept]
Three-way comparison of a string and a C string.

Parameters
__lhs A string.
__rhs A null-terminated string.

Returns

A value indicating whether __lhs is less than, equal to, greater than, or incomparable with __rhs.

operator<=>() [2/7]

template<typename _CharT , typename _Traits , typename _Alloc >


auto std::operator<=> (
const basic_string< _CharT, _Traits, _Alloc > & __lhs,
const basic_string< _CharT, _Traits, _Alloc > & __rhs) -> decltype(__detail::__←-
char_traits_cmp_cat<_Traits>(0)) [nodiscard], [constexpr], [noexcept]
Three-way comparison of a string and a C string.

Parameters
__lhs A string.
__rhs A null-terminated string.

Returns

A value indicating whether __lhs is less than, equal to, greater than, or incomparable with __rhs.

Generated by Doxygen
614

operator<=>() [3/7]

template<typename _Tp , typename _Alloc >


__detail::__synth3way_t< _Tp > std::operator<=> (
const deque< _Tp, _Alloc > & __x,
const deque< _Tp, _Alloc > & __y) [inline], [nodiscard]
Deque ordering relation.

Parameters
_←- A deque.
_x
_←- A deque of the same type as __x.
_y

Returns

A value indicating whether __x is less than, equal to, greater than, or incomparable with __y.

See std::lexicographical_compare_three_way() for how the determination is made. This operator is


used to synthesize relational operators like < and >= etc.
References std::deque< _Tp, _Alloc >::begin(), std::deque< _Tp, _Alloc >::end(), and std::deque< _Tp, _Alloc >::size().

operator<=>() [4/7]

template<typename _Tp , typename _Alloc >


__detail::__synth3way_t< _Tp > std::operator<=> (
const forward_list< _Tp, _Alloc > & __x,
const forward_list< _Tp, _Alloc > & __y) [inline], [nodiscard]
Forward list ordering relation.

Parameters
_←- A forward_list.
_x
_←- A forward_list of the same type as __x.
_y

Returns

A value indicating whether __x is less than, equal to, greater than, or incomparable with __y.

See std::lexicographical_compare_three_way() for how the determination is made. This operator is


used to synthesize relational operators like < and >= etc.

operator<=>() [5/7]

template<typename _Tp , typename _Alloc >


__detail::__synth3way_t< _Tp > std::operator<=> (
const list< _Tp, _Alloc > & __x,
const list< _Tp, _Alloc > & __y) [inline], [nodiscard]
List ordering relation.

Generated by Doxygen
4.10 std Namespace Reference 615

Parameters
_←- A list.
_x
_←- A list of the same type as __x.
_y

Returns

A value indicating whether __x is less than, equal to, greater than, or incomparable with __y.

See std::lexicographical_compare_three_way() for how the determination is made. This operator is


used to synthesize relational operators like < and >= etc.
References std::list< _Tp, _Alloc >::begin(), std::list< _Tp, _Alloc >::end(), and std::list< _Tp, _Alloc >::size().

operator<=>() [6/7]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


__detail::__synth3way_t< pair< const _Key, _Tp > > std::operator<=> (
const map< _Key, _Tp, _Compare, _Alloc > & __x,
const map< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Map ordering relation.

Parameters
_←- A map.
_x
_←- A map of the same type as x.
_y

Returns

A value indicating whether __x is less than, equal to, greater than, or incomparable with __y.

This is a total ordering relation. It is linear in the size of the maps. The elements must be comparable with <.
See std::lexicographical_compare_three_way() for how the determination is made. This operator is
used to synthesize relational operators like < and >= etc.

operator<=>() [7/7]

template<typename _Tp , typename _Alloc >


__detail::__synth3way_t< _Tp > std::operator<=> (
const vector< _Tp, _Alloc > & __x,
const vector< _Tp, _Alloc > & __y) [nodiscard], [constexpr]
Vector ordering relation.

Parameters
_←- A vector.
_x
_←- A vector of the same type as __x.
_y

Generated by Doxygen
616

Returns

A value indicating whether __x is less than, equal to, greater than, or incomparable with __y.

See std::lexicographical_compare_three_way() for how the determination is made. This operator is


used to synthesize relational operators like < and >= etc.
References std::vector< _Tp, _Alloc >::begin(), std::vector< _Tp, _Alloc >::end(), and lexicographical_compare_three_way().

operator==() [1/14]

template<typename _CharT , typename _Traits , typename _Alloc >


bool std::operator== (
const basic_string< _CharT, _Traits, _Alloc > & __lhs,
const _CharT ∗ __rhs) [inline], [nodiscard], [constexpr]
Test equivalence of string and C string.

Parameters

__lhs String.
__rhs C string.

Returns

True if __lhs.compare(__rhs) == 0. False otherwise.

operator==() [2/14]

template<typename _CharT , typename _Traits , typename _Alloc >


bool std::operator== (
const basic_string< _CharT, _Traits, _Alloc > & __lhs,
const basic_string< _CharT, _Traits, _Alloc > & __rhs) [inline], [nodiscard], [constexpr],
[noexcept]
Test equivalence of two strings.

Parameters
__lhs First string.
__rhs Second string.

Returns

True if __lhs.compare(__rhs) == 0. False otherwise.

operator==() [3/14]

template<typename _Tp , typename _Alloc >


bool std::operator== (
const deque< _Tp, _Alloc > & __x,
const deque< _Tp, _Alloc > & __y) [inline], [nodiscard]
Deque equality comparison.

Generated by Doxygen
4.10 std Namespace Reference 617

Parameters
_←- A deque.
_x
_←- A deque of the same type as __x.
_y

Returns

True iff the size and elements of the deques are equal.

This is an equivalence relation. It is linear in the size of the deques. Deques are considered equivalent if their sizes are
equal, and if corresponding elements compare equal.

operator==() [4/14]

template<typename _Tp , typename _Alloc >


bool std::operator== (
const forward_list< _Tp, _Alloc > & __lx,
const forward_list< _Tp, _Alloc > & __ly)
Forward list equality comparison.

Parameters

_←- A forward_list
_lx
_←- A forward_list of the same type as __lx.
_ly

Returns

True iff the elements of the forward lists are equal.

This is an equivalence relation. It is linear in the number of elements of the forward lists. Deques are considered
equivalent if corresponding elements compare equal.
References std::forward_list< _Tp, _Alloc >::cbegin(), and std::forward_list< _Tp, _Alloc >::cend().

operator==() [5/14]

template<typename _StateT >


bool std::operator== (
const fpos< _StateT > & __lhs,
const fpos< _StateT > & __rhs) [inline]
Test if equivalent to another position.

operator==() [6/14]

template<typename _Res , typename... _Args>


bool std::operator== (
const function< _Res(_Args...)> & __f,
nullptr_t ) [inline], [noexcept]
Test whether a polymorphic function object wrapper is empty.
Returns

true if the wrapper has no target, false otherwise


This function will not throw exceptions.

Generated by Doxygen
618

operator==() [7/14]

template<typename _Tp , typename _Alloc >


bool std::operator== (
const list< _Tp, _Alloc > & __x,
const list< _Tp, _Alloc > & __y) [inline], [nodiscard]
List equality comparison.

Parameters
_←- A list.
_x
_←- A list of the same type as __x.
_y

Returns

True iff the size and elements of the lists are equal.

This is an equivalence relation. It is linear in the size of the lists. Lists are considered equivalent if their sizes are equal,
and if corresponding elements compare equal.

operator==() [8/14]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


bool std::operator== (
const map< _Key, _Tp, _Compare, _Alloc > & __x,
const map< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Map equality comparison.

Parameters
_←- A map.
_x
_←- A map of the same type as x.
_y

Returns

True iff the size and elements of the maps are equal.

This is an equivalence relation. It is linear in the size of the maps. Maps are considered equivalent if their sizes are
equal, and if corresponding elements compare equal.

operator==() [9/14]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


bool std::operator== (
const multimap< _Key, _Tp, _Compare, _Alloc > & __x,
const multimap< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Multimap equality comparison.

Generated by Doxygen
4.10 std Namespace Reference 619

Parameters
_←- A multimap.
_x
_←- A multimap of the same type as __x.
_y

Returns

True iff the size and elements of the maps are equal.

This is an equivalence relation. It is linear in the size of the multimaps. Multimaps are considered equivalent if their
sizes are equal, and if corresponding elements compare equal.

operator==() [10/14]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator== (
const multiset< _Key, _Compare, _Alloc > & __x,
const multiset< _Key, _Compare, _Alloc > & __y) [inline]
Multiset equality comparison.

Parameters
_←- A multiset.
_x
_←- A multiset of the same type as __x.
_y

Returns

True iff the size and elements of the multisets are equal.

This is an equivalence relation. It is linear in the size of the multisets. Multisets are considered equivalent if their sizes
are equal, and if corresponding elements compare equal.

operator==() [11/14]

template<typename _Tp , typename _Seq >


bool std::operator== (
const queue< _Tp, _Seq > & __x,
const queue< _Tp, _Seq > & __y) [inline], [nodiscard]
Queue equality comparison.

Parameters
_←- A queue.
_x
_←- A queue of the same type as __x.
_y

Generated by Doxygen
620

Returns

True iff the size and elements of the queues are equal.

This is an equivalence relation. Complexity and semantics depend on the underlying sequence type, but the expected
rules are: this relation is linear in the size of the sequences, and queues are considered equivalent if their sequences
compare equal.
References std::queue< _Tp, _Sequence >::c.

operator==() [12/14]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator== (
const set< _Key, _Compare, _Alloc > & __x,
const set< _Key, _Compare, _Alloc > & __y) [inline]
Set equality comparison.

Parameters
_←- A set.
_x
_←- A set of the same type as x.
_y

Returns

True iff the size and elements of the sets are equal.

This is an equivalence relation. It is linear in the size of the sets. Sets are considered equivalent if their sizes are equal,
and if corresponding elements compare equal.

operator==() [13/14]

template<typename _Tp , typename _Seq >


bool std::operator== (
const stack< _Tp, _Seq > & __x,
const stack< _Tp, _Seq > & __y) [inline], [nodiscard]
Stack equality comparison.

Parameters
_←- A stack.
_x
_←- A stack of the same type as __x.
_y

Returns

True iff the size and elements of the stacks are equal.

This is an equivalence relation. Complexity and semantics depend on the underlying sequence type, but the expected
rules are: this relation is linear in the size of the sequences, and stacks are considered equivalent if their sequences
compare equal.

Generated by Doxygen
4.10 std Namespace Reference 621

operator==() [14/14]

template<typename _Tp , typename _Alloc >


bool std::operator== (
const vector< _Tp, _Alloc > & __x,
const vector< _Tp, _Alloc > & __y) [inline], [nodiscard], [constexpr]
Vector equality comparison.

Parameters
_←- A vector.
_x
_←- A vector of the same type as __x.
_y

Returns

True iff the size and elements of the vectors are equal.

This is an equivalence relation. It is linear in the size of the vectors. Vectors are considered equivalent if their sizes are
equal, and if corresponding elements compare equal.
References std::vector< _Tp, _Alloc >::begin(), std::vector< _Tp, _Alloc >::end(), and std::vector< _Tp, _Alloc >::size().

operator>() [1/5]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


bool std::operator> (
const multimap< _Key, _Tp, _Compare, _Alloc > & __x,
const multimap< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Based on operator<.

operator>() [2/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator> (
const multiset< _Key, _Compare, _Alloc > & __x,
const multiset< _Key, _Compare, _Alloc > & __y) [inline]
Returns y < x.

operator>() [3/5]

template<typename _Tp , typename _Seq >


bool std::operator> (
const queue< _Tp, _Seq > & __x,
const queue< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator<.

operator>() [4/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator> (
const set< _Key, _Compare, _Alloc > & __x,
const set< _Key, _Compare, _Alloc > & __y) [inline]
Returns y < x.

Generated by Doxygen
622

operator>() [5/5]

template<typename _Tp , typename _Seq >


bool std::operator> (
const stack< _Tp, _Seq > & __x,
const stack< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator<.

operator>=() [1/5]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


bool std::operator>= (
const multimap< _Key, _Tp, _Compare, _Alloc > & __x,
const multimap< _Key, _Tp, _Compare, _Alloc > & __y) [inline]
Based on operator<.

operator>=() [2/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator>= (
const multiset< _Key, _Compare, _Alloc > & __x,
const multiset< _Key, _Compare, _Alloc > & __y) [inline]
Returns !(x < y)

operator>=() [3/5]

template<typename _Tp , typename _Seq >


bool std::operator>= (
const queue< _Tp, _Seq > & __x,
const queue< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator<.

operator>=() [4/5]

template<typename _Key , typename _Compare , typename _Alloc >


bool std::operator>= (
const set< _Key, _Compare, _Alloc > & __x,
const set< _Key, _Compare, _Alloc > & __y) [inline]
Returns !(x < y)

operator>=() [5/5]

template<typename _Tp , typename _Seq >


bool std::operator>= (
const stack< _Tp, _Seq > & __x,
const stack< _Tp, _Seq > & __y) [inline], [nodiscard]
Based on operator<.

operator>>() [1/10]

template<typename _Istream , typename _Tp >


__rvalue_stream_extraction_t< _Istream, _Tp > std::operator>> (
_Istream && __is,
_Tp && __x) [inline]
Generic extractor for rvalue stream.

Generated by Doxygen
4.10 std Namespace Reference 623

Parameters
_←- An input stream.
_is
_←- A reference to the extraction target.
_x

Returns

__is

This is just a forwarding function to allow extraction from rvalue streams since they won't bind to the extractor functions
that take an lvalue reference.

operator>>() [2/10]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::operator>> (
basic_istream< _CharT, _Traits > & __in,
_CharT & __c)
Character extractors.

Parameters
_←- An input stream.
_in
_←- A character reference.
_c

Returns

in

Behaves like one of the formatted arithmetic extractors described in std::basic_istream. After constructing a sentry
object with good status, this function extracts a character (if one is available) and stores it in __c. Otherwise, sets failbit
in the input stream.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdb
and std::basic_ios< _CharT, _Traits >::setstate().

operator>>() [3/10]

template<typename _CharT , typename _Traits , size_t _Num>


basic_istream< _CharT, _Traits > & std::operator>> (
basic_istream< _CharT, _Traits > & __in,
_CharT(&) __s[_Num]) [inline]
Character string extractors.

Parameters
_←- An input stream.
_in
_←- A character array (or a pointer to an array before C++20).
_s

Generated by Doxygen
624

Returns

__in

Behaves like one of the formatted arithmetic extractors described in std::basic_istream. After constructing a
sentry object with good status, this function extracts up to n characters and stores them into the array __s. n is defined
as:

• if width() is greater than zero, n is min(width(), n)

• otherwise n is the number of elements of the array

• (before C++20 the pointer is assumed to point to an array of the largest possible size for an array of char_type).

Characters are extracted and stored until one of the following happens:

• n - 1 characters are stored

• EOF is reached

• the next character is whitespace according to the current locale

width(0) is then called for the input stream.


If no characters are extracted, sets failbit.

operator>>() [4/10]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
basic_istream< _CharT, _Traits > & std::operator>> (
basic_istream< _CharT, _Traits > & __is,
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > & __str)
Read stream into a string.

Parameters
__is Input stream.
__str Buffer to store into.

Returns

Reference to the input stream.

Stores characters from __is into __str until whitespace is found, the end of the stream is encountered, or str.max_size()
is reached. If is.width() is non-zero, that is the limit on the number of characters stored into __str. Any previous contents
of __str are erased.
References std::ios_base::getloc(), std::basic_ios< _CharT, _Traits >::rdbuf(), std::basic_ios< _CharT, _Traits >::setstate(),
use_facet(), and std::ios_base::width().

operator>>() [5/10]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_istream< _CharT, _Traits > & std::operator>> (
basic_istream< _CharT, _Traits > & __is,
basic_string< _CharT, _Traits, _Alloc > & __str)
Read stream into a string.

Generated by Doxygen
4.10 std Namespace Reference 625

Parameters
__is Input stream.
__str Buffer to store into.

Returns

Reference to the input stream.

Stores characters from __is into __str until whitespace is found, the end of the stream is encountered, or str.max_size()
is reached. If is.width() is non-zero, that is the limit on the number of characters stored into __str. Any previous contents
of __str are erased.
References std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::erase(),
std::ios_base::getloc(), std::basic_string< _CharT, _Traits, _Alloc >::max_size(), std::basic_ios< _CharT, _Traits >::rdbuf(),
std::basic_ios< _CharT, _Traits >::setstate(), use_facet(), and std::ios_base::width().

operator>>() [6/10]

template<class _Traits >


basic_istream< char, _Traits > & std::operator>> (
basic_istream< char, _Traits > & __in,
signed char & __c) [inline]
Character extractors.

Parameters
_←- An input stream.
_in
_←- A character reference.
_c

Returns

in

Behaves like one of the formatted arithmetic extractors described in std::basic_istream. After constructing a sentry
object with good status, this function extracts a character (if one is available) and stores it in __c. Otherwise, sets failbit
in the input stream.

operator>>() [7/10]

template<class _Traits , size_t _Num>


basic_istream< char, _Traits > & std::operator>> (
basic_istream< char, _Traits > & __in,
signed char(&) __s[_Num]) [inline]
Character string extractors.

Parameters
_←- An input stream.
_in
_←- A character array (or a pointer to an array before C++20).
_s

Generated by Doxygen
626

Returns

__in

Behaves like one of the formatted arithmetic extractors described in std::basic_istream. After constructing a
sentry object with good status, this function extracts up to n characters and stores them into the array __s. n is defined
as:

• if width() is greater than zero, n is min(width(), n)

• otherwise n is the number of elements of the array

• (before C++20 the pointer is assumed to point to an array of the largest possible size for an array of char_type).

Characters are extracted and stored until one of the following happens:

• n - 1 characters are stored

• EOF is reached

• the next character is whitespace according to the current locale

width(0) is then called for the input stream.


If no characters are extracted, sets failbit.

operator>>() [8/10]

template<class _Traits >


basic_istream< char, _Traits > & std::operator>> (
basic_istream< char, _Traits > & __in,
unsigned char & __c) [inline]
Character extractors.

Parameters
_←- An input stream.
_in
_←- A character reference.
_c

Returns

in

Behaves like one of the formatted arithmetic extractors described in std::basic_istream. After constructing a sentry
object with good status, this function extracts a character (if one is available) and stores it in __c. Otherwise, sets failbit
in the input stream.

operator>>() [9/10]

template<class _Traits , size_t _Num>


basic_istream< char, _Traits > & std::operator>> (
basic_istream< char, _Traits > & __in,
unsigned char(&) __s[_Num]) [inline]
Character string extractors.

Generated by Doxygen
4.10 std Namespace Reference 627

Parameters
_←- An input stream.
_in
_←- A character array (or a pointer to an array before C++20).
_s

Returns

__in

Behaves like one of the formatted arithmetic extractors described in std::basic_istream. After constructing a
sentry object with good status, this function extracts up to n characters and stores them into the array __s. n is defined
as:

• if width() is greater than zero, n is min(width(), n)

• otherwise n is the number of elements of the array

• (before C++20 the pointer is assumed to point to an array of the largest possible size for an array of char_type).

Characters are extracted and stored until one of the following happens:

• n - 1 characters are stored

• EOF is reached

• the next character is whitespace according to the current locale

width(0) is then called for the input stream.


If no characters are extracted, sets failbit.

operator>>() [10/10]

template<class _CharT , class _Traits , size_t _Nb>


std::basic_istream< _CharT, _Traits > & std::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
bitset< _Nb > & __x)
Global I/O operators for bitsets.
Direct I/O between streams and bitsets is supported. Output is straightforward. Input will skip whitespace, only accept
0 and 1 characters, and will only extract as many digits as the bitset will hold.

operator∧ ()

template<size_t _Nb>
bitset< _Nb > std::operator∧ (
const bitset< _Nb > & __x,
const bitset< _Nb > & __y) [inline], [constexpr], [noexcept]
Global bitwise operations on bitsets.

Parameters
_←- A bitset.
_x
_←- A bitset of the same size as __x.
_y

Generated by Doxygen
628

Returns

A new bitset.

These should be self-explanatory.

operator"|()

template<size_t _Nb>
bitset< _Nb > std::operator| (
const bitset< _Nb > & __x,
const bitset< _Nb > & __y) [inline], [constexpr], [noexcept]
Global bitwise operations on bitsets.

Parameters
_←- A bitset.
_x
_←- A bitset of the same size as __x.
_y

Returns

A new bitset.

These should be self-explanatory.

put_money()

template<typename _MoneyT >


_Put_money< _MoneyT > std::put_money (
const _MoneyT & __mon,
bool __intl = false) [inline]
Extended manipulator for inserting money.

Parameters

__mon Either long double or a specialization of basic_string.


__intl A bool indicating whether international format is to be used.

Sent to a stream object, this manipulator inserts __mon.

put_time()

template<typename _CharT >


_Put_time< _CharT > std::put_time (
const std::tm ∗ __tmb,
const _CharT ∗ __fmt) [inline]
Extended manipulator for formatting time.
This manipulator uses time_put::put to format time. [ext.manip]

Parameters

__tmb struct tm time data to format.


__fmt format string.

Generated by Doxygen
4.10 std Namespace Reference 629

rbegin() [1/4]

template<typename _Container >


auto std::rbegin (
_Container & __cont) -> decltype(__cont.rbegin()) [inline], [constexpr], [noexcept]
Return a reverse iterator pointing to the last element of the container.

Parameters

__cont Container.

Referenced by crbegin().

rbegin() [2/4]

template<typename _Tp , size_t _Nm>


reverse_iterator< _Tp ∗ > std::rbegin (
_Tp(&) __arr[_Nm]) [inline], [constexpr], [noexcept]
Return a reverse iterator pointing to the last element of the array.

Parameters
__arr Array.

rbegin() [3/4]

template<typename _Container >


auto std::rbegin (
const _Container & __cont) -> decltype(__cont.rbegin()) [inline], [constexpr],
[noexcept]
Return a reverse iterator pointing to the last element of the const container.

Parameters

__cont Container.

rbegin() [4/4]

template<typename _Tp >


reverse_iterator< const _Tp ∗ > std::rbegin (
initializer_list< _Tp > __il) [inline], [constexpr], [noexcept]
Return a reverse iterator pointing to the last element of the initializer_list.

Parameters
_←- initializer_list.
_il

Generated by Doxygen
630

rend() [1/4]

template<typename _Container >


auto std::rend (
_Container & __cont) -> decltype(__cont.rend()) [inline], [constexpr], [noexcept]
Return a reverse iterator pointing one past the first element of the container.

Generated by Doxygen
4.10 std Namespace Reference 631

Parameters

__cont Container.

Referenced by crend().

rend() [2/4]

template<typename _Tp , size_t _Nm>


reverse_iterator< _Tp ∗ > std::rend (
_Tp(&) __arr[_Nm]) [inline], [constexpr], [noexcept]
Return a reverse iterator pointing one past the first element of the array.

Parameters
__arr Array.

rend() [3/4]

template<typename _Container >


auto std::rend (
const _Container & __cont) -> decltype(__cont.rend()) [inline], [constexpr], [noexcept]
Return a reverse iterator pointing one past the first element of the const container.

Parameters

__cont Container.

rend() [4/4]

template<typename _Tp >


reverse_iterator< const _Tp ∗ > std::rend (
initializer_list< _Tp > __il) [inline], [constexpr], [noexcept]
Return a reverse iterator pointing one past the first element of the initializer_list.

Parameters
_←- initializer_list.
_il

replace_copy()

template<typename _InputIterator , typename _OutputIterator , typename _Tp >


_OutputIterator std::replace_copy (
_InputIterator __first,
_InputIterator __last,
_OutputIterator __result,
const _Tp & __old_value,
const _Tp & __new_value) [inline], [constexpr]
Copy a sequence, replacing each element of one value with another value.

Generated by Doxygen
632

Parameters

__first An input iterator.


__last An input iterator.
__result An output iterator.
__old_value The value to be replaced.
__new_value The replacement value.

Returns

The end of the output sequence, result+(last-first).

Copies each element in the input range [__first,__last) to the output range [__result,__result+(__last-__first)) replacing
elements equal to __old_value with __new_value.

resetiosflags()

_Resetiosflags std::resetiosflags (
ios_base::fmtflags __mask) [inline]
Manipulator for setf.

Parameters

__mask A format flags mask.

Sent to a stream object, this manipulator resets the specified flags, via stream.setf(0,__mask).

return_temporary_buffer()

template<typename _Tp >


void std::return_temporary_buffer (
_Tp ∗ __p) [inline]
The companion to get_temporary_buffer().

Parameters

_←- A buffer previously allocated by get_temporary_buffer.


_p

Returns

None.

Frees the memory pointed to by __p.

right()

ios_base & std::right (


ios_base & __base) [inline]
Calls base.setf(ios_base::right, ios_base::adjustfield).
References std::ios_base::adjustfield, and std::ios_base::right.

Generated by Doxygen
4.10 std Namespace Reference 633

sample()

template<typename _PopulationIterator , typename _SampleIterator , typename _Distance , typename


_UniformRandomBitGenerator >
_SampleIterator std::sample (
_PopulationIterator __first,
_PopulationIterator __last,
_SampleIterator __out,
_Distance __n,
_UniformRandomBitGenerator && __g)
Take a random sample from a population.
References forward().

scientific()

ios_base & std::scientific (


ios_base & __base) [inline]
Calls base.setf(ios_base::scientific, ios_base::floatfield).
References std::ios_base::floatfield, std::ios_base::scientific, and scientific().
Referenced by scientific().

search()

template<typename _ForwardIterator , typename _Searcher >


_ForwardIterator std::search (
_ForwardIterator __first,
_ForwardIterator __last,
const _Searcher & __searcher) [inline], [nodiscard], [constexpr]
Search a sequence using a Searcher object.

Parameters

__first A forward iterator.


__last A forward iterator.
__searcher A callable object.

Returns

__searcher(__first,__last).first

set_new_handler()

new_handler std::set_new_handler (
new_handler ) throw ( )
Takes a replacement handler as the argument, returns the previous handler.

setbase()

_Setbase std::setbase (
int __base) [inline]
Manipulator for setf.

Parameters
__base A numeric base.

Generated by Doxygen
634

Sent to a stream object, this manipulator changes the ios_base::basefield flags to oct, dec, or hex when
base is 8, 10, or 16, accordingly, and to 0 if __base is any other value.

setfill()

template<typename _CharT >


_Setfill< _CharT > std::setfill (
_CharT __c) [inline]
Manipulator for fill.

Parameters

_←- The new fill character.


_c

Sent to a stream object, this manipulator calls fill(__c) for that object.

setiosflags()

_Setiosflags std::setiosflags (
ios_base::fmtflags __mask) [inline]
Manipulator for setf.

Parameters

__mask A format flags mask.

Sent to a stream object, this manipulator sets the format flags to __mask.

setprecision()

_Setprecision std::setprecision (
int __n) [inline]
Manipulator for precision.

Parameters
_←- The new precision.
_n

Sent to a stream object, this manipulator calls precision(__n) for that object.

setw()

_Setw std::setw (
int __n) [inline]
Manipulator for width.

Parameters
_←- The new width.
_n

Sent to a stream object, this manipulator calls width(__n) for that object.

Generated by Doxygen
4.10 std Namespace Reference 635

showbase()

ios_base & std::showbase (


ios_base & __base) [inline]
Calls base.setf(ios_base::showbase).
References std::ios_base::showbase.

showpoint()

ios_base & std::showpoint (


ios_base & __base) [inline]
Calls base.setf(ios_base::showpoint).
References std::ios_base::showpoint.

showpos()

ios_base & std::showpos (


ios_base & __base) [inline]
Calls base.setf(ios_base::showpos).
References std::ios_base::showpos.

size() [1/2]

template<typename _Container >


auto std::size (
const _Container & __cont) -> decltype(__cont.size()) [nodiscard], [constexpr],
[noexcept]
Return the size of a container.

Parameters

__cont Container.

Referenced by std::deque< _Tp, _Alloc >::_M_new_elements_at_back(), std::deque< _Tp, _Alloc >::_M_new_elements_at_front(),


std::deque< _Tp, _Alloc >::_M_push_back_aux(), std::deque< _Tp, _Alloc >::_M_push_front_aux(), std::basic_string< _CharT, _Traits,
std::basic_string< _CharT, _Traits, _Alloc >::find(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(),
std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_of(),
std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(),
std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(), std::deque< _Tp, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _
std::vector< _Tp, _Alloc >::reserve(), std::vector< _State< _TraitsT::char_type > >::reserve(), std::basic_string< _CharT, _Traits, _Alloc
and std::basic_string< _CharT, _Traits, _Alloc >::rfind().

size() [2/2]

template<typename _Tp , size_t _Nm>


size_t std::size (
const _Tp(&)[_Nm]) [nodiscard], [constexpr], [noexcept]
Return the size of an array.

skipws()

ios_base & std::skipws (


ios_base & __base) [inline]
Calls base.setf(ios_base::skipws).
References std::ios_base::skipws.

Generated by Doxygen
636

static_pointer_cast()

template<typename _Tp , typename _Tp1 , _Lock_policy _Lp>


__shared_ptr< _Tp, _Lp > std::static_pointer_cast (
const __shared_ptr< _Tp1, _Lp > & __r) [inline], [noexcept]
static_pointer_cast

swap() [1/19]

template<class _CharT , class _Traits >


void std::swap (
basic_filebuf< _CharT, _Traits > & __x,
basic_filebuf< _CharT, _Traits > & __y) [inline]
Swap specialization for filebufs.

swap() [2/19]

template<class _CharT , class _Traits >


void std::swap (
basic_fstream< _CharT, _Traits > & __x,
basic_fstream< _CharT, _Traits > & __y) [inline]
Swap specialization for fstreams.

swap() [3/19]

template<class _CharT , class _Traits >


void std::swap (
basic_ifstream< _CharT, _Traits > & __x,
basic_ifstream< _CharT, _Traits > & __y) [inline]
Swap specialization for ifstreams.

swap() [4/19]

template<class _CharT , class _Traits , class _Allocator >


void std::swap (
basic_istringstream< _CharT, _Traits, _Allocator > & __x,
basic_istringstream< _CharT, _Traits, _Allocator > & __y) [inline]
Swap specialization for istringstreams.

swap() [5/19]

template<class _CharT , class _Traits >


void std::swap (
basic_ofstream< _CharT, _Traits > & __x,
basic_ofstream< _CharT, _Traits > & __y) [inline]
Swap specialization for ofstreams.

swap() [6/19]

template<class _CharT , class _Traits , class _Allocator >


void std::swap (
basic_ostringstream< _CharT, _Traits, _Allocator > & __x,
basic_ostringstream< _CharT, _Traits, _Allocator > & __y) [inline]
Swap specialization for ostringstreams.

Generated by Doxygen
4.10 std Namespace Reference 637

swap() [7/19]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::swap (
basic_string< _CharT, _Traits, _Alloc > & __lhs,
basic_string< _CharT, _Traits, _Alloc > & __rhs) [inline], [constexpr], [noexcept]
Swap contents of two strings.

Parameters
__lhs First string.
__rhs Second string.

Exchanges the contents of __lhs and __rhs in constant time.

swap() [8/19]

template<class _CharT , class _Traits , class _Allocator >


void std::swap (
basic_stringbuf< _CharT, _Traits, _Allocator > & __x,
basic_stringbuf< _CharT, _Traits, _Allocator > & __y) [inline], [noexcept]
Swap specialization for stringbufs.

swap() [9/19]

template<class _CharT , class _Traits , class _Allocator >


void std::swap (
basic_stringstream< _CharT, _Traits, _Allocator > & __x,
basic_stringstream< _CharT, _Traits, _Allocator > & __y) [inline]
Swap specialization for stringstreams.

swap() [10/19]

template<typename _Tp , typename _Alloc >


void std::swap (
deque< _Tp, _Alloc > & __x,
deque< _Tp, _Alloc > & __y) [inline], [noexcept]
See std::deque::swap().

swap() [11/19]

template<typename _Tp , typename _Alloc >


void std::swap (
forward_list< _Tp, _Alloc > & __lx,
forward_list< _Tp, _Alloc > & __ly) [inline], [noexcept]
See std::forward_list::swap().

swap() [12/19]

template<typename _Res , typename... _Args>


void std::swap (
function< _Res(_Args...)> & __x,
function< _Res(_Args...)> & __y) [inline], [noexcept]
Swap the targets of two polymorphic function object wrappers.
This function will not throw exceptions.

Generated by Doxygen
638

swap() [13/19]

template<typename _Tp , typename _Alloc >


void std::swap (
list< _Tp, _Alloc > & __x,
list< _Tp, _Alloc > & __y) [inline], [noexcept]
See std::list::swap().

swap() [14/19]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


void std::swap (
map< _Key, _Tp, _Compare, _Alloc > & __x,
map< _Key, _Tp, _Compare, _Alloc > & __y) [inline], [noexcept]
See std::map::swap().
References std::pair< _T1, _T2 >::swap().

swap() [15/19]

template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >


void std::swap (
multimap< _Key, _Tp, _Compare, _Alloc > & __x,
multimap< _Key, _Tp, _Compare, _Alloc > & __y) [inline], [noexcept]
See std::multimap::swap().

swap() [16/19]

template<typename _Key , typename _Compare , typename _Alloc >


void std::swap (
multiset< _Key, _Compare, _Alloc > & __x,
multiset< _Key, _Compare, _Alloc > & __y) [inline], [noexcept]
See std::multiset::swap().

swap() [17/19]

template<typename _Key , typename _Compare , typename _Alloc >


void std::swap (
set< _Key, _Compare, _Alloc > & __x,
set< _Key, _Compare, _Alloc > & __y) [inline], [noexcept]
See std::set::swap().

swap() [18/19]

template<typename _Tp , typename _Alloc >


void std::swap (
vector< _Tp, _Alloc > & __x,
vector< _Tp, _Alloc > & __y) [inline], [constexpr], [noexcept]
See std::vector::swap().

tolower()

template<typename _CharT >


_CharT std::tolower (
_CharT __c,
const locale & __loc) [inline]

Generated by Doxygen
4.10 std Namespace Reference 639

Convenience interface to ctype.tolower(__c).


References tolower(), and use_facet().
Referenced by tolower().

toupper()

template<typename _CharT >


_CharT std::toupper (
_CharT __c,
const locale & __loc) [inline]
Convenience interface to ctype.toupper(__c).
References toupper(), and use_facet().
Referenced by toupper().

unitbuf()

ios_base & std::unitbuf (


ios_base & __base) [inline]
Calls base.setf(ios_base::unitbuf).
References std::ios_base::unitbuf.

uppercase()

ios_base & std::uppercase (


ios_base & __base) [inline]
Calls base.setf(ios_base::uppercase).
References std::ios_base::uppercase.

ws()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::ws (
basic_istream< _CharT, _Traits > & __is)
Quick and easy way to eat whitespace.
This manipulator extracts whitespace characters, stopping when the next character is non-whitespace, or when the input
sequence is empty. If the sequence is empty, eofbit is set in the stream, but not failbit.
The current locale is used to distinguish whitespace characters.
Example:
MyClass mc;

std::cin » std::ws » mc;


will skip leading whitespace before calling operator>> on cin and your object. Note that the same effect can be achieved
by creating a std::basic_istream::sentry inside your definition of operator>>.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::getloc(), std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::
std::basic_ios< _CharT, _Traits >::setstate(), and use_facet().

4.10.5 Variable Documentation

cerr

ostream std::cerr [extern]


Linked to standard error (unbuffered)

cin

istream std::cin [extern]


Linked to standard input.

Generated by Doxygen
640

clog

ostream std::clog [extern]


Linked to standard error (buffered)

cout

ostream std::cout [extern]


Linked to standard output.

default_sentinel

default_sentinel_t std::default_sentinel [inline], [constexpr]


A default sentinel value.

destroying_delete

destroying_delete_t std::destroying_delete [inline], [constexpr]


Tag variable of type destroying_delete_t.

ignore

_Swallow_assign std::ignore [inline], [constexpr]


Used with std::tie to ignore an element of a tuple
When using std::tie to assign the elements of a tuple to variables, unwanted elements can be ignored by using
std::ignore. For example:
int x, y;
std::tie(x, std::ignore, y) = std::make_tuple(1, 2, 3);
This assignment will perform x=1; std::ignore=2; y=3; which results in the second element being ignored.

Since

C++11

wcerr

wostream std::wcerr [extern]


Linked to standard error (unbuffered)

wcin

wistream std::wcin [extern]


Linked to standard input.

wclog

wostream std::wclog [extern]


Linked to standard error (buffered)

wcout

wostream std::wcout [extern]


Linked to standard output.

Generated by Doxygen
4.11 std::__debug Namespace Reference 641

4.11 std::__debug Namespace Reference


Classes

• class bitset
• class deque
• class forward_list
• class list
• class map
• class multimap
• class multiset
• class set
• class unordered_map
• class unordered_multimap
• class unordered_multiset
• class unordered_set
• class vector

Functions

• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =


allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
deque (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> deque< _ValT, _Allocator >
• template<typename _Tp , typename _Allocator = allocator<_Tp>, typename = _RequireAllocator<_Allocator>>
deque (size_t, _Tp, _Allocator=_Allocator()) -> deque< _Tp, _Allocator >
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =
allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
forward_list (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> forward_list< _ValT, _Allocator >
• template<typename _Tp , typename _Allocator = allocator<_Tp>, typename = _RequireAllocator<_Allocator>>
forward_list (size_t, _Tp, _Allocator=_Allocator()) -> forward_list< _Tp, _Allocator >
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =
allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
list (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> list< _ValT, _Allocator >
• template<typename _Tp , typename _Allocator = allocator<_Tp>, typename = _RequireAllocator<_Allocator>>
list (size_t, _Tp, _Allocator=_Allocator()) -> list< _Tp, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
map (_InputIterator, _InputIterator, _Allocator) -> map< __iter_key_t< _InputIterator >, __iter_val_t< _Input←-
Iterator >, less< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Compare = less<__iter_key_t<_InputIterator>>, typename _Allocator = allocator<__←-
iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocator<_Compare>, type-
name = _RequireAllocator<_Allocator>>
map (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> map< __iter_key_t< ←-
_InputIterator >, __iter_val_t< _InputIterator >, _Compare, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
map (initializer_list< pair< _Key, _Tp > >, _Allocator) -> map< _Key, _Tp, less< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Compare = less<_Key>, typename _Allocator = allocator<pair<const _Key, _←-
Tp>>, typename = _RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
map (initializer_list< pair< _Key, _Tp > >, _Compare=_Compare(), _Allocator=_Allocator()) -> map< _Key,
_Tp, _Compare, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
multimap (_InputIterator, _InputIterator, _Allocator) -> multimap< __iter_key_t< _InputIterator >, __iter_val_t<
_InputIterator >, less< __iter_key_t< _InputIterator > >, _Allocator >

Generated by Doxygen
642

• template<typename _InputIterator , typename _Compare = less<__iter_key_t<_InputIterator>>, typename _Allocator = allocator<__←-


iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocator<_Compare>, type-
name = _RequireAllocator<_Allocator>>
multimap (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> multimap< __iter←-
_key_t< _InputIterator >, __iter_val_t< _InputIterator >, _Compare, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
multimap (initializer_list< pair< _Key, _Tp > >, _Allocator) -> multimap< _Key, _Tp, less< _Key >, _Allocator
>
• template<typename _Key , typename _Tp , typename _Compare = less<_Key>, typename _Allocator = allocator<pair<const _Key, _←-
Tp>>, typename = _RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
multimap (initializer_list< pair< _Key, _Tp > >, _Compare=_Compare(), _Allocator=_Allocator()) -> multimap<
_Key, _Tp, _Compare, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
multiset (_InputIterator, _InputIterator, _Allocator) -> multiset< typename iterator_traits< _InputIterator >←-
::value_type, less< typename iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Compare = less<typename iterator_traits<_InputIterator>::value_type>, typename _←-
Allocator = allocator<typename iterator_traits<_InputIterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
multiset (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> multiset< typename
iterator_traits< _InputIterator >::value_type, _Compare, _Allocator >
• template<typename _Key , typename _Allocator , typename = _RequireAllocator<_Allocator>>
multiset (initializer_list< _Key >, _Allocator) -> multiset< _Key, less< _Key >, _Allocator >
• template<typename _Key , typename _Compare = less<_Key>, typename _Allocator = allocator<_Key>, typename = _RequireNot←-
Allocator<_Compare>, typename = _RequireAllocator<_Allocator>>
multiset (initializer_list< _Key >, _Compare=_Compare(), _Allocator=_Allocator()) -> multiset< _Key, _←-
Compare, _Allocator >
• template<size_t _Nb>
constexpr bitset< _Nb > operator& (const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
• template<typename _CharT , typename _Traits , size_t _Nb>
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
bitset< _Nb > &__x)
• template<typename _Tp , typename _Alloc >
constexpr __detail::__synth3way_t< _Tp > operator<=> (const deque< _Tp, _Alloc > &__x, const deque<
_Tp, _Alloc > &__y)
• template<typename _Tp , typename _Alloc >
constexpr __detail::__synth3way_t< _Tp > operator<=> (const forward_list< _Tp, _Alloc > &__x, const
forward_list< _Tp, _Alloc > &__y)
• template<typename _Tp , typename _Alloc >
constexpr __detail::__synth3way_t< _Tp > operator<=> (const list< _Tp, _Alloc > &__x, const list< _Tp,
_Alloc > &__y)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
__detail::__synth3way_t< pair< const _Key, _Tp > > operator<=> (const map< _Key, _Tp, _Compare, _Alloc
> &__lhs, const map< _Key, _Tp, _Compare, _Alloc > &__rhs)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc >
__detail::__synth3way_t< pair< const _Key, _Tp > > operator<=> (const multimap< _Key, _Tp, _Compare,
_Alloc > &__lhs, const multimap< _Key, _Tp, _Compare, _Alloc > &__rhs)
• template<typename _Key , typename _Compare , typename _Alloc >
__detail::__synth3way_t< _Key > operator<=> (const multiset< _Key, _Compare, _Alloc > &__lhs, const
multiset< _Key, _Compare, _Alloc > &__rhs)
• template<typename _Key , typename _Compare , typename _Alloc >
__detail::__synth3way_t< _Key > operator<=> (const set< _Key, _Compare, _Alloc > &__lhs, const set<
_Key, _Compare, _Alloc > &__rhs)

Generated by Doxygen
4.11 std::__debug Namespace Reference 643

• template<typename _Tp , typename _Alloc >


constexpr __detail::__synth3way_t< _Tp > operator<=> (const vector< _Tp, _Alloc > &__x, const vector<
_Tp, _Alloc > &__y)
• template<typename _Tp , typename _Alloc >
bool operator== (const deque< _Tp, _Alloc > &__lhs, const deque< _Tp, _Alloc > &__rhs)
• template<typename _Tp , typename _Alloc >
bool operator== (const forward_list< _Tp, _Alloc > &__lx, const forward_list< _Tp, _Alloc > &__ly)
• template<typename _Tp , typename _Alloc >
bool operator== (const list< _Tp, _Alloc > &__lhs, const list< _Tp, _Alloc > &__rhs)
• template<typename _Key , typename _Tp , typename _Compare , typename _Allocator >
bool operator== (const map< _Key, _Tp, _Compare, _Allocator > &__lhs, const map< _Key, _Tp, _Compare,
_Allocator > &__rhs)
• template<typename _Key , typename _Tp , typename _Compare , typename _Allocator >
bool operator== (const multimap< _Key, _Tp, _Compare, _Allocator > &__lhs, const multimap< _Key, _Tp,
_Compare, _Allocator > &__rhs)
• template<typename _Key , typename _Compare , typename _Allocator >
bool operator== (const multiset< _Key, _Compare, _Allocator > &__lhs, const multiset< _Key, _Compare, _←-
Allocator > &__rhs)
• template<typename _Key , typename _Compare , typename _Allocator >
bool operator== (const set< _Key, _Compare, _Allocator > &__lhs, const set< _Key, _Compare, _Allocator >
&__rhs)
• template<typename _Key , typename _Tp , typename _Hash , typename _Pred , typename _Alloc >
bool operator== (const unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, const unordered_map<
_Key, _Tp, _Hash, _Pred, _Alloc > &__y)
• template<typename _Key , typename _Tp , typename _Hash , typename _Pred , typename _Alloc >
bool operator== (const unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, const unordered_multimap<
_Key, _Tp, _Hash, _Pred, _Alloc > &__y)
• template<typename _Value , typename _Hash , typename _Pred , typename _Alloc >
bool operator== (const unordered_multiset< _Value, _Hash, _Pred, _Alloc > &__x, const unordered_multiset<
_Value, _Hash, _Pred, _Alloc > &__y)
• template<typename _Value , typename _Hash , typename _Pred , typename _Alloc >
bool operator== (const unordered_set< _Value, _Hash, _Pred, _Alloc > &__x, const unordered_set< _Value,
_Hash, _Pred, _Alloc > &__y)
• template<typename _Tp , typename _Alloc >
constexpr bool operator== (const vector< _Tp, _Alloc > &__lhs, const vector< _Tp, _Alloc > &__rhs)
• template<typename _CharT , typename _Traits , size_t _Nb>
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, bitset<
_Nb > &__x)
• template<size_t _Nb>
constexpr bitset< _Nb > operator∧ (const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
• template<size_t _Nb>
constexpr bitset< _Nb > operator| (const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
set (_InputIterator, _InputIterator, _Allocator) -> set< typename iterator_traits< _InputIterator >::value_type,
less< typename iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Compare = less<typename iterator_traits<_InputIterator>::value_type>, typename _←-
Allocator = allocator<typename iterator_traits<_InputIterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocator<_Compare>, typename = _RequireAllocator<_Allocator>>
set (_InputIterator, _InputIterator, _Compare=_Compare(), _Allocator=_Allocator()) -> set< typename
iterator_traits< _InputIterator >::value_type, _Compare, _Allocator >
• template<typename _Key , typename _Allocator , typename = _RequireAllocator<_Allocator>>
set (initializer_list< _Key >, _Allocator) -> set< _Key, less< _Key >, _Allocator >

Generated by Doxygen
644

• template<typename _Key , typename _Compare = less<_Key>, typename _Allocator = allocator<_Key>, typename = _RequireNot←-
Allocator<_Compare>, typename = _RequireAllocator<_Allocator>>
set (initializer_list< _Key >, _Compare=_Compare(), _Allocator=_Allocator()) -> set< _Key, _Compare, _←-
Allocator >
• template<typename _Tp , typename _Alloc >
void swap (deque< _Tp, _Alloc > &__lhs, deque< _Tp, _Alloc > &__rhs) noexcept(/∗conditional ∗/)
• template<typename _Tp , typename _Alloc >
void swap (forward_list< _Tp, _Alloc > &__lx, forward_list< _Tp, _Alloc > &__ly) noexcept(noexcept(__lx.←-
swap(__ly)))
• template<typename _Tp , typename _Alloc >
void swap (list< _Tp, _Alloc > &__lhs, list< _Tp, _Alloc > &__rhs) noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Tp , typename _Compare , typename _Allocator >
void swap (map< _Key, _Tp, _Compare, _Allocator > &__lhs, map< _Key, _Tp, _Compare, _Allocator > &__rhs)
noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Tp , typename _Compare , typename _Allocator >
void swap (multimap< _Key, _Tp, _Compare, _Allocator > &__lhs, multimap< _Key, _Tp, _Compare, _Allocator
> &__rhs) noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Compare , typename _Allocator >
void swap (multiset< _Key, _Compare, _Allocator > &__x, multiset< _Key, _Compare, _Allocator > &__←-
y) noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Compare , typename _Allocator >
void swap (set< _Key, _Compare, _Allocator > &__x, set< _Key, _Compare, _Allocator > &__←-
y) noexcept(/∗conditional ∗/)
• template<typename _Key , typename _Tp , typename _Hash , typename _Pred , typename _Alloc >
void swap (unordered_map< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, unordered_map< _Key, _Tp, _Hash,
_Pred, _Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<typename _Key , typename _Tp , typename _Hash , typename _Pred , typename _Alloc >
void swap (unordered_multimap< _Key, _Tp, _Hash, _Pred, _Alloc > &__x, unordered_multimap< _Key, _Tp,
_Hash, _Pred, _Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<typename _Value , typename _Hash , typename _Pred , typename _Alloc >
void swap (unordered_multiset< _Value, _Hash, _Pred, _Alloc > &__x, unordered_multiset< _Value, _Hash,
_Pred, _Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<typename _Value , typename _Hash , typename _Pred , typename _Alloc >
void swap (unordered_set< _Value, _Hash, _Pred, _Alloc > &__x, unordered_set< _Value, _Hash, _Pred, _←-
Alloc > &__y) noexcept(noexcept(__x.swap(__y)))
• template<typename _Tp , typename _Alloc >
constexpr void swap (vector< _Tp, _Alloc > &__lhs, vector< _Tp, _Alloc > &__rhs) noexcept(/∗conditional ∗/)
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_map (_InputIterator, _InputIterator, _Allocator) -> unordered_map< __iter_key_t< _InputIterator >,
__iter_val_t< _InputIterator >, hash< __iter_key_t< _InputIterator > >, equal_to< __iter_key_t< _InputIterator
> >, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_map (_InputIterator, _InputIterator, typename unordered_map< int, int >::size_type, _Allocator) ->
unordered_map< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, hash< __iter_key_t< _Input←-
Iterator > >, equal_to< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_map (_InputIterator, _InputIterator, typename unordered_map< int, int >::size_type, _Hash, ←-
_Allocator) -> unordered_map< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, _Hash,
equal_to< __iter_key_t< _InputIterator > >, _Allocator >

Generated by Doxygen
4.11 std::__debug Namespace Reference 645

• template<typename _InputIterator , typename _Hash = hash<__iter_key_t<_InputIterator>>, typename _Pred = equal_to<__iter_key_←-


t<_InputIterator>>, typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_map (_InputIterator, _InputIterator, typename unordered_map< int, int >::size_type={}, _Hash=_←-
Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_map< __iter_key_t< _InputIterator >, __iter_←-
val_t< _InputIterator >, _Hash, _Pred, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, _Allocator) -> unordered_map< _Key, _Tp, hash< _Key
>, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, typename unordered_map< int, int >::size_type, _←-
Allocator) -> unordered_map< _Key, _Tp, hash< _Key >, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>,
typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, typename unordered_map< int, int >::size_type, _Hash,
_Allocator) -> unordered_map< _Key, _Tp, _Hash, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash = hash<_Key>, typename _Pred = equal_to<_Key>, typename _Allocator
= allocator<pair<const _Key, _Tp>>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>,
typename = _RequireAllocator<_Allocator>>
unordered_map (initializer_list< pair< _Key, _Tp > >, typename unordered_map< int, int >::size_type={},
_Hash=_Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_map< _Key, _Tp, _Hash, _Pred, _←-
Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_multimap (_InputIterator, _InputIterator, _Allocator) -> unordered_multimap< __iter_key_t< _←-
InputIterator >, __iter_val_t< _InputIterator >, hash< __iter_key_t< _InputIterator > >, equal_to< __iter_←-
key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_multimap (_InputIterator, _InputIterator, unordered_multimap< int, int >::size_type, _Allocator) ->
unordered_multimap< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, hash< __iter_key_t< _←-
InputIterator > >, equal_to< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_multimap (_InputIterator, _InputIterator, unordered_multimap< int, int >::size_type, _Hash, _←-
Allocator) -> unordered_multimap< __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator >, _Hash,
equal_to< __iter_key_t< _InputIterator > >, _Allocator >
• template<typename _InputIterator , typename _Hash = hash<__iter_key_t<_InputIterator>>, typename _Pred = equal_to<__iter_key_←-
t<_InputIterator>>, typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, typename = _RequireInputIter<_InputIterator>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_multimap (_InputIterator, _InputIterator, unordered_multimap< int, int >::size_type={}, _Hash=_←-
Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multimap< __iter_key_t< _InputIterator >, __←-
iter_val_t< _InputIterator >, _Hash, _Pred, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_multimap (initializer_list< pair< _Key, _Tp > >, _Allocator) -> unordered_multimap< _Key, _Tp,
hash< _Key >, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_multimap (initializer_list< pair< _Key, _Tp > >, unordered_multimap< int, int >::size_type, _←-
Allocator) -> unordered_multimap< _Key, _Tp, hash< _Key >, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>,
typename = _RequireAllocator<_Allocator>>

Generated by Doxygen
646

unordered_multimap (initializer_list< pair< _Key, _Tp > >, unordered_multimap< int, int >::size_type, _Hash,
_Allocator) -> unordered_multimap< _Key, _Tp, _Hash, equal_to< _Key >, _Allocator >
• template<typename _Key , typename _Tp , typename _Hash = hash<_Key>, typename _Pred = equal_to<_Key>, typename _Allocator
= allocator<pair<const _Key, _Tp>>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>,
typename = _RequireAllocator<_Allocator>>
unordered_multimap (initializer_list< pair< _Key, _Tp > >, unordered_multimap< int, int >::size_type={}, ←-
_Hash=_Hash(), _Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multimap< _Key, _Tp, _Hash, _Pred,
_Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_multiset (_InputIterator, _InputIterator, unordered_multiset< int >::size_type, _Allocator) ->
unordered_multiset< typename iterator_traits< _InputIterator >::value_type, hash< typename iterator_traits<
_InputIterator >::value_type >, equal_to< typename iterator_traits< _InputIterator >::value_type >, _Allocator
>
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_multiset (_InputIterator, _InputIterator, unordered_multiset< int >::size_type, _Hash, _Allocator) -
> unordered_multiset< typename iterator_traits< _InputIterator >::value_type, _Hash, equal_to< typename
iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Hash = hash<typename iterator_traits<_InputIterator>::value_type>, typename _Pred
= equal_to<typename iterator_traits<_InputIterator>::value_type>, typename _Allocator = allocator<typename iterator_traits<_Input←-
Iterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename
= _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_Allocator>>
unordered_multiset (_InputIterator, _InputIterator, unordered_multiset< int >::size_type={}, _Hash=_Hash(),
_Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multiset< typename iterator_traits< _InputIterator >←-
::value_type, _Hash, _Pred, _Allocator >
• template<typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_multiset (initializer_list< _Tp >, unordered_multiset< int >::size_type, _Allocator) -> unordered←-
_multiset< _Tp, hash< _Tp >, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = ←-
_RequireAllocator<_Allocator>>
unordered_multiset (initializer_list< _Tp >, unordered_multiset< int >::size_type, _Hash, _Allocator) ->
unordered_multiset< _Tp, _Hash, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash = hash<_Tp>, typename _Pred = equal_to<_Tp>, typename _Allocator = allocator<_Tp>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_multiset (initializer_list< _Tp >, unordered_multiset< int >::size_type={}, _Hash=_Hash(), _←-
Pred=_Pred(), _Allocator=_Allocator()) -> unordered_multiset< _Tp, _Hash, _Pred, _Allocator >
• template<typename _InputIterator , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename = _Require←-
Allocator<_Allocator>>
unordered_set (_InputIterator, _InputIterator, unordered_set< int >::size_type, _Allocator) -> unordered_←-
set< typename iterator_traits< _InputIterator >::value_type, hash< typename iterator_traits< _InputIterator >←-
::value_type >, equal_to< typename iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Hash , typename _Allocator , typename = _RequireInputIter<_InputIterator>, typename =
_RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireAllocator<_Allocator>>
unordered_set (_InputIterator, _InputIterator, unordered_set< int >::size_type, _Hash, _Allocator) ->
unordered_set< typename iterator_traits< _InputIterator >::value_type, _Hash, equal_to< typename
iterator_traits< _InputIterator >::value_type >, _Allocator >
• template<typename _InputIterator , typename _Hash = hash<typename iterator_traits<_InputIterator>::value_type>, typename _Pred
= equal_to<typename iterator_traits<_InputIterator>::value_type>, typename _Allocator = allocator<typename iterator_traits<_Input←-
Iterator>::value_type>, typename = _RequireInputIter<_InputIterator>, typename = _RequireNotAllocatorOrIntegral<_Hash>, typename
= _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_Allocator>>
unordered_set (_InputIterator, _InputIterator, unordered_set< int >::size_type={}, _Hash=_Hash(), _Pred=_←-

Generated by Doxygen
4.12 std::__detail Namespace Reference 647

Pred(), _Allocator=_Allocator()) -> unordered_set< typename iterator_traits< _InputIterator >::value_type, _←-


Hash, _Pred, _Allocator >
• template<typename _Tp , typename _Allocator , typename = _RequireAllocator<_Allocator>>
unordered_set (initializer_list< _Tp >, unordered_set< int >::size_type, _Allocator) -> unordered_set< _Tp,
hash< _Tp >, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash , typename _Allocator , typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = ←-
_RequireAllocator<_Allocator>>
unordered_set (initializer_list< _Tp >, unordered_set< int >::size_type, _Hash, _Allocator) -> unordered_set<
_Tp, _Hash, equal_to< _Tp >, _Allocator >
• template<typename _Tp , typename _Hash = hash<_Tp>, typename _Pred = equal_to<_Tp>, typename _Allocator = allocator<_Tp>,
typename = _RequireNotAllocatorOrIntegral<_Hash>, typename = _RequireNotAllocator<_Pred>, typename = _RequireAllocator<_←-
Allocator>>
unordered_set (initializer_list< _Tp >, unordered_set< int >::size_type={}, _Hash=_Hash(), _Pred=_Pred(),
_Allocator=_Allocator()) -> unordered_set< _Tp, _Hash, _Pred, _Allocator >
• template<typename _InputIterator , typename _ValT = typename iterator_traits<_InputIterator>::value_type, typename _Allocator =
allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = _RequireAllocator<_Allocator>>
vector (_InputIterator, _InputIterator, _Allocator=_Allocator()) -> vector< _ValT, _Allocator >
• template<typename _Tp , typename _Allocator = allocator<_Tp>, typename = _RequireAllocator<_Allocator>>
vector (size_t, _Tp, _Allocator=_Allocator()) -> vector< _Tp, _Allocator >

4.11.1 Detailed Description

GNU debug code, replaces standard behavior with debug behavior.


Macros and namespaces used by the implementation outside of debug wrappers to verify certain properties. The _←-
_glibcxx_requires_xxx macros are merely wrappers around the __glibcxx_check_xxx wrappers when we are compiling
with debug mode, but disappear when we are in release mode so that there is no checking performed in, e.g., the
standard library algorithms.

4.11.2 Function Documentation

swap()

template<typename _Tp , typename _Alloc >


void std::__debug::swap (
forward_list< _Tp, _Alloc > & __lx,
forward_list< _Tp, _Alloc > & __ly) [inline], [noexcept]
See std::forward_list::swap().

4.12 std::__detail Namespace Reference


Classes

• struct _BracketMatcher
• class _Compiler
• class _Executor
• struct _List_node_base
• struct _List_node_header
• struct _Quoted_string
• class _Scanner
• class _StateSeq

Generated by Doxygen
648

Typedefs

• using __bare_timed_wait
• using __bare_wait
• template<typename _Tp , typename _Up >
using __cmp3way_res_t
• using __enters_timed_wait
• using __enters_wait
• using __platform_wait_t
• template<typename _Tp >
using __unsigned_least_t
• using __wait_clock_t
• template<typename _CharT >
using _Matcher
• typedef long _StateIdT

Enumerations

• enum class __futex_wait_flags : int {


__private_flag , __wait , __wake , __wait_bitset ,
__wake_bitset , __wait_private , __wake_private , __wait_bitset_private ,
__wake_bitset_private , __bitset_match_any }
• enum _Opcode : int {
_S_opcode_unknown , _S_opcode_alternative , _S_opcode_repeat , _S_opcode_backref ,
_S_opcode_line_begin_assertion , _S_opcode_line_end_assertion , _S_opcode_word_boundary , _S_←-
opcode_subexpr_lookahead ,
_S_opcode_subexpr_begin , _S_opcode_subexpr_end , _S_opcode_dummy , _S_opcode_match ,
_S_opcode_accept }
• enum class _RegexExecutorPolicy : int { _S_auto , _S_alternate }

Functions

• template<typename _Res , typename _Tp >


constexpr _Res __abs_r (_Tp __val)
• template<typename >
void __abs_r (bool)=delete
• template<typename _Tp >
bool __atomic_compare (const _Tp &__a, const _Tp &__b)
• template<typename _Pred , typename _Spin = __default_spin_policy>
bool __atomic_spin (_Pred &__pred, _Spin __spin=_Spin{ }) noexcept
• template<typename _ChTraits >
constexpr auto __char_traits_cmp_cat (int __cmp) noexcept
• template<typename... _Ts>
constexpr auto __common_cmp_cat ()
• template<typename _Clock , typename _Dur >
bool __cond_wait_until (__condvar &__cv, mutex &__mx, const chrono::time_point< _Clock, _Dur > &__atime)
• template<typename _Clock , typename _Dur >
bool __cond_wait_until_impl (__condvar &__cv, mutex &__mx, const chrono::time_point< _Clock, _Dur > &←-
__atime)
• template<typename _Container , typename _UnsafeContainer , typename _Predicate >
_Container::size_type __erase_nodes_if (_Container &__cont, _UnsafeContainer &__ucont, _Predicate __pred)
• template<typename _ValT , typename _CharT , typename _Traits >
basic_istream< _CharT, _Traits > & __extract_params (basic_istream< _CharT, _Traits > &__is, vector< _ValT
> &__vals, size_t __n)

Generated by Doxygen
4.12 std::__detail Namespace Reference 649

• template<bool _DecOnly, typename _Tp >


constexpr bool __from_chars_alnum (const char ∗&__first, const char ∗__last, _Tp &__val, int __base)
• template<bool _DecOnly = false>
constexpr unsigned char __from_chars_alnum_to_val (unsigned char __c)
• template<bool _DecOnly, typename _Tp >
constexpr bool __from_chars_pow2_base (const char ∗&__first, const char ∗__last, _Tp &__val, int __base)
• template<typename _Tp >
constexpr _Tp __gcd (_Tp __m, _Tp __n)
• template<typename _Tp >
_Tp ∗ __get_temporary_buffer (ptrdiff_t __len) noexcept
• template<typename _Tp >
constexpr bool __p1_representable_as_double (_Tp __x) noexcept
• template<typename _Tp >
void __platform_notify (const _Tp ∗__addr, bool __all) noexcept
• template<typename _Tp >
void __platform_wait (const _Tp ∗__addr, __platform_wait_t __val) noexcept
• template<typename _Clock , typename _Dur >
bool __platform_wait_until (const __platform_wait_t ∗__addr, __platform_wait_t __old, const chrono::time_point<
_Clock, _Dur > &__atime)
• template<typename _Dur >
bool __platform_wait_until_impl (const __platform_wait_t ∗__addr, __platform_wait_t __old, const
chrono::time_point< __wait_clock_t, _Dur > &__atime) noexcept
• template<typename _Tp >
constexpr bool __raise_and_add (_Tp &__val, int __base, unsigned char __c)
• template<typename _BiIter , typename _Alloc , typename _CharT , typename _TraitsT >
bool __regex_algo_impl (_BiIter __s, _BiIter __e, match_results< _BiIter, _Alloc > &__m, const basic_regex<
_CharT, _TraitsT > &__re, regex_constants::match_flag_type __flags, _RegexExecutorPolicy __policy, bool __←-
match_mode)
• template<typename _Tp >
constexpr bool __representable_as_double (_Tp __x) noexcept
• template<typename _Tp >
void __return_temporary_buffer (_Tp ∗__p, size_t __len)
• void __thread_relax () noexcept
• void __thread_yield () noexcept
• template<typename _Tp >
constexpr to_chars_result __to_chars (char ∗__first, char ∗__last, _Tp __val, int __base) noexcept
• template<typename _Tp >
constexpr to_chars_result __to_chars_10 (char ∗__first, char ∗__last, _Tp __val) noexcept
• template<typename _Tp >
constexpr void __to_chars_10_impl (char ∗__first, unsigned __len, _Tp __val) noexcept
• template<typename _Tp >
constexpr to_chars_result __to_chars_16 (char ∗__first, char ∗__last, _Tp __val) noexcept
• template<typename _Tp >
constexpr to_chars_result __to_chars_2 (char ∗__first, char ∗__last, _Tp __val) noexcept
• template<typename _Tp >
constexpr to_chars_result __to_chars_8 (char ∗__first, char ∗__last, _Tp __val) noexcept
• template<typename _Tp >
constexpr unsigned __to_chars_len (_Tp __value, int __base) noexcept
• template<typename _Tp >
constexpr unsigned __to_chars_len_2 (_Tp __value) noexcept
• template<typename _Dur >
__wait_clock_t::time_point __to_wait_clock (const chrono::time_point< __wait_clock_t, _Dur > &__atime)
noexcept

Generated by Doxygen
650

• template<typename _Clock , typename _Dur >


__wait_clock_t::time_point __to_wait_clock (const chrono::time_point< _Clock, _Dur > &__atime) noexcept
• template<typename _CharT , typename _Traits , typename _String >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
_Quoted_string< _String, _CharT > &__str)
• template<typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
_Quoted_string< const _CharT ∗, _CharT > &__str)
• template<typename _CharT , typename _Traits , typename _Alloc >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, const
_Quoted_string< basic_string< _CharT, _Traits, _Alloc > &, _CharT > &__str)

Variables

• constexpr auto __atomic_spin_count


• constexpr auto __atomic_spin_count_relax
• template<typename _Tp >
constexpr unsigned __cmp_cat_id
• template<> constexpr unsigned __cmp_cat_id< partial_ordering >
• template<> constexpr unsigned __cmp_cat_id< strong_ordering >
• template<> constexpr unsigned __cmp_cat_id< weak_ordering >
• constexpr size_t __platform_wait_alignment
• constexpr _StateIdT _S_invalid_state_id

4.12.1 Detailed Description

Implementation details not part of the namespace std interface.

4.12.2 Function Documentation

__from_chars_alnum()

template<bool _DecOnly, typename _Tp >


bool std::__detail::__from_chars_alnum (
const char ∗& __first,
const char ∗ __last,
_Tp & __val,
int __base) [constexpr]
std::from_chars implementation for integers in any base. If _DecOnly is true, then we may assume __base is at most
10.

__from_chars_pow2_base()

template<bool _DecOnly, typename _Tp >


bool std::__detail::__from_chars_pow2_base (
const char ∗& __first,
const char ∗ __last,
_Tp & __val,
int __base) [constexpr]
std::from_chars implementation for integers in a power-of-two base. If _DecOnly is true, then we may assume __base
is at most 8.

Generated by Doxygen
4.13 std::__parallel Namespace Reference 651

operator<<() [1/2]

template<typename _CharT , typename _Traits , typename _String >


std::basic_ostream< _CharT, _Traits > & std::__detail::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const _Quoted_string< _String, _CharT > & __str)
Inserter for quoted strings.

operator<<() [2/2]

template<typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & std::__detail::operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const _Quoted_string< const _CharT ∗, _CharT > & __str)
Inserter for quoted strings.

operator>>()

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_istream< _CharT, _Traits > & std::__detail::operator>> (
std::basic_istream< _CharT, _Traits > & __is,
const _Quoted_string< basic_string< _CharT, _Traits, _Alloc > &, _CharT > & __str)
Extractor for delimited strings. The left and right delimiters can be different.
References std::basic_ios< _CharT, _Traits >::clear(), std::ios_base::flags(), std::basic_ios< _CharT, _Traits >::good(),
std::ios_base::setf(), std::ios_base::skipws, and std::basic_istream< _CharT, _Traits >::unget().

4.13 std::__parallel Namespace Reference


Classes

• struct _CRandNumber

Functions

• template<typename __RAIter , typename _Tp , typename _BinaryOperation >


_Tp __accumulate_switch (__RAIter __begin, __RAIter __end, _Tp __init, _BinaryOperation __binary_op,
random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter , typename _Tp , typename _BinaryOperation , typename _IteratorTag >
_Tp __accumulate_switch (_IIter __begin, _IIter __end, _Tp __init, _BinaryOperation __binary_op, _IteratorTag)
• template<typename _IIter , typename _Tp , typename _IteratorTag >
_Tp __accumulate_switch (_IIter __begin, _IIter __end, _Tp __init, _IteratorTag)
• template<typename _IIter , typename _Tp , typename _BinaryOper , typename _Tag >
_Tp __accumulate_switch (_IIter, _IIter, _Tp, _BinaryOper, _Tag)
• template<typename _IIter , typename _Tp , typename _Tag >
_Tp __accumulate_switch (_IIter, _IIter, _Tp, _Tag)
• template<typename _RAIter , typename _Tp , typename _BinaryOper >
_Tp __accumulate_switch (_RAIter, _RAIter, _Tp, _BinaryOper, random_access_iterator_tag, __gnu_parallel::_Parallelism
__parallelism=__gnu_parallel::parallel_unbalanced)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation , typename _IteratorTag1 , typename _IteratorTag2 >
_OutputIterator __adjacent_difference_switch (_IIter __begin, _IIter __end, _OutputIterator __result, _Binary←-
Operation __bin_op, _IteratorTag1, _IteratorTag2)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator __adjacent_difference_switch (_IIter __begin, _IIter __end, _OutputIterator __result, _Binary←-
Operation __bin_op, random_access_iterator_tag, random_access_iterator_tag, __gnu_parallel::_Parallelism ←-
__parallelism_tag)

Generated by Doxygen
652

• template<typename _IIter , typename _OIter , typename _BinaryOper , typename _Tag1 , typename _Tag2 >
_OIter __adjacent_difference_switch (_IIter, _IIter, _OIter, _BinaryOper, _Tag1, _Tag2)
• template<typename _IIter , typename _OIter , typename _BinaryOper >
_OIter __adjacent_difference_switch (_IIter, _IIter, _OIter, _BinaryOper, random_access_iterator_tag,
random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism=__gnu_parallel::parallel_unbalanced)
• template<typename _FIter , typename _BiPredicate , typename _IterTag >
_FIter __adjacent_find_switch (_FIter, _FIter, _BiPredicate, _IterTag)
• template<typename _FIter , typename _IterTag >
_FIter __adjacent_find_switch (_FIter, _FIter, _IterTag)
• template<typename _FIterator , typename _BinaryPredicate , typename _IteratorTag >
_FIterator __adjacent_find_switch (_FIterator __begin, _FIterator __end, _BinaryPredicate __pred, _Iterator←-
Tag)
• template<typename _FIterator , typename _IteratorTag >
_FIterator __adjacent_find_switch (_FIterator __begin, _FIterator __end, _IteratorTag)
• template<typename _RAIter , typename _BinaryPredicate >
_RAIter __adjacent_find_switch (_RAIter __begin, _RAIter __end, _BinaryPredicate __pred, random_access_iterator_tag)
• template<typename _RAIter >
_RAIter __adjacent_find_switch (_RAIter __begin, _RAIter __end, random_access_iterator_tag)
• template<typename _RAIter , typename _BiPredicate >
_RAIter __adjacent_find_switch (_RAIter, _RAIter, _BiPredicate, random_access_iterator_tag)
• template<typename _IIter , typename _Predicate , typename _IteratorTag >
iterator_traits< _IIter >::difference_type __count_if_switch (_IIter __begin, _IIter __end, _Predicate __pred,
_IteratorTag)
• template<typename _IIter , typename _Predicate , typename _IterTag >
iterator_traits< _IIter >::difference_type __count_if_switch (_IIter, _IIter, _Predicate, _IterTag)
• template<typename _RAIter , typename _Predicate >
iterator_traits< _RAIter >::difference_type __count_if_switch (_RAIter __begin, _RAIter __end, _Predicate _←-
_pred, random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter , typename _Tp , typename _IteratorTag >
iterator_traits< _IIter >::difference_type __count_switch (_IIter __begin, _IIter __end, const _Tp &__value, _←-
IteratorTag)
• template<typename _IIter , typename _Tp , typename _IterTag >
iterator_traits< _IIter >::difference_type __count_switch (_IIter, _IIter, const _Tp &, _IterTag)
• template<typename _RAIter , typename _Tp >
iterator_traits< _RAIter >::difference_type __count_switch (_RAIter __begin, _RAIter __end, const _Tp &__←-
value, random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _IteratorTag1 , typename _IteratorTag2 >
bool __equal_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Predicate __pred,
_IteratorTag1, _IteratorTag2)
• template<typename _RAIter1 , typename _RAIter2 , typename _Predicate >
bool __equal_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter2 __end2, _Predicate
__pred, random_access_iterator_tag, random_access_iterator_tag)
• template<typename _IIter , typename _FIterator , typename _BinaryPredicate , typename _IteratorTag1 , typename _IteratorTag2 >
_IIter __find_first_of_switch (_IIter __begin1, _IIter __end1, _FIterator __begin2, _FIterator __end2, _Binary←-
Predicate __comp, _IteratorTag1, _IteratorTag2)
• template<typename _IIter , typename _FIterator , typename _IteratorTag1 , typename _IteratorTag2 >
_IIter __find_first_of_switch (_IIter __begin1, _IIter __end1, _FIterator __begin2, _FIterator __end2, _Iterator←-
Tag1, _IteratorTag2)
• template<typename _IIter , typename _FIter , typename _BiPredicate , typename _IterTag1 , typename _IterTag2 >
_IIter __find_first_of_switch (_IIter, _IIter, _FIter, _FIter, _BiPredicate, _IterTag1, _IterTag2)
• template<typename _IIter , typename _FIter , typename _IterTag1 , typename _IterTag2 >
_IIter __find_first_of_switch (_IIter, _IIter, _FIter, _FIter, _IterTag1, _IterTag2)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 653

• template<typename _RAIter , typename _FIterator , typename _BinaryPredicate , typename _IteratorTag >


_RAIter __find_first_of_switch (_RAIter __begin1, _RAIter __end1, _FIterator __begin2, _FIterator __end2,
_BinaryPredicate __comp, random_access_iterator_tag, _IteratorTag)
• template<typename _RAIter , typename _FIter , typename _BiPredicate , typename _IterTag >
_RAIter __find_first_of_switch (_RAIter, _RAIter, _FIter, _FIter, _BiPredicate, random_access_iterator_tag, _←-
IterTag)
• template<typename _IIter , typename _Predicate , typename _IteratorTag >
_IIter __find_if_switch (_IIter __begin, _IIter __end, _Predicate __pred, _IteratorTag)
• template<typename _IIter , typename _Predicate , typename _IterTag >
_IIter __find_if_switch (_IIter, _IIter, _Predicate, _IterTag)
• template<typename _RAIter , typename _Predicate >
_RAIter __find_if_switch (_RAIter __begin, _RAIter __end, _Predicate __pred, random_access_iterator_tag)
• template<typename _IIter , typename _Tp , typename _IteratorTag >
_IIter __find_switch (_IIter __begin, _IIter __end, const _Tp &__val, _IteratorTag)
• template<typename _IIter , typename _Tp , typename _IterTag >
_IIter __find_switch (_IIter, _IIter, const _Tp &, _IterTag)
• template<typename _RAIter , typename _Tp >
_RAIter __find_switch (_RAIter __begin, _RAIter __end, const _Tp &__val, random_access_iterator_tag)
• template<typename _IIter , typename _Function , typename _IteratorTag >
_Function __for_each_switch (_IIter __begin, _IIter __end, _Function __f, _IteratorTag)
• template<typename _IIter , typename _Function , typename _IterTag >
_Function __for_each_switch (_IIter, _IIter, _Function, _IterTag)
• template<typename _RAIter , typename _Function >
_Function __for_each_switch (_RAIter __begin, _RAIter __end, _Function __f, random_access_iterator_tag,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _OIter , typename _Size , typename _Generator , typename _IterTag >
_OIter __generate_n_switch (_OIter, _Size, _Generator, _IterTag)
• template<typename _OutputIterator , typename _Size , typename _Generator , typename _IteratorTag >
_OutputIterator __generate_n_switch (_OutputIterator __begin, _Size __n, _Generator __gen, _IteratorTag)
• template<typename _RAIter , typename _Size , typename _Generator >
_RAIter __generate_n_switch (_RAIter __begin, _Size __n, _Generator __gen, random_access_iterator_tag,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIter , typename _Generator , typename _IterTag >
void __generate_switch (_FIter, _FIter, _Generator, _IterTag)
• template<typename _FIterator , typename _Generator , typename _IteratorTag >
void __generate_switch (_FIterator __begin, _FIterator __end, _Generator __gen, _IteratorTag)
• template<typename _RAIter , typename _Generator >
void __generate_switch (_RAIter __begin, _RAIter __end, _Generator __gen, random_access_iterator_tag,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Tp , typename _BinaryFunction1 , typename _BinaryFunction2 , typename _←-
IteratorTag1 , typename _IteratorTag2 >
_Tp __inner_product_switch (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _Tp __init, _BinaryFunction1 _←-
_binary_op1, _BinaryFunction2 __binary_op2, _IteratorTag1, _IteratorTag2)
• template<typename _IIter1 , typename _IIter2 , typename _Tp , typename _BinaryFunction1 , typename _BinaryFunction2 , typename _Tag1
, typename _Tag2 >
_Tp __inner_product_switch (_IIter1, _IIter1, _IIter2, _Tp, _BinaryFunction1, _BinaryFunction2, _Tag1, _Tag2)
• template<typename _RAIter1 , typename _RAIter2 , typename _Tp , typename _BinaryFunction1 , typename _BinaryFunction2 >
_Tp __inner_product_switch (_RAIter1, _RAIter1, _RAIter2, _Tp, _BinaryFunction1, _BinaryFunction2,
random_access_iterator_tag, random_access_iterator_tag, __gnu_parallel::_Parallelism=__gnu_parallel::parallel_unbalanced)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _IteratorTag1 , typename _IteratorTag2 >
bool __lexicographical_compare_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_Predicate __pred, _IteratorTag1, _IteratorTag2)

Generated by Doxygen
654

• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _IterTag1 , typename _IterTag2 >
bool __lexicographical_compare_switch (_IIter1, _IIter1, _IIter2, _IIter2, _Predicate, _IterTag1, _IterTag2)
• template<typename _RAIter1 , typename _RAIter2 , typename _Predicate >
bool __lexicographical_compare_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter2
__end2, _Predicate __pred, random_access_iterator_tag, random_access_iterator_tag)
• template<typename _FIter , typename _Compare , typename _IterTag >
_FIter __max_element_switch (_FIter, _FIter, _Compare, _IterTag)
• template<typename _FIterator , typename _Compare , typename _IteratorTag >
_FIterator __max_element_switch (_FIterator __begin, _FIterator __end, _Compare __comp, _IteratorTag)
• template<typename _RAIter , typename _Compare >
_RAIter __max_element_switch (_RAIter __begin, _RAIter __end, _Compare __comp, random_access_iterator_tag,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Compare , typename _IteratorTag1 , typename _←-
IteratorTag2 , typename _IteratorTag3 >
_OutputIterator __merge_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __result, _Compare __comp, _IteratorTag1, _IteratorTag2, _IteratorTag3)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Compare >
_OutputIterator __merge_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, ←-
_OutputIterator __result, _Compare __comp, random_access_iterator_tag, random_access_iterator_tag,
random_access_iterator_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare , typename _IterTag1 , typename _IterTag2 , type-
name _IterTag3 >
_OIter __merge_switch (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare, _IterTag1, _IterTag2, _IterTag3)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >
_OIter __merge_switch (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare, random_access_iterator_tag,
random_access_iterator_tag, random_access_iterator_tag)
• template<typename _FIter , typename _Compare , typename _IterTag >
_FIter __min_element_switch (_FIter, _FIter, _Compare, _IterTag)
• template<typename _FIterator , typename _Compare , typename _IteratorTag >
_FIterator __min_element_switch (_FIterator __begin, _FIterator __end, _Compare __comp, _IteratorTag)
• template<typename _RAIter , typename _Compare >
_RAIter __min_element_switch (_RAIter __begin, _RAIter __end, _Compare __comp, random_access_iterator_tag,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _IteratorTag1 , typename _IteratorTag2 >
pair< _IIter1, _IIter2 > __mismatch_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_Predicate __pred, _IteratorTag1, _IteratorTag2)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _IteratorTag1 , typename _IteratorTag2 >
pair< _IIter1, _IIter2 > __mismatch_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _Predicate _←-
_pred, _IteratorTag1, _IteratorTag2)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _IterTag1 , typename _IterTag2 >
pair< _IIter1, _IIter2 > __mismatch_switch (_IIter1, _IIter1, _IIter2, _Predicate, _IterTag1, _IterTag2)
• template<typename _RAIter1 , typename _RAIter2 , typename _Predicate >
pair< _RAIter1, _RAIter2 > __mismatch_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2,
_Predicate __pred, random_access_iterator_tag, random_access_iterator_tag)
• template<typename _RAIter1 , typename _RAIter2 , typename _Predicate >
pair< _RAIter1, _RAIter2 > __mismatch_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2,
_RAIter2 __end2, _Predicate __pred, random_access_iterator_tag, random_access_iterator_tag)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation , typename _IteratorTag1 , typename _IteratorTag2 >
_OutputIterator __partial_sum_switch (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation
__bin_op, _IteratorTag1, _IteratorTag2)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator __partial_sum_switch (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation
__bin_op, random_access_iterator_tag, random_access_iterator_tag)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 655

• template<typename _IIter , typename _OIter , typename _BinaryOper , typename _Tag1 , typename _Tag2 >
_OIter __partial_sum_switch (_IIter, _IIter, _OIter, _BinaryOper, _Tag1, _Tag2)
• template<typename _IIter , typename _OIter , typename _BinaryOper >
_OIter __partial_sum_switch (_IIter, _IIter, _OIter, _BinaryOper, random_access_iterator_tag, random_access_iterator_tag)
• template<typename _FIter , typename _Predicate , typename _IterTag >
_FIter __partition_switch (_FIter, _FIter, _Predicate, _IterTag)
• template<typename _FIterator , typename _Predicate , typename _IteratorTag >
_FIterator __partition_switch (_FIterator __begin, _FIterator __end, _Predicate __pred, _IteratorTag)
• template<typename _RAIter , typename _Predicate >
_RAIter __partition_switch (_RAIter __begin, _RAIter __end, _Predicate __pred, random_access_iterator_tag)
• template<typename _FIter , typename _Predicate , typename _Tp , typename _IterTag >
void __replace_if_switch (_FIter, _FIter, _Predicate, const _Tp &, _IterTag)
• template<typename _FIterator , typename _Predicate , typename _Tp , typename _IteratorTag >
void __replace_if_switch (_FIterator __begin, _FIterator __end, _Predicate __pred, const _Tp &__new_value,
_IteratorTag)
• template<typename _RAIter , typename _Predicate , typename _Tp >
void __replace_if_switch (_RAIter __begin, _RAIter __end, _Predicate __pred, const _Tp &__new_value,
random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIter , typename _Tp , typename _IterTag >
void __replace_switch (_FIter, _FIter, const _Tp &, const _Tp &, _IterTag)
• template<typename _FIterator , typename _Tp , typename _IteratorTag >
void __replace_switch (_FIterator __begin, _FIterator __end, const _Tp &__old_value, const _Tp &__new_value,
_IteratorTag)
• template<typename _RAIter , typename _Tp >
void __replace_switch (_RAIter __begin, _RAIter __end, const _Tp &__old_value, const _Tp &__new_value,
random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIter , typename _Integer , typename _Tp , typename _BiPredicate , typename _IterTag >
_FIter __search_n_switch (_FIter, _FIter, _Integer, const _Tp &, _BiPredicate, _IterTag)
• template<typename _FIterator , typename _Integer , typename _Tp , typename _BinaryPredicate , typename _IteratorTag >
_FIterator __search_n_switch (_FIterator __begin, _FIterator __end, _Integer __count, const _Tp &__val, _←-
BinaryPredicate __binary_pred, _IteratorTag)
• template<typename _RAIter , typename _Integer , typename _Tp , typename _BinaryPredicate >
_RAIter __search_n_switch (_RAIter __begin, _RAIter __end, _Integer __count, const _Tp &__val, _Binary←-
Predicate __binary_pred, random_access_iterator_tag)
• template<typename _RAIter , typename _Integer , typename _Tp , typename _BiPredicate >
_RAIter __search_n_switch (_RAIter, _RAIter, _Integer, const _Tp &, _BiPredicate, random_access_iterator_tag)
• template<typename _FIter1 , typename _FIter2 , typename _BiPredicate , typename _IterTag1 , typename _IterTag2 >
_FIter1 __search_switch (_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate, _IterTag1, _IterTag2)
• template<typename _FIter1 , typename _FIter2 , typename _IterTag1 , typename _IterTag2 >
_FIter1 __search_switch (_FIter1, _FIter1, _FIter2, _FIter2, _IterTag1, _IterTag2)
• template<typename _FIterator1 , typename _FIterator2 , typename _BinaryPredicate , typename _IteratorTag1 , typename _IteratorTag2 >
_FIterator1 __search_switch (_FIterator1 __begin1, _FIterator1 __end1, _FIterator2 __begin2, _FIterator2 __←-
end2, _BinaryPredicate __pred, _IteratorTag1, _IteratorTag2)
• template<typename _FIterator1 , typename _FIterator2 , typename _IteratorTag1 , typename _IteratorTag2 >
_FIterator1 __search_switch (_FIterator1 __begin1, _FIterator1 __end1, _FIterator2 __begin2, _FIterator2 __←-
end2, _IteratorTag1, _IteratorTag2)
• template<typename _RAIter1 , typename _RAIter2 , typename _BinaryPredicate >
_RAIter1 __search_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter2 __end2, _←-
BinaryPredicate __pred, random_access_iterator_tag, random_access_iterator_tag)
• template<typename _RAIter1 , typename _RAIter2 >
_RAIter1 __search_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter2 __end2,
random_access_iterator_tag, random_access_iterator_tag)

Generated by Doxygen
656

• template<typename _RAIter1 , typename _RAIter2 , typename _BiPredicate >


_RAIter1 __search_switch (_RAIter1, _RAIter1, _RAIter2, _RAIter2, _BiPredicate, random_access_iterator_tag,
random_access_iterator_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OutputIterator , typename _IteratorTag1 , typename _←-
IteratorTag2 , typename _IteratorTag3 >
_OutputIterator __set_difference_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_OutputIterator __result, _Predicate __pred, _IteratorTag1, _IteratorTag2, _IteratorTag3)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OIter , typename _IterTag1 , typename _IterTag2 , type-
name _IterTag3 >
_OIter __set_difference_switch (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, _IterTag1, _IterTag2, _Iter←-
Tag3)
• template<typename _RAIter1 , typename _RAIter2 , typename _Output_RAIter , typename _Predicate >
_Output_RAIter __set_difference_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter2
__end2, _Output_RAIter __result, _Predicate __pred, random_access_iterator_tag, random_access_iterator_tag,
random_access_iterator_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OutputIterator , typename _IteratorTag1 , typename _←-
IteratorTag2 , typename _IteratorTag3 >
_OutputIterator __set_intersection_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_OutputIterator __result, _Predicate __pred, _IteratorTag1, _IteratorTag2, _IteratorTag3)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OIter , typename _IterTag1 , typename _IterTag2 , type-
name _IterTag3 >
_OIter __set_intersection_switch (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, _IterTag1, _IterTag2, _←-
IterTag3)
• template<typename _RAIter1 , typename _RAIter2 , typename _Output_RAIter , typename _Predicate >
_Output_RAIter __set_intersection_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter2
__end2, _Output_RAIter __result, _Predicate __pred, random_access_iterator_tag, random_access_iterator_tag,
random_access_iterator_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OutputIterator , typename _IteratorTag1 , typename _←-
IteratorTag2 , typename _IteratorTag3 >
_OutputIterator __set_symmetric_difference_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2
__end2, _OutputIterator __result, _Predicate __pred, _IteratorTag1, _IteratorTag2, _IteratorTag3)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OIter , typename _IterTag1 , typename _IterTag2 , type-
name _IterTag3 >
_OIter __set_symmetric_difference_switch (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, _IterTag1, _←-
IterTag2, _IterTag3)
• template<typename _RAIter1 , typename _RAIter2 , typename _Output_RAIter , typename _Predicate >
_Output_RAIter __set_symmetric_difference_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 ←-
__begin2, _RAIter2 __end2, _Output_RAIter __result, _Predicate __pred, random_access_iterator_tag,
random_access_iterator_tag, random_access_iterator_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OutputIterator , typename _IteratorTag1 , typename _←-
IteratorTag2 , typename _IteratorTag3 >
_OutputIterator __set_union_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _←-
OutputIterator __result, _Predicate __pred, _IteratorTag1, _IteratorTag2, _IteratorTag3)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate , typename _OIter , typename _IterTag1 , typename _IterTag2 , type-
name _IterTag3 >
_OIter __set_union_switch (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, _IterTag1, _IterTag2, _IterTag3)
• template<typename _RAIter1 , typename _RAIter2 , typename _Output_RAIter , typename _Predicate >
_Output_RAIter __set_union_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter2 _←-
_end2, _Output_RAIter __result, _Predicate __pred, random_access_iterator_tag, random_access_iterator_tag,
random_access_iterator_tag)
• template<typename _IIter , typename _OIter , typename _UnaryOperation , typename _IterTag1 , typename _IterTag2 >
_OIter __transform1_switch (_IIter, _IIter, _OIter, _UnaryOperation, _IterTag1, _IterTag2)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 657

• template<typename _RAIIter , typename _RAOIter , typename _UnaryOperation >


_RAOIter __transform1_switch (_RAIIter, _RAIIter, _RAOIter, _UnaryOperation, random_access_iterator_tag,
random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism=__gnu_parallel::parallel_balanced)
• template<typename _RAIter1 , typename _RAIter2 , typename _UnaryOperation , typename _IteratorTag1 , typename _IteratorTag2 >
_RAIter2 __transform1_switch (_RAIter1 __begin, _RAIter1 __end, _RAIter2 __result, _UnaryOperation __←-
unary_op, _IteratorTag1, _IteratorTag2)
• template<typename _RAIter1 , typename _RAIter2 , typename _UnaryOperation >
_RAIter2 __transform1_switch (_RAIter1 __begin, _RAIter1 __end, _RAIter2 __result, _UnaryOperation
__unary_op, random_access_iterator_tag, random_access_iterator_tag, __gnu_parallel::_Parallelism __←-
parallelism_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _BinaryOperation , typename _Tag1 , typename _Tag2
, typename _Tag3 >
_OutputIterator __transform2_switch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _OutputIterator __←-
result, _BinaryOperation __binary_op, _Tag1, _Tag2, _Tag3)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _BiOperation , typename _Tag1 , typename _Tag2 , typename
_Tag3 >
_OIter __transform2_switch (_IIter1, _IIter1, _IIter2, _OIter, _BiOperation, _Tag1, _Tag2, _Tag3)
• template<typename _RAIter1 , typename _RAIter2 , typename _RAIter3 , typename _BinaryOperation >
_RAIter3 __transform2_switch (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _RAIter3 __result, ←-
_BinaryOperation __binary_op, random_access_iterator_tag, random_access_iterator_tag, random_access_iterator_tag,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _RAIter1 , typename _RAIter2 , typename _RAIter3 , typename _BiOperation >
_RAIter3 __transform2_switch (_RAIter1, _RAIter1, _RAIter2, _RAIter3, _BiOperation, random_access_iterator_tag,
random_access_iterator_tag, random_access_iterator_tag, __gnu_parallel::_Parallelism __parallelism=__gnu_parallel::parallel_bal
• template<typename _IIter , typename _OutputIterator , typename _Predicate , typename _IteratorTag1 , typename _IteratorTag2 >
_OutputIterator __unique_copy_switch (_IIter __begin, _IIter __last, _OutputIterator __out, _Predicate __pred,
_IteratorTag1, _IteratorTag2)
• template<typename _IIter , typename _OIter , typename _Predicate , typename _IterTag1 , typename _IterTag2 >
_OIter __unique_copy_switch (_IIter, _IIter, _OIter, _Predicate, _IterTag1, _IterTag2)
• template<typename _RAIter , typename _RandomAccessOutputIterator , typename _Predicate >
_RandomAccessOutputIterator __unique_copy_switch (_RAIter __begin, _RAIter __last, _RandomAccess←-
OutputIterator __out, _Predicate __pred, random_access_iterator_tag, random_access_iterator_tag)
• template<typename _RAIter , typename _RandomAccess_OIter , typename _Predicate >
_RandomAccess_OIter __unique_copy_switch (_RAIter, _RAIter, _RandomAccess_OIter, _Predicate,
random_access_iterator_tag, random_access_iterator_tag)
• template<typename _IIter , typename _Tp , typename _BinaryOperation >
_Tp accumulate (_IIter __begin, _IIter __end, _Tp __init, _BinaryOperation __binary_op)
• template<typename _IIter , typename _Tp , typename _BinaryOperation >
_Tp accumulate (_IIter __begin, _IIter __end, _Tp __init, _BinaryOperation __binary_op, __gnu_parallel::_Parallelism
__parallelism_tag)
• template<typename _IIter , typename _Tp , typename _BinaryOperation >
_Tp accumulate (_IIter __begin, _IIter __end, _Tp __init, _BinaryOperation __binary_op, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _Tp >
_Tp accumulate (_IIter, _IIter, _Tp)
• template<typename _IIter , typename _Tp >
_Tp accumulate (_IIter, _IIter, _Tp, __gnu_parallel::_Parallelism)
• template<typename _IIter , typename _Tp >
_Tp accumulate (_IIter, _IIter, _Tp, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _Tp , typename _BinaryOper >
_Tp accumulate (_IIter, _IIter, _Tp, _BinaryOper)
• template<typename _IIter , typename _Tp , typename _BinaryOper >
_Tp accumulate (_IIter, _IIter, _Tp, _BinaryOper, __gnu_parallel::_Parallelism)

Generated by Doxygen
658

• template<typename _IIter , typename _Tp , typename _BinaryOper >


_Tp accumulate (_IIter, _IIter, _Tp, _BinaryOper, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator adjacent_difference (_IIter __begin, _IIter __end, _OutputIterator __result)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator adjacent_difference (_IIter __begin, _IIter __end, _OutputIterator __result, __gnu_parallel::_Parallelism
__parallelism_tag)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator adjacent_difference (_IIter __begin, _IIter __end, _OutputIterator __result, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator adjacent_difference (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation
__bin_op, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator adjacent_difference (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation
__binary_op)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator adjacent_difference (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation
__binary_op, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter , typename _OIter >
_OIter adjacent_difference (_IIter, _IIter, _OIter)
• template<typename _IIter , typename _OIter >
_OIter adjacent_difference (_IIter, _IIter, _OIter, __gnu_parallel::_Parallelism)
• template<typename _IIter , typename _OIter >
_OIter adjacent_difference (_IIter, _IIter, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OIter , typename _BinaryOper >
_OIter adjacent_difference (_IIter, _IIter, _OIter, _BinaryOper)
• template<typename _IIter , typename _OIter , typename _BinaryOper >
_OIter adjacent_difference (_IIter, _IIter, _OIter, _BinaryOper, __gnu_parallel::_Parallelism)
• template<typename _IIter , typename _OIter , typename _BinaryOper >
_OIter adjacent_difference (_IIter, _IIter, _OIter, _BinaryOper, __gnu_parallel::sequential_tag)
• template<typename _FIter >
_FIter adjacent_find (_FIter, _FIter)
• template<typename _FIter >
_FIter adjacent_find (_FIter, _FIter, __gnu_parallel::sequential_tag)
• template<typename _FIter , typename _BiPredicate >
_FIter adjacent_find (_FIter, _FIter, _BiPredicate)
• template<typename _FIter , typename _BiPredicate >
_FIter adjacent_find (_FIter, _FIter, _BiPredicate, __gnu_parallel::sequential_tag)
• template<typename _FIterator >
_FIterator adjacent_find (_FIterator __begin, _FIterator __end)
• template<typename _FIterator >
_FIterator adjacent_find (_FIterator __begin, _FIterator __end, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _BinaryPredicate >
_FIterator adjacent_find (_FIterator __begin, _FIterator __end, _BinaryPredicate __binary_pred, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _BinaryPredicate >
_FIterator adjacent_find (_FIterator __begin, _FIterator __end, _BinaryPredicate __pred)
• template<typename _IIter , typename _Tp >
iterator_traits< _IIter >::difference_type count (_IIter __begin, _IIter __end, const _Tp &__value)
• template<typename _IIter , typename _Tp >
iterator_traits< _IIter >::difference_type count (_IIter __begin, _IIter __end, const _Tp &__value,
__gnu_parallel::_Parallelism __parallelism_tag)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 659

• template<typename _IIter , typename _Tp >


iterator_traits< _IIter >::difference_type count (_IIter __begin, _IIter __end, const _Tp &__value,
__gnu_parallel::sequential_tag)
• template<typename _IIter , typename _Predicate >
iterator_traits< _IIter >::difference_type count_if (_IIter __begin, _IIter __end, _Predicate __pred)
• template<typename _IIter , typename _Predicate >
iterator_traits< _IIter >::difference_type count_if (_IIter __begin, _IIter __end, _Predicate __pred,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter , typename _Predicate >
iterator_traits< _IIter >::difference_type count_if (_IIter __begin, _IIter __end, _Predicate __pred,
__gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 >
constexpr bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2)
• template<typename _IIter1 , typename _IIter2 >
bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 >
constexpr bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2)
• template<typename _IIter1 , typename _IIter2 >
bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
constexpr bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _BinaryPredicate __←-
binary_pred)
• template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _BinaryPredicate __binary_pred,
__gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate >
constexpr bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _Predicate __pred)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate >
bool equal (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _Predicate __pred, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _Tp >
_IIter find (_IIter __begin, _IIter __end, const _Tp &__val)
• template<typename _IIter , typename _Tp >
_IIter find (_IIter __begin, _IIter __end, const _Tp &__val, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _FIterator >
_IIter find_first_of (_IIter __begin1, _IIter __end1, _FIterator __begin2, _FIterator __end2)
• template<typename _IIter , typename _FIterator >
_IIter find_first_of (_IIter __begin1, _IIter __end1, _FIterator __begin2, _FIterator __end2, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _FIterator , typename _BinaryPredicate >
_IIter find_first_of (_IIter __begin1, _IIter __end1, _FIterator __begin2, _FIterator __end2, _BinaryPredicate
__comp)
• template<typename _IIter , typename _FIterator , typename _BinaryPredicate >
_IIter find_first_of (_IIter __begin1, _IIter __end1, _FIterator __begin2, _FIterator __end2, _BinaryPredicate
__comp, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _FIter >
_IIter find_first_of (_IIter, _IIter, _FIter, _FIter)
• template<typename _IIter , typename _FIter >
_IIter find_first_of (_IIter, _IIter, _FIter, _FIter, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _FIter , typename _BiPredicate >
_IIter find_first_of (_IIter, _IIter, _FIter, _FIter, _BiPredicate)
• template<typename _IIter , typename _FIter , typename _BiPredicate >
_IIter find_first_of (_IIter, _IIter, _FIter, _FIter, _BiPredicate, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _Predicate >
_IIter find_if (_IIter __begin, _IIter __end, _Predicate __pred)

Generated by Doxygen
660

• template<typename _IIter , typename _Predicate >


_IIter find_if (_IIter __begin, _IIter __end, _Predicate __pred, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _Function >
_Function for_each (_IIter __begin, _IIter __end, _Function __f, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _Function >
_Function for_each (_IIter, _IIter, _Function)
• template<typename _Iterator , typename _Function >
_Function for_each (_Iterator __begin, _Iterator __end, _Function __f)
• template<typename _Iterator , typename _Function >
_Function for_each (_Iterator __begin, _Iterator __end, _Function __f, __gnu_parallel::_Parallelism __←-
parallelism_tag)
• template<typename _FIter , typename _Generator >
void generate (_FIter, _FIter, _Generator)
• template<typename _FIter , typename _Generator >
void generate (_FIter, _FIter, _Generator, __gnu_parallel::_Parallelism)
• template<typename _FIter , typename _Generator >
void generate (_FIter, _FIter, _Generator, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _Generator >
void generate (_FIterator __begin, _FIterator __end, _Generator __gen)
• template<typename _FIterator , typename _Generator >
void generate (_FIterator __begin, _FIterator __end, _Generator __gen, __gnu_parallel::_Parallelism __←-
parallelism_tag)
• template<typename _FIterator , typename _Generator >
void generate (_FIterator __begin, _FIterator __end, _Generator __gen, __gnu_parallel::sequential_tag)
• template<typename _OIter , typename _Size , typename _Generator >
_OIter generate_n (_OIter, _Size, _Generator)
• template<typename _OIter , typename _Size , typename _Generator >
_OIter generate_n (_OIter, _Size, _Generator, __gnu_parallel::_Parallelism)
• template<typename _OIter , typename _Size , typename _Generator >
_OIter generate_n (_OIter, _Size, _Generator, __gnu_parallel::sequential_tag)
• template<typename _OutputIterator , typename _Size , typename _Generator >
_OutputIterator generate_n (_OutputIterator __begin, _Size __n, _Generator __gen)
• template<typename _OutputIterator , typename _Size , typename _Generator >
_OutputIterator generate_n (_OutputIterator __begin, _Size __n, _Generator __gen, __gnu_parallel::_Parallelism
__parallelism_tag)
• template<typename _OutputIterator , typename _Size , typename _Generator >
_OutputIterator generate_n (_OutputIterator __begin, _Size __n, _Generator __gen, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Tp >
_Tp inner_product (_IIter1, _IIter1, _IIter2, _Tp)
• template<typename _IIter1 , typename _IIter2 , typename _Tp >
_Tp inner_product (_IIter1, _IIter1, _IIter2, _Tp, __gnu_parallel::_Parallelism)
• template<typename _IIter1 , typename _IIter2 , typename _Tp >
_Tp inner_product (_IIter1, _IIter1, _IIter2, _Tp, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Tp , typename _BinaryFunction1 , typename _BinaryFunction2 >
_Tp inner_product (_IIter1, _IIter1, _IIter2, _Tp, _BinaryFunction1, _BinaryFunction2)
• template<typename _IIter1 , typename _IIter2 , typename _Tp , typename _BinaryFunction1 , typename _BinaryFunction2 >
_Tp inner_product (_IIter1, _IIter1, _IIter2, _Tp, _BinaryFunction1, _BinaryFunction2, __gnu_parallel::_Parallelism)
• template<typename _IIter1 , typename _IIter2 , typename _Tp , typename _BinaryFunction1 , typename _BinaryFunction2 >
_Tp inner_product (_IIter1, _IIter1, _IIter2, _Tp, _BinaryFunction1, _BinaryFunction2, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 >
constexpr bool lexicographical_compare (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 661

• template<typename _IIter1 , typename _IIter2 >


bool lexicographical_compare (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
__gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate >
constexpr bool lexicographical_compare (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_Predicate __pred)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate >
bool lexicographical_compare (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Predicate
__pred, __gnu_parallel::sequential_tag)
• template<typename _FIter >
_FIter max_element (_FIter, _FIter)
• template<typename _FIter >
_FIter max_element (_FIter, _FIter, __gnu_parallel::_Parallelism)
• template<typename _FIter >
_FIter max_element (_FIter, _FIter, __gnu_parallel::sequential_tag)
• template<typename _FIter , typename _Compare >
_FIter max_element (_FIter, _FIter, _Compare)
• template<typename _FIter , typename _Compare >
_FIter max_element (_FIter, _FIter, _Compare, __gnu_parallel::_Parallelism)
• template<typename _FIter , typename _Compare >
_FIter max_element (_FIter, _FIter, _Compare, __gnu_parallel::sequential_tag)
• template<typename _FIterator >
_FIterator max_element (_FIterator __begin, _FIterator __end)
• template<typename _FIterator >
_FIterator max_element (_FIterator __begin, _FIterator __end, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIterator >
_FIterator max_element (_FIterator __begin, _FIterator __end, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _Compare >
_FIterator max_element (_FIterator __begin, _FIterator __end, _Compare __comp)
• template<typename _FIterator , typename _Compare >
_FIterator max_element (_FIterator __begin, _FIterator __end, _Compare __comp, __gnu_parallel::_Parallelism
__parallelism_tag)
• template<typename _FIterator , typename _Compare >
_FIterator max_element (_FIterator __begin, _FIterator __end, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator merge (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator __←-
result)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator merge (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator __←-
result, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Compare >
_OutputIterator merge (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator __←-
result, _Compare __comp)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Compare >
_OutputIterator merge (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator __←-
result, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter merge (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter merge (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >
_OIter merge (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)

Generated by Doxygen
662

• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Compare >


_OIter merge (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare, __gnu_parallel::sequential_tag)
• template<typename _FIter >
_FIter min_element (_FIter, _FIter)
• template<typename _FIter >
_FIter min_element (_FIter, _FIter, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIter >
_FIter min_element (_FIter, _FIter, __gnu_parallel::sequential_tag)
• template<typename _FIter , typename _Compare >
_FIter min_element (_FIter, _FIter, _Compare)
• template<typename _FIter , typename _Compare >
_FIter min_element (_FIter, _FIter, _Compare, __gnu_parallel::_Parallelism)
• template<typename _FIter , typename _Compare >
_FIter min_element (_FIter, _FIter, _Compare, __gnu_parallel::sequential_tag)
• template<typename _FIterator >
_FIterator min_element (_FIterator __begin, _FIterator __end)
• template<typename _FIterator >
_FIterator min_element (_FIterator __begin, _FIterator __end, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIterator >
_FIterator min_element (_FIterator __begin, _FIterator __end, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _Compare >
_FIterator min_element (_FIterator __begin, _FIterator __end, _Compare __comp)
• template<typename _FIterator , typename _Compare >
_FIterator min_element (_FIterator __begin, _FIterator __end, _Compare __comp, __gnu_parallel::_Parallelism
__parallelism_tag)
• template<typename _FIterator , typename _Compare >
_FIterator min_element (_FIterator __begin, _FIterator __end, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 >
pair< _IIter1, _IIter2 > mismatch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2)
• template<typename _IIter1 , typename _IIter2 >
pair< _IIter1, _IIter2 > mismatch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 >
pair< _IIter1, _IIter2 > mismatch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate >
pair< _IIter1, _IIter2 > mismatch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _Predicate __pred)
• template<typename _IIter1 , typename _IIter2 , typename _Predicate >
pair< _IIter1, _IIter2 > mismatch (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _Predicate __pred,
__gnu_parallel::sequential_tag)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
pair< _InputIterator1, _InputIterator2 > mismatch (_InputIterator1 __begin1, _InputIterator1 __end1, _Input←-
Iterator2 __begin2, _InputIterator2 __end2, _BinaryPredicate __binary_pred)
• template<typename _InputIterator1 , typename _InputIterator2 >
pair< _InputIterator1, _InputIterator2 > mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _Input←-
Iterator2 __first2, _InputIterator2 __last2, __gnu_parallel::sequential_tag)
• template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
pair< _InputIterator1, _InputIterator2 > mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _Input←-
Iterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __binary_pred, __gnu_parallel::sequential_tag)
• template<typename _RAIter >
void nth_element (_RAIter __begin, _RAIter __nth, _RAIter __end)
• template<typename _RAIter >
void nth_element (_RAIter __begin, _RAIter __nth, _RAIter __end, __gnu_parallel::sequential_tag)
• template<typename _RAIter , typename _Compare >
void nth_element (_RAIter __begin, _RAIter __nth, _RAIter __end, _Compare __comp)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 663

• template<typename _RAIter , typename _Compare >


void nth_element (_RAIter __begin, _RAIter __nth, _RAIter __end, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _RAIter >
void partial_sort (_RAIter __begin, _RAIter __middle, _RAIter __end)
• template<typename _RAIter >
void partial_sort (_RAIter __begin, _RAIter __middle, _RAIter __end, __gnu_parallel::sequential_tag)
• template<typename _RAIter , typename _Compare >
void partial_sort (_RAIter __begin, _RAIter __middle, _RAIter __end, _Compare __comp)
• template<typename _RAIter , typename _Compare >
void partial_sort (_RAIter __begin, _RAIter __middle, _RAIter __end, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator partial_sum (_IIter __begin, _IIter __end, _OutputIterator __result)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator partial_sum (_IIter __begin, _IIter __end, _OutputIterator __result, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator partial_sum (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation __bin_op,
__gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator partial_sum (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation __binary←-
_op)
• template<typename _IIter , typename _OIter >
_OIter partial_sum (_IIter, _IIter, _OIter __result)
• template<typename _IIter , typename _OIter >
_OIter partial_sum (_IIter, _IIter, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OIter , typename _BinaryOper >
_OIter partial_sum (_IIter, _IIter, _OIter, _BinaryOper)
• template<typename _IIter , typename _OIter , typename _BinaryOper >
_OIter partial_sum (_IIter, _IIter, _OIter, _BinaryOper, __gnu_parallel::sequential_tag)
• template<typename _FIter , typename _Predicate >
_FIter partition (_FIter, _FIter, _Predicate)
• template<typename _FIter , typename _Predicate >
_FIter partition (_FIter, _FIter, _Predicate, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _Predicate >
_FIterator partition (_FIterator __begin, _FIterator __end, _Predicate __pred)
• template<typename _FIterator , typename _Predicate >
_FIterator partition (_FIterator __begin, _FIterator __end, _Predicate __pred, __gnu_parallel::sequential_tag)
• template<typename _RAIter >
void random_shuffle (_RAIter __begin, _RAIter __end)
• template<typename _RAIter >
void random_shuffle (_RAIter __begin, _RAIter __end, __gnu_parallel::sequential_tag)
• template<typename _RAIter , typename _RandomNumberGenerator >
void random_shuffle (_RAIter __begin, _RAIter __end, _RandomNumberGenerator &&__rand)
• template<typename _RAIter , typename _RandomNumberGenerator >
void random_shuffle (_RAIter __begin, _RAIter __end, _RandomNumberGenerator &__rand, __gnu_parallel::sequential_tag)
• template<typename _FIter , typename _Tp >
void replace (_FIter, _FIter, const _Tp &, const _Tp &)
• template<typename _FIter , typename _Tp >
void replace (_FIter, _FIter, const _Tp &, const _Tp &, __gnu_parallel::_Parallelism)
• template<typename _FIter , typename _Tp >
void replace (_FIter, _FIter, const _Tp &, const _Tp &, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _Tp >
void replace (_FIterator __begin, _FIterator __end, const _Tp &__old_value, const _Tp &__new_value)

Generated by Doxygen
664

• template<typename _FIterator , typename _Tp >


void replace (_FIterator __begin, _FIterator __end, const _Tp &__old_value, const _Tp &__new_value,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIterator , typename _Tp >
void replace (_FIterator __begin, _FIterator __end, const _Tp &__old_value, const _Tp &__new_value,
__gnu_parallel::sequential_tag)
• template<typename _FIter , typename _Predicate , typename _Tp >
void replace_if (_FIter, _FIter, _Predicate, const _Tp &)
• template<typename _FIter , typename _Predicate , typename _Tp >
void replace_if (_FIter, _FIter, _Predicate, const _Tp &, __gnu_parallel::_Parallelism)
• template<typename _FIter , typename _Predicate , typename _Tp >
void replace_if (_FIter, _FIter, _Predicate, const _Tp &, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _Predicate , typename _Tp >
void replace_if (_FIterator __begin, _FIterator __end, _Predicate __pred, const _Tp &__new_value)
• template<typename _FIterator , typename _Predicate , typename _Tp >
void replace_if (_FIterator __begin, _FIterator __end, _Predicate __pred, const _Tp &__new_value,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _FIterator , typename _Predicate , typename _Tp >
void replace_if (_FIterator __begin, _FIterator __end, _Predicate __pred, const _Tp &__new_value,
__gnu_parallel::sequential_tag)
• template<typename _FIter1 , typename _FIter2 >
_FIter1 search (_FIter1, _FIter1, _FIter2, _FIter2)
• template<typename _FIter1 , typename _FIter2 >
_FIter1 search (_FIter1, _FIter1, _FIter2, _FIter2, __gnu_parallel::sequential_tag)
• template<typename _FIter1 , typename _FIter2 , typename _BiPredicate >
constexpr _FIter1 search (_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate)
• template<typename _FIter1 , typename _FIter2 , typename _BiPredicate >
_FIter1 search (_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate, __gnu_parallel::sequential_tag)
• template<typename _FIterator1 , typename _FIterator2 >
_FIterator1 search (_FIterator1 __begin1, _FIterator1 __end1, _FIterator2 __begin2, _FIterator2 __end2)
• template<typename _FIterator1 , typename _FIterator2 >
_FIterator1 search (_FIterator1 __begin1, _FIterator1 __end1, _FIterator2 __begin2, _FIterator2 __end2,
__gnu_parallel::sequential_tag)
• template<typename _FIterator1 , typename _FIterator2 , typename _BinaryPredicate >
constexpr _FIterator1 search (_FIterator1 __begin1, _FIterator1 __end1, _FIterator2 __begin2, _FIterator2 __←-
end2, _BinaryPredicate __pred)
• template<typename _FIterator1 , typename _FIterator2 , typename _BinaryPredicate >
_FIterator1 search (_FIterator1 __begin1, _FIterator1 __end1, _FIterator2 __begin2, _FIterator2 __end2, _←-
BinaryPredicate __pred, __gnu_parallel::sequential_tag)
• template<typename _ForwardIterator , typename _Searcher >
_ForwardIterator search (_ForwardIterator __first, _ForwardIterator __last, const _Searcher &__searcher)
• template<typename _FIter , typename _Integer , typename _Tp >
_FIter search_n (_FIter, _FIter, _Integer, const _Tp &)
• template<typename _FIter , typename _Integer , typename _Tp >
_FIter search_n (_FIter, _FIter, _Integer, const _Tp &, __gnu_parallel::sequential_tag)
• template<typename _FIter , typename _Integer , typename _Tp , typename _BiPredicate >
_FIter search_n (_FIter, _FIter, _Integer, const _Tp &, _BiPredicate)
• template<typename _FIter , typename _Integer , typename _Tp , typename _BiPredicate >
_FIter search_n (_FIter, _FIter, _Integer, const _Tp &, _BiPredicate, __gnu_parallel::sequential_tag)
• template<typename _FIterator , typename _Integer , typename _Tp >
_FIterator search_n (_FIterator __begin, _FIterator __end, _Integer __count, const _Tp &__val)
• template<typename _FIterator , typename _Integer , typename _Tp >
_FIterator search_n (_FIterator __begin, _FIterator __end, _Integer __count, const _Tp &__val, __gnu_parallel::sequential_tag)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 665

• template<typename _FIterator , typename _Integer , typename _Tp , typename _BinaryPredicate >


_FIterator search_n (_FIterator __begin, _FIterator __end, _Integer __count, const _Tp &__val, _BinaryPredicate
__binary_pred)
• template<typename _FIterator , typename _Integer , typename _Tp , typename _BinaryPredicate >
_FIterator search_n (_FIterator __begin, _FIterator __end, _Integer __count, const _Tp &__val, _BinaryPredicate
__binary_pred, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >
_OutputIterator set_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out, _Predicate __pred)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >
_OutputIterator set_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out, _Predicate __pred, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_intersection (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_intersection (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >
_OutputIterator set_intersection (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out, _Predicate __pred)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >
_OutputIterator set_intersection (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _Output←-
Iterator __out, _Predicate __pred, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_intersection (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_intersection (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_intersection (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_intersection (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_symmetric_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_OutputIterator __out)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_symmetric_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_OutputIterator __out, __gnu_parallel::sequential_tag)

Generated by Doxygen
666

• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >


_OutputIterator set_symmetric_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_OutputIterator __out, _Predicate __pred)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >
_OutputIterator set_symmetric_difference (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2,
_OutputIterator __out, _Predicate __pred, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_symmetric_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_symmetric_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_symmetric_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_symmetric_difference (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_union (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator
__out)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator >
_OutputIterator set_union (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator
__out, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >
_OutputIterator set_union (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator
__out, _Predicate __pred)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _Predicate >
_OutputIterator set_union (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _IIter2 __end2, _OutputIterator
__out, _Predicate __pred, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_union (_IIter1, _IIter1, _IIter2, _IIter2, _OIter)
• template<typename _IIter1 , typename _IIter2 , typename _OIter >
_OIter set_union (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_union (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _Predicate >
_OIter set_union (_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, __gnu_parallel::sequential_tag)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::balanced_quicksort_tag __parallelism)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::default_parallel_tag __parallelism)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::multiway_mergesort_exact_tag __parallelism)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::multiway_mergesort_sampling_tag __parallelism)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::multiway_mergesort_tag __parallelism)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::parallel_tag __parallelism)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::quicksort_tag __parallelism)
• template<typename _RAIter >
void sort (_RAIter __begin, _RAIter __end, __gnu_parallel::sequential_tag)

Generated by Doxygen
4.13 std::__parallel Namespace Reference 667

• template<typename _RAIter , typename _Compare >


void sort (_RAIter __begin, _RAIter __end, _Compare __comp)
• template<typename _RAIter , typename _Compare >
void sort (_RAIter __begin, _RAIter __end, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _RAIter , typename _Compare , typename _Parallelism >
void sort (_RAIter __begin, _RAIter __end, _Compare __comp, _Parallelism __parallelism)
• template<typename _RAIter >
void stable_sort (_RAIter __begin, _RAIter __end)
• template<typename _RAIter >
void stable_sort (_RAIter __begin, _RAIter __end, __gnu_parallel::balanced_quicksort_tag __parallelism)
• template<typename _RAIter >
void stable_sort (_RAIter __begin, _RAIter __end, __gnu_parallel::default_parallel_tag __parallelism)
• template<typename _RAIter >
void stable_sort (_RAIter __begin, _RAIter __end, __gnu_parallel::multiway_mergesort_tag __parallelism)
• template<typename _RAIter >
void stable_sort (_RAIter __begin, _RAIter __end, __gnu_parallel::parallel_tag __parallelism)
• template<typename _RAIter >
void stable_sort (_RAIter __begin, _RAIter __end, __gnu_parallel::quicksort_tag __parallelism)
• template<typename _RAIter >
void stable_sort (_RAIter __begin, _RAIter __end, __gnu_parallel::sequential_tag)
• template<typename _RAIter , typename _Compare >
void stable_sort (_RAIter __begin, _RAIter __end, _Compare __comp)
• template<typename _RAIter , typename _Compare >
void stable_sort (_RAIter __begin, _RAIter __end, _Compare __comp, __gnu_parallel::sequential_tag)
• template<typename _RAIter , typename _Compare , typename _Parallelism >
void stable_sort (_RAIter __begin, _RAIter __end, _Compare __comp, _Parallelism __parallelism)
• template<typename _IIter , typename _OutputIterator , typename _UnaryOperation >
_OutputIterator transform (_IIter __begin, _IIter __end, _OutputIterator __result, _UnaryOperation __unary_op)
• template<typename _IIter , typename _OutputIterator , typename _UnaryOperation >
_OutputIterator transform (_IIter __begin, _IIter __end, _OutputIterator __result, _UnaryOperation __unary_op,
__gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter , typename _OutputIterator , typename _UnaryOperation >
_OutputIterator transform (_IIter __begin, _IIter __end, _OutputIterator __result, _UnaryOperation __unary_op,
__gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OIter , typename _UnaryOperation >
_OIter transform (_IIter, _IIter, _OIter, _UnaryOperation)
• template<typename _IIter , typename _OIter , typename _UnaryOperation >
_OIter transform (_IIter, _IIter, _OIter, _UnaryOperation, __gnu_parallel::_Parallelism)
• template<typename _IIter , typename _OIter , typename _UnaryOperation >
_OIter transform (_IIter, _IIter, _OIter, _UnaryOperation, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator transform (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _OutputIterator __result, _←-
BinaryOperation __binary_op)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator transform (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _OutputIterator __result, _←-
BinaryOperation __binary_op, __gnu_parallel::_Parallelism __parallelism_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OutputIterator , typename _BinaryOperation >
_OutputIterator transform (_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _OutputIterator __result, _←-
BinaryOperation __binary_op, __gnu_parallel::sequential_tag)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _BiOperation >
_OIter transform (_IIter1, _IIter1, _IIter2, _OIter, _BiOperation)
• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _BiOperation >
_OIter transform (_IIter1, _IIter1, _IIter2, _OIter, _BiOperation, __gnu_parallel::_Parallelism)

Generated by Doxygen
668

• template<typename _IIter1 , typename _IIter2 , typename _OIter , typename _BiOperation >


_OIter transform (_IIter1, _IIter1, _IIter2, _OIter, _BiOperation, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator unique_copy (_IIter __begin1, _IIter __end1, _OutputIterator __out)
• template<typename _IIter , typename _OutputIterator >
_OutputIterator unique_copy (_IIter __begin1, _IIter __end1, _OutputIterator __out, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OutputIterator , typename _Predicate >
_OutputIterator unique_copy (_IIter __begin1, _IIter __end1, _OutputIterator __out, _Predicate __pred)
• template<typename _IIter , typename _OutputIterator , typename _Predicate >
_OutputIterator unique_copy (_IIter __begin1, _IIter __end1, _OutputIterator __out, _Predicate __pred,
__gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OIter >
_OIter unique_copy (_IIter, _IIter, _OIter)
• template<typename _IIter , typename _OIter >
_OIter unique_copy (_IIter, _IIter, _OIter, __gnu_parallel::sequential_tag)
• template<typename _IIter , typename _OIter , typename _Predicate >
_OIter unique_copy (_IIter, _IIter, _OIter, _Predicate)
• template<typename _IIter , typename _OIter , typename _Predicate >
_OIter unique_copy (_IIter, _IIter, _OIter, _Predicate, __gnu_parallel::sequential_tag)

4.13.1 Detailed Description

GNU parallel code, replaces standard behavior with parallel behavior.

4.13.2 Function Documentation

search()

template<typename _ForwardIterator , typename _Searcher >


_ForwardIterator std::__parallel::search (
_ForwardIterator __first,
_ForwardIterator __last,
const _Searcher & __searcher) [inline]
Search a sequence using a Searcher object.

Parameters

__first A forward iterator.


__last A forward iterator.
__searcher A callable object.

Returns

__searcher(__first,__last).first

4.14 std::chrono Namespace Reference


Classes

• class duration
• struct duration_values
• class gps_clock
• class hh_mm_ss
• struct steady_clock

Generated by Doxygen
4.14 std::chrono Namespace Reference 669

• struct system_clock
• class tai_clock
• class time_point
• struct treat_as_floating_point
• class tzdb_list
• class utc_clock

Typedefs

• using days
• using file_clock
• template<typename _Duration >
using file_time
• using gps_seconds
• template<typename _Duration >
using gps_time
• using high_resolution_clock
• using hours
• using local_days
• using local_seconds
• template<typename _Duration >
using local_time
• using microseconds
• using milliseconds
• using minutes
• using months
• using nanoseconds
• using seconds
• using sys_days
• using sys_seconds
• template<typename _Duration >
using sys_time
• using tai_seconds
• template<typename _Duration >
using tai_time
• using utc_seconds
• template<typename _Duration >
using utc_time
• using weeks
• using years
• using zoned_seconds

Enumerations

• enum class choose { earliest , latest }

Generated by Doxygen
670

Functions

• template<typename _Duration >


void __throw_bad_local_time (const local_time< _Duration > &__tp, const local_info &__i)
• template<typename _Rep , typename _Period >
constexpr enable_if_t< numeric_limits< _Rep >::is_signed, duration< _Rep, _Period > > abs (duration< _Rep,
_Period > __d)
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > ceil (const duration< _Rep, _Period > &__d)
• template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > ceil (const time_point<
_Clock, _Dur > &__tp)
• template<typename _DestClock , typename _SourceClock , typename _Duration >
requires __detail::__clock_convs<_DestClock, _SourceClock, _Duration> || __detail::__clock_convs_sys<_DestClock, _SourceClock, ←-
_Duration> || __detail::__clock_convs_utc<_DestClock, _SourceClock, _Duration> || __detail::__clock_convs_sys_utc<_DestClock, _←-
SourceClock, _Duration> || __detail::__clock_convs_utc_sys<_DestClock, _SourceClock, _Duration>
auto clock_cast (const time_point< _SourceClock, _Duration > &__t)
• const time_zone ∗ current_zone ()
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > duration_cast (const duration< _Rep, _Period > &__d)
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > floor (const duration< _Rep, _Period > &__d)
• template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > floor (const time_point<
_Clock, _Dur > &__tp)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, day &__d, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Rep , typename _Period , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, duration< _Rep, _Period > &__d, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes
∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, file_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, gps_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗_←-
_offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, local_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗_←-
_offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, month &__m, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗_←-
_fmt, month_day &__md, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, sys_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)

Generated by Doxygen
4.14 std::chrono Namespace Reference 671

• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>


basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, tai_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Duration , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, utc_time< _Duration > &__tp, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, weekday &__wd, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗←-
__fmt, year &__y, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT ∗_←-
_fmt, year_month &__ym, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__offset=nullptr)
• template<typename _CharT , typename _Traits , typename _Alloc = allocator<_CharT>>
basic_istream< _CharT, _Traits > & from_stream (basic_istream< _CharT, _Traits > &__is, const _CharT
∗__fmt, year_month_day &__ymd, basic_string< _CharT, _Traits, _Alloc > ∗__abbrev=nullptr, minutes ∗__←-
offset=nullptr)
• template<typename _Duration >
leap_second_info get_leap_second_info (const utc_time< _Duration > &__ut)
• const tzdb & get_tzdb ()
• tzdb_list & get_tzdb_list ()
• constexpr bool is_am (const hours &__h) noexcept
• constexpr bool is_pm (const hours &__h) noexcept
• template<typename _Duration >
__detail::__local_time_fmt< _Duration > local_time_format (local_time< _Duration > __time, const string ∗_←-
_abbrev=nullptr, const seconds ∗__offset_sec=nullptr)
• const time_zone ∗ locate_zone (string_view __tz_name)
• constexpr hours make12 (const hours &__h) noexcept
• constexpr hours make24 (const hours &__h, bool __is_pm) noexcept
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const day &__d)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const file_time<
_Duration > &__t)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const gps_time<
_Duration > &__t)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const
hh_mm_ss< _Duration > &__hms)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const local_info
&__li)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const local_time<
_Duration > &__lt)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const month &←-
__m)

Generated by Doxygen
672

• template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const month_day
&__md)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const month_←-
day_last &__mdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const month_←-
weekday &__mwd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const month_←-
weekday_last &__mwdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const sys_days
&__dp)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const sys_info
&__i)
• template<typename _CharT , typename _Traits , typename _Duration >
requires (!treat_as_floating_point_v<typename _Duration::rep>) && ratio_less_v<typename _Duration::period, days::period>
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const sys_time<
_Duration > &__tp)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const tai_time<
_Duration > &__t)
• template<typename _CharT , typename _Traits , typename _Duration >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const utc_time<
_Duration > &__t)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const weekday
&__wd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const weekday←-
_indexed &__wdi)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const weekday←-
_last &__wdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const year &__y)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const year_month
&__ym)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const year_←-
month_day &__ymd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const year_←-
month_day_last &__ymdl)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const year_←-
month_weekday &__ymwd)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const year_←-
month_weekday_last &__ymwdl)

Generated by Doxygen
4.14 std::chrono Namespace Reference 673

• template<typename _CharT , typename _Traits , typename _Duration , typename _TimeZonePtr >


basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const zoned_←-
time< _Duration, _TimeZonePtr > &__t)
• template<typename _CharT , typename _Traits , typename _Rep , typename _Period >
basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
duration< _Rep, _Period > &__d)
• template<typename _Dur1 , typename _TZPtr1 , typename _Dur2 , typename _TZPtr2 >
bool operator== (const zoned_time< _Dur1, _TZPtr1 > &__x, const zoned_time< _Dur2, _TZPtr2 > &__y)
• template<typename _CharT , __detail::__parsable< _CharT > _Parsable>
auto parse (const _CharT ∗__fmt, _Parsable &__tp)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT > _Parsable>
auto parse (const _CharT ∗__fmt, _Parsable &__tp, basic_string< _CharT, _Traits, _Alloc > &__abbrev)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT, minutes > _Parsable>
auto parse (const _CharT ∗__fmt, _Parsable &__tp, basic_string< _CharT, _Traits, _Alloc > &__abbrev, minutes
&__offset)
• template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _StrT = basic_string<_CharT, _Traits>, __detail::__←-
parsable< _CharT, _Traits, _StrT, minutes > _Parsable>
auto parse (const _CharT ∗__fmt, _Parsable &__tp, minutes &__offset)
• template<typename _CharT , typename _Traits , typename _Alloc , __detail::__parsable< _CharT, _Traits > _Parsable>
auto parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT > _Parsable>
auto parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp, basic_string< _CharT, _←-
Traits, _Alloc > &__abbrev)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits, _Alloc>, __detail::_←-
_parsable< _CharT, _Traits, _StrT, minutes > _Parsable>
auto parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp, basic_string< _CharT, _←-
Traits, _Alloc > &__abbrev, minutes &__offset)
• template<typename _CharT , typename _Traits , typename _Alloc , typename _StrT = basic_string<_CharT, _Traits>, __detail::__parsable<
_CharT, _Traits, _StrT, minutes > _Parsable>
auto parse (const basic_string< _CharT, _Traits, _Alloc > &__fmt, _Parsable &__tp, minutes &__offset)
• const tzdb & reload_tzdb ()
• string remote_version ()
• template<typename _ToDur , typename _Rep , typename _Period >
constexpr enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _To←-
Dur::rep > > >::value, _ToDur > round (const duration< _Rep, _Period > &__d)
• template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __is_duration_v< _ToDur > &&!treat_as_floating_point_v< typename _ToDur::rep >,
time_point< _Clock, _ToDur > > round (const time_point< _Clock, _Dur > &__tp)
• template<typename _ToDur , typename _Clock , typename _Dur >
constexpr __enable_if_t< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > > time_point_cast
(const time_point< _Clock, _Dur > &__t)
• zoned_time () -> zoned_time< seconds >
• template<typename _TimeZonePtrOrName >
zoned_time (_TimeZonePtrOrName &&) -> zoned_time< seconds, __time_zone_representation< _Time←-
ZonePtrOrName > >
• template<typename _TimeZonePtrOrName , typename _Duration >
zoned_time (_TimeZonePtrOrName &&, local_time< _Duration >, choose=choose::earliest) -> zoned_time<
common_type_t< _Duration, seconds >, __time_zone_representation< _TimeZonePtrOrName > >
• template<typename _TimeZonePtrOrName , typename _Duration >
zoned_time (_TimeZonePtrOrName &&, sys_time< _Duration >) -> zoned_time< common_type_t< _Duration,
seconds >, __time_zone_representation< _TimeZonePtrOrName > >

Generated by Doxygen
674

• template<typename _Duration , typename _TimeZonePtrOrName , typename _TimeZonePtr2 >


zoned_time (_TimeZonePtrOrName &&, zoned_time< _Duration, _TimeZonePtr2 >, choose=choose::earliest) -
> zoned_time< common_type_t< _Duration, seconds >, __time_zone_representation< _TimeZonePtrOrName
>>
• template<typename _Duration >
zoned_time (sys_time< _Duration >) -> zoned_time< common_type_t< _Duration, seconds > >

• template<typename _Clock , typename _Dur1 , three_way_comparable_with< _Dur1 > _Dur2>


constexpr auto operator<=> (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 >
&__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool operator< (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 >
&__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool operator<= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 >
&__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool operator> (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 >
&__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool operator>= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 >
&__rhs)

Variables

• template<typename _Tp , typename _Clock >


constexpr bool __is_time_point_for_v
• template<typename _Clock , typename _Duration >
constexpr bool __is_time_point_for_v< time_point< _Clock, _Duration >, _Clock >
• constexpr month April
• constexpr month August
• constexpr month December
• constexpr month February
• constexpr weekday Friday
• template<typename _Tp , typename = void>
constexpr bool is_clock_v
• template<> constexpr bool is_clock_v< file_clock >
• template<> constexpr bool is_clock_v< gps_clock >
• template<> constexpr bool is_clock_v< steady_clock >
• template<> constexpr bool is_clock_v< system_clock >
• template<> constexpr bool is_clock_v< tai_clock >
• template<> constexpr bool is_clock_v< utc_clock >
• constexpr month January
• constexpr month July
• constexpr month June
• constexpr last_spec last
• constexpr month March
• constexpr month May
• constexpr weekday Monday
• constexpr month November
• constexpr month October
• constexpr weekday Saturday

Generated by Doxygen
4.14 std::chrono Namespace Reference 675

• constexpr month September


• constexpr weekday Sunday
• constexpr weekday Thursday
• template<typename _Rep >
constexpr bool treat_as_floating_point_v
• template<> constexpr bool treat_as_floating_point_v< double >
• template<> constexpr bool treat_as_floating_point_v< float >
• template<> constexpr bool treat_as_floating_point_v< int >
• template<> constexpr bool treat_as_floating_point_v< long >
• template<> constexpr bool treat_as_floating_point_v< long double >
• template<> constexpr bool treat_as_floating_point_v< long long >
• constexpr weekday Tuesday
• constexpr weekday Wednesday

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator- (const
duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator+
(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)

• template<typename _Rep1 , typename _Rep2 , typename _Period >


constexpr duration< __common_rep_t< _Rep2, _Rep1 >, _Period > operator∗ (const _Rep1 &__s, const
duration< _Rep2, _Period > &__d)
• template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > operator/
(const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< _Rep1, _Rep2 >::type operator/ (const duration< _Rep1, _Period1 > &__lhs, const
duration< _Rep2, _Period2 > &__rhs)
• template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > operator%
(const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator%
(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
• template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, _Rep2 >, _Period > operator∗ (const duration< _Rep1, _←-
Period > &__d, const _Rep2 &__s)

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr bool operator< (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
requires three_way_comparable<common_type_t<_Rep1, _Rep2>>
constexpr auto operator<=> (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool operator<= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool operator> (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)

Generated by Doxygen
676

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr bool operator>= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)
• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool operator== (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)

• template<typename _Rep1 , typename _Period1 , typename _Clock , typename _Dur2 >


constexpr time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type >
operator+ (const duration< _Rep1, _Period1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >
constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type >
operator- (const time_point< _Clock, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr common_type< _Dur1, _Dur2 >::type operator- (const time_point< _Clock, _Dur1 > &__lhs, const
time_point< _Clock, _Dur2 > &__rhs)
• template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >
constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type >
operator+ (const time_point< _Clock, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)

4.14.1 Detailed Description

ISO C++ 2011 namespace for date and time utilities.

4.15 std::decimal Namespace Reference


Classes

• class decimal128
• class decimal32
• class decimal64

Functions

• double decimal128_to_double (decimal128 __d)


• float decimal128_to_float (decimal128 __d)
• long double decimal128_to_long_double (decimal128 __d)
• long long decimal128_to_long_long (decimal128 __d)
• double decimal32_to_double (decimal32 __d)
• float decimal32_to_float (decimal32 __d)
• long double decimal32_to_long_double (decimal32 __d)
• long long decimal32_to_long_long (decimal32 __d)
• double decimal64_to_double (decimal64 __d)
• float decimal64_to_float (decimal64 __d)
• long double decimal64_to_long_double (decimal64 __d)
• long long decimal64_to_long_long (decimal64 __d)
• double decimal_to_double (decimal128 __d)
• double decimal_to_double (decimal32 __d)
• double decimal_to_double (decimal64 __d)
• float decimal_to_float (decimal128 __d)
• float decimal_to_float (decimal32 __d)
• float decimal_to_float (decimal64 __d)
• long double decimal_to_long_double (decimal128 __d)

Generated by Doxygen
4.15 std::decimal Namespace Reference 677

• long double decimal_to_long_double (decimal32 __d)


• long double decimal_to_long_double (decimal64 __d)
• long long decimal_to_long_long (decimal128 __d)
• long long decimal_to_long_long (decimal32 __d)
• long long decimal_to_long_long (decimal64 __d)
• static decimal128 make_decimal128 (long long __coeff, int __exp)
• static decimal128 make_decimal128 (unsigned long long __coeff, int __exp)
• static decimal32 make_decimal32 (long long __coeff, int __exp)
• static decimal32 make_decimal32 (unsigned long long __coeff, int __exp)
• static decimal64 make_decimal64 (long long __coeff, int __exp)
• static decimal64 make_decimal64 (unsigned long long __coeff, int __exp)
• bool operator!= (decimal128 __lhs, decimal128 __rhs)
• bool operator!= (decimal128 __lhs, decimal32 __rhs)
• bool operator!= (decimal128 __lhs, decimal64 __rhs)
• bool operator!= (decimal128 __lhs, int __rhs)
• bool operator!= (decimal128 __lhs, long __rhs)
• bool operator!= (decimal128 __lhs, long long __rhs)
• bool operator!= (decimal128 __lhs, unsigned int __rhs)
• bool operator!= (decimal128 __lhs, unsigned long __rhs)
• bool operator!= (decimal128 __lhs, unsigned long long __rhs)
• bool operator!= (decimal32 __lhs, decimal128 __rhs)
• bool operator!= (decimal32 __lhs, decimal32 __rhs)
• bool operator!= (decimal32 __lhs, decimal64 __rhs)
• bool operator!= (decimal32 __lhs, int __rhs)
• bool operator!= (decimal32 __lhs, long __rhs)
• bool operator!= (decimal32 __lhs, long long __rhs)
• bool operator!= (decimal32 __lhs, unsigned int __rhs)
• bool operator!= (decimal32 __lhs, unsigned long __rhs)
• bool operator!= (decimal32 __lhs, unsigned long long __rhs)
• bool operator!= (decimal64 __lhs, decimal128 __rhs)
• bool operator!= (decimal64 __lhs, decimal32 __rhs)
• bool operator!= (decimal64 __lhs, decimal64 __rhs)
• bool operator!= (decimal64 __lhs, int __rhs)
• bool operator!= (decimal64 __lhs, long __rhs)
• bool operator!= (decimal64 __lhs, long long __rhs)
• bool operator!= (decimal64 __lhs, unsigned int __rhs)
• bool operator!= (decimal64 __lhs, unsigned long __rhs)
• bool operator!= (decimal64 __lhs, unsigned long long __rhs)
• bool operator!= (int __lhs, decimal128 __rhs)
• bool operator!= (int __lhs, decimal32 __rhs)
• bool operator!= (int __lhs, decimal64 __rhs)
• bool operator!= (long __lhs, decimal128 __rhs)
• bool operator!= (long __lhs, decimal32 __rhs)
• bool operator!= (long __lhs, decimal64 __rhs)
• bool operator!= (long long __lhs, decimal128 __rhs)
• bool operator!= (long long __lhs, decimal32 __rhs)
• bool operator!= (long long __lhs, decimal64 __rhs)
• bool operator!= (unsigned int __lhs, decimal128 __rhs)
• bool operator!= (unsigned int __lhs, decimal32 __rhs)
• bool operator!= (unsigned int __lhs, decimal64 __rhs)
• bool operator!= (unsigned long __lhs, decimal128 __rhs)

Generated by Doxygen
678

• bool operator!= (unsigned long __lhs, decimal32 __rhs)


• bool operator!= (unsigned long __lhs, decimal64 __rhs)
• bool operator!= (unsigned long long __lhs, decimal128 __rhs)
• bool operator!= (unsigned long long __lhs, decimal32 __rhs)
• bool operator!= (unsigned long long __lhs, decimal64 __rhs)
• decimal128 operator∗ (decimal128 __lhs, decimal128 __rhs)
• decimal128 operator∗ (decimal128 __lhs, decimal32 __rhs)
• decimal128 operator∗ (decimal128 __lhs, decimal64 __rhs)
• decimal128 operator∗ (decimal128 __lhs, int __rhs)
• decimal128 operator∗ (decimal128 __lhs, long __rhs)
• decimal128 operator∗ (decimal128 __lhs, long long __rhs)
• decimal128 operator∗ (decimal128 __lhs, unsigned int __rhs)
• decimal128 operator∗ (decimal128 __lhs, unsigned long __rhs)
• decimal128 operator∗ (decimal128 __lhs, unsigned long long __rhs)
• decimal128 operator∗ (decimal32 __lhs, decimal128 __rhs)
• decimal32 operator∗ (decimal32 __lhs, decimal32 __rhs)
• decimal64 operator∗ (decimal32 __lhs, decimal64 __rhs)
• decimal32 operator∗ (decimal32 __lhs, int __rhs)
• decimal32 operator∗ (decimal32 __lhs, long __rhs)
• decimal32 operator∗ (decimal32 __lhs, long long __rhs)
• decimal32 operator∗ (decimal32 __lhs, unsigned int __rhs)
• decimal32 operator∗ (decimal32 __lhs, unsigned long __rhs)
• decimal32 operator∗ (decimal32 __lhs, unsigned long long __rhs)
• decimal128 operator∗ (decimal64 __lhs, decimal128 __rhs)
• decimal64 operator∗ (decimal64 __lhs, decimal32 __rhs)
• decimal64 operator∗ (decimal64 __lhs, decimal64 __rhs)
• decimal64 operator∗ (decimal64 __lhs, int __rhs)
• decimal64 operator∗ (decimal64 __lhs, long __rhs)
• decimal64 operator∗ (decimal64 __lhs, long long __rhs)
• decimal64 operator∗ (decimal64 __lhs, unsigned int __rhs)
• decimal64 operator∗ (decimal64 __lhs, unsigned long __rhs)
• decimal64 operator∗ (decimal64 __lhs, unsigned long long __rhs)
• decimal128 operator∗ (int __lhs, decimal128 __rhs)
• decimal32 operator∗ (int __lhs, decimal32 __rhs)
• decimal64 operator∗ (int __lhs, decimal64 __rhs)
• decimal128 operator∗ (long __lhs, decimal128 __rhs)
• decimal32 operator∗ (long __lhs, decimal32 __rhs)
• decimal64 operator∗ (long __lhs, decimal64 __rhs)
• decimal128 operator∗ (long long __lhs, decimal128 __rhs)
• decimal32 operator∗ (long long __lhs, decimal32 __rhs)
• decimal64 operator∗ (long long __lhs, decimal64 __rhs)
• decimal128 operator∗ (unsigned int __lhs, decimal128 __rhs)
• decimal32 operator∗ (unsigned int __lhs, decimal32 __rhs)
• decimal64 operator∗ (unsigned int __lhs, decimal64 __rhs)
• decimal128 operator∗ (unsigned long __lhs, decimal128 __rhs)
• decimal32 operator∗ (unsigned long __lhs, decimal32 __rhs)
• decimal64 operator∗ (unsigned long __lhs, decimal64 __rhs)
• decimal128 operator∗ (unsigned long long __lhs, decimal128 __rhs)
• decimal32 operator∗ (unsigned long long __lhs, decimal32 __rhs)
• decimal64 operator∗ (unsigned long long __lhs, decimal64 __rhs)
• decimal128 operator+ (decimal128 __lhs, decimal128 __rhs)

Generated by Doxygen
4.15 std::decimal Namespace Reference 679

• decimal128 operator+ (decimal128 __lhs, decimal32 __rhs)


• decimal128 operator+ (decimal128 __lhs, decimal64 __rhs)
• decimal128 operator+ (decimal128 __lhs, int __rhs)
• decimal128 operator+ (decimal128 __lhs, long __rhs)
• decimal128 operator+ (decimal128 __lhs, long long __rhs)
• decimal128 operator+ (decimal128 __lhs, unsigned int __rhs)
• decimal128 operator+ (decimal128 __lhs, unsigned long __rhs)
• decimal128 operator+ (decimal128 __lhs, unsigned long long __rhs)
• decimal128 operator+ (decimal128 __rhs)
• decimal128 operator+ (decimal32 __lhs, decimal128 __rhs)
• decimal32 operator+ (decimal32 __lhs, decimal32 __rhs)
• decimal64 operator+ (decimal32 __lhs, decimal64 __rhs)
• decimal32 operator+ (decimal32 __lhs, int __rhs)
• decimal32 operator+ (decimal32 __lhs, long __rhs)
• decimal32 operator+ (decimal32 __lhs, long long __rhs)
• decimal32 operator+ (decimal32 __lhs, unsigned int __rhs)
• decimal32 operator+ (decimal32 __lhs, unsigned long __rhs)
• decimal32 operator+ (decimal32 __lhs, unsigned long long __rhs)
• decimal32 operator+ (decimal32 __rhs)
• decimal128 operator+ (decimal64 __lhs, decimal128 __rhs)
• decimal64 operator+ (decimal64 __lhs, decimal32 __rhs)
• decimal64 operator+ (decimal64 __lhs, decimal64 __rhs)
• decimal64 operator+ (decimal64 __lhs, int __rhs)
• decimal64 operator+ (decimal64 __lhs, long __rhs)
• decimal64 operator+ (decimal64 __lhs, long long __rhs)
• decimal64 operator+ (decimal64 __lhs, unsigned int __rhs)
• decimal64 operator+ (decimal64 __lhs, unsigned long __rhs)
• decimal64 operator+ (decimal64 __lhs, unsigned long long __rhs)
• decimal64 operator+ (decimal64 __rhs)
• decimal128 operator+ (int __lhs, decimal128 __rhs)
• decimal32 operator+ (int __lhs, decimal32 __rhs)
• decimal64 operator+ (int __lhs, decimal64 __rhs)
• decimal128 operator+ (long __lhs, decimal128 __rhs)
• decimal32 operator+ (long __lhs, decimal32 __rhs)
• decimal64 operator+ (long __lhs, decimal64 __rhs)
• decimal128 operator+ (long long __lhs, decimal128 __rhs)
• decimal32 operator+ (long long __lhs, decimal32 __rhs)
• decimal64 operator+ (long long __lhs, decimal64 __rhs)
• decimal128 operator+ (unsigned int __lhs, decimal128 __rhs)
• decimal32 operator+ (unsigned int __lhs, decimal32 __rhs)
• decimal64 operator+ (unsigned int __lhs, decimal64 __rhs)
• decimal128 operator+ (unsigned long __lhs, decimal128 __rhs)
• decimal32 operator+ (unsigned long __lhs, decimal32 __rhs)
• decimal64 operator+ (unsigned long __lhs, decimal64 __rhs)
• decimal128 operator+ (unsigned long long __lhs, decimal128 __rhs)
• decimal32 operator+ (unsigned long long __lhs, decimal32 __rhs)
• decimal64 operator+ (unsigned long long __lhs, decimal64 __rhs)
• decimal128 operator- (decimal128 __lhs, decimal128 __rhs)
• decimal128 operator- (decimal128 __lhs, decimal32 __rhs)
• decimal128 operator- (decimal128 __lhs, decimal64 __rhs)
• decimal128 operator- (decimal128 __lhs, int __rhs)

Generated by Doxygen
680

• decimal128 operator- (decimal128 __lhs, long __rhs)


• decimal128 operator- (decimal128 __lhs, long long __rhs)
• decimal128 operator- (decimal128 __lhs, unsigned int __rhs)
• decimal128 operator- (decimal128 __lhs, unsigned long __rhs)
• decimal128 operator- (decimal128 __lhs, unsigned long long __rhs)
• decimal128 operator- (decimal128 __rhs)
• decimal128 operator- (decimal32 __lhs, decimal128 __rhs)
• decimal32 operator- (decimal32 __lhs, decimal32 __rhs)
• decimal64 operator- (decimal32 __lhs, decimal64 __rhs)
• decimal32 operator- (decimal32 __lhs, int __rhs)
• decimal32 operator- (decimal32 __lhs, long __rhs)
• decimal32 operator- (decimal32 __lhs, long long __rhs)
• decimal32 operator- (decimal32 __lhs, unsigned int __rhs)
• decimal32 operator- (decimal32 __lhs, unsigned long __rhs)
• decimal32 operator- (decimal32 __lhs, unsigned long long __rhs)
• decimal32 operator- (decimal32 __rhs)
• decimal128 operator- (decimal64 __lhs, decimal128 __rhs)
• decimal64 operator- (decimal64 __lhs, decimal32 __rhs)
• decimal64 operator- (decimal64 __lhs, decimal64 __rhs)
• decimal64 operator- (decimal64 __lhs, int __rhs)
• decimal64 operator- (decimal64 __lhs, long __rhs)
• decimal64 operator- (decimal64 __lhs, long long __rhs)
• decimal64 operator- (decimal64 __lhs, unsigned int __rhs)
• decimal64 operator- (decimal64 __lhs, unsigned long __rhs)
• decimal64 operator- (decimal64 __lhs, unsigned long long __rhs)
• decimal64 operator- (decimal64 __rhs)
• decimal128 operator- (int __lhs, decimal128 __rhs)
• decimal32 operator- (int __lhs, decimal32 __rhs)
• decimal64 operator- (int __lhs, decimal64 __rhs)
• decimal128 operator- (long __lhs, decimal128 __rhs)
• decimal32 operator- (long __lhs, decimal32 __rhs)
• decimal64 operator- (long __lhs, decimal64 __rhs)
• decimal128 operator- (long long __lhs, decimal128 __rhs)
• decimal32 operator- (long long __lhs, decimal32 __rhs)
• decimal64 operator- (long long __lhs, decimal64 __rhs)
• decimal128 operator- (unsigned int __lhs, decimal128 __rhs)
• decimal32 operator- (unsigned int __lhs, decimal32 __rhs)
• decimal64 operator- (unsigned int __lhs, decimal64 __rhs)
• decimal128 operator- (unsigned long __lhs, decimal128 __rhs)
• decimal32 operator- (unsigned long __lhs, decimal32 __rhs)
• decimal64 operator- (unsigned long __lhs, decimal64 __rhs)
• decimal128 operator- (unsigned long long __lhs, decimal128 __rhs)
• decimal32 operator- (unsigned long long __lhs, decimal32 __rhs)
• decimal64 operator- (unsigned long long __lhs, decimal64 __rhs)
• decimal128 operator/ (decimal128 __lhs, decimal128 __rhs)
• decimal128 operator/ (decimal128 __lhs, decimal32 __rhs)
• decimal128 operator/ (decimal128 __lhs, decimal64 __rhs)
• decimal128 operator/ (decimal128 __lhs, int __rhs)
• decimal128 operator/ (decimal128 __lhs, long __rhs)
• decimal128 operator/ (decimal128 __lhs, long long __rhs)
• decimal128 operator/ (decimal128 __lhs, unsigned int __rhs)

Generated by Doxygen
4.15 std::decimal Namespace Reference 681

• decimal128 operator/ (decimal128 __lhs, unsigned long __rhs)


• decimal128 operator/ (decimal128 __lhs, unsigned long long __rhs)
• decimal128 operator/ (decimal32 __lhs, decimal128 __rhs)
• decimal32 operator/ (decimal32 __lhs, decimal32 __rhs)
• decimal64 operator/ (decimal32 __lhs, decimal64 __rhs)
• decimal32 operator/ (decimal32 __lhs, int __rhs)
• decimal32 operator/ (decimal32 __lhs, long __rhs)
• decimal32 operator/ (decimal32 __lhs, long long __rhs)
• decimal32 operator/ (decimal32 __lhs, unsigned int __rhs)
• decimal32 operator/ (decimal32 __lhs, unsigned long __rhs)
• decimal32 operator/ (decimal32 __lhs, unsigned long long __rhs)
• decimal128 operator/ (decimal64 __lhs, decimal128 __rhs)
• decimal64 operator/ (decimal64 __lhs, decimal32 __rhs)
• decimal64 operator/ (decimal64 __lhs, decimal64 __rhs)
• decimal64 operator/ (decimal64 __lhs, int __rhs)
• decimal64 operator/ (decimal64 __lhs, long __rhs)
• decimal64 operator/ (decimal64 __lhs, long long __rhs)
• decimal64 operator/ (decimal64 __lhs, unsigned int __rhs)
• decimal64 operator/ (decimal64 __lhs, unsigned long __rhs)
• decimal64 operator/ (decimal64 __lhs, unsigned long long __rhs)
• decimal128 operator/ (int __lhs, decimal128 __rhs)
• decimal32 operator/ (int __lhs, decimal32 __rhs)
• decimal64 operator/ (int __lhs, decimal64 __rhs)
• decimal128 operator/ (long __lhs, decimal128 __rhs)
• decimal32 operator/ (long __lhs, decimal32 __rhs)
• decimal64 operator/ (long __lhs, decimal64 __rhs)
• decimal128 operator/ (long long __lhs, decimal128 __rhs)
• decimal32 operator/ (long long __lhs, decimal32 __rhs)
• decimal64 operator/ (long long __lhs, decimal64 __rhs)
• decimal128 operator/ (unsigned int __lhs, decimal128 __rhs)
• decimal32 operator/ (unsigned int __lhs, decimal32 __rhs)
• decimal64 operator/ (unsigned int __lhs, decimal64 __rhs)
• decimal128 operator/ (unsigned long __lhs, decimal128 __rhs)
• decimal32 operator/ (unsigned long __lhs, decimal32 __rhs)
• decimal64 operator/ (unsigned long __lhs, decimal64 __rhs)
• decimal128 operator/ (unsigned long long __lhs, decimal128 __rhs)
• decimal32 operator/ (unsigned long long __lhs, decimal32 __rhs)
• decimal64 operator/ (unsigned long long __lhs, decimal64 __rhs)
• bool operator< (decimal128 __lhs, decimal128 __rhs)
• bool operator< (decimal128 __lhs, decimal32 __rhs)
• bool operator< (decimal128 __lhs, decimal64 __rhs)
• bool operator< (decimal128 __lhs, int __rhs)
• bool operator< (decimal128 __lhs, long __rhs)
• bool operator< (decimal128 __lhs, long long __rhs)
• bool operator< (decimal128 __lhs, unsigned int __rhs)
• bool operator< (decimal128 __lhs, unsigned long __rhs)
• bool operator< (decimal128 __lhs, unsigned long long __rhs)
• bool operator< (decimal32 __lhs, decimal128 __rhs)
• bool operator< (decimal32 __lhs, decimal32 __rhs)
• bool operator< (decimal32 __lhs, decimal64 __rhs)
• bool operator< (decimal32 __lhs, int __rhs)

Generated by Doxygen
682

• bool operator< (decimal32 __lhs, long __rhs)


• bool operator< (decimal32 __lhs, long long __rhs)
• bool operator< (decimal32 __lhs, unsigned int __rhs)
• bool operator< (decimal32 __lhs, unsigned long __rhs)
• bool operator< (decimal32 __lhs, unsigned long long __rhs)
• bool operator< (decimal64 __lhs, decimal128 __rhs)
• bool operator< (decimal64 __lhs, decimal32 __rhs)
• bool operator< (decimal64 __lhs, decimal64 __rhs)
• bool operator< (decimal64 __lhs, int __rhs)
• bool operator< (decimal64 __lhs, long __rhs)
• bool operator< (decimal64 __lhs, long long __rhs)
• bool operator< (decimal64 __lhs, unsigned int __rhs)
• bool operator< (decimal64 __lhs, unsigned long __rhs)
• bool operator< (decimal64 __lhs, unsigned long long __rhs)
• bool operator< (int __lhs, decimal128 __rhs)
• bool operator< (int __lhs, decimal32 __rhs)
• bool operator< (int __lhs, decimal64 __rhs)
• bool operator< (long __lhs, decimal128 __rhs)
• bool operator< (long __lhs, decimal32 __rhs)
• bool operator< (long __lhs, decimal64 __rhs)
• bool operator< (long long __lhs, decimal128 __rhs)
• bool operator< (long long __lhs, decimal32 __rhs)
• bool operator< (long long __lhs, decimal64 __rhs)
• bool operator< (unsigned int __lhs, decimal128 __rhs)
• bool operator< (unsigned int __lhs, decimal32 __rhs)
• bool operator< (unsigned int __lhs, decimal64 __rhs)
• bool operator< (unsigned long __lhs, decimal128 __rhs)
• bool operator< (unsigned long __lhs, decimal32 __rhs)
• bool operator< (unsigned long __lhs, decimal64 __rhs)
• bool operator< (unsigned long long __lhs, decimal128 __rhs)
• bool operator< (unsigned long long __lhs, decimal32 __rhs)
• bool operator< (unsigned long long __lhs, decimal64 __rhs)
• bool operator== (decimal128 __lhs, decimal128 __rhs)
• bool operator== (decimal128 __lhs, decimal32 __rhs)
• bool operator== (decimal128 __lhs, decimal64 __rhs)
• bool operator== (decimal128 __lhs, int __rhs)
• bool operator== (decimal128 __lhs, long __rhs)
• bool operator== (decimal128 __lhs, long long __rhs)
• bool operator== (decimal128 __lhs, unsigned int __rhs)
• bool operator== (decimal128 __lhs, unsigned long __rhs)
• bool operator== (decimal128 __lhs, unsigned long long __rhs)
• bool operator== (decimal32 __lhs, decimal128 __rhs)
• bool operator== (decimal32 __lhs, decimal32 __rhs)
• bool operator== (decimal32 __lhs, decimal64 __rhs)
• bool operator== (decimal32 __lhs, int __rhs)
• bool operator== (decimal32 __lhs, long __rhs)
• bool operator== (decimal32 __lhs, long long __rhs)
• bool operator== (decimal32 __lhs, unsigned int __rhs)
• bool operator== (decimal32 __lhs, unsigned long __rhs)
• bool operator== (decimal32 __lhs, unsigned long long __rhs)
• bool operator== (decimal64 __lhs, decimal128 __rhs)

Generated by Doxygen
4.15 std::decimal Namespace Reference 683

• bool operator== (decimal64 __lhs, decimal32 __rhs)


• bool operator== (decimal64 __lhs, decimal64 __rhs)
• bool operator== (decimal64 __lhs, int __rhs)
• bool operator== (decimal64 __lhs, long __rhs)
• bool operator== (decimal64 __lhs, long long __rhs)
• bool operator== (decimal64 __lhs, unsigned int __rhs)
• bool operator== (decimal64 __lhs, unsigned long __rhs)
• bool operator== (decimal64 __lhs, unsigned long long __rhs)
• bool operator== (int __lhs, decimal128 __rhs)
• bool operator== (int __lhs, decimal32 __rhs)
• bool operator== (int __lhs, decimal64 __rhs)
• bool operator== (long __lhs, decimal128 __rhs)
• bool operator== (long __lhs, decimal32 __rhs)
• bool operator== (long __lhs, decimal64 __rhs)
• bool operator== (long long __lhs, decimal128 __rhs)
• bool operator== (long long __lhs, decimal32 __rhs)
• bool operator== (long long __lhs, decimal64 __rhs)
• bool operator== (unsigned int __lhs, decimal128 __rhs)
• bool operator== (unsigned int __lhs, decimal32 __rhs)
• bool operator== (unsigned int __lhs, decimal64 __rhs)
• bool operator== (unsigned long __lhs, decimal128 __rhs)
• bool operator== (unsigned long __lhs, decimal32 __rhs)
• bool operator== (unsigned long __lhs, decimal64 __rhs)
• bool operator== (unsigned long long __lhs, decimal128 __rhs)
• bool operator== (unsigned long long __lhs, decimal32 __rhs)
• bool operator== (unsigned long long __lhs, decimal64 __rhs)
• bool operator> (decimal128 __lhs, decimal128 __rhs)
• bool operator> (decimal128 __lhs, decimal32 __rhs)
• bool operator> (decimal128 __lhs, decimal64 __rhs)
• bool operator> (decimal128 __lhs, int __rhs)
• bool operator> (decimal128 __lhs, long __rhs)
• bool operator> (decimal128 __lhs, long long __rhs)
• bool operator> (decimal128 __lhs, unsigned int __rhs)
• bool operator> (decimal128 __lhs, unsigned long __rhs)
• bool operator> (decimal128 __lhs, unsigned long long __rhs)
• bool operator> (decimal32 __lhs, decimal128 __rhs)
• bool operator> (decimal32 __lhs, decimal32 __rhs)
• bool operator> (decimal32 __lhs, decimal64 __rhs)
• bool operator> (decimal32 __lhs, int __rhs)
• bool operator> (decimal32 __lhs, long __rhs)
• bool operator> (decimal32 __lhs, long long __rhs)
• bool operator> (decimal32 __lhs, unsigned int __rhs)
• bool operator> (decimal32 __lhs, unsigned long __rhs)
• bool operator> (decimal32 __lhs, unsigned long long __rhs)
• bool operator> (decimal64 __lhs, decimal128 __rhs)
• bool operator> (decimal64 __lhs, decimal32 __rhs)
• bool operator> (decimal64 __lhs, decimal64 __rhs)
• bool operator> (decimal64 __lhs, int __rhs)
• bool operator> (decimal64 __lhs, long __rhs)
• bool operator> (decimal64 __lhs, long long __rhs)
• bool operator> (decimal64 __lhs, unsigned int __rhs)

Generated by Doxygen
684

• bool operator> (decimal64 __lhs, unsigned long __rhs)


• bool operator> (decimal64 __lhs, unsigned long long __rhs)
• bool operator> (int __lhs, decimal128 __rhs)
• bool operator> (int __lhs, decimal32 __rhs)
• bool operator> (int __lhs, decimal64 __rhs)
• bool operator> (long __lhs, decimal128 __rhs)
• bool operator> (long __lhs, decimal32 __rhs)
• bool operator> (long __lhs, decimal64 __rhs)
• bool operator> (long long __lhs, decimal128 __rhs)
• bool operator> (long long __lhs, decimal32 __rhs)
• bool operator> (long long __lhs, decimal64 __rhs)
• bool operator> (unsigned int __lhs, decimal128 __rhs)
• bool operator> (unsigned int __lhs, decimal32 __rhs)
• bool operator> (unsigned int __lhs, decimal64 __rhs)
• bool operator> (unsigned long __lhs, decimal128 __rhs)
• bool operator> (unsigned long __lhs, decimal32 __rhs)
• bool operator> (unsigned long __lhs, decimal64 __rhs)
• bool operator> (unsigned long long __lhs, decimal128 __rhs)
• bool operator> (unsigned long long __lhs, decimal32 __rhs)
• bool operator> (unsigned long long __lhs, decimal64 __rhs)
• bool operator>= (decimal128 __lhs, decimal128 __rhs)
• bool operator>= (decimal128 __lhs, decimal32 __rhs)
• bool operator>= (decimal128 __lhs, decimal64 __rhs)
• bool operator>= (decimal128 __lhs, int __rhs)
• bool operator>= (decimal128 __lhs, long __rhs)
• bool operator>= (decimal128 __lhs, long long __rhs)
• bool operator>= (decimal128 __lhs, unsigned int __rhs)
• bool operator>= (decimal128 __lhs, unsigned long __rhs)
• bool operator>= (decimal128 __lhs, unsigned long long __rhs)
• bool operator>= (decimal32 __lhs, decimal128 __rhs)
• bool operator>= (decimal32 __lhs, decimal32 __rhs)
• bool operator>= (decimal32 __lhs, decimal64 __rhs)
• bool operator>= (decimal32 __lhs, int __rhs)
• bool operator>= (decimal32 __lhs, long __rhs)
• bool operator>= (decimal32 __lhs, long long __rhs)
• bool operator>= (decimal32 __lhs, unsigned int __rhs)
• bool operator>= (decimal32 __lhs, unsigned long __rhs)
• bool operator>= (decimal32 __lhs, unsigned long long __rhs)
• bool operator>= (decimal64 __lhs, decimal128 __rhs)
• bool operator>= (decimal64 __lhs, decimal32 __rhs)
• bool operator>= (decimal64 __lhs, decimal64 __rhs)
• bool operator>= (decimal64 __lhs, int __rhs)
• bool operator>= (decimal64 __lhs, long __rhs)
• bool operator>= (decimal64 __lhs, long long __rhs)
• bool operator>= (decimal64 __lhs, unsigned int __rhs)
• bool operator>= (decimal64 __lhs, unsigned long __rhs)
• bool operator>= (decimal64 __lhs, unsigned long long __rhs)
• bool operator>= (int __lhs, decimal128 __rhs)
• bool operator>= (int __lhs, decimal32 __rhs)
• bool operator>= (int __lhs, decimal64 __rhs)
• bool operator>= (long __lhs, decimal128 __rhs)

Generated by Doxygen
4.16 std::experimental Namespace Reference 685

• bool operator>= (long __lhs, decimal32 __rhs)


• bool operator>= (long __lhs, decimal64 __rhs)
• bool operator>= (long long __lhs, decimal128 __rhs)
• bool operator>= (long long __lhs, decimal32 __rhs)
• bool operator>= (long long __lhs, decimal64 __rhs)
• bool operator>= (unsigned int __lhs, decimal128 __rhs)
• bool operator>= (unsigned int __lhs, decimal32 __rhs)
• bool operator>= (unsigned int __lhs, decimal64 __rhs)
• bool operator>= (unsigned long __lhs, decimal128 __rhs)
• bool operator>= (unsigned long __lhs, decimal32 __rhs)
• bool operator>= (unsigned long __lhs, decimal64 __rhs)
• bool operator>= (unsigned long long __lhs, decimal128 __rhs)
• bool operator>= (unsigned long long __lhs, decimal32 __rhs)
• bool operator>= (unsigned long long __lhs, decimal64 __rhs)

4.15.1 Detailed Description

ISO/IEC TR 24733 Decimal floating-point arithmetic.

4.15.2 Function Documentation

decimal32_to_long_long()

long long std::decimal::decimal32_to_long_long (


decimal32 __d)
Non-conforming extension: Conversion to integral type.

4.16 std::experimental Namespace Reference


Classes

• class any
• class bad_any_cast
• class bad_optional_access
• class basic_string_view
• struct in_place_t
• struct nullopt_t
• class optional
• class ostream_joiner
• struct owner_less< shared_ptr< _Tp > >
• struct owner_less< weak_ptr< _Tp > >
• class propagate_const

Typedefs

• template<typename _RAIter , typename _Hash , typename _Pred , typename _Val = typename iterator_traits<_RAIter>::value_type, type-
name _Diff = typename iterator_traits<_RAIter>::difference_type>
using __boyer_moore_base_t
• template<typename _Tp >
using __propagate_const_elem_type
• using erased_type
• using string_view
• using u16string_view
• using u32string_view
• using wstring_view

Generated by Doxygen
686

Functions

• template<typename _Fn , typename _Tuple , std::size_t... _Idx>


constexpr decltype(auto) __apply_impl (_Fn &&__f, _Tuple &&__t, std::index_sequence< _Idx... >)
• template<typename _Tp , size_t _Nm, size_t... _Idx>
constexpr array< remove_cv_t< _Tp >, _Nm > __to_array (_Tp(&__a)[_Nm], index_sequence< _Idx... >)
• std::default_random_engine & _S_randint_engine ()
• template<typename _ValueType >
_ValueType any_cast (const any &__any)
• template<typename _Fn , typename _Tuple >
constexpr decltype(auto) apply (_Fn &&__f, _Tuple &&__t)
• template<typename _Tp >
bool atomic_compare_exchange_strong (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__v, shared_ptr<
_Tp > __w)
• template<typename _Tp >
bool atomic_compare_exchange_strong_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__←-
v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
• template<typename _Tp >
bool atomic_compare_exchange_weak (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__v, shared_ptr< _Tp
> __w)
• template<typename _Tp >
bool atomic_compare_exchange_weak_explicit (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > ∗__←-
v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
• template<typename _Tp >
void atomic_exchange (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r)
• template<typename _Tp >
shared_ptr< _Tp > atomic_exchange_explicit (const shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __←-
r, memory_order __mo)
• template<typename _Tp >
bool atomic_is_lock_free (const shared_ptr< _Tp > ∗__p)
• template<typename _Tp >
shared_ptr< _Tp > atomic_load (const shared_ptr< _Tp > ∗__p)
• template<typename _Tp >
shared_ptr< _Tp > atomic_load_explicit (const shared_ptr< _Tp > ∗__p, memory_order __mo)
• template<typename _Tp >
void atomic_store (shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __r)
• template<typename _Tp >
shared_ptr< _Tp > atomic_store_explicit (const shared_ptr< _Tp > ∗__p, shared_ptr< _Tp > __←-
r, memory_order __mo)
• template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > const_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
• template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > dynamic_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
• template<typename _CharT , typename _Traits , typename _Alloc , typename _Up >
void erase (basic_string< _CharT, _Traits, _Alloc > &__cont, const _Up &__value)
• template<typename _Tp , typename _Alloc , typename _Up >
void erase (deque< _Tp, _Alloc > &__cont, const _Up &__value)
• template<typename _Tp , typename _Alloc , typename _Up >
void erase (forward_list< _Tp, _Alloc > &__cont, const _Up &__value)
• template<typename _Tp , typename _Alloc , typename _Up >
void erase (list< _Tp, _Alloc > &__cont, const _Up &__value)
• template<typename _Tp , typename _Alloc , typename _Up >
void erase (vector< _Tp, _Alloc > &__cont, const _Up &__value)

Generated by Doxygen
4.16 std::experimental Namespace Reference 687

• template<typename _CharT , typename _Traits , typename _Alloc , typename _Predicate >


void erase_if (basic_string< _CharT, _Traits, _Alloc > &__cont, _Predicate __pred)
• template<typename _Tp , typename _Alloc , typename _Predicate >
void erase_if (deque< _Tp, _Alloc > &__cont, _Predicate __pred)
• template<typename _Tp , typename _Alloc , typename _Predicate >
void erase_if (forward_list< _Tp, _Alloc > &__cont, _Predicate __pred)
• template<typename _Tp , typename _Alloc , typename _Predicate >
void erase_if (list< _Tp, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc , typename _Predicate >
void erase_if (map< _Key, _Tp, _Compare, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Tp , typename _Compare , typename _Alloc , typename _Predicate >
void erase_if (multimap< _Key, _Tp, _Compare, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Compare , typename _Alloc , typename _Predicate >
void erase_if (multiset< _Key, _Compare, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Compare , typename _Alloc , typename _Predicate >
void erase_if (set< _Key, _Compare, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Tp , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void erase_if (unordered_map< _Key, _Tp, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Tp , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void erase_if (unordered_multimap< _Key, _Tp, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void erase_if (unordered_multiset< _Key, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
• template<typename _Key , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void erase_if (unordered_set< _Key, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
• template<typename _Tp , typename _Alloc , typename _Predicate >
void erase_if (vector< _Tp, _Alloc > &__cont, _Predicate __pred)
• template<typename _Mn , typename _Nn >
constexpr common_type_t< _Mn, _Nn > gcd (_Mn __m, _Nn __n) noexcept
• template<typename _Del , typename _Tp >
_Del ∗ get_deleter (const shared_ptr< _Tp > &__p) noexcept
• template<typename _Tp >
constexpr const _Tp & get_underlying (const propagate_const< _Tp > &__pt) noexcept
• template<typename _Tp >
constexpr _Tp & get_underlying (propagate_const< _Tp > &__pt) noexcept
• template<typename _Mn , typename _Nn >
constexpr common_type_t< _Mn, _Nn > lcm (_Mn __m, _Nn __n)
• template<typename _Dest = void, typename... _Types>
constexpr array< typename __make_array_elem< _Dest, _Types... >::type, sizeof...(_Types)> make_array (←-
_Types &&... __t)
• template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>::value_type>, typename _Binary←-
Predicate = equal_to<>>
boyer_moore_horspool_searcher< _RAIter, _Hash, _BinaryPredicate > make_boyer_moore_horspool_searcher
(_RAIter __pat_first, _RAIter __pat_last, _Hash __hf=_Hash(), _BinaryPredicate __pred=_BinaryPredicate())
• template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>::value_type>, typename _Binary←-
Predicate = equal_to<>>
boyer_moore_searcher< _RAIter, _Hash, _BinaryPredicate > make_boyer_moore_searcher (_RAIter __pat_←-
first, _RAIter __pat_last, _Hash __hf=_Hash(), _BinaryPredicate __pred=_BinaryPredicate())
• template<typename _ForwardIterator , typename _BinaryPredicate = std::equal_to<>>
default_searcher< _ForwardIterator, _BinaryPredicate > make_default_searcher (_ForwardIterator __pat_first,
_ForwardIterator __pat_last, _BinaryPredicate __pred=_BinaryPredicate())
• template<typename _Tp >
observer_ptr< _Tp > make_observer (_Tp ∗__p) noexcept

Generated by Doxygen
688

• template<typename _CharT , typename _Traits , typename _DelimT >


ostream_joiner< decay_t< _DelimT >, _CharT, _Traits > make_ostream_joiner (basic_ostream< _CharT, _←-
Traits > &__os, _DelimT &&__delimiter)
• template<typename _Fn >
auto not_fn (_Fn &&__fn) noexcept(std::is_nothrow_constructible< std::decay_t< _Fn >, _Fn && >::value)
• template<typename _CharT , typename _Traits >
constexpr bool operator!= (__type_identity_t< basic_string_view< _CharT, _Traits > > __x, basic_string_view<
_CharT, _Traits > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator!= (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view<
_CharT, _Traits > > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator!= (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits >
__y) noexcept
• template<typename _Tp , typename _Up >
constexpr bool operator!= (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool operator!= (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool operator!= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
• template<typename _Tp >
constexpr bool operator!= (const propagate_const< _Tp > &__pt, nullptr_t)
• template<typename _Tp >
bool operator!= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
• template<typename _Tp1 , typename _Tp2 >
bool operator!= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
• template<typename _Tp >
constexpr bool operator!= (nullptr_t, const propagate_const< _Tp > &__pu)
• template<typename _Tp >
bool operator!= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
• template<typename _Tp >
bool operator!= (nullptr_t, observer_ptr< _Tp > __p) noexcept
• template<typename _Tp >
bool operator!= (observer_ptr< _Tp > __p, nullptr_t) noexcept
• template<typename _Tp , typename _Up >
bool operator!= (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
• constexpr basic_string_view< char > operator""sv (const char ∗__str, size_t __len) noexcept
• constexpr basic_string_view< char16_t > operator""sv (const char16_t ∗__str, size_t __len) noexcept
• constexpr basic_string_view< char32_t > operator""sv (const char32_t ∗__str, size_t __len) noexcept
• constexpr basic_string_view< wchar_t > operator""sv (const wchar_t ∗__str, size_t __len) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator< (__type_identity_t< basic_string_view< _CharT, _Traits > > __x, basic_string_view<
_CharT, _Traits > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator< (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view<
_CharT, _Traits > > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator< (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits >
__y) noexcept
• template<typename _Tp , typename _Up >
constexpr bool operator< (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool operator< (const propagate_const< _Tp > &__pt, const _Up &__u)

Generated by Doxygen
4.16 std::experimental Namespace Reference 689

• template<typename _Tp , typename _Up >


constexpr bool operator< (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
• template<typename _Tp >
bool operator< (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
• template<typename _Tp1 , typename _Tp2 >
bool operator< (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
• template<typename _Tp >
bool operator< (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
• template<typename _Tp , typename _Up >
bool operator< (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, basic_string_view<
_CharT, _Traits > __str)
• template<typename _Ch , typename _Tr , typename _Tp >
std::basic_ostream< _Ch, _Tr > & operator<< (std::basic_ostream< _Ch, _Tr > &__os, const shared_ptr<
_Tp > &__p)
• template<typename _CharT , typename _Traits >
constexpr bool operator<= (__type_identity_t< basic_string_view< _CharT, _Traits > > __x, basic_string_view<
_CharT, _Traits > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator<= (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view<
_CharT, _Traits > > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator<= (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits >
__y) noexcept
• template<typename _Tp , typename _Up >
constexpr bool operator<= (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool operator<= (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool operator<= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
• template<typename _Tp >
bool operator<= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
• template<typename _Tp1 , typename _Tp2 >
bool operator<= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
• template<typename _Tp >
bool operator<= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
• template<typename _Tp , typename _Up >
bool operator<= (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
• template<typename _CharT , typename _Traits >
constexpr bool operator== (__type_identity_t< basic_string_view< _CharT, _Traits > > __x, basic_string_view<
_CharT, _Traits > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator== (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view<
_CharT, _Traits > > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator== (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits >
__y) noexcept
• template<typename _Tp , typename _Up >
constexpr bool operator== (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool operator== (const propagate_const< _Tp > &__pt, const _Up &__u)

Generated by Doxygen
690

• template<typename _Tp , typename _Up >


constexpr bool operator== (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
• template<typename _Tp >
constexpr bool operator== (const propagate_const< _Tp > &__pt, nullptr_t)
• template<typename _Tp >
bool operator== (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
• template<typename _Tp1 , typename _Tp2 >
bool operator== (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
• template<typename _Tp >
constexpr bool operator== (nullptr_t, const propagate_const< _Tp > &__pu)
• template<typename _Tp >
bool operator== (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
• template<typename _Tp >
bool operator== (nullptr_t, observer_ptr< _Tp > __p) noexcept
• template<typename _Tp >
bool operator== (observer_ptr< _Tp > __p, nullptr_t) noexcept
• template<typename _Tp , typename _Up >
bool operator== (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
• template<typename _CharT , typename _Traits >
constexpr bool operator> (__type_identity_t< basic_string_view< _CharT, _Traits > > __x, basic_string_view<
_CharT, _Traits > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator> (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view<
_CharT, _Traits > > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator> (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits >
__y) noexcept
• template<typename _Tp , typename _Up >
constexpr bool operator> (const _Tp &__t, const propagate_const< _Up > &__pu)
• template<typename _Tp , typename _Up >
constexpr bool operator> (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool operator> (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
• template<typename _Tp >
bool operator> (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
• template<typename _Tp1 , typename _Tp2 >
bool operator> (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
• template<typename _Tp >
bool operator> (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
• template<typename _Tp , typename _Up >
bool operator> (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
• template<typename _CharT , typename _Traits >
constexpr bool operator>= (__type_identity_t< basic_string_view< _CharT, _Traits > > __x, basic_string_view<
_CharT, _Traits > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator>= (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view<
_CharT, _Traits > > __y) noexcept
• template<typename _CharT , typename _Traits >
constexpr bool operator>= (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits >
__y) noexcept
• template<typename _Tp , typename _Up >
constexpr bool operator>= (const _Tp &__t, const propagate_const< _Up > &__pu)

Generated by Doxygen
4.16 std::experimental Namespace Reference 691

• template<typename _Tp , typename _Up >


constexpr bool operator>= (const propagate_const< _Tp > &__pt, const _Up &__u)
• template<typename _Tp , typename _Up >
constexpr bool operator>= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
• template<typename _Tp >
bool operator>= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
• template<typename _Tp1 , typename _Tp2 >
bool operator>= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
• template<typename _Tp >
bool operator>= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
• template<typename _Tp , typename _Up >
bool operator>= (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
• template<typename _IntType >
_IntType randint (_IntType __a, _IntType __b)
• template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > reinterpret_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
• void reseed ()
• void reseed (default_random_engine::result_type __value)
• template<typename _PopulationIterator , typename _SampleIterator , typename _Distance >
_SampleIterator sample (_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __out, _←-
Distance __n)
• template<typename _PopulationIterator , typename _SampleIterator , typename _Distance , typename _UniformRandomNumberGenerator
>
_SampleIterator sample (_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __out, _Distance
__n, _UniformRandomNumberGenerator &&__g)
• template<typename _ForwardIterator , typename _Searcher >
_ForwardIterator search (_ForwardIterator __first, _ForwardIterator __last, const _Searcher &__searcher)
• template<typename _RandomAccessIterator >
void shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last)
• template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > static_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
• void swap (any &__x, any &__y) noexcept
• template<typename _Tp >
void swap (observer_ptr< _Tp > &__p1, observer_ptr< _Tp > &__p2) noexcept
• template<typename _Tp >
constexpr enable_if_t< __is_swappable< _Tp >::value, void > swap (propagate_const< _Tp > &__pt,
propagate_const< _Tp > &__pt2) noexcept(__is_nothrow_swappable< _Tp >::value)
• template<typename _Tp >
void swap (shared_ptr< _Tp > &__a, shared_ptr< _Tp > &__b) noexcept
• template<typename _Tp >
void swap (weak_ptr< _Tp > &__a, weak_ptr< _Tp > &__b) noexcept
• template<typename _Tp , size_t _Nm>
constexpr array< remove_cv_t< _Tp >, _Nm > to_array (_Tp(&__a)[_Nm]) noexcept(is_nothrow_constructible<
remove_cv_t< _Tp >, _Tp & >::value)

• template<typename _ValueType >


_ValueType any_cast (any &__any)
• template<typename _ValueType , typename enable_if<!is_move_constructible< _ValueType >::value||is_lvalue_reference< _ValueType
>::value, bool >::type = true>
_ValueType any_cast (any &&__any)
• template<typename _ValueType , typename enable_if< is_move_constructible< _ValueType >::value &&!is_lvalue_reference< _ValueType
>::value, bool >::type = false>
_ValueType any_cast (any &&__any)

Generated by Doxygen
692

• template<typename _ValueType >


const _ValueType ∗ any_cast (const any ∗__any) noexcept
• template<typename _ValueType >
_ValueType ∗ any_cast (any ∗__any) noexcept

Variables

• template<typename _Yp , typename _Tp >


constexpr bool __sp_compatible_v
• template<typename _Tp , typename _Yp >
constexpr bool __sp_is_constructible_v
• constexpr in_place_t in_place
• template<typename _Tp >
constexpr bool is_bind_expression_v
• template<typename _Tp >
constexpr bool is_error_code_enum_v
• template<typename _Tp >
constexpr bool is_error_condition_enum_v
• template<typename _Tp >
constexpr int is_placeholder_v
• constexpr nullopt_t nullopt
• template<typename _R1 , typename _R2 >
constexpr bool ratio_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_greater_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_greater_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_less_equal_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_less_v
• template<typename _R1 , typename _R2 >
constexpr bool ratio_not_equal_v
• template<typename _Tp >
constexpr size_t tuple_size_v

• template<typename _Tp >


constexpr bool is_void_v
• template<typename _Tp >
constexpr bool is_null_pointer_v
• template<typename _Tp >
constexpr bool is_integral_v
• template<typename _Tp >
constexpr bool is_floating_point_v
• template<typename _Tp >
constexpr bool is_array_v
• template<typename _Tp >
constexpr bool is_pointer_v
• template<typename _Tp >
constexpr bool is_lvalue_reference_v

Generated by Doxygen
4.16 std::experimental Namespace Reference 693

• template<typename _Tp >


constexpr bool is_rvalue_reference_v
• template<typename _Tp >
constexpr bool is_member_object_pointer_v
• template<typename _Tp >
constexpr bool is_member_function_pointer_v
• template<typename _Tp >
constexpr bool is_enum_v
• template<typename _Tp >
constexpr bool is_union_v
• template<typename _Tp >
constexpr bool is_class_v
• template<typename _Tp >
constexpr bool is_function_v
• template<typename _Tp >
constexpr bool is_reference_v
• template<typename _Tp >
constexpr bool is_arithmetic_v
• template<typename _Tp >
constexpr bool is_fundamental_v
• template<typename _Tp >
constexpr bool is_object_v
• template<typename _Tp >
constexpr bool is_scalar_v
• template<typename _Tp >
constexpr bool is_compound_v
• template<typename _Tp >
constexpr bool is_member_pointer_v
• template<typename _Tp >
constexpr bool is_const_v
• template<typename _Tp >
constexpr bool is_volatile_v
• template<typename _Tp >
constexpr bool is_trivial_v
• template<typename _Tp >
constexpr bool is_trivially_copyable_v
• template<typename _Tp >
constexpr bool is_standard_layout_v
• template<typename _Tp >
constexpr bool is_pod_v
• template<typename _Tp >
constexpr bool is_literal_type_v
• template<typename _Tp >
constexpr bool is_empty_v
• template<typename _Tp >
constexpr bool is_polymorphic_v
• template<typename _Tp >
constexpr bool is_abstract_v
• template<typename _Tp >
constexpr bool is_final_v
• template<typename _Tp >
constexpr bool is_signed_v

Generated by Doxygen
694

• template<typename _Tp >


constexpr bool is_unsigned_v
• template<typename _Tp , typename... _Args>
constexpr bool is_constructible_v
• template<typename _Tp >
constexpr bool is_default_constructible_v
• template<typename _Tp >
constexpr bool is_copy_constructible_v
• template<typename _Tp >
constexpr bool is_move_constructible_v
• template<typename _Tp , typename _Up >
constexpr bool is_assignable_v
• template<typename _Tp >
constexpr bool is_copy_assignable_v
• template<typename _Tp >
constexpr bool is_move_assignable_v
• template<typename _Tp >
constexpr bool is_destructible_v
• template<typename _Tp , typename... _Args>
constexpr bool is_trivially_constructible_v
• template<typename _Tp >
constexpr bool is_trivially_default_constructible_v
• template<typename _Tp >
constexpr bool is_trivially_copy_constructible_v
• template<typename _Tp >
constexpr bool is_trivially_move_constructible_v
• template<typename _Tp , typename _Up >
constexpr bool is_trivially_assignable_v
• template<typename _Tp >
constexpr bool is_trivially_copy_assignable_v
• template<typename _Tp >
constexpr bool is_trivially_move_assignable_v
• template<typename _Tp >
constexpr bool is_trivially_destructible_v
• template<typename _Tp , typename... _Args>
constexpr bool is_nothrow_constructible_v
• template<typename _Tp >
constexpr bool is_nothrow_default_constructible_v
• template<typename _Tp >
constexpr bool is_nothrow_copy_constructible_v
• template<typename _Tp >
constexpr bool is_nothrow_move_constructible_v
• template<typename _Tp , typename _Up >
constexpr bool is_nothrow_assignable_v
• template<typename _Tp >
constexpr bool is_nothrow_copy_assignable_v
• template<typename _Tp >
constexpr bool is_nothrow_move_assignable_v
• template<typename _Tp >
constexpr bool is_nothrow_destructible_v
• template<typename _Tp >
constexpr bool has_virtual_destructor_v

Generated by Doxygen
4.16 std::experimental Namespace Reference 695

• template<typename _Tp >


constexpr size_t alignment_of_v
• template<typename _Tp >
constexpr size_t rank_v
• template<typename _Tp , unsigned _Idx = 0>
constexpr size_t extent_v
• template<typename _Tp , typename _Up >
constexpr bool is_same_v
• template<typename _Tp >
constexpr bool is_same_v< _Tp, _Tp >
• template<typename _Base , typename _Derived >
constexpr bool is_base_of_v
• template<typename _From , typename _To >
constexpr bool is_convertible_v

• template<typename... _Bn>
constexpr bool conjunction_v
• template<typename... _Bn>
constexpr bool disjunction_v
• template<typename _Pp >
constexpr bool negation_v

• template<typename... >
using void_t
• template<typename _Default , template< typename... > class _Op, typename... _Args>
using detected_or
• template<typename _Default , template< typename... > class _Op, typename... _Args>
using detected_or_t
• template<template< typename... > class _Op, typename... _Args>
using detected_t
• template<template< typename... > class _Op, typename... _Args>
using is_detected
• template<typename _Expected , template< typename... > class _Op, typename... _Args>
using is_detected_exact
• template<typename _To , template< typename... > class _Op, typename... _Args>
using is_detected_convertible
• template<template< typename... > class _Op, typename... _Args>
constexpr bool is_detected_v
• template<typename _Expected , template< typename... > class _Op, typename... _Args>
constexpr bool is_detected_exact_v
• template<typename _To , template< typename... > class _Op, typename... _Args>
constexpr bool is_detected_convertible_v

4.16.1 Detailed Description

Namespace for features defined in ISO Technical Specifications.

Generated by Doxygen
696

4.16.2 Function Documentation

gcd()

template<typename _Mn , typename _Nn >


common_type_t< _Mn, _Nn > std::experimental::fundamentals_v2::gcd (
_Mn __m,
_Nn __n) [constexpr], [noexcept]
Greatest common divisor.

get_deleter()

template<typename _Del , typename _Tp >


_Del ∗ std::experimental::fundamentals_v2::get_deleter (
const shared_ptr< _Tp > & __p) [inline], [noexcept]
C++14 20.8.2.2.10.

lcm()

template<typename _Mn , typename _Nn >


common_type_t< _Mn, _Nn > std::experimental::fundamentals_v2::lcm (
_Mn __m,
_Nn __n) [constexpr]
Least common multiple.

make_boyer_moore_horspool_searcher()

template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>←-


::value_type>, typename _BinaryPredicate = equal_to<>>
boyer_moore_horspool_searcher< _RAIter, _Hash, _BinaryPredicate > std::experimental::fundamentals←-
_v1::make_boyer_moore_horspool_searcher (
_RAIter __pat_first,
_RAIter __pat_last,
_Hash __hf = _Hash(),
_BinaryPredicate __pred = _BinaryPredicate()) [inline]
Generator function for boyer_moore_horspool_searcher.

make_boyer_moore_searcher()

template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>←-


::value_type>, typename _BinaryPredicate = equal_to<>>
boyer_moore_searcher< _RAIter, _Hash, _BinaryPredicate > std::experimental::fundamentals_v1←-
::make_boyer_moore_searcher (
_RAIter __pat_first,
_RAIter __pat_last,
_Hash __hf = _Hash(),
_BinaryPredicate __pred = _BinaryPredicate()) [inline]
Generator function for boyer_moore_searcher.

make_default_searcher()

template<typename _ForwardIterator , typename _BinaryPredicate = std::equal_to<>>


default_searcher< _ForwardIterator, _BinaryPredicate > std::experimental::fundamentals_v1::make←-
_default_searcher (
_ForwardIterator __pat_first,

Generated by Doxygen
4.17 std::filesystem Namespace Reference 697

_ForwardIterator __pat_last,
_BinaryPredicate __pred = _BinaryPredicate()) [inline]
Generator function for default_searcher.

make_ostream_joiner()

template<typename _CharT , typename _Traits , typename _DelimT >


ostream_joiner< decay_t< _DelimT >, _CharT, _Traits > std::experimental::fundamentals_v2::make←-
_ostream_joiner (
basic_ostream< _CharT, _Traits > & __os,
_DelimT && __delimiter) [inline]
Object generator for ostream_joiner.

not_fn()

template<typename _Fn >


auto std::experimental::fundamentals_v2::not_fn (
_Fn && __fn) [inline], [noexcept]
[func.not_fn] Function template not_fn

sample()

template<typename _PopulationIterator , typename _SampleIterator , typename _Distance , typename


_UniformRandomNumberGenerator >
_SampleIterator std::experimental::fundamentals_v2::sample (
_PopulationIterator __first,
_PopulationIterator __last,
_SampleIterator __out,
_Distance __n,
_UniformRandomNumberGenerator && __g)
Take a random sample from a population.

4.16.3 Variable Documentation

is_bind_expression_v

template<typename _Tp >


bool std::experimental::fundamentals_v1::is_bind_expression_v [constexpr]
Variable template for std::is_bind_expression.

is_placeholder_v

template<typename _Tp >


int std::experimental::fundamentals_v1::is_placeholder_v [constexpr]
Variable template for std::is_placeholder.

4.17 std::filesystem Namespace Reference


Classes

• class directory_entry
• class directory_iterator
• class file_status
• class filesystem_error
• class path

Generated by Doxygen
698

• class recursive_directory_iterator
• struct space_info

Typedefs

• using file_time_type

Enumerations

• enum class copy_options : unsigned short {


none , skip_existing , overwrite_existing , update_existing ,
recursive , copy_symlinks , skip_symlinks , directories_only ,
create_symlinks , create_hard_links }
• enum class directory_options : unsigned char { none , follow_directory_symlink , skip_permission_denied }
• enum class file_type : signed char {
none , not_found , regular , directory ,
symlink , block , character , fifo ,
socket , unknown }
• enum class perm_options : unsigned { replace , add , remove , nofollow }
• enum class perms : unsigned {
none , owner_read , owner_write , owner_exec ,
owner_all , group_read , group_write , group_exec ,
group_all , others_read , others_write , others_exec ,
others_all , all , set_uid , set_gid ,
sticky_bit , mask , unknown }

Functions

• path absolute (const path &__p)


• path absolute (const path &__p, error_code &__ec)
• path canonical (const path &__p)
• path canonical (const path &__p, error_code &__ec)
• void copy (const path &__from, const path &__to)
• void copy (const path &__from, const path &__to, copy_options __options)
• void copy (const path &__from, const path &__to, copy_options __options, error_code &)
• void copy (const path &__from, const path &__to, error_code &__ec)
• bool copy_file (const path &__from, const path &__to)
• bool copy_file (const path &__from, const path &__to, copy_options __option)
• bool copy_file (const path &__from, const path &__to, copy_options __option, error_code &)
• bool copy_file (const path &__from, const path &__to, error_code &__ec)
• void copy_symlink (const path &__existing_symlink, const path &__new_symlink)
• void copy_symlink (const path &__existing_symlink, const path &__new_symlink, error_code &__ec) noexcept
• bool create_directories (const path &__p)
• bool create_directories (const path &__p, error_code &__ec)
• bool create_directory (const path &__p)
• bool create_directory (const path &__p, const path &__attributes)
• bool create_directory (const path &__p, const path &__attributes, error_code &__ec) noexcept
• bool create_directory (const path &__p, error_code &__ec) noexcept
• void create_directory_symlink (const path &__to, const path &__new_symlink)
• void create_directory_symlink (const path &__to, const path &__new_symlink, error_code &__ec) noexcept
• void create_hard_link (const path &__to, const path &__new_hard_link)
• void create_hard_link (const path &__to, const path &__new_hard_link, error_code &__ec) noexcept
• void create_symlink (const path &__to, const path &__new_symlink)

Generated by Doxygen
4.17 std::filesystem Namespace Reference 699

• void create_symlink (const path &__to, const path &__new_symlink, error_code &__ec) noexcept
• path current_path ()
• void current_path (const path &__p)
• void current_path (const path &__p, error_code &__ec) noexcept
• path current_path (error_code &__ec)
• bool equivalent (const path &__p1, const path &__p2)
• bool equivalent (const path &__p1, const path &__p2, error_code &__ec) noexcept
• bool exists (const path &__p)
• bool exists (const path &__p, error_code &__ec) noexcept
• bool exists (file_status) noexcept
• uintmax_t file_size (const path &)
• uintmax_t file_size (const path &, error_code &) noexcept
• uintmax_t hard_link_count (const path &)
• uintmax_t hard_link_count (const path &, error_code &) noexcept
• size_t hash_value (const path &__p) noexcept
• bool is_block_file (const path &__p)
• bool is_block_file (const path &__p, error_code &__ec) noexcept
• bool is_block_file (file_status __s) noexcept
• bool is_character_file (const path &__p)
• bool is_character_file (const path &__p, error_code &__ec) noexcept
• bool is_character_file (file_status __s) noexcept
• bool is_directory (const path &__p)
• bool is_directory (const path &__p, error_code &__ec) noexcept
• bool is_directory (file_status __s) noexcept
• bool is_empty (const path &__p)
• bool is_empty (const path &__p, error_code &__ec)
• bool is_fifo (const path &__p)
• bool is_fifo (const path &__p, error_code &__ec) noexcept
• bool is_fifo (file_status __s) noexcept
• bool is_other (const path &__p)
• bool is_other (const path &__p, error_code &__ec) noexcept
• bool is_other (file_status) noexcept
• bool is_regular_file (const path &__p)
• bool is_regular_file (const path &__p, error_code &__ec) noexcept
• bool is_regular_file (file_status) noexcept
• bool is_socket (const path &__p)
• bool is_socket (const path &__p, error_code &__ec) noexcept
• bool is_socket (file_status __s) noexcept
• bool is_symlink (const path &__p)
• bool is_symlink (const path &__p, error_code &__ec) noexcept
• bool is_symlink (file_status) noexcept
• file_time_type last_write_time (const path &)
• file_time_type last_write_time (const path &, error_code &) noexcept
• void last_write_time (const path &__p, file_time_type __new_time)
• void last_write_time (const path &__p, file_time_type __new_time, error_code &__ec) noexcept
• copy_options & operator&= (copy_options &__x, copy_options __y) noexcept
• constexpr copy_options operator∧ (copy_options __x, copy_options __y) noexcept
• copy_options & operator∧ = (copy_options &__x, copy_options __y) noexcept
• constexpr copy_options operator| (copy_options __x, copy_options __y) noexcept
• copy_options & operator|= (copy_options &__x, copy_options __y) noexcept
• constexpr copy_options operator∼ (copy_options __x) noexcept

Generated by Doxygen
700

• void permissions (const path &, perms, perm_options, error_code &) noexcept
• void permissions (const path &__p, perms __prms, error_code &__ec) noexcept
• void permissions (const path &__p, perms __prms, perm_options __opts=perm_options::replace)
• path proximate (const path &__p, const path &__base, error_code &__ec)
• path proximate (const path &__p, const path &__base=current_path())
• path proximate (const path &__p, error_code &__ec)
• path read_symlink (const path &__p)
• path read_symlink (const path &__p, error_code &__ec)
• path relative (const path &__p, const path &__base, error_code &__ec)
• path relative (const path &__p, const path &__base=current_path())
• path relative (const path &__p, error_code &__ec)
• bool remove (const path &, error_code &) noexcept
• bool remove (const path &__p)
• uintmax_t remove_all (const path &)
• uintmax_t remove_all (const path &, error_code &)
• void rename (const path &__from, const path &__to)
• void rename (const path &__from, const path &__to, error_code &__ec) noexcept
• void resize_file (const path &__p, uintmax_t __size)
• void resize_file (const path &__p, uintmax_t __size, error_code &__ec) noexcept
• space_info space (const path &__p)
• space_info space (const path &__p, error_code &__ec) noexcept
• file_status status (const path &)
• file_status status (const path &, error_code &) noexcept
• bool status_known (file_status) noexcept
• void swap (path &__lhs, path &__rhs) noexcept
• file_status symlink_status (const path &)
• file_status symlink_status (const path &, error_code &) noexcept
• path temp_directory_path ()
• path temp_directory_path (error_code &__ec)
• template<typename _InputIterator , typename _Require = __detail::_Path2<_InputIterator>, typename _CharT = __detail::__value_type←-
_is_char_or_char8_t<_InputIterator>>
path u8path (_InputIterator __first, _InputIterator __last)
• template<typename _Source , typename _Require = __detail::_Path<_Source>, typename _CharT = __detail::__value_type_is_char_or←-
_char8_t<_Source>>
path u8path (const _Source &__source)
• path weakly_canonical (const path &__p)
• path weakly_canonical (const path &__p, error_code &__ec)

• constexpr perms operator| (perms __x, perms __y) noexcept


• constexpr perms operator∧ (perms __x, perms __y) noexcept
• constexpr perms operator∼ (perms __x) noexcept
• perms & operator&= (perms &__x, perms __y) noexcept
• perms & operator|= (perms &__x, perms __y) noexcept
• perms & operator∧ = (perms &__x, perms __y) noexcept

• constexpr perm_options operator| (perm_options __x, perm_options __y) noexcept


• constexpr perm_options operator∧ (perm_options __x, perm_options __y) noexcept
• constexpr perm_options operator∼ (perm_options __x) noexcept
• perm_options & operator&= (perm_options &__x, perm_options __y) noexcept

Generated by Doxygen
4.18 std::literals Namespace Reference 701

• perm_options & operator|= (perm_options &__x, perm_options __y) noexcept


• perm_options & operator∧ = (perm_options &__x, perm_options __y) noexcept

• constexpr directory_options operator| (directory_options __x, directory_options __y) noexcept


• constexpr directory_options operator∧ (directory_options __x, directory_options __y) noexcept
• constexpr directory_options operator∼ (directory_options __x) noexcept
• directory_options & operator&= (directory_options &__x, directory_options __y) noexcept
• directory_options & operator|= (directory_options &__x, directory_options __y) noexcept
• directory_options & operator∧ = (directory_options &__x, directory_options __y) noexcept

4.17.1 Detailed Description

ISO C++ 2017 namespace for File System library.

4.18 std::literals Namespace Reference


Namespaces

• namespace chrono_literals

Functions

• constexpr chrono::day operator""d (unsigned long long __d) noexcept


• template<char... _Digits>
constexpr chrono::hours operator""h ()
• constexpr chrono::duration< long double, ratio< 3600, 1 > > operator""h (long double __hours)
• template<char... _Digits>
constexpr chrono::minutes operator""min ()
• constexpr chrono::duration< long double, ratio< 60, 1 > > operator""min (long double __mins)
• template<char... _Digits>
constexpr chrono::milliseconds operator""ms ()
• constexpr chrono::duration< long double, milli > operator""ms (long double __msecs)
• template<char... _Digits>
constexpr chrono::nanoseconds operator""ns ()
• constexpr chrono::duration< long double, nano > operator""ns (long double __nsecs)
• template<char... _Digits>
constexpr chrono::seconds operator""s ()
• constexpr chrono::duration< long double > operator""s (long double __secs)
• constexpr basic_string< char > operator""s (const char ∗__str, size_t __len)
• constexpr basic_string< char16_t > operator""s (const char16_t ∗__str, size_t __len)
• constexpr basic_string< char32_t > operator""s (const char32_t ∗__str, size_t __len)
• constexpr basic_string< wchar_t > operator""s (const wchar_t ∗__str, size_t __len)
• constexpr basic_string_view< char > operator""sv (const char ∗__str, size_t __len) noexcept
• constexpr basic_string_view< char16_t > operator""sv (const char16_t ∗__str, size_t __len) noexcept
• constexpr basic_string_view< char32_t > operator""sv (const char32_t ∗__str, size_t __len) noexcept
• constexpr basic_string_view< wchar_t > operator""sv (const wchar_t ∗__str, size_t __len) noexcept
• template<char... _Digits>
constexpr chrono::microseconds operator""us ()
• constexpr chrono::duration< long double, micro > operator""us (long double __usecs)
• constexpr chrono::year operator""y (unsigned long long __y) noexcept

Generated by Doxygen
702

4.18.1 Detailed Description

ISO C++ inline namespace for literal suffixes.

4.19 std::literals::chrono_literals Namespace Reference


Functions

• constexpr chrono::day operator""d (unsigned long long __d) noexcept


• template<char... _Digits>
constexpr chrono::hours operator""h ()
• constexpr chrono::duration< long double, ratio< 3600, 1 > > operator""h (long double __hours)
• template<char... _Digits>
constexpr chrono::minutes operator""min ()
• constexpr chrono::duration< long double, ratio< 60, 1 > > operator""min (long double __mins)
• template<char... _Digits>
constexpr chrono::milliseconds operator""ms ()
• constexpr chrono::duration< long double, milli > operator""ms (long double __msecs)
• template<char... _Digits>
constexpr chrono::nanoseconds operator""ns ()
• constexpr chrono::duration< long double, nano > operator""ns (long double __nsecs)
• template<char... _Digits>
constexpr chrono::seconds operator""s ()
• constexpr chrono::duration< long double > operator""s (long double __secs)
• template<char... _Digits>
constexpr chrono::microseconds operator""us ()
• constexpr chrono::duration< long double, micro > operator""us (long double __usecs)
• constexpr chrono::year operator""y (unsigned long long __y) noexcept

4.19.1 Detailed Description

ISO C++ 2014 namespace for suffixes for duration literals.


These suffixes can be used to create chrono::duration values with tick periods of hours, minutes, seconds,
milliseconds, microseconds or nanoseconds. For example, std::chrono::seconds(5) can be written as 5s
after making the suffix visible in the current scope. The suffixes can be made visible by a using-directive or using-
declaration such as:

• using namespace std::chrono_literals;

• using namespace std::literals;

• using namespace std::chrono;

• using namespace std;

• using std::chrono_literals::operator""s;

The result of these suffixes on an integer literal is one of the standard typedefs such as std::chrono::hours.
The result on a floating-point literal is a duration type with the specified tick period and an unspecified floating-point
representation, for example 1.5e2ms might be equivalent to chrono::duration<long double, chrono←-
::milli>(1.5e2).
Since

C+14

Generated by Doxygen
4.20 std::placeholders Namespace Reference 703

4.20 std::placeholders Namespace Reference


Variables

• const _Placeholder< 1 > _1


• const _Placeholder< 10 > _10
• const _Placeholder< 11 > _11
• const _Placeholder< 12 > _12
• const _Placeholder< 13 > _13
• const _Placeholder< 14 > _14
• const _Placeholder< 15 > _15
• const _Placeholder< 16 > _16
• const _Placeholder< 17 > _17
• const _Placeholder< 18 > _18
• const _Placeholder< 19 > _19
• const _Placeholder< 2 > _2
• const _Placeholder< 20 > _20
• const _Placeholder< 21 > _21
• const _Placeholder< 22 > _22
• const _Placeholder< 23 > _23
• const _Placeholder< 24 > _24
• const _Placeholder< 25 > _25
• const _Placeholder< 26 > _26
• const _Placeholder< 27 > _27
• const _Placeholder< 28 > _28
• const _Placeholder< 29 > _29
• const _Placeholder< 3 > _3
• const _Placeholder< 4 > _4
• const _Placeholder< 5 > _5
• const _Placeholder< 6 > _6
• const _Placeholder< 7 > _7
• const _Placeholder< 8 > _8
• const _Placeholder< 9 > _9

4.20.1 Detailed Description

ISO C++ 2011 namespace for std::bind placeholders.

Since

C++11

4.21 std::regex_constants Namespace Reference


5.1 Regular Expression Syntax Options

• enum syntax_option_type : unsigned int {


_S_icase , _S_nosubs , _S_optimize , _S_collate ,
_S_ECMAScript , _S_basic , _S_extended , _S_awk ,
_S_grep , _S_egrep , _S_polynomial , _S_multiline }
• constexpr syntax_option_type icase
• constexpr syntax_option_type nosubs
• constexpr syntax_option_type optimize
• constexpr syntax_option_type collate

Generated by Doxygen
704

• constexpr syntax_option_type ECMAScript


• constexpr syntax_option_type basic
• constexpr syntax_option_type extended
• constexpr syntax_option_type awk
• constexpr syntax_option_type grep
• constexpr syntax_option_type egrep
• constexpr syntax_option_type multiline
• constexpr syntax_option_type __multiline
• constexpr syntax_option_type __polynomial
• constexpr syntax_option_type operator& (syntax_option_type __a, syntax_option_type __b) noexcept
• constexpr syntax_option_type operator| (syntax_option_type __a, syntax_option_type __b) noexcept
• constexpr syntax_option_type operator∧ (syntax_option_type __a, syntax_option_type __b) noexcept
• constexpr syntax_option_type operator∼ (syntax_option_type __a) noexcept
• constexpr syntax_option_type & operator&= (syntax_option_type &__a, syntax_option_type __b) noexcept
• constexpr syntax_option_type & operator|= (syntax_option_type &__a, syntax_option_type __b) noexcept
• constexpr syntax_option_type & operator∧ = (syntax_option_type &__a, syntax_option_type __b) noexcept

5.2 Matching Rules

Matching a regular expression against a sequence of characters [first, last) proceeds according to the rules of the
grammar specified for the regular expression object, modified according to the effects listed below for any bitmask
elements set.

• enum match_flag_type : unsigned int {


_S_default , _S_not_bol , _S_not_eol , _S_not_bow ,
_S_not_eow , _S_any , _S_not_null , _S_continuous ,
_S_prev_avail , _S_sed , _S_no_copy , _S_first_only ,
_S_match_flag_last }
• constexpr match_flag_type match_default
• constexpr match_flag_type match_not_bol
• constexpr match_flag_type match_not_eol
• constexpr match_flag_type match_not_bow
• constexpr match_flag_type match_not_eow
• constexpr match_flag_type match_any
• constexpr match_flag_type match_not_null
• constexpr match_flag_type match_continuous
• constexpr match_flag_type match_prev_avail
• constexpr match_flag_type format_default
• constexpr match_flag_type format_sed
• constexpr match_flag_type format_no_copy
• constexpr match_flag_type format_first_only
• constexpr match_flag_type operator& (match_flag_type __a, match_flag_type __b) noexcept
• constexpr match_flag_type operator| (match_flag_type __a, match_flag_type __b) noexcept
• constexpr match_flag_type operator∧ (match_flag_type __a, match_flag_type __b) noexcept
• constexpr match_flag_type operator∼ (match_flag_type __a) noexcept
• constexpr match_flag_type & operator&= (match_flag_type &__a, match_flag_type __b) noexcept
• constexpr match_flag_type & operator|= (match_flag_type &__a, match_flag_type __b) noexcept
• constexpr match_flag_type & operator∧ = (match_flag_type &__a, match_flag_type __b) noexcept

Generated by Doxygen
4.21 std::regex_constants Namespace Reference 705

5.3 Error Types

• enum error_type {
_S_error_collate , _S_error_ctype , _S_error_escape , _S_error_backref ,
_S_error_brack , _S_error_paren , _S_error_brace , _S_error_badbrace ,
_S_error_range , _S_error_space , _S_error_badrepeat , _S_error_complexity ,
_S_error_stack , _S_null , _S_grammar }
• constexpr error_type error_collate (_S_error_collate)
• constexpr error_type error_ctype (_S_error_ctype)
• constexpr error_type error_escape (_S_error_escape)
• constexpr error_type error_backref (_S_error_backref)
• constexpr error_type error_brack (_S_error_brack)
• constexpr error_type error_paren (_S_error_paren)
• constexpr error_type error_brace (_S_error_brace)
• constexpr error_type error_badbrace (_S_error_badbrace)
• constexpr error_type error_range (_S_error_range)
• constexpr error_type error_space (_S_error_space)
• constexpr error_type error_badrepeat (_S_error_badrepeat)
• constexpr error_type error_complexity (_S_error_complexity)
• constexpr error_type error_stack (_S_error_stack)

4.21.1 Detailed Description

ISO C++ 2011 namespace for options and flags used with std::regex.

4.21.2 Enumeration Type Documentation

error_type

enum std::regex_constants::error_type
The expression contained an invalid collating element name.

match_flag_type

enum std::regex_constants::match_flag_type : unsigned int


This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

syntax_option_type

enum std::regex_constants::syntax_option_type : unsigned int


This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.
A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

4.21.3 Function Documentation

error_backref()

error_type std::regex_constants::error_backref (
_S_error_backref ) [inline], [constexpr]
The expression contained an invalid back reference.

Generated by Doxygen
706

error_badbrace()

error_type std::regex_constants::error_badbrace (
_S_error_badbrace ) [inline], [constexpr]
The expression contained an invalid range in a {} expression.

error_badrepeat()

error_type std::regex_constants::error_badrepeat (
_S_error_badrepeat ) [inline], [constexpr]
One of ∗?+{ was not preceded by a valid regular expression.

error_brace()

error_type std::regex_constants::error_brace (
_S_error_brace ) [inline], [constexpr]
The expression contained mismatched { and }

error_brack()

error_type std::regex_constants::error_brack (
_S_error_brack ) [inline], [constexpr]
The expression contained mismatched [ and ].

error_collate()

error_type std::regex_constants::error_collate (
_S_error_collate ) [inline], [constexpr]
The expression contained an invalid collating element name.

error_complexity()

error_type std::regex_constants::error_complexity (
_S_error_complexity ) [inline], [constexpr]
The complexity of an attempted match against a regular expression exceeded a pre-set level.

error_ctype()

error_type std::regex_constants::error_ctype (
_S_error_ctype ) [inline], [constexpr]
The expression contained an invalid character class name.

error_escape()

error_type std::regex_constants::error_escape (
_S_error_escape ) [inline], [constexpr]
The expression contained an invalid escaped character, or a trailing escape.

error_paren()

error_type std::regex_constants::error_paren (
_S_error_paren ) [inline], [constexpr]
The expression contained mismatched ( and ).

Generated by Doxygen
4.21 std::regex_constants Namespace Reference 707

error_range()

error_type std::regex_constants::error_range (
_S_error_range ) [inline], [constexpr]
The expression contained an invalid character range, such as [b-a] in most encodings.

error_space()

error_type std::regex_constants::error_space (
_S_error_space ) [inline], [constexpr]
There was insufficient memory to convert the expression into a finite state machine.

error_stack()

error_type std::regex_constants::error_stack (
_S_error_stack ) [inline], [constexpr]
There was insufficient memory to determine whether the regular expression could match the specified character se-
quence.

operator&() [1/2]

match_flag_type std::regex_constants::operator& (
match_flag_type __a,
match_flag_type __b) [constexpr], [noexcept]
This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

operator&() [2/2]

syntax_option_type std::regex_constants::operator& (
syntax_option_type __a,
syntax_option_type __b) [constexpr], [noexcept]
This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.
A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

operator&=() [1/2]

match_flag_type & std::regex_constants::operator&= (


match_flag_type & __a,
match_flag_type __b) [inline], [constexpr], [noexcept]
This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

operator&=() [2/2]

syntax_option_type & std::regex_constants::operator&= (


syntax_option_type & __a,
syntax_option_type __b) [inline], [constexpr], [noexcept]
This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.

Generated by Doxygen
708

A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

operator∧ () [1/2]

match_flag_type std::regex_constants::operator∧ (
match_flag_type __a,
match_flag_type __b) [constexpr], [noexcept]
This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

operator∧ () [2/2]

syntax_option_type std::regex_constants::operator∧ (
syntax_option_type __a,
syntax_option_type __b) [constexpr], [noexcept]
This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.
A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

operator∧ =() [1/2]

match_flag_type & std::regex_constants::operator∧ = (


match_flag_type & __a,
match_flag_type __b) [inline], [constexpr], [noexcept]
This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

operator∧ =() [2/2]

syntax_option_type & std::regex_constants::operator∧ = (


syntax_option_type & __a,
syntax_option_type __b) [inline], [constexpr], [noexcept]
This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.
A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

operator"|() [1/2]

match_flag_type std::regex_constants::operator| (
match_flag_type __a,
match_flag_type __b) [constexpr], [noexcept]
This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

operator"|() [2/2]

syntax_option_type std::regex_constants::operator| (

Generated by Doxygen
4.21 std::regex_constants Namespace Reference 709

syntax_option_type __a,
syntax_option_type __b) [constexpr], [noexcept]
This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.
A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

operator"|=() [1/2]

match_flag_type & std::regex_constants::operator|= (


match_flag_type & __a,
match_flag_type __b) [inline], [constexpr], [noexcept]
This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

operator"|=() [2/2]

syntax_option_type & std::regex_constants::operator|= (


syntax_option_type & __a,
syntax_option_type __b) [inline], [constexpr], [noexcept]
This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.
A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

operator∼() [1/2]

match_flag_type std::regex_constants::operator∼ (
match_flag_type __a) [constexpr], [noexcept]
This is a bitmask type indicating regex matching rules.
The match_flag_type is implementation defined but it is valid to perform bitwise operations on these values and
expect the right thing to happen.

operator∼() [2/2]

syntax_option_type std::regex_constants::operator∼ (
syntax_option_type __a) [constexpr], [noexcept]
This is a bitmask type indicating how to interpret the regex.
The syntax_option_type is implementation defined but it is valid to perform bitwise operations on these values
and expect the right thing to happen.
A valid value of type syntax_option_type shall have exactly one of the elements ECMAScript, basic, extended,
awk, grep, egrep set.

4.21.4 Variable Documentation

__multiline

syntax_option_type std::regex_constants::__multiline [inline], [constexpr]


Extension: Equivalent to regex_constants::multiline for C++11 and C++14.

__polynomial

syntax_option_type std::regex_constants::__polynomial [inline], [constexpr]

Generated by Doxygen
710

Extension: Ensure both space complexity of compiled regex and time complexity execution are not exponential. If
specified in a regex with back-references, the exception regex_constants::error_complexity will be thrown.

awk

syntax_option_type std::regex_constants::awk [inline], [constexpr]


Specifies that the grammar recognized by the regular expression engine is that used by POSIX utility awk in IEEE
Std 1003.1-2001. This option is identical to syntax_option_type extended, except that C-style escape sequences are
supported. These sequences are: \\, \a, \b, \f, \n, \r, \t , \v, \&apos„ &apos„ and \ddd (where ddd is one, two, or three
octal digits).

basic

syntax_option_type std::regex_constants::basic [inline], [constexpr]


Specifies that the grammar recognized by the regular expression engine is that used by POSIX basic regular expressions
in IEEE Std 1003.1-2001, Portable Operating System Interface (POSIX), Base Definitions and Headers, Section 9,
Regular Expressions [IEEE, Information Technology – Portable Operating System Interface (POSIX), IEEE Standard
1003.1-2001].

collate

syntax_option_type std::regex_constants::collate [inline], [constexpr]


Specifies that character ranges of the form [a-b] should be locale sensitive.

ECMAScript

syntax_option_type std::regex_constants::ECMAScript [inline], [constexpr]


Specifies that the grammar recognized by the regular expression engine is that used by ECMAScript in ECMA-262
[Ecma International, ECMAScript Language Specification, Standard Ecma-262, third edition, 1999], as modified in
section [28.13]. This grammar is similar to that defined in the PERL scripting language but extended with elements
found in the POSIX regular expression grammar.

egrep

syntax_option_type std::regex_constants::egrep [inline], [constexpr]


Specifies that the grammar recognized by the regular expression engine is that used by POSIX utility grep when given
the -E option in IEEE Std 1003.1-2001. This option is identical to syntax_option_type extended, except that newlines
are treated as whitespace.

extended

syntax_option_type std::regex_constants::extended [inline], [constexpr]


Specifies that the grammar recognized by the regular expression engine is that used by POSIX extended regular expres-
sions in IEEE Std 1003.1-2001, Portable Operating System Interface (POSIX), Base Definitions and Headers, Section
9, Regular Expressions.

format_default

match_flag_type std::regex_constants::format_default [inline], [constexpr]


When a regular expression match is to be replaced by a new string, the new string is constructed using the rules
used by the ECMAScript replace function in ECMA- 262 [Ecma International, ECMAScript Language Specification,
Standard Ecma-262, third edition, 1999], part 15.5.4.11 String.prototype.replace. In addition, during search and replace
operations all non-overlapping occurrences of the regular expression are located and replaced, and sections of the input
that did not match the expression are copied unchanged to the output string.
Format strings (from ECMA-262 [15.5.4.11]):

Generated by Doxygen
4.21 std::regex_constants Namespace Reference 711

• $$ The dollar-sign itself ($)

• $& The matched substring.

• $‘ The portion of string that precedes the matched substring. This would be match_results::prefix().

• $’ The portion of string that follows the matched substring. This would be match_results::suffix().

• $n The nth capture, where n is in [1,9] and $n is not followed by a decimal digit. If n <= match_results←-
::size() and the nth capture is undefined, use the empty string instead. If n > match_results::size(), the result is
implementation-defined.

• $nn The nnth capture, where nn is a two-digit decimal number on [01, 99]. If nn <= match_results::size() and the
nth capture is undefined, use the empty string instead. If nn > match_results::size(), the result is implementation-
defined.

format_first_only

match_flag_type std::regex_constants::format_first_only [inline], [constexpr]


When specified during a search and replace operation, only the first occurrence of the regular expression shall be
replaced.

format_no_copy

match_flag_type std::regex_constants::format_no_copy [inline], [constexpr]


During a search and replace operation, sections of the character container sequence being searched that do not match
the regular expression shall not be copied to the output string.

format_sed

match_flag_type std::regex_constants::format_sed [inline], [constexpr]


When a regular expression match is to be replaced by a new string, the new string is constructed using the rules used
by the POSIX sed utility in IEEE Std 1003.1- 2001 [IEEE, Information Technology – Portable Operating System Interface
(POSIX), IEEE Standard 1003.1-2001].
Referenced by std::regex_traits< _CharType >::lookup_classname().

grep

syntax_option_type std::regex_constants::grep [inline], [constexpr]


Specifies that the grammar recognized by the regular expression engine is that used by POSIX utility grep in IEEE Std
1003.1-2001. This option is identical to syntax_option_type basic, except that newlines are treated as whitespace.

icase

syntax_option_type std::regex_constants::icase [inline], [constexpr]


Specifies that the matching of regular expressions against a character sequence shall be performed without regard to
case.

match_any

match_flag_type std::regex_constants::match_any [inline], [constexpr]


If more than one match is possible then any match is an acceptable result.

match_continuous

match_flag_type std::regex_constants::match_continuous [inline], [constexpr]


The expression only matches a sub-sequence that begins at first .
Referenced by std::regex_iterator< _Bi_iter, _Ch_type, _Rx_traits >::operator++().

Generated by Doxygen
712

match_default

match_flag_type std::regex_constants::match_default [inline], [constexpr]


The default matching rules.

match_not_bol

match_flag_type std::regex_constants::match_not_bol [inline], [constexpr]


The first character in the sequence [first, last) is treated as though it is not at the beginning of a line, so the character
(∧ ) in the regular expression shall not match [first, first).

match_not_bow

match_flag_type std::regex_constants::match_not_bow [inline], [constexpr]


The expression \b is not matched against the sub-sequence [first,first).

match_not_eol

match_flag_type std::regex_constants::match_not_eol [inline], [constexpr]


The last character in the sequence [first, last) is treated as though it is not at the end of a line, so the character ($) in the
regular expression shall not match [last, last).

match_not_eow

match_flag_type std::regex_constants::match_not_eow [inline], [constexpr]


The expression \b should not be matched against the sub-sequence [last,last).

match_not_null

match_flag_type std::regex_constants::match_not_null [inline], [constexpr]


The expression does not match an empty sequence.
Referenced by std::regex_iterator< _Bi_iter, _Ch_type, _Rx_traits >::operator++().

match_prev_avail

match_flag_type std::regex_constants::match_prev_avail [inline], [constexpr]


--first is a valid iterator position. When this flag is set then the flags match_not_bol and match_not_←-
bow are ignored by the algorithms regex_match, regex_search, and regex_replace, and by the iterators
regex_iterator and regex_token_iterator.
Referenced by std::regex_iterator< _Bi_iter, _Ch_type, _Rx_traits >::operator++().

multiline

syntax_option_type std::regex_constants::multiline [inline], [constexpr]


Specifies that the ∧ anchor matches at the beginning of a line, and the $ anchor matches at the end of a line, not only
at the beginning/end of the input. Valid for the ECMAScript syntax, ignored otherwise.

Since

C++17

nosubs

syntax_option_type std::regex_constants::nosubs [inline], [constexpr]


Specifies that when a regular expression is matched against a character container sequence, no sub-expression
matches are to be stored in the supplied match_results structure.

Generated by Doxygen
4.22 std::rel_ops Namespace Reference 713

optimize

syntax_option_type std::regex_constants::optimize [inline], [constexpr]


Specifies that the regular expression engine should pay more attention to the speed with which regular expressions are
matched, and less to the speed with which regular expression objects are constructed. Otherwise it has no detectable
effect on the program output.

4.22 std::rel_ops Namespace Reference


Functions

• template<class _Tp >


bool operator!= (const _Tp &__x, const _Tp &__y)
• template<class _Tp >
bool operator<= (const _Tp &__x, const _Tp &__y)
• template<class _Tp >
bool operator> (const _Tp &__x, const _Tp &__y)
• template<class _Tp >
bool operator>= (const _Tp &__x, const _Tp &__y)

4.22.1 Detailed Description

The generated relational operators are sequestered here.


Libstdc++ headers must not use the contents of rel_ops. User code should also avoid them, because unconstrained
function templates are too greedy and can easily cause ambiguities.
C++20 default comparisons are a better solution.

4.22.2 Function Documentation

operator"!=()

template<class _Tp >


bool std::rel_ops::operator!= (
const _Tp & __x,
const _Tp & __y) [inline]
Defines != for arbitrary types, in terms of ==.

Parameters
_←- A thing.
_x
_←- Another thing.
_y

Returns

__x != __y

This function uses == to determine its result.

operator<=()

template<class _Tp >


bool std::rel_ops::operator<= (
const _Tp & __x,
const _Tp & __y) [inline]

Generated by Doxygen
714

Defines <= for arbitrary types, in terms of <.

Generated by Doxygen
4.22 std::rel_ops Namespace Reference 715

Parameters
_←- A thing.
_x
_←- Another thing.
_y

Returns

__x <= __y

This function uses < to determine its result.

operator>()

template<class _Tp >


bool std::rel_ops::operator> (
const _Tp & __x,
const _Tp & __y) [inline]
Defines > for arbitrary types, in terms of <.

Parameters
_←- A thing.
_x
_←- Another thing.
_y

Returns

__x > __y

This function uses < to determine its result.

operator>=()

template<class _Tp >


bool std::rel_ops::operator>= (
const _Tp & __x,
const _Tp & __y) [inline]
Defines >= for arbitrary types, in terms of <.

Parameters
_←- A thing.
_x
_←- Another thing.
_y

Returns

__x >= __y

This function uses < to determine its result.

Generated by Doxygen
716

4.23 std::this_thread Namespace Reference


Functions

• thread::id get_id () noexcept


• template<typename _Rep , typename _Period >
void sleep_for (const chrono::duration< _Rep, _Period > &__rtime)
• template<typename _Clock , typename _Duration >
void sleep_until (const chrono::time_point< _Clock, _Duration > &__atime)
• void yield () noexcept

4.23.1 Detailed Description

ISO C++ 2011 namespace for interacting with the current thread.
C++11 30.3.2 [thread.thread.this] Namespace this_thread.

4.23.2 Function Documentation

get_id()

thread::id std::this_thread::get_id () [inline], [noexcept]


The unique identifier of the current thread.

sleep_for()

template<typename _Rep , typename _Period >


void std::this_thread::sleep_for (
const chrono::duration< _Rep, _Period > & __rtime) [inline]
this_thread::sleep_for
References std::chrono::duration_cast().
Referenced by sleep_until().

sleep_until()

template<typename _Clock , typename _Duration >


void std::this_thread::sleep_until (
const chrono::time_point< _Clock, _Duration > & __atime) [inline]
this_thread::sleep_until
References sleep_for().

yield()

void std::this_thread::yield () [inline], [noexcept]


Allow the implementation to schedule a different thread.

4.24 std::tr1 Namespace Reference


Namespaces

• namespace __detail

Functions

• template<typename _Tp >


__gnu_cxx::__promote< _Tp >::__type assoc_laguerre (unsigned int __n, unsigned int __m, _Tp __x)
• float assoc_laguerref (unsigned int __n, unsigned int __m, float __x)

Generated by Doxygen
4.24 std::tr1 Namespace Reference 717

• long double assoc_laguerrel (unsigned int __n, unsigned int __m, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type assoc_legendre (unsigned int __l, unsigned int __m, _Tp __x)
• float assoc_legendref (unsigned int __l, unsigned int __m, float __x)
• long double assoc_legendrel (unsigned int __l, unsigned int __m, long double __x)
• template<typename _Tpx , typename _Tpy >
__gnu_cxx::__promote_2< _Tpx, _Tpy >::__type beta (_Tpx __x, _Tpy __y)
• float betaf (float __x, float __y)
• long double betal (long double __x, long double __y)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type comp_ellint_1 (_Tp __k)
• float comp_ellint_1f (float __k)
• long double comp_ellint_1l (long double __k)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type comp_ellint_2 (_Tp __k)
• float comp_ellint_2f (float __k)
• long double comp_ellint_2l (long double __k)
• template<typename _Tp , typename _Tpn >
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3 (_Tp __k, _Tpn __nu)
• float comp_ellint_3f (float __k, float __nu)
• long double comp_ellint_3l (long double __k, long double __nu)
• template<typename _Tp >
std::complex< typename __gnu_cxx::__promote< _Tp >::__type > conj (_Tp __x)
• template<typename _Tp >
std::complex< _Tp > conj (const std::complex< _Tp > &__z)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i (_Tpnu __nu, _Tp __x)
• float cyl_bessel_if (float __nu, float __x)
• long double cyl_bessel_il (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j (_Tpnu __nu, _Tp __x)
• float cyl_bessel_jf (float __nu, float __x)
• long double cyl_bessel_jl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k (_Tpnu __nu, _Tp __x)
• float cyl_bessel_kf (float __nu, float __x)
• long double cyl_bessel_kl (long double __nu, long double __x)
• template<typename _Tpnu , typename _Tp >
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann (_Tpnu __nu, _Tp __x)
• float cyl_neumannf (float __nu, float __x)
• long double cyl_neumannl (long double __nu, long double __x)
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1 (_Tp __k, _Tpp __phi)
• float ellint_1f (float __k, float __phi)
• long double ellint_1l (long double __k, long double __phi)
• template<typename _Tp , typename _Tpp >
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2 (_Tp __k, _Tpp __phi)
• float ellint_2f (float __k, float __phi)
• long double ellint_2l (long double __k, long double __phi)
• template<typename _Tp , typename _Tpn , typename _Tpp >
__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3 (_Tp __k, _Tpn __nu, _Tpp __phi)
• float ellint_3f (float __k, float __nu, float __phi)

Generated by Doxygen
718

• long double ellint_3l (long double __k, long double __nu, long double __phi)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type expint (_Tp __x)
• float expintf (float __x)
• long double expintl (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type fabs (_Tp __x)
• template<typename _Tp >
std::complex< _Tp > fabs (const std::complex< _Tp > &__z)
• float fabs (float __x)
• long double fabs (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type hermite (unsigned int __n, _Tp __x)
• float hermitef (unsigned int __n, float __x)
• long double hermitel (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type laguerre (unsigned int __n, _Tp __x)
• float laguerref (unsigned int __n, float __x)
• long double laguerrel (unsigned int __n, long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type legendre (unsigned int __n, _Tp __x)
• float legendref (unsigned int __n, float __x)
• long double legendrel (unsigned int __n, long double __x)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > polar (const _Tp &__rho, const _Up
&__theta)
• template<typename _Tp , typename _Up >
__gnu_cxx::__promote_2< _Tp, _Up >::__type pow (_Tp __x, _Up __y)
• template<typename _Tp >
std::complex< _Tp > pow (const _Tp &__x, const std::complex< _Tp > &__y)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > pow (const _Tp &__x, const
std::complex< _Up > &__y)
• template<typename _Tp >
std::complex< _Tp > pow (const std::complex< _Tp > &__x, const _Tp &__y)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > pow (const std::complex< _Tp >
&__x, const _Up &__y)
• template<typename _Tp >
std::complex< _Tp > pow (const std::complex< _Tp > &__x, const std::complex< _Tp > &__y)
• template<typename _Tp , typename _Up >
std::complex< typename __gnu_cxx::__promote_2< _Tp, _Up >::__type > pow (const std::complex< _Tp >
&__x, const std::complex< _Up > &__y)
• float pow (float __x, float __y)
• long double pow (long double __x, long double __y)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type riemann_zeta (_Tp __x)
• float riemann_zetaf (float __x)
• long double riemann_zetal (long double __x)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type sph_bessel (unsigned int __n, _Tp __x)
• float sph_besself (unsigned int __n, float __x)

Generated by Doxygen
4.25 std::tr1::__detail Namespace Reference 719

• long double sph_bessell (unsigned int __n, long double __x)


• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type sph_legendre (unsigned int __l, unsigned int __m, _Tp __theta)
• float sph_legendref (unsigned int __l, unsigned int __m, float __theta)
• long double sph_legendrel (unsigned int __l, unsigned int __m, long double __theta)
• template<typename _Tp >
__gnu_cxx::__promote< _Tp >::__type sph_neumann (unsigned int __n, _Tp __x)
• float sph_neumannf (unsigned int __n, float __x)
• long double sph_neumannl (unsigned int __n, long double __x)

4.24.1 Detailed Description

ISO C++ TR1 entities toplevel namespace is std::tr1.

4.25 std::tr1::__detail Namespace Reference


4.25.1 Detailed Description

Implementation details not part of the namespace std::tr1 interface.

4.26 std::tr2 Namespace Reference


Namespaces

• namespace __detail

Classes

• struct __dynamic_bitset_base
• struct __reflection_typelist
• struct __reflection_typelist< _First, _Rest... >
• struct __reflection_typelist<>
• struct bases
• class bool_set
• struct direct_bases
• class dynamic_bitset

Functions

• bool certainly (bool_set __b)


• bool contains (bool_set __s, bool_set __t)
• bool equals (bool_set __s, bool_set __t)
• bool is_emptyset (bool_set __b)
• bool is_indeterminate (bool_set __b)
• bool is_singleton (bool_set __b)
• bool_set operator!= (bool __s, bool_set __t)
• bool_set operator!= (bool_set __s, bool __t)
• bool_set operator!= (bool_set __s, bool_set __t)
• bool_set operator& (bool __s, bool_set __t)
• bool_set operator& (bool_set __s, bool __t)
• template<typename _CharT , typename _Traits , typename _WordT , typename _Alloc >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
dynamic_bitset< _WordT, _Alloc > &__x)
• bool_set operator== (bool __s, bool_set __t)

Generated by Doxygen
720

• bool_set operator== (bool_set __s, bool __t)


• template<typename _CharT , typename _Traits , typename _WordT , typename _Alloc >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
dynamic_bitset< _WordT, _Alloc > &__x)
• bool_set operator∧ (bool __s, bool_set __t)
• bool_set operator∧ (bool_set __s, bool __t)
• bool_set operator| (bool __s, bool_set __t)
• bool_set operator| (bool_set __s, bool __t)
• bool possibly (bool_set __b)
• bool_set set_complement (bool_set __b)
• bool_set set_intersection (bool __s, bool_set __t)
• bool_set set_intersection (bool_set __s, bool __t)
• bool_set set_intersection (bool_set __s, bool_set __t)
• bool_set set_union (bool __s, bool_set __t)
• bool_set set_union (bool_set __s, bool __t)
• bool_set set_union (bool_set __s, bool_set __t)

• template<typename _WordT , typename _Alloc >


bool operator!= (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _Alloc >
&__rhs)
• template<typename _WordT , typename _Alloc >
bool operator<= (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _Alloc >
&__rhs)
• template<typename _WordT , typename _Alloc >
bool operator> (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _Alloc >
&__rhs)
• template<typename _WordT , typename _Alloc >
bool operator>= (const dynamic_bitset< _WordT, _Alloc > &__lhs, const dynamic_bitset< _WordT, _Alloc >
&__rhs)

• template<typename _WordT , typename _Alloc >


dynamic_bitset< _WordT, _Alloc > operator& (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)
• template<typename _WordT , typename _Alloc >
dynamic_bitset< _WordT, _Alloc > operator| (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)
• template<typename _WordT , typename _Alloc >
dynamic_bitset< _WordT, _Alloc > operator∧ (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)
• template<typename _WordT , typename _Alloc >
dynamic_bitset< _WordT, _Alloc > operator- (const dynamic_bitset< _WordT, _Alloc > &__x, const
dynamic_bitset< _WordT, _Alloc > &__y)

4.26.1 Detailed Description

Namespace for non-standard "TR2" extensions.

4.27 std::tr2::__detail Namespace Reference


4.27.1 Detailed Description

Implementation details not part of the namespace std::tr2 interface.

Generated by Doxygen
5 Class Documentation 721

5 Class Documentation
5.1 __gnu_parallel::__accumulate_binop_reduct< _BinOp > Struct Template Reference
#include <for_each_selectors.h>

Public Member Functions

• __accumulate_binop_reduct (_BinOp &__b)


• template<typename _Result , typename _Addend >
_Result operator() (const _Result &__x, const _Addend &__y)

Public Attributes

• _BinOp & __binop

5.1.1 Detailed Description

template<typename _BinOp>
struct __gnu_parallel::__accumulate_binop_reduct< _BinOp >

General reduction, using a binary operator.


The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.2 __gnu_parallel::__accumulate_selector< _It > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__accumulate_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__accumulate
_selector< _It >

Public Member Functions

• template<typename _Op >


std::iterator_traits< _It >::value_type operator() (_Op __o, _It __i)

Public Attributes

• _It _M_finish_iterator

Generated by Doxygen
722

5.2.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__accumulate_selector< _It >

std::accumulate() selector.

5.2.2 Member Function Documentation

operator()()

template<typename _It >


template<typename _Op >
std::iterator_traits< _It >::value_type __gnu_parallel::__accumulate_selector< _It >::operator()
(
_Op __o,
_It __i) [inline]
Functor execution.

Parameters

_←- Operator (unused).


_o
_←- iterator referencing object.
_i

Returns

The current value.

5.2.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.3 __gnu_parallel::__adjacent_difference_selector< _It > Struct Template Reference


#include <for_each_selectors.h>

Generated by Doxygen
5.4 __gnu_parallel::__adjacent_find_selector Struct Reference 723

Inheritance diagram for __gnu_parallel::__adjacent_difference_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__adjacent
_difference_selector< _It >

Public Member Functions

• template<typename _Op >


bool operator() (_Op &__o, _It __i)

Public Attributes

• _It _M_finish_iterator

5.3.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__adjacent_difference_selector< _It >

Selector that returns the difference between two adjacent __elements.

5.3.2 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.4 __gnu_parallel::__adjacent_find_selector Struct Reference


#include <find_selectors.h>

Generated by Doxygen
724

Inheritance diagram for __gnu_parallel::__adjacent_find_selector:

__gnu_parallel::__generic
_find_selector

__gnu_parallel::__adjacent
_find_selector

Public Member Functions

• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __←-
begin2, _Pred __pred)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >
bool operator() (_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)

5.4.1 Detailed Description

Test predicate on two adjacent elements.

5.4.2 Member Function Documentation

_M_sequential_algorithm()

template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__adjacent_find_selector::_M_sequential_algorithm
(
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred) [inline]
Corresponding sequential algorithm on a sequence.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__pred Find predicate.

References std::make_pair().

Generated by Doxygen
5.5 __gnu_cxx::__alloc_traits< _Alloc, typename > Struct Template Reference 725

operator()()

template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


bool __gnu_parallel::__adjacent_find_selector::operator() (
_RAIter1 __i1,
_RAIter2 __i2,
_Pred __pred) [inline]
Test on one position.

Parameters

__i1 _Iterator on first sequence.


__i2 _Iterator on second sequence (unused).
__pred Find predicate.

The documentation for this struct was generated from the following file:

• find_selectors.h

5.5 __gnu_cxx::__alloc_traits< _Alloc, typename > Struct Template Reference


#include <alloc_traits.h>
Inheritance diagram for __gnu_cxx::__alloc_traits< _Alloc, typename >:

std::allocator_traits
< _Alloc >

__gnu_cxx::__alloc
_traits< _Alloc, typename >

Public Types

• typedef std::allocator_traits< _Alloc > _Base_type


• typedef _Alloc allocator_type
• typedef _Base_type::const_pointer const_pointer
• typedef const value_type & const_reference
• using const_void_pointer
• typedef _Base_type::difference_type difference_type
• using is_always_equal
• typedef _Base_type::pointer pointer
• using propagate_on_container_copy_assignment
• using propagate_on_container_move_assignment

Generated by Doxygen
726

• using propagate_on_container_swap
• using rebind_alloc
• using rebind_traits
• typedef value_type & reference
• typedef _Base_type::size_type size_type
• typedef _Base_type::value_type value_type
• using void_pointer

Static Public Member Functions

• static constexpr bool _S_always_equal ()


• static constexpr bool _S_nothrow_move ()
• static constexpr void _S_on_swap (_Alloc &__a, _Alloc &__b)
• static constexpr bool _S_propagate_on_copy_assign ()
• static constexpr bool _S_propagate_on_move_assign ()
• static constexpr bool _S_propagate_on_swap ()
• static constexpr _Alloc _S_select_on_copy (const _Alloc &__a)
• static constexpr pointer allocate (_Alloc &__a, size_type __n)
• static constexpr pointer allocate (_Alloc &__a, size_type __n, const_void_pointer __hint)
• template<typename _Ptr , typename... _Args>
static constexpr std::__enable_if_t< __is_custom_pointer< _Ptr >::value > construct (_Alloc &__a, _Ptr _←-
_p, _Args &&... __args) noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p), std::forward<
_Args >(__args)...)))
• static constexpr void construct (_Alloc &__a, _Tp ∗__p, _Args &&... __args) noexcept(_S_nothrow_construct<
_Tp, _Args... >())
• static constexpr void deallocate (_Alloc &__a, pointer __p, size_type __n)
• template<typename _Ptr >
static constexpr std::__enable_if_t< __is_custom_pointer< _Ptr >::value > destroy (_Alloc &__a, _Ptr __p)
noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p))))
• static constexpr void destroy (_Alloc &__a, _Tp ∗__p) noexcept(_S_nothrow_destroy< _Tp >())
• static constexpr size_type max_size (const _Alloc &__a) noexcept
• static constexpr _Alloc select_on_container_copy_construction (const _Alloc &__rhs)

5.5.1 Detailed Description

template<typename _Alloc, typename = typename _Alloc::value_type>


struct __gnu_cxx::__alloc_traits< _Alloc, typename >

Uniform interface to C++98 and C++11 allocators.

5.5.2 Member Typedef Documentation

const_void_pointer

using std::allocator_traits< typename >::const_void_pointer [inherited]


The allocator's const void pointer type.
Alloc::const_void_pointer if that type exists, otherwise pointer_traits<pointer>::rebind<const
void>

is_always_equal

using std::allocator_traits< typename >::is_always_equal [inherited]


Whether all instances of the allocator type compare equal.
Alloc::is_always_equal if that type exists, otherwise is_empty<Alloc>::type

Generated by Doxygen
5.5 __gnu_cxx::__alloc_traits< _Alloc, typename > Struct Template Reference 727

propagate_on_container_copy_assignment

using std::allocator_traits< typename >::propagate_on_container_copy_assignment [inherited]


How the allocator is propagated on copy assignment.
Alloc::propagate_on_container_copy_assignment if that type exists, otherwise false_type

propagate_on_container_move_assignment

using std::allocator_traits< typename >::propagate_on_container_move_assignment [inherited]


How the allocator is propagated on move assignment.
Alloc::propagate_on_container_move_assignment if that type exists, otherwise false_type

propagate_on_container_swap

using std::allocator_traits< typename >::propagate_on_container_swap [inherited]


How the allocator is propagated on swap.
Alloc::propagate_on_container_swap if that type exists, otherwise false_type

void_pointer

using std::allocator_traits< typename >::void_pointer [inherited]


The allocator's void pointer type.
Alloc::void_pointer if that type exists, otherwise pointer_traits<pointer>::rebind<void>

5.5.3 Member Function Documentation

allocate() [1/2]

static constexpr pointer std::allocator_traits< typename >::allocate (


_Alloc & __a,
size_type __n) [inline], [static], [nodiscard], [constexpr], [inherited]
Allocate memory.

Parameters
_←- An allocator.
_a
_←- The number of objects to allocate space for.
_n

Calls a.allocate(n)

allocate() [2/2]

static constexpr pointer std::allocator_traits< typename >::allocate (


_Alloc & __a,
size_type __n,
const_void_pointer __hint) [inline], [static], [nodiscard], [constexpr], [inherited]
Allocate memory.

Parameters
__a An allocator.
__n The number of objects to allocate space for.
__hint Aid to locality.

Generated by Doxygen
728

Returns

Memory of suitable size and alignment for n objects of type value_type

Returns a.allocate(n, hint) if that expression is well-formed, otherwise returns a.allocate(n)

construct()

static constexpr void std::allocator_traits< typename >::construct (


_Alloc & __a,
_Tp ∗ __p,
_Args &&... __args) [inline], [static], [constexpr], [noexcept], [inherited]
Construct an object of type _Tp

Parameters
__a An allocator.
__p Pointer to memory of suitable size and alignment for Tp
__args Constructor arguments.

Calls __a.construct(__p, std::forward<Args>(__args)...) if that expression is well-formed,


otherwise uses placement-new to construct an object of type _Tp at location __p from the arguments __args...

deallocate()

static constexpr void std::allocator_traits< typename >::deallocate (


_Alloc & __a,
pointer __p,
size_type __n) [inline], [static], [constexpr], [inherited]
Deallocate memory.

Parameters
_←- An allocator.
_a
_←- Pointer to the memory to deallocate.
_p
_←- The number of objects space was allocated for.
_n

Calls a.deallocate(p, n)

destroy()

static constexpr void std::allocator_traits< typename >::destroy (


_Alloc & __a,
_Tp ∗ __p) [inline], [static], [constexpr], [noexcept], [inherited]
Destroy an object of type _Tp.

Parameters
_←- An allocator.
_a
_←- Pointer to the object to destroy
_p

Generated by Doxygen
5.6 std::__basic_future< _Res > Class Template Reference 729

Calls __a.destroy(__p) if that expression is well-formed, otherwise calls __p->∼_Tp()

max_size()

static constexpr size_type std::allocator_traits< typename >::max_size (


const _Alloc & __a) [inline], [static], [constexpr], [noexcept], [inherited]
The maximum supported allocation size.

Parameters
_←- An allocator.
_a

Returns

__a.max_size() or numeric_limits<size_type>::max()

Returns __a.max_size() if that expression is well-formed, otherwise returns numeric_limits<size_←-


type>::max()
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::max_size(), and std::forward_list< _Tp, _Alloc >::max_size().

select_on_container_copy_construction()

static constexpr _Alloc std::allocator_traits< typename >::select_on_container_copy_construction


(
const _Alloc & __rhs) [inline], [static], [constexpr], [inherited]
Obtain an allocator to use when copying a container.

Parameters
__rhs An allocator.

Returns

__rhs.select_on_container_copy_construction() or __rhs

Returns __rhs.select_on_container_copy_construction() if that expression is well-formed, otherwise


returns __rhs
The documentation for this struct was generated from the following file:

• ext/alloc_traits.h

5.6 std::__basic_future< _Res > Class Template Reference


#include <future>

Generated by Doxygen
730

Inheritance diagram for std::__basic_future< _Res >:

std::__basic_future
< _Res >

std::shared_future
std::future< _Res >
< _Res >

Public Member Functions

• __basic_future (const __basic_future &)=delete


• __basic_future & operator= (const __basic_future &)=delete
• bool valid () const noexcept
• void wait () const
• template<typename _Rep , typename _Period >
future_status wait_for (const chrono::duration< _Rep, _Period > &__rel) const
• template<typename _Clock , typename _Duration >
future_status wait_until (const chrono::time_point< _Clock, _Duration > &__abs) const

Protected Types

• typedef __future_base::_Result< _Res > & __result_type


• typedef shared_ptr< _State_base > __state_type

Protected Member Functions

• __basic_future (const __state_type &__state)


• __basic_future (const shared_future< _Res > &) noexcept
• __basic_future (future< _Res > &&) noexcept
• __basic_future (shared_future< _Res > &&) noexcept
• __result_type _M_get_result () const
• void _M_swap (__basic_future &__that) noexcept

5.6.1 Detailed Description

template<typename _Res>
class std::__basic_future< _Res >

Common implementation for future and shared_future.

Generated by Doxygen
5.7 __gnu_parallel::__binder1st< _Operation, _FirstArgumentType, _SecondArgumentType, _ResultType >
Class Template Reference 731

5.6.2 Member Function Documentation

_M_get_result()

template<typename _Res >


__result_type std::__basic_future< _Res >::_M_get_result () const [inline], [protected]
Wait for the state to be ready and rethrow any stored exception.
The documentation for this class was generated from the following file:

• future

5.7 __gnu_parallel::__binder1st< _Operation, _FirstArgumentType,


_SecondArgumentType, _ResultType > Class Template Reference
#include <base.h>
Inheritance diagram for __gnu_parallel::__binder1st< _Operation, _FirstArgumentType, _SecondArgumentType, _←-
ResultType >:

std::unary_function
< _SecondArgumentType,
_ResultType >

__gnu_parallel::__binder1st
< _Operation, _FirstArgumentType,
_SecondArgumentType, _ResultType >

Public Types

• typedef _SecondArgumentType argument_type


• typedef _ResultType result_type

Public Member Functions

• __binder1st (const _Operation &__x, const _FirstArgumentType &__y)


• _ResultType operator() (_SecondArgumentType &__x) const
• _ResultType operator() (const _SecondArgumentType &__x)

Protected Attributes

• _Operation _M_op
• _FirstArgumentType _M_value

Generated by Doxygen
732

5.7.1 Detailed Description

template<typename _Operation, typename _FirstArgumentType, typename _SecondArgumentType, typename


_ResultType>
class __gnu_parallel::__binder1st< _Operation, _FirstArgumentType, _SecondArgumentType, _ResultType >

Similar to std::binder1st, but giving the argument types explicitly.

5.7.2 Member Typedef Documentation

argument_type

_SecondArgumentType std::unary_function< _SecondArgumentType, _ResultType >::argument_type [inherited]


argument_type is the type of the argument

result_type

_ResultType std::unary_function< _SecondArgumentType, _ResultType >::result_type [inherited]


result_type is the return type
The documentation for this class was generated from the following file:

• base.h

5.8 __gnu_parallel::__binder2nd< _Operation, _FirstArgumentType,


_SecondArgumentType, _ResultType > Class Template Reference
#include <base.h>
Inheritance diagram for __gnu_parallel::__binder2nd< _Operation, _FirstArgumentType, _SecondArgumentType, _←-
ResultType >:

std::unary_function
< _FirstArgumentType,
_ResultType >

__gnu_parallel::__binder2nd
< _Operation, _FirstArgumentType,
_SecondArgumentType, _ResultType >

Public Types

• typedef _FirstArgumentType argument_type


• typedef _ResultType result_type

Generated by Doxygen
5.9 std::__codecvt_abstract_base< _InternT, _ExternT, _StateT > Class Template Reference 733

Public Member Functions

• __binder2nd (const _Operation &__x, const _SecondArgumentType &__y)


• _ResultType operator() (_FirstArgumentType &__x)
• _ResultType operator() (const _FirstArgumentType &__x) const

Protected Attributes

• _Operation _M_op
• _SecondArgumentType _M_value

5.8.1 Detailed Description

template<typename _Operation, typename _FirstArgumentType, typename _SecondArgumentType, typename


_ResultType>
class __gnu_parallel::__binder2nd< _Operation, _FirstArgumentType, _SecondArgumentType, _ResultType >

Similar to std::binder2nd, but giving the argument types explicitly.

5.8.2 Member Typedef Documentation

argument_type

_FirstArgumentType std::unary_function< _FirstArgumentType, _ResultType >::argument_type [inherited]


argument_type is the type of the argument

result_type

_ResultType std::unary_function< _FirstArgumentType, _ResultType >::result_type [inherited]


result_type is the return type
The documentation for this class was generated from the following file:

• base.h

5.9 std::__codecvt_abstract_base< _InternT, _ExternT, _StateT > Class Template


Reference
#include <codecvt.h>

Generated by Doxygen
734

Inheritance diagram for std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< _InternT, _ExternT,
_StateT >

std::codecvt< _InternT,
_ExternT, _StateT >

std::codecvt_byname
< _InternT, _ExternT,
_StateT >

Public Types

• typedef _ExternT extern_type


• typedef _InternT intern_type
• typedef codecvt_base::result result
• typedef _StateT state_type

Public Member Functions

• bool always_noconv () const throw ()


• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Protected Member Functions

• __codecvt_abstract_base (size_t __refs=0)

Generated by Doxygen
5.9 std::__codecvt_abstract_base< _InternT, _ExternT, _StateT > Class Template Reference 735

• virtual bool do_always_noconv () const throw () =0


• virtual int do_encoding () const throw () =0
• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const =0
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
=0
• virtual int do_max_length () const throw () =0
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const =0
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const =0

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

5.9.1 Detailed Description

template<typename _InternT, typename _ExternT, typename _StateT>


class std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >

Common base for codecvt functions.


This template class provides implementations of the public functions that forward to the protected virtual functions.
This template also provides abstract stubs for the protected virtual functions.

5.9.2 Member Function Documentation

do_out()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::do_out (
state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [pure virtual]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implemented in std::codecvt< _InternT, _ExternT, _StateT >, std::codecvt< _Elem, char, mbstate_t >, std::codecvt< _InternT, _ExternT,
std::codecvt< char, char, mbstate_t >, std::codecvt< char16_t, char, mbstate_t >, std::codecvt< char32_t, char, mbstate_t >,
and std::codecvt< wchar_t, char, mbstate_t >.
Referenced by std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::out().

Generated by Doxygen
736

in()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::in (
state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::out (
state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.

Generated by Doxygen
5.9 std::__codecvt_abstract_base< _InternT, _ExternT, _StateT > Class Template Reference 737

The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

References std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::do_out().

unshift()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::unshift (
state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Generated by Doxygen
738

Returns

codecvt_base::result.

The documentation for this class was generated from the following file:

• codecvt.h

5.10 __gnu_cxx::__common_pool_policy< _PoolTp, _Thread > Struct Template Reference


#include <mt_allocator.h>

5.10.1 Detailed Description

template<template< bool > class _PoolTp, bool _Thread>


struct __gnu_cxx::__common_pool_policy< _PoolTp, _Thread >

Policy for shared __pool objects.


The documentation for this struct was generated from the following file:

• mt_allocator.h

5.11 __gnu_parallel::__count_if_selector< _It, _Diff > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__count_if_selector< _It, _Diff >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__count
_if_selector< _It, _Diff >

Public Member Functions

• template<typename _Op >


_Diff operator() (_Op &__o, _It __i)

Public Attributes

• _It _M_finish_iterator

Generated by Doxygen
5.12 __gnu_parallel::__count_selector< _It, _Diff > Struct Template Reference 739

5.11.1 Detailed Description

template<typename _It, typename _Diff>


struct __gnu_parallel::__count_if_selector< _It, _Diff >

std::count_if () selector.

5.11.2 Member Function Documentation

operator()()

template<typename _It , typename _Diff >


template<typename _Op >
_Diff __gnu_parallel::__count_if_selector< _It, _Diff >::operator() (
_Op & __o,
_It __i) [inline]
Functor execution.

Parameters

_←- Operator.
_o
_←- iterator referencing object.
_i

Returns

1 if count, 0 if does not count.

5.11.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.12 __gnu_parallel::__count_selector< _It, _Diff > Struct Template Reference


#include <for_each_selectors.h>

Generated by Doxygen
740

Inheritance diagram for __gnu_parallel::__count_selector< _It, _Diff >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__count
_selector< _It, _Diff >

Public Member Functions

• template<typename _ValueType >


_Diff operator() (_ValueType &__v, _It __i)

Public Attributes

• _It _M_finish_iterator

5.12.1 Detailed Description

template<typename _It, typename _Diff>


struct __gnu_parallel::__count_selector< _It, _Diff >

std::count() selector.

5.12.2 Member Function Documentation

operator()()

template<typename _It , typename _Diff >


template<typename _ValueType >
_Diff __gnu_parallel::__count_selector< _It, _Diff >::operator() (
_ValueType & __v,
_It __i) [inline]
Functor execution.

Parameters

_←- Current value.


_v
_←- iterator referencing object.
_i

Generated by Doxygen
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference 741

Returns

1 if count, 0 if does not count.

5.12.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.13 std::__ctype_abstract_base< _CharT > Class Template Reference


#include <locale_facets.h>
Inheritance diagram for std::__ctype_abstract_base< _CharT >:

std::locale::facet std::ctype_base

std::__ctype_abstract
_base< _CharT >

std::ctype< _CharT >

std::ctype_byname<
_CharT >

Public Types

• typedef const int ∗ __to_type


• typedef _CharT char_type
• typedef unsigned short mask

Public Member Functions

• const char_type ∗ is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const

Generated by Doxygen
742

• bool is (mask __m, char_type __c) const


• char narrow (char_type __c, char __dfault) const
• const char_type ∗ narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to) const
• const char_type ∗ scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ tolower (char_type ∗__lo, const char_type ∗__hi) const
• char_type tolower (char_type __c) const
• const char_type ∗ toupper (char_type ∗__lo, const char_type ∗__hi) const
• char_type toupper (char_type __c) const
• char_type widen (char __c) const
• const char ∗ widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Public Attributes

• static const mask alnum


• static const mask alpha
• static const mask blank
• static const mask cntrl
• static const mask digit
• static const mask graph
• static const mask lower
• static const mask print
• static const mask punct
• static const mask space
• static const mask upper
• static const mask xdigit

Protected Member Functions

• __ctype_abstract_base (size_t __refs=0)


• virtual const char_type ∗ do_is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const =0
• virtual bool do_is (mask __m, char_type __c) const =0
• virtual char do_narrow (char_type __c, char __dfault) const =0
• virtual const char_type ∗ do_narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to)
const =0
• virtual const char_type ∗ do_scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const =0
• virtual const char_type ∗ do_scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const =0
• virtual const char_type ∗ do_tolower (char_type ∗__lo, const char_type ∗__hi) const =0
• virtual char_type do_tolower (char_type __c) const =0
• virtual const char_type ∗ do_toupper (char_type ∗__lo, const char_type ∗__hi) const =0
• virtual char_type do_toupper (char_type __c) const =0
• virtual char_type do_widen (char __c) const =0
• virtual const char ∗ do_widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const =0

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Generated by Doxygen
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference 743

5.13.1 Detailed Description

template<typename _CharT>
class std::__ctype_abstract_base< _CharT >

Common base for ctype facet.


This template class provides implementations of the public functions that forward to the protected virtual functions.
This template also provides abstract stubs for the protected virtual functions.

5.13.2 Member Typedef Documentation

char_type

template<typename _CharT >


_CharT std::__ctype_abstract_base< _CharT >::char_type
Typedef for the template parameter.

5.13.3 Member Function Documentation

do_is() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::__ctype_abstract_base< _CharT >::do_is (
const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [protected], [pure virtual]
Return a mask array.
This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the input.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.

do_is() [2/2]

template<typename _CharT >


virtual bool std::__ctype_abstract_base< _CharT >::do_is (
mask __m,
char_type __c) const [protected], [pure virtual]
Test char_type classification.
This function finds a mask M for c and compares it to mask m.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Generated by Doxygen
744

Parameters

_←- The char_type to find the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.


Referenced by std::__ctype_abstract_base< _CharT >::is(), and std::__ctype_abstract_base< _CharT >::is().

do_narrow() [1/2]

template<typename _CharT >


virtual char std::__ctype_abstract_base< _CharT >::do_narrow (
char_type __c,
char __dfault) const [protected], [pure virtual]
Narrow char_type to char.
This virtual function converts the argument to char using the simplest reasonable transformation. If the conversion fails,
dfault is returned instead.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char_type to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.


Referenced by std::__ctype_abstract_base< _CharT >::narrow(), and std::__ctype_abstract_base< _CharT >::narrow().

do_narrow() [2/2]

template<typename _CharT >


virtual const char_type ∗ std::__ctype_abstract_base< _CharT >::do_narrow (
const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [protected], [pure virtual]
Narrow char_type array to char.
This virtual function converts each char_type in the range [__lo,__hi) to char using the simplest reasonable transforma-
tion and writes the results to the destination array. For any element in the input that cannot be converted, __dfault is
used instead.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference 745

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.

do_scan_is()

template<typename _CharT >


virtual const char_type ∗ std::__ctype_abstract_base< _CharT >::do_scan_is (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [pure virtual]
Find char_type matching mask.
This function searches for and returns the first char_type c in [__lo,__hi) for which is(__m,c) is true.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a matching char_type if found, else __hi.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.


Referenced by std::__ctype_abstract_base< _CharT >::scan_is().

do_scan_not()

template<typename _CharT >


virtual const char_type ∗ std::__ctype_abstract_base< _CharT >::do_scan_not (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [pure virtual]
Find char_type not matching mask.
This function searches for and returns a pointer to the first char_type c of [lo,hi) for which is(m,c) is false.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Generated by Doxygen
746

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a non-matching char_type if found, else __hi.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.


Referenced by std::__ctype_abstract_base< _CharT >::scan_not().

do_tolower() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::__ctype_abstract_base< _CharT >::do_tolower (
char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [pure virtual]
Convert array to lowercase.
This virtual function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain
untouched.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.

do_tolower() [2/2]

template<typename _CharT >


virtual char_type std::__ctype_abstract_base< _CharT >::do_tolower (
char_type __c) const [protected], [pure virtual]
Convert to lowercase.
This virtual function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argu-
ment.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Generated by Doxygen
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference 747

Parameters
_←- The char_type to convert.
_c

Returns

The lowercase char_type if convertible, else __c.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.


Referenced by std::__ctype_abstract_base< _CharT >::tolower(), and std::__ctype_abstract_base< _CharT >::tolower().

do_toupper() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::__ctype_abstract_base< _CharT >::do_toupper (
char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [pure virtual]
Convert array to uppercase.
This virtual function converts each char_type in the range [__lo,__hi) to uppercase if possible. Other elements remain
untouched.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.

do_toupper() [2/2]

template<typename _CharT >


virtual char_type std::__ctype_abstract_base< _CharT >::do_toupper (
char_type __c) const [protected], [pure virtual]
Convert to uppercase.
This virtual function converts the char_type argument to uppercase if possible. If not possible (for example, '2'), returns
the argument.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters
_←- The char_type to convert.
_c

Generated by Doxygen
748

Returns

The uppercase char_type if convertible, else __c.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.


Referenced by std::__ctype_abstract_base< _CharT >::toupper(), and std::__ctype_abstract_base< _CharT >::toupper().

do_widen() [1/2]

template<typename _CharT >


virtual char_type std::__ctype_abstract_base< _CharT >::do_widen (
char __c) const [protected], [pure virtual]
Widen char.
This virtual function converts the char to char_type using the simplest reasonable transformation.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted char_type

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.


Referenced by std::__ctype_abstract_base< _CharT >::widen(), and std::__ctype_abstract_base< _CharT >::widen().

do_widen() [2/2]

template<typename _CharT >


virtual const char ∗ std::__ctype_abstract_base< _CharT >::do_widen (
const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [protected], [pure virtual]
Widen char array.
This function converts each char in the input to char_type using the simplest reasonable transformation.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- Pointer to start range.
_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::ctype< wchar_t >.

Generated by Doxygen
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference 749

is() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::is (
const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [inline]
Return a mask array.
This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the char array. It does so by returning the value of ctype<char_type>::do_is().

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_is().

is() [2/2]

template<typename _CharT >


bool std::__ctype_abstract_base< _CharT >::is (
mask __m,
char_type __c) const [inline]
Test char_type classification.
This function finds a mask M for __c and compares it to mask __m. It does so by returning the value of ctype<char_←-
type>::do_is().

Parameters

_←- The char_type to compare the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

References std::__ctype_abstract_base< _CharT >::do_is().


Referenced by std::time_get< _CharT, _InIter >::get().

narrow() [1/2]

template<typename _CharT >


char std::__ctype_abstract_base< _CharT >::narrow (
char_type __c,
char __dfault) const [inline]
Narrow char_type to char.

Generated by Doxygen
750

This function converts the char_type to char using the simplest reasonable transformation. If the conversion fails, dfault
is returned instead. It does so by returning ctype<char_type>::do_narrow(__c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference 751

Parameters
__c The char_type to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

References std::__ctype_abstract_base< _CharT >::do_narrow().


Referenced by std::time_get< _CharT, _InIter >::do_get_year(), std::time_get< _CharT, _InIter >::get(), and
std::time_put< _CharT, _OutIter >::put().

narrow() [2/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::narrow (
const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [inline]
Narrow array to char array.
This function converts each char_type in the input to char using the simplest reasonable transformation and writes the
results to the destination array. For any char_type in the input that cannot be converted, dfault is used instead. It does
so by returning ctype<char_type>::do_narrow(__lo, __hi, __dfault, __to).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_narrow().

scan_is()

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::scan_is (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline]
Find char_type matching a mask.
This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is true. It does so by returning
ctype<char_type>::do_scan_is().

Generated by Doxygen
752

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to matching char_type if found, else __hi.

References std::__ctype_abstract_base< _CharT >::do_scan_is().

scan_not()

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::scan_not (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline]
Find char_type not matching a mask.
This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is false. It does so by returning
ctype<char_type>::do_scan_not().

Parameters
_←- The mask to compare against.
_m
_←- Pointer to first char in range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to non-matching char if found, else __hi.

References std::__ctype_abstract_base< _CharT >::do_scan_not().

tolower() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::tolower (
char_type ∗ __lo,
const char_type ∗ __hi) const [inline]
Convert array to lowercase.
This function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain un-
touched. It does so by returning ctype<char_type>:: do_tolower(__lo, __hi).

Parameters

_←- Pointer to start of range.


_lo

Generated by Doxygen
5.13 std::__ctype_abstract_base< _CharT > Class Template Reference 753

_←- Pointer to end of range.


_hi

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_tolower().

tolower() [2/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::tolower (
char_type __c) const [inline]
Convert to lowercase.
This function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_tolower(c).

Parameters
_←- The char_type to convert.
_c

Returns

The lowercase char_type if convertible, else __c.

References std::__ctype_abstract_base< _CharT >::do_tolower().


Referenced by std::time_get< _CharT, _InIter >::get().

toupper() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::toupper (
char_type ∗ __lo,
const char_type ∗ __hi) const [inline]
Convert array to uppercase.
This function converts each char_type in the range [lo,hi) to uppercase if possible. Other elements remain untouched.
It does so by returning ctype<char_type>:: do_toupper(lo, hi).

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_toupper().

Generated by Doxygen
754

toupper() [2/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::toupper (
char_type __c) const [inline]
Convert to uppercase.
This function converts the argument to uppercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_toupper().

Parameters
_←- The char_type to convert.
_c

Returns

The uppercase char_type if convertible, else __c.

References std::__ctype_abstract_base< _CharT >::do_toupper().


Referenced by std::time_get< _CharT, _InIter >::get().

widen() [1/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::widen (
char __c) const [inline]
Widen char to char_type.
This function converts the char argument to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted char_type.

References std::__ctype_abstract_base< _CharT >::do_widen().


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), and
std::time_put< _CharT, _OutIter >::do_put().

widen() [2/2]

template<typename _CharT >


const char ∗ std::__ctype_abstract_base< _CharT >::widen (
const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline]
Widen array to char_type.
This function converts each char in the input to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
5.14 std::tr2::__dynamic_bitset_base< _WordT, _Alloc > Struct Template Reference 755

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_widen().


The documentation for this class was generated from the following file:

• locale_facets.h

5.14 std::tr2::__dynamic_bitset_base< _WordT, _Alloc > Struct Template Reference


#include <dynamic_bitset>
Inheritance diagram for std::tr2::__dynamic_bitset_base< _WordT, _Alloc >:

std::tr2::__dynamic
_bitset_base< _WordT,
_Alloc >

std::tr2::dynamic_bitset
< _WordT, _Alloc >

Public Types

• typedef _Alloc allocator_type


• typedef _WordT block_type
• typedef size_t size_type

Public Member Functions

• __dynamic_bitset_base (__dynamic_bitset_base &&__b)=default


• __dynamic_bitset_base (const __dynamic_bitset_base &)=default
• __dynamic_bitset_base (const allocator_type &__alloc)
• __dynamic_bitset_base (size_type __nbits, unsigned long long __val=0ULL, const allocator_type &__←-
alloc=allocator_type())

Generated by Doxygen
756

• size_t _M_are_all_aux () const noexcept


• void _M_clear () noexcept
• void _M_do_and (const __dynamic_bitset_base &__x) noexcept
• void _M_do_append_block (block_type __block, size_type __pos)
• size_t _M_do_count () const noexcept
• void _M_do_dif (const __dynamic_bitset_base &__x) noexcept
• size_type _M_do_find_first (size_t __not_found) const
• size_type _M_do_find_next (size_t __prev, size_t __not_found) const
• void _M_do_flip () noexcept
• void _M_do_left_shift (size_t __shift)
• void _M_do_or (const __dynamic_bitset_base &__x) noexcept
• void _M_do_reset () noexcept
• void _M_do_right_shift (size_t __shift)
• void _M_do_set () noexcept
• unsigned long long _M_do_to_ullong () const
• unsigned long _M_do_to_ulong () const
• void _M_do_xor (const __dynamic_bitset_base &__x) noexcept
• allocator_type _M_get_allocator () const noexcept
• block_type _M_getword (size_type __pos) const noexcept
• block_type & _M_getword (size_type __pos) noexcept
• block_type _M_hiword () const noexcept
• block_type & _M_hiword () noexcept
• bool _M_is_any () const noexcept
• bool _M_is_equal (const __dynamic_bitset_base &__x) const noexcept
• bool _M_is_less (const __dynamic_bitset_base &__x) const noexcept
• bool _M_is_proper_subset_of (const __dynamic_bitset_base &__b) const noexcept
• bool _M_is_subset_of (const __dynamic_bitset_base &__b) noexcept
• void _M_resize (size_t __nbits, bool __value)
• size_type _M_size () const noexcept
• void _M_swap (__dynamic_bitset_base &__b) noexcept
• __dynamic_bitset_base & operator= (__dynamic_bitset_base &&)=default
• __dynamic_bitset_base & operator= (const __dynamic_bitset_base &)=default

Static Public Member Functions

• static block_type _S_maskbit (size_type __pos) noexcept


• static size_type _S_whichbit (size_type __pos) noexcept
• static size_type _S_whichbyte (size_type __pos) noexcept
• static size_type _S_whichword (size_type __pos) noexcept

Public Attributes

• std::vector< block_type, allocator_type > _M_w

Static Public Attributes

• static const size_type _S_bits_per_block


• static const size_type npos

Generated by Doxygen
5.15 __gnu_parallel::__fill_selector< _It > Struct Template Reference 757

5.14.1 Detailed Description

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


struct std::tr2::__dynamic_bitset_base< _WordT, _Alloc >

Base class, general case.


See documentation for dynamic_bitset.

5.14.2 Member Data Documentation

_M_w

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


std::vector<block_type, allocator_type> std::tr2::__dynamic_bitset_base< _WordT, _Alloc >::_M_w
0 is the least significant word.
The documentation for this struct was generated from the following files:

• dynamic_bitset
• dynamic_bitset.tcc

5.15 __gnu_parallel::__fill_selector< _It > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__fill_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__fill
_selector< _It >

Public Member Functions

• template<typename _ValueType >


bool operator() (_ValueType &__v, _It __i)

Public Attributes

• _It _M_finish_iterator

5.15.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__fill_selector< _It >

std::fill() selector.

Generated by Doxygen
758

5.15.2 Member Function Documentation

operator()()

template<typename _It >


template<typename _ValueType >
bool __gnu_parallel::__fill_selector< _It >::operator() (
_ValueType & __v,
_It __i) [inline]
Functor execution.

Parameters

_←- Current value.


_v
_←- iterator referencing object.
_i

5.15.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.16 __gnu_parallel::__find_first_of_selector< _FIterator > Struct Template Reference


#include <find_selectors.h>
Inheritance diagram for __gnu_parallel::__find_first_of_selector< _FIterator >:

__gnu_parallel::__generic
_find_selector

__gnu_parallel::__find
_first_of_selector< _FIterator >

Public Member Functions

• __find_first_of_selector (_FIterator __begin, _FIterator __end)

Generated by Doxygen
5.16 __gnu_parallel::__find_first_of_selector< _FIterator > Struct Template Reference 759

• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __←-
begin2, _Pred __pred)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >
bool operator() (_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)

Public Attributes

• _FIterator _M_begin
• _FIterator _M_end

5.16.1 Detailed Description

template<typename _FIterator>
struct __gnu_parallel::__find_first_of_selector< _FIterator >

Test predicate on several elements.

5.16.2 Member Function Documentation

_M_sequential_algorithm()

template<typename _FIterator >


template<typename _RAIter1 , typename _RAIter2 , typename _Pred >
std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__find_first_of_selector< _FIterator >::_M_←-
sequential_algorithm (
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred) [inline]
Corresponding sequential algorithm on a sequence.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__pred Find predicate.

References std::make_pair().

operator()()

template<typename _FIterator >


template<typename _RAIter1 , typename _RAIter2 , typename _Pred >
bool __gnu_parallel::__find_first_of_selector< _FIterator >::operator() (
_RAIter1 __i1,
_RAIter2 __i2,
_Pred __pred) [inline]
Test on one position.

Parameters

__i1 _Iterator on first sequence.


__i2 _Iterator on second sequence (unused).

Generated by Doxygen
760

Parameters
__pred Find predicate.

The documentation for this struct was generated from the following file:

• find_selectors.h

5.17 __gnu_parallel::__find_if_selector Struct Reference


#include <find_selectors.h>
Inheritance diagram for __gnu_parallel::__find_if_selector:

__gnu_parallel::__generic
_find_selector

__gnu_parallel::__find
_if_selector

Public Member Functions

• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __←-
begin2, _Pred __pred)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >
bool operator() (_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)

5.17.1 Detailed Description

Test predicate on a single element, used for std::find() and std::find_if ().

5.17.2 Member Function Documentation

_M_sequential_algorithm()

template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__find_if_selector::_M_sequential_algorithm (
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred) [inline]
Corresponding sequential algorithm on a sequence.

Generated by Doxygen
5.18 __gnu_parallel::__for_each_selector< _It > Struct Template Reference 761

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__pred Find predicate.

References std::make_pair().

operator()()

template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


bool __gnu_parallel::__find_if_selector::operator() (
_RAIter1 __i1,
_RAIter2 __i2,
_Pred __pred) [inline]
Test on one position.

Parameters

__i1 _Iterator on first sequence.


__i2 _Iterator on second sequence (unused).
__pred Find predicate.

The documentation for this struct was generated from the following file:
• find_selectors.h

5.18 __gnu_parallel::__for_each_selector< _It > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__for_each_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__for
_each_selector< _It >

Public Member Functions

• template<typename _Op >


bool operator() (_Op &__o, _It __i)

Generated by Doxygen
762

Public Attributes

• _It _M_finish_iterator

5.18.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__for_each_selector< _It >

std::for_each() selector.

5.18.2 Member Function Documentation

operator()()

template<typename _It >


template<typename _Op >
bool __gnu_parallel::__for_each_selector< _It >::operator() (
_Op & __o,
_It __i) [inline]
Functor execution.

Parameters

_←- Operator.
_o
_←- iterator referencing object.
_i

5.18.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.19 __cxxabiv1::__forced_unwind Class Reference


#include <cxxabi_forced.h>

5.19.1 Detailed Description

Thrown as part of forced unwinding.


A magic placeholder class that can be caught by reference to recognize forced unwinding.
The documentation for this class was generated from the following file:

• cxxabi_forced.h

Generated by Doxygen
5.20 __gnu_parallel::__generate_selector< _It > Struct Template Reference 763

5.20 __gnu_parallel::__generate_selector< _It > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__generate_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__generate
_selector< _It >

Public Member Functions

• template<typename _Op >


bool operator() (_Op &__o, _It __i)

Public Attributes

• _It _M_finish_iterator

5.20.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__generate_selector< _It >

std::generate() selector.

5.20.2 Member Function Documentation

operator()()

template<typename _It >


template<typename _Op >
bool __gnu_parallel::__generate_selector< _It >::operator() (
_Op & __o,
_It __i) [inline]
Functor execution.

Parameters

_←- Operator.
_o
_←- iterator referencing object.
_i

Generated by Doxygen
764

5.20.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.21 __gnu_parallel::__generic_find_selector Struct Reference


#include <find_selectors.h>
Inheritance diagram for __gnu_parallel::__generic_find_selector:

__gnu_parallel::__adjacent
_find_selector

__gnu_parallel::__find
_first_of_selector< _FIterator >
__gnu_parallel::__generic
_find_selector
__gnu_parallel::__find
_if_selector

__gnu_parallel::__mismatch
_selector

5.21.1 Detailed Description

Base class of all __gnu_parallel::__find_template selectors.


The documentation for this struct was generated from the following file:

• find_selectors.h

5.22 __gnu_parallel::__generic_for_each_selector< _It > Struct Template Reference


#include <for_each_selectors.h>

Generated by Doxygen
5.22 __gnu_parallel::__generic_for_each_selector< _It > Struct Template Reference 765

Inheritance diagram for __gnu_parallel::__generic_for_each_selector< _It >:

__gnu_parallel::__accumulate
_selector< _It >

__gnu_parallel::__adjacent
_difference_selector< _It >

__gnu_parallel::__count
_if_selector< _It, _Diff >

__gnu_parallel::__count
_selector< _It, _Diff >

__gnu_parallel::__fill
_selector< _It >

__gnu_parallel::__for
_each_selector< _It >

__gnu_parallel::__generic __gnu_parallel::__generate
_for_each_selector< _It > _selector< _It >

__gnu_parallel::__identity
_selector< _It >

__gnu_parallel::__inner
_product_selector< _It,
_It2, _Tp >

__gnu_parallel::__replace
_if_selector< _It, _Op, _Tp >

__gnu_parallel::__replace
_selector< _It, _Tp >

__gnu_parallel::__transform1
_selector< _It >

__gnu_parallel::__transform2
_selector< _It >

Public Attributes

• _It _M_finish_iterator

Generated by Doxygen
766

5.22.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__generic_for_each_selector< _It >

Generic __selector for embarrassingly parallel functions.

5.22.2 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.23 __gnu_parallel::__identity_selector< _It > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__identity_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__identity
_selector< _It >

Public Member Functions

• template<typename _Op >


_It operator() (_Op __o, _It __i)

Public Attributes

• _It _M_finish_iterator

5.23.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__identity_selector< _It >

Selector that just returns the passed iterator.

Generated by Doxygen
5.24 __gnu_parallel::__inner_product_selector< _It, _It2, _Tp > Struct Template Reference 767

5.23.2 Member Function Documentation

operator()()

template<typename _It >


template<typename _Op >
_It __gnu_parallel::__identity_selector< _It >::operator() (
_Op __o,
_It __i) [inline]
Functor execution.

Parameters

_←- Operator (unused).


_o
_←- iterator referencing object.
_i

Returns

Passed iterator.

5.23.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.24 __gnu_parallel::__inner_product_selector< _It, _It2, _Tp > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__inner
_product_selector< _It,
_It2, _Tp >

Generated by Doxygen
768

Public Member Functions

• __inner_product_selector (_It __b1, _It2 __b2)


• template<typename _Op >
_Tp operator() (_Op __mult, _It __current)

Public Attributes

• _It __begin1_iterator
• _It2 __begin2_iterator
• _It _M_finish_iterator

5.24.1 Detailed Description

template<typename _It, typename _It2, typename _Tp>


struct __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >

std::inner_product() selector.

5.24.2 Constructor & Destructor Documentation

__inner_product_selector()

template<typename _It , typename _It2 , typename _Tp >


__gnu_parallel::__inner_product_selector< _It, _It2, _Tp >::__inner_product_selector (
_It __b1,
_It2 __b2) [inline], [explicit]
Constructor.

Parameters

__b1 Begin iterator of first sequence.


__b2 Begin iterator of second sequence.

5.24.3 Member Function Documentation

operator()()

template<typename _It , typename _It2 , typename _Tp >


template<typename _Op >
_Tp __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >::operator() (
_Op __mult,
_It __current) [inline]
Functor execution.

Parameters

__mult Multiplication functor.


__current iterator referencing object.

Returns

Inner product elemental __result.

References __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >::__begin1_iterator, and __gnu_parallel::__inner_product_selector

Generated by Doxygen
5.25 std::__is_fast_hash< _Hash > Struct Template Reference 769

5.24.4 Member Data Documentation

__begin1_iterator

template<typename _It , typename _It2 , typename _Tp >


_It __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >::__begin1_iterator
Begin iterator of first sequence.
Referenced by __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >::operator()().

__begin2_iterator

template<typename _It , typename _It2 , typename _Tp >


_It2 __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >::__begin2_iterator
Begin iterator of second sequence.
Referenced by __gnu_parallel::__inner_product_selector< _It, _It2, _Tp >::operator()().

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.25 std::__is_fast_hash< _Hash > Struct Template Reference


#include <functional_hash.h>

5.25.1 Detailed Description

template<typename _Hash>
struct std::__is_fast_hash< _Hash >

Hint about performance of hash functions.


If a given hash function object is not fast, the hash-based containers will cache the hash code. The default behavior is
to consider that hashers are fast unless specified otherwise.
Users can specialize this for their own hash functions in order to force caching of hash codes in unordered containers.
Specializing this trait affects the ABI of the unordered containers, so use it carefully.
The documentation for this struct was generated from the following file:

• functional_hash.h

5.26 std::__is_location_invariant< _Tp > Struct Template Reference


#include <std_function.h>

5.26.1 Detailed Description

template<typename _Tp>
struct std::__is_location_invariant< _Tp >

Trait identifying "location-invariant" types, meaning that the address of the object (or any of its members) will not escape.
Trivially copyable types are location-invariant and users can specialize this trait for other types.
The documentation for this struct was generated from the following file:

• std_function.h

Generated by Doxygen
770

5.27 __gnu_parallel::__max_element_reduct< _Compare, _It > Struct Template Reference


#include <for_each_selectors.h>

Public Member Functions

• __max_element_reduct (_Compare &__c)


• _It operator() (_It __x, _It __y)

Public Attributes

• _Compare & __comp

5.27.1 Detailed Description

template<typename _Compare, typename _It>


struct __gnu_parallel::__max_element_reduct< _Compare, _It >

Reduction for finding the maximum element, using a comparator.


The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.28 __gnu_parallel::__min_element_reduct< _Compare, _It > Struct Template Reference


#include <for_each_selectors.h>

Public Member Functions

• __min_element_reduct (_Compare &__c)


• _It operator() (_It __x, _It __y)

Public Attributes

• _Compare & __comp

5.28.1 Detailed Description

template<typename _Compare, typename _It>


struct __gnu_parallel::__min_element_reduct< _Compare, _It >

Reduction for finding the maximum element, using a comparator.


The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.29 __gnu_cxx::__detail::__mini_vector< _Tp > Class Template Reference


#include <bitmap_allocator.h>

Public Types

• typedef const _Tp & const_reference


• typedef std::ptrdiff_t difference_type
• typedef pointer iterator
• typedef _Tp ∗ pointer
• typedef _Tp & reference

Generated by Doxygen
5.30 __gnu_parallel::__mismatch_selector Struct Reference 771

• typedef std::size_t size_type


• typedef _Tp value_type

Public Member Functions

• reference back () const throw ()


• iterator begin () const throw ()
• void clear () throw ()
• iterator end () const throw ()
• void erase (iterator __pos) throw ()
• void insert (iterator __pos, const_reference __x)
• reference operator[ ] (const size_type __pos) const throw ()
• void pop_back () throw ()
• void push_back (const_reference __x)
• size_type size () const throw ()

5.29.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::__detail::__mini_vector< _Tp >

__mini_vector<> is a stripped down version of the full-fledged std::vector<>.


It is to be used only for built-in types or PODs. Notable differences are:

1. Not all accessor functions are present.

2. Used ONLY for PODs.

3. No Allocator template argument. Uses operator new() to get memory, and operator delete() to free it. Caveat:
The dtor does NOT free the memory allocated, so this a memory-leaking vector!

The documentation for this class was generated from the following file:

• bitmap_allocator.h

5.30 __gnu_parallel::__mismatch_selector Struct Reference


#include <find_selectors.h>
Inheritance diagram for __gnu_parallel::__mismatch_selector:

__gnu_parallel::__generic
_find_selector

__gnu_parallel::__mismatch
_selector

Generated by Doxygen
772

Public Member Functions

• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __←-
begin2, _Pred __pred)
• template<typename _RAIter1 , typename _RAIter2 , typename _Pred >
bool operator() (_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)

5.30.1 Detailed Description

Test inverted predicate on a single element.

5.30.2 Member Function Documentation

_M_sequential_algorithm()

template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


std::pair< _RAIter1, _RAIter2 > __gnu_parallel::__mismatch_selector::_M_sequential_algorithm (
_RAIter1 __begin1,
_RAIter1 __end1,
_RAIter2 __begin2,
_Pred __pred) [inline]
Corresponding sequential algorithm on a sequence.

Parameters

__begin1 Begin iterator of first sequence.


__end1 End iterator of first sequence.
__begin2 Begin iterator of second sequence.
__pred Find predicate.

operator()()

template<typename _RAIter1 , typename _RAIter2 , typename _Pred >


bool __gnu_parallel::__mismatch_selector::operator() (
_RAIter1 __i1,
_RAIter2 __i2,
_Pred __pred) [inline]
Test on one position.

Parameters

__i1 _Iterator on first sequence.


__i2 _Iterator on second sequence (unused).
__pred Find predicate.

The documentation for this struct was generated from the following file:

• find_selectors.h

Generated by Doxygen
5.31 __gnu_cxx::__mt_alloc< _Tp, _Poolp > Class Template Reference 773

5.31 __gnu_cxx::__mt_alloc< _Tp, _Poolp > Class Template Reference


#include <mt_allocator.h>
Inheritance diagram for __gnu_cxx::__mt_alloc< _Tp, _Poolp >:

__gnu_cxx::__mt_alloc
_base< _Tp >

__gnu_cxx::__mt_alloc
< _Tp, _Poolp >

Public Types

• typedef _Poolp __policy_type


• typedef _Poolp::pool_type __pool_type
• typedef const _Tp ∗ const_pointer
• typedef const _Tp & const_reference
• typedef std::ptrdiff_t difference_type
• typedef _Tp ∗ pointer
• typedef std::true_type propagate_on_container_move_assignment
• typedef _Tp & reference
• typedef std::size_t size_type
• typedef _Tp value_type

Public Member Functions

• __mt_alloc (const __mt_alloc &) noexcept


• template<typename _Tp1 , typename _Poolp1 >
__mt_alloc (const __mt_alloc< _Tp1, _Poolp1 > &) noexcept
• const __pool_base::_Tune _M_get_options ()
• void _M_set_options (__pool_base::_Tune __t)
• const_pointer address (const_reference __x) const noexcept
• pointer address (reference __x) const noexcept
• pointer allocate (size_type __n, const void ∗=0)
• template<typename _Up , typename... _Args>
void construct (_Up ∗__p, _Args &&... __args)
• void deallocate (pointer __p, size_type __n)
• template<typename _Up >
void destroy (_Up ∗__p)
• size_type max_size () const noexcept

Generated by Doxygen
774

5.31.1 Detailed Description

template<typename _Tp, typename _Poolp = __common_pool_policy<__pool, true >>


class __gnu_cxx::__mt_alloc< _Tp, _Poolp >

This is a fixed size (power of 2) allocator which - when compiled with thread support - will maintain one freelist per size
per thread plus a global one. Steps are taken to limit the per thread freelist sizes (by returning excess back to the global
list).
Further details: https://gcc.gnu.org/onlinedocs/libstdc++/manual/mt_allocator.html
The documentation for this class was generated from the following file:

• mt_allocator.h

5.32 __gnu_cxx::__mt_alloc_base< _Tp > Class Template Reference


#include <mt_allocator.h>
Inheritance diagram for __gnu_cxx::__mt_alloc_base< _Tp >:

__gnu_cxx::__mt_alloc
_base< _Tp >

__gnu_cxx::__mt_alloc
< _Tp, _Poolp >

Public Types

• typedef const _Tp ∗ const_pointer


• typedef const _Tp & const_reference
• typedef std::ptrdiff_t difference_type
• typedef _Tp ∗ pointer
• typedef std::true_type propagate_on_container_move_assignment
• typedef _Tp & reference
• typedef std::size_t size_type
• typedef _Tp value_type

Public Member Functions

• const_pointer address (const_reference __x) const noexcept


• pointer address (reference __x) const noexcept
• template<typename _Up , typename... _Args>
void construct (_Up ∗__p, _Args &&... __args)
• template<typename _Up >
void destroy (_Up ∗__p)
• size_type max_size () const noexcept

Generated by Doxygen
5.33 __gnu_parallel::__multiway_merge_3_variant_sentinel_switch< __sentinels, _RAIterIterator, _RAIter3,
_DifferenceTp, _Compare > Struct Template Reference 775

5.32.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::__mt_alloc_base< _Tp >

Base class for _Tp dependent member functions.


The documentation for this class was generated from the following file:

• mt_allocator.h

5.33 __gnu_parallel::__multiway_merge_3_variant_sentinel_switch< __sentinels,


_RAIterIterator, _RAIter3, _DifferenceTp, _Compare > Struct Template Reference
#include <multiway_merge.h>

Public Member Functions

• _RAIter3 operator() (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _←-


DifferenceTp __length, _Compare __comp)

5.33.1 Detailed Description

template<bool __sentinels, typename _RAIterIterator, typename _RAIter3, typename _DifferenceTp, typename


_Compare>
struct __gnu_parallel::__multiway_merge_3_variant_sentinel_switch< __sentinels, _RAIterIterator, _RAIter3,
_DifferenceTp, _Compare >

Switch for 3-way merging with __sentinels turned off.


Note that 3-way merging is always stable!
The documentation for this struct was generated from the following file:

• multiway_merge.h

5.34 __gnu_parallel::__multiway_merge_3_variant_sentinel_switch< true, _RAIterIterator,


_RAIter3, _DifferenceTp, _Compare > Struct Template Reference
#include <multiway_merge.h>

Public Member Functions

• _RAIter3 operator() (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _←-


DifferenceTp __length, _Compare __comp)

5.34.1 Detailed Description

template<typename _RAIterIterator, typename _RAIter3, typename _DifferenceTp, typename _Compare>


struct __gnu_parallel::__multiway_merge_3_variant_sentinel_switch< true, _RAIterIterator, _RAIter3, _←-
DifferenceTp, _Compare >

Switch for 3-way merging with __sentinels turned on.


Note that 3-way merging is always stable!
The documentation for this struct was generated from the following file:

• multiway_merge.h

Generated by Doxygen
776

5.35 __gnu_parallel::__multiway_merge_4_variant_sentinel_switch< __sentinels,


_RAIterIterator, _RAIter3, _DifferenceTp, _Compare > Struct Template Reference
#include <multiway_merge.h>

Public Member Functions

• _RAIter3 operator() (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _←-


DifferenceTp __length, _Compare __comp)

5.35.1 Detailed Description

template<bool __sentinels, typename _RAIterIterator, typename _RAIter3, typename _DifferenceTp, typename


_Compare>
struct __gnu_parallel::__multiway_merge_4_variant_sentinel_switch< __sentinels, _RAIterIterator, _RAIter3,
_DifferenceTp, _Compare >

Switch for 4-way merging with __sentinels turned off.


Note that 4-way merging is always stable!
The documentation for this struct was generated from the following file:

• multiway_merge.h

5.36 __gnu_parallel::__multiway_merge_4_variant_sentinel_switch< true, _RAIterIterator,


_RAIter3, _DifferenceTp, _Compare > Struct Template Reference
#include <multiway_merge.h>

Public Member Functions

• _RAIter3 operator() (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _←-


DifferenceTp __length, _Compare __comp)

5.36.1 Detailed Description

template<typename _RAIterIterator, typename _RAIter3, typename _DifferenceTp, typename _Compare>


struct __gnu_parallel::__multiway_merge_4_variant_sentinel_switch< true, _RAIterIterator, _RAIter3, _←-
DifferenceTp, _Compare >

Switch for 4-way merging with __sentinels turned on.


Note that 4-way merging is always stable!
The documentation for this struct was generated from the following file:

• multiway_merge.h

5.37 __gnu_parallel::__multiway_merge_k_variant_sentinel_switch< __sentinels,


__stable, _RAIterIterator, _RAIter3, _DifferenceTp, _Compare > Struct Template
Reference
#include <multiway_merge.h>

Public Member Functions

• _RAIter3 operator() (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, const type-
name std::iterator_traits< typename std::iterator_traits< _RAIterIterator >::value_type::first_type >::value_type
&__sentinel, _DifferenceTp __length, _Compare __comp)

Generated by Doxygen
5.38 __gnu_parallel::__multiway_merge_k_variant_sentinel_switch< false, __stable, _RAIterIterator,
_RAIter3, _DifferenceTp, _Compare > Struct Template Reference 777

5.37.1 Detailed Description

template<bool __sentinels, bool __stable, typename _RAIterIterator, typename _RAIter3, typename _←-
DifferenceTp, typename _Compare>
struct __gnu_parallel::__multiway_merge_k_variant_sentinel_switch< __sentinels, __stable, _RAIterIterator,
_RAIter3, _DifferenceTp, _Compare >

Switch for k-way merging with __sentinels turned on.


The documentation for this struct was generated from the following file:

• multiway_merge.h

5.38 __gnu_parallel::__multiway_merge_k_variant_sentinel_switch< false, __stable,


_RAIterIterator, _RAIter3, _DifferenceTp, _Compare > Struct Template Reference
#include <multiway_merge.h>

Public Member Functions

• _RAIter3 operator() (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, const type-
name std::iterator_traits< typename std::iterator_traits< _RAIterIterator >::value_type::first_type >::value_type
&__sentinel, _DifferenceTp __length, _Compare __comp)

5.38.1 Detailed Description

template<bool __stable, typename _RAIterIterator, typename _RAIter3, typename _DifferenceTp, typename


_Compare>
struct __gnu_parallel::__multiway_merge_k_variant_sentinel_switch< false, __stable, _RAIterIterator, _←-
RAIter3, _DifferenceTp, _Compare >

Switch for k-way merging with __sentinels turned off.


The documentation for this struct was generated from the following file:

• multiway_merge.h

5.39 std::__new_allocator< _Tp > Class Template Reference


#include <memory>
Inheritance diagram for std::__new_allocator< _Tp >:

std::__new_allocator
< _Tp >

std::allocator< value __gnu_cxx::new_allocator


std::allocator< _Tp >
_type > < _Tp >

Public Types

• typedef std::ptrdiff_t difference_type


• typedef std::true_type propagate_on_container_move_assignment

Generated by Doxygen
778

• typedef std::size_t size_type


• typedef _Tp value_type

Public Member Functions

• constexpr __new_allocator (const __new_allocator &) noexcept


• template<typename _Tp1 >
constexpr __new_allocator (const __new_allocator< _Tp1 > &) noexcept
• _Tp ∗ allocate (size_type __n, const void ∗=static_cast< const void ∗ >(0))
• void deallocate (_Tp ∗__p, size_type __n)
• __new_allocator & operator= (const __new_allocator &)=default

Friends

• template<typename _Up >


constexpr bool operator== (const __new_allocator &, const __new_allocator< _Up > &) noexcept

5.39.1 Detailed Description

template<typename _Tp>
class std::__new_allocator< _Tp >

An allocator that uses global new, as per C++03 [20.4.1].


This is precisely the allocator defined in the C++ Standard.

• all allocation calls operator new

• all deallocation calls operator delete

This is the default base-class implementation of std::allocator, and is also the base-class of the __gnu_cxx←-
::new_allocator extension. You should use either std::allocator or __gnu_cxx::new_allocator
instead of using this directly.

Template Parameters

_Tp Type of allocated object.

The documentation for this class was generated from the following file:

• bits/new_allocator.h

5.40 std::__numeric_limits_base Struct Reference


#include <limits>

Generated by Doxygen
5.40 std::__numeric_limits_base Struct Reference 779

Inheritance diagram for std::__numeric_limits_base:

std::__numeric_limits_base

std::numeric_limits
< _Tp >

Static Public Attributes

• static constexpr int digits


• static constexpr int digits10
• static constexpr float_denorm_style has_denorm
• static constexpr bool has_denorm_loss
• static constexpr bool has_infinity
• static constexpr bool has_quiet_NaN
• static constexpr bool has_signaling_NaN
• static constexpr bool is_bounded
• static constexpr bool is_exact
• static constexpr bool is_iec559
• static constexpr bool is_integer
• static constexpr bool is_modulo
• static constexpr bool is_signed
• static constexpr bool is_specialized
• static constexpr int max_digits10
• static constexpr int max_exponent
• static constexpr int max_exponent10
• static constexpr int min_exponent
• static constexpr int min_exponent10
• static constexpr int radix
• static constexpr float_round_style round_style
• static constexpr bool tinyness_before
• static constexpr bool traps

5.40.1 Detailed Description

Part of std::numeric_limits.
The static const members are usable as integral constant expressions.

Note

This is a separate class for purposes of efficiency; you should only access these members as part of an instantia-
tion of the std::numeric_limits class.

Generated by Doxygen
780

5.40.2 Member Data Documentation

digits

int std::__numeric_limits_base::digits [static], [constexpr]


The number of radix digits that be represented without change: for integer types, the number of non-sign bits in the
mantissa; for floating types, the number of radix digits in the mantissa.

digits10

int std::__numeric_limits_base::digits10 [static], [constexpr]


The number of base 10 digits that can be represented without change.

has_denorm

float_denorm_style std::__numeric_limits_base::has_denorm [static], [constexpr]


See std::float_denorm_style for more information.

has_denorm_loss

bool std::__numeric_limits_base::has_denorm_loss [static], [constexpr]


True if loss of accuracy is detected as a denormalization loss, rather than as an inexact result.

has_infinity

bool std::__numeric_limits_base::has_infinity [static], [constexpr]


True if the type has a representation for positive infinity.

has_quiet_NaN

bool std::__numeric_limits_base::has_quiet_NaN [static], [constexpr]


True if the type has a representation for a quiet (non-signaling) Not a Number.

has_signaling_NaN

bool std::__numeric_limits_base::has_signaling_NaN [static], [constexpr]


True if the type has a representation for a signaling Not a Number.

is_bounded

bool std::__numeric_limits_base::is_bounded [static], [constexpr]


True if the set of values representable by the type is finite. All built-in types are bounded, this member would be false for
arbitrary precision types.

is_exact

bool std::__numeric_limits_base::is_exact [static], [constexpr]


True if the type uses an exact representation. All integer types are exact, but not all exact types are integer. For example,
rational and fixed-exponent representations are exact but not integer.

Generated by Doxygen
5.40 std::__numeric_limits_base Struct Reference 781

is_iec559

bool std::__numeric_limits_base::is_iec559 [static], [constexpr]


True if-and-only-if the type adheres to the IEC 559 standard, also known as IEEE 754. (Only makes sense for floating
point types.)

is_integer

bool std::__numeric_limits_base::is_integer [static], [constexpr]


True if the type is integer.

is_modulo

bool std::__numeric_limits_base::is_modulo [static], [constexpr]


True if the type is modulo. A type is modulo if, for any operation involving +, -, or ∗ on values of that type whose result
would fall outside the range [min(),max()], the value returned differs from the true value by an integer multiple of max()
- min() + 1. On most machines, this is false for floating types, true for unsigned integers, and true for signed integers.
See PR22200 about signed integers.

is_signed

bool std::__numeric_limits_base::is_signed [static], [constexpr]


True if the type is signed.

is_specialized

bool std::__numeric_limits_base::is_specialized [static], [constexpr]


This will be true for all fundamental types (which have specializations), and false for everything else.

max_digits10

int std::__numeric_limits_base::max_digits10 [static], [constexpr]


The number of base 10 digits required to ensure that values which differ are always differentiated.

max_exponent

int std::__numeric_limits_base::max_exponent [static], [constexpr]


The maximum positive integer such that radix raised to the power of (one less than that integer) is a representable
finite floating point number.

max_exponent10

int std::__numeric_limits_base::max_exponent10 [static], [constexpr]


The maximum positive integer such that 10 raised to that power is in the range of representable finite floating point
numbers.

Generated by Doxygen
782

min_exponent

int std::__numeric_limits_base::min_exponent [static], [constexpr]


The minimum negative integer such that radix raised to the power of (one less than that integer) is a normalized
floating point number.

min_exponent10

int std::__numeric_limits_base::min_exponent10 [static], [constexpr]


The minimum negative integer such that 10 raised to that power is in the range of normalized floating point numbers.

radix

int std::__numeric_limits_base::radix [static], [constexpr]


For integer types, specifies the base of the representation. For floating types, specifies the base of the exponent
representation.

round_style

float_round_style std::__numeric_limits_base::round_style [static], [constexpr]


See std::float_round_style for more information. This is only meaningful for floating types; integer types will all be
round_toward_zero.

tinyness_before

bool std::__numeric_limits_base::tinyness_before [static], [constexpr]


True if tininess is detected before rounding. (see IEC 559)

traps

bool std::__numeric_limits_base::traps [static], [constexpr]


True if trapping is implemented for this type.

The documentation for this struct was generated from the following file:

• limits

5.41 __gnu_cxx::__per_type_pool_policy< _Tp, _PoolTp, _Thread > Struct Template


Reference
#include <mt_allocator.h>

5.41.1 Detailed Description

template<typename _Tp, template< bool > class _PoolTp, bool _Thread>


struct __gnu_cxx::__per_type_pool_policy< _Tp, _PoolTp, _Thread >

Policy for individual __pool objects.


The documentation for this struct was generated from the following file:

• mt_allocator.h

Generated by Doxygen
5.42 __gnu_cxx::__pool< _Thread > Class Template Reference 783

5.42 __gnu_cxx::__pool< _Thread > Class Template Reference


5.42.1 Detailed Description

template<bool _Thread>
class __gnu_cxx::__pool< _Thread >

Data describing the underlying memory pool, parameterized on threading support.


The documentation for this class was generated from the following file:

• mt_allocator.h

5.43 __gnu_cxx::__pool< false > Class Reference


#include <mt_allocator.h>
Inheritance diagram for __gnu_cxx::__pool< false >:

__gnu_cxx::__pool_base

__gnu_cxx::__pool<
false >

Public Types

• typedef unsigned short int _Binmap_type


• typedef std::size_t size_t

Public Member Functions

• __pool (const __pool_base::_Tune &__tune)


• void _M_adjust_freelist (const _Bin_record &, _Block_record ∗, size_t)
• bool _M_check_threshold (size_t __bytes)
• void _M_destroy () throw ()
• size_t _M_get_align ()
• const _Bin_record & _M_get_bin (size_t __which)
• size_t _M_get_binmap (size_t __bytes)
• const _Tune & _M_get_options () const
• size_t _M_get_thread_id ()
• void _M_initialize_once ()
• void _M_reclaim_block (char ∗__p, size_t __bytes) throw ()
• char ∗ _M_reserve_block (size_t __bytes, const size_t __thread_id)
• void _M_set_options (_Tune __t)

Generated by Doxygen
784

Protected Attributes

• _Binmap_type ∗ _M_binmap
• bool _M_init
• _Tune _M_options

5.43.1 Detailed Description

Specialization for single thread.


The documentation for this class was generated from the following file:
• mt_allocator.h

5.44 __gnu_cxx::__pool< true > Class Reference


#include <mt_allocator.h>
Inheritance diagram for __gnu_cxx::__pool< true >:

__gnu_cxx::__pool_base

__gnu_cxx::__pool<
true >

Public Types

• typedef unsigned short int _Binmap_type


• typedef std::size_t size_t

Public Member Functions

• __pool (const __pool_base::_Tune &__tune)


• void _M_adjust_freelist (const _Bin_record &__bin, _Block_record ∗__block, size_t __thread_id)
• bool _M_check_threshold (size_t __bytes)
• void _M_destroy () throw ()
• void _M_destroy_thread_key (void ∗) throw ()
• size_t _M_get_align ()
• const _Bin_record & _M_get_bin (size_t __which)
• size_t _M_get_binmap (size_t __bytes)
• const _Tune & _M_get_options () const
• size_t _M_get_thread_id ()
• void _M_initialize (__destroy_handler)
• void _M_initialize_once ()
• void _M_reclaim_block (char ∗__p, size_t __bytes) throw ()
• char ∗ _M_reserve_block (size_t __bytes, const size_t __thread_id)
• void _M_set_options (_Tune __t)

Generated by Doxygen
5.45 __gnu_cxx::__pool_alloc< _Tp > Class Template Reference 785

Protected Attributes

• _Binmap_type ∗ _M_binmap
• bool _M_init
• _Tune _M_options

5.44.1 Detailed Description

Specialization for thread enabled, via gthreads.h.


The documentation for this class was generated from the following file:

• mt_allocator.h

5.45 __gnu_cxx::__pool_alloc< _Tp > Class Template Reference


#include <pool_allocator.h>
Inheritance diagram for __gnu_cxx::__pool_alloc< _Tp >:

__gnu_cxx::__pool_alloc_base

__gnu_cxx::__pool_alloc
< _Tp >

Public Types

• typedef const _Tp ∗ const_pointer


• typedef const _Tp & const_reference
• typedef std::ptrdiff_t difference_type
• typedef _Tp ∗ pointer
• typedef std::true_type propagate_on_container_move_assignment
• typedef _Tp & reference
• typedef std::size_t size_type
• typedef _Tp value_type

Public Member Functions

• __pool_alloc (const __pool_alloc &) noexcept


• template<typename _Tp1 >
__pool_alloc (const __pool_alloc< _Tp1 > &) noexcept
• const_pointer address (const_reference __x) const noexcept
• pointer address (reference __x) const noexcept
• pointer allocate (size_type __n, const void ∗=0)

Generated by Doxygen
786

• template<typename _Up , typename... _Args>


void construct (_Up ∗__p, _Args &&... __args)
• void deallocate (pointer __p, size_type __n)
• template<typename _Up >
void destroy (_Up ∗__p)
• size_type max_size () const noexcept

5.45.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::__pool_alloc< _Tp >

Allocator using a memory pool with a single lock.


The documentation for this class was generated from the following file:

• pool_allocator.h

5.46 __gnu_cxx::__pool_alloc_base Class Reference


#include <pool_allocator.h>
Inheritance diagram for __gnu_cxx::__pool_alloc_base:

__gnu_cxx::__pool_alloc_base

__gnu_cxx::__pool_alloc
< _Tp >

Protected Types

• enum { _S_align }
• enum { _S_max_bytes }
• enum { _S_free_list_size }

Protected Member Functions

• char ∗ _M_allocate_chunk (size_t __n, int &__nobjs)


• _Obj ∗volatile ∗ _M_get_free_list (size_t __bytes) throw ()
• __mutex & _M_get_mutex () throw ()
• void ∗ _M_refill (size_t __n)
• size_t _M_round_up (size_t __bytes)

Generated by Doxygen
5.47 __gnu_cxx::__pool_base Struct Reference 787

Static Protected Attributes

• static char ∗ _S_end_free


• static _Obj ∗volatile _S_free_list [_S_free_list_size]
• static size_t _S_heap_size
• static char ∗ _S_start_free

5.46.1 Detailed Description

Base class for __pool_alloc.


Uses various allocators to fulfill underlying requests (and makes as few requests as possible when in default high-speed
pool mode).
Important implementation properties:

1. If globally mandated, then allocate objects from new

2. If the clients request an object of size > _S_max_bytes, the resulting object will be obtained directly from new

3. In all other cases, we allocate an object of size exactly _S_round_up(requested_size). Thus the client has enough
size information that we can return the object to the proper free list without permanently losing part of the object.

The documentation for this class was generated from the following file:

• pool_allocator.h

5.47 __gnu_cxx::__pool_base Struct Reference


#include <mt_allocator.h>
Inheritance diagram for __gnu_cxx::__pool_base:

__gnu_cxx::__pool_base

__gnu_cxx::__pool< __gnu_cxx::__pool<
false > true >

Public Types

• typedef unsigned short int _Binmap_type


• typedef std::size_t size_t

Public Member Functions

• __pool_base (const _Tune &__options)


• bool _M_check_threshold (size_t __bytes)
• size_t _M_get_align ()

Generated by Doxygen
788

• size_t _M_get_binmap (size_t __bytes)


• const _Tune & _M_get_options () const
• void _M_set_options (_Tune __t)

Protected Attributes

• _Binmap_type ∗ _M_binmap
• bool _M_init
• _Tune _M_options

5.47.1 Detailed Description

Base class for pool object.


The documentation for this struct was generated from the following file:

• mt_allocator.h

5.48 __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc > Class Template Reference


#include <rc_string_base.h>

Public Types

• typedef _Util_Base::_CharT_alloc_type _CharT_alloc_type


• typedef __vstring_utility< _CharT, _Traits, _Alloc > _Util_Base
• typedef _Alloc allocator_type
• typedef _CharT_alloc_type::size_type size_type
• typedef _Traits traits_type
• typedef _Traits::char_type value_type

Public Member Functions

• __rc_string_base (__rc_string_base &&__rcs)


• template<typename _InputIterator >
__rc_string_base (_InputIterator __beg, _InputIterator __end, const _Alloc &__a)
• __rc_string_base (const __rc_string_base &__rcs)
• __rc_string_base (const _Alloc &__a)
• __rc_string_base (size_type __n, _CharT __c, const _Alloc &__a)
• void _M_assign (const __rc_string_base &__rcs)
• size_type _M_capacity () const
• void _M_clear ()
• bool _M_compare (const __rc_string_base &) const
• bool _M_compare (const __rc_string_base &__rcs) const
• bool _M_compare (const __rc_string_base &__rcs) const
• _CharT ∗ _M_data () const
• void _M_erase (size_type __pos, size_type __n)
• allocator_type & _M_get_allocator ()
• const allocator_type & _M_get_allocator () const
• bool _M_is_shared () const
• void _M_leak ()
• size_type _M_length () const
• size_type _M_max_size () const
• void _M_mutate (size_type __pos, size_type __len1, const _CharT ∗__s, size_type __len2)

Generated by Doxygen
5.48 __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc > Class Template Reference 789

• void _M_reserve (size_type __res)


• void _M_set_leaked ()
• void _M_set_length (size_type __n)
• void _M_swap (__rc_string_base &__rcs)
• template<typename _InIterator >
_CharT ∗ _S_construct (_InIterator __beg, _InIterator __end, const _Alloc &__a, std::forward_iterator_tag)

Protected Types

• typedef __gnu_cxx::__normal_iterator< const_pointer, __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc,


__rc_string_base > > __const_rc_iterator
• typedef __gnu_cxx::__normal_iterator< const_pointer, __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _←-
_sso_string_base > > __const_sso_iterator
• typedef __gnu_cxx::__normal_iterator< pointer, __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc,
__rc_string_base > > __rc_iterator
• typedef __gnu_cxx::__normal_iterator< pointer, __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, __sso_←-
string_base > > __sso_iterator
• typedef __alloc_traits< _CharT_alloc_type > _CharT_alloc_traits
• typedef _CharT_alloc_traits::const_pointer const_pointer
• typedef _CharT_alloc_type::difference_type difference_type
• typedef _CharT_alloc_traits::pointer pointer

Static Protected Member Functions

• static void _S_assign (_CharT ∗__d, size_type __n, _CharT __c)


• static int _S_compare (size_type __n1, size_type __n2)
• static void _S_copy (_CharT ∗__d, const _CharT ∗__s, size_type __n)
• static void _S_copy_chars (_CharT ∗__p, __const_rc_iterator __k1, __const_rc_iterator __k2)
• static void _S_copy_chars (_CharT ∗__p, __const_sso_iterator __k1, __const_sso_iterator __k2)
• static void _S_copy_chars (_CharT ∗__p, __rc_iterator __k1, __rc_iterator __k2)
• static void _S_copy_chars (_CharT ∗__p, __sso_iterator __k1, __sso_iterator __k2)
• static void _S_copy_chars (_CharT ∗__p, _CharT ∗__k1, _CharT ∗__k2)
• template<typename _Iterator >
static void _S_copy_chars (_CharT ∗__p, _Iterator __k1, _Iterator __k2)
• static void _S_copy_chars (_CharT ∗__p, const _CharT ∗__k1, const _CharT ∗__k2)
• static void _S_move (_CharT ∗__d, const _CharT ∗__s, size_type __n)

5.48.1 Detailed Description

template<typename _CharT, typename _Traits, typename _Alloc>


class __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >

Documentation? What's that? Nathan Myers [email protected].


A string looks like this:
[_Rep]
_M_length
[__rc_string_base<char_type>] _M_capacity
_M_dataplus _M_refcount
_M_p ----------------> unnamed array of char_type
Where the _M_p points to the first character in the string, and you cast it to a pointer-to-_Rep and subtract 1 to get a
pointer to the header.
This approach has the enormous advantage that a string object requires only one allocation. All the ugliness is confined
within a single pair of inline functions, which each compile to a single add instruction: _Rep::_M_refdata(), and __rc_←-
string_base::_M_rep(); and the allocation function which gets a block of raw bytes and with room enough and constructs
a _Rep object at the front.

Generated by Doxygen
790

The reason you want _M_data pointing to the character array and not the _Rep is so that the debugger can see the
string contents. (Probably we should add a non-inline member to get the _Rep for the debugger to use, so users can
check the actual string length.)
Note that the _Rep object is a POD so that you can have a static empty string _Rep object already constructed before
static constructors have run. The reference-count encoding is chosen so that a 0 indicates one reference, so you never
try to destroy the empty-string _Rep object.
All but the last paragraph is considered pretty conventional for a C++ string implementation.
The documentation for this class was generated from the following files:

• rc_string_base.h
• vstring_fwd.h

5.49 std::tr2::__reflection_typelist< _Elements > Struct Template Reference


5.49.1 Detailed Description

template<typename... _Elements>
struct std::tr2::__reflection_typelist< _Elements >

See N2965: Type traits and base classes by Michael Spertus Simple typelist. Compile-time list of types.
The documentation for this struct was generated from the following file:

• tr2/type_traits

5.50 std::tr2::__reflection_typelist< _First, _Rest... > Struct Template Reference


#include <type_traits>

Public Types

• typedef std::false_type empty

5.50.1 Detailed Description

template<typename _First, typename... _Rest>


struct std::tr2::__reflection_typelist< _First, _Rest... >

Partial specialization.
The documentation for this struct was generated from the following file:

• tr2/type_traits

5.51 std::tr2::__reflection_typelist<> Struct Reference


#include <type_traits>

Public Types

• typedef std::true_type empty

5.51.1 Detailed Description

Specialization for an empty typelist.


The documentation for this struct was generated from the following file:

• tr2/type_traits

Generated by Doxygen
5.52 __gnu_parallel::__replace_if_selector< _It, _Op, _Tp > Struct Template Reference 791

5.52 __gnu_parallel::__replace_if_selector< _It, _Op, _Tp > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__replace_if_selector< _It, _Op, _Tp >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__replace
_if_selector< _It, _Op, _Tp >

Public Member Functions

• __replace_if_selector (const _Tp &__new_val)


• bool operator() (_Op &__o, _It __i)

Public Attributes

• const _Tp & __new_val


• _It _M_finish_iterator

5.52.1 Detailed Description

template<typename _It, typename _Op, typename _Tp>


struct __gnu_parallel::__replace_if_selector< _It, _Op, _Tp >

std::replace() selector.

5.52.2 Constructor & Destructor Documentation

__replace_if_selector()

template<typename _It , typename _Op , typename _Tp >


__gnu_parallel::__replace_if_selector< _It, _Op, _Tp >::__replace_if_selector (
const _Tp & __new_val) [inline], [explicit]
Constructor.

Parameters
__new_val Value to replace with.

Generated by Doxygen
792

5.52.3 Member Function Documentation

operator()()

template<typename _It , typename _Op , typename _Tp >


bool __gnu_parallel::__replace_if_selector< _It, _Op, _Tp >::operator() (
_Op & __o,
_It __i) [inline]
Functor execution.

Parameters

_←- Operator.
_o
_←- iterator referencing object.
_i

References __gnu_parallel::__replace_if_selector< _It, _Op, _Tp >::__new_val.

5.52.4 Member Data Documentation

__new_val

template<typename _It , typename _Op , typename _Tp >


const _Tp& __gnu_parallel::__replace_if_selector< _It, _Op, _Tp >::__new_val
Value to replace with.
Referenced by __gnu_parallel::__replace_if_selector< _It, _Op, _Tp >::operator()().

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.53 __gnu_parallel::__replace_selector< _It, _Tp > Struct Template Reference


#include <for_each_selectors.h>

Generated by Doxygen
5.53 __gnu_parallel::__replace_selector< _It, _Tp > Struct Template Reference 793

Inheritance diagram for __gnu_parallel::__replace_selector< _It, _Tp >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__replace
_selector< _It, _Tp >

Public Member Functions

• __replace_selector (const _Tp &__new_val)


• bool operator() (_Tp &__v, _It __i)

Public Attributes

• const _Tp & __new_val


• _It _M_finish_iterator

5.53.1 Detailed Description

template<typename _It, typename _Tp>


struct __gnu_parallel::__replace_selector< _It, _Tp >

std::replace() selector.

5.53.2 Constructor & Destructor Documentation

__replace_selector()

template<typename _It , typename _Tp >


__gnu_parallel::__replace_selector< _It, _Tp >::__replace_selector (
const _Tp & __new_val) [inline], [explicit]
Constructor.

Parameters
__new_val Value to replace with.

5.53.3 Member Function Documentation

operator()()

template<typename _It , typename _Tp >


bool __gnu_parallel::__replace_selector< _It, _Tp >::operator() (

Generated by Doxygen
794

_Tp & __v,


_It __i) [inline]
Functor execution.

Parameters

_←- Current value.


_v
_←- iterator referencing object.
_i

References __gnu_parallel::__replace_selector< _It, _Tp >::__new_val.

5.53.4 Member Data Documentation

__new_val

template<typename _It , typename _Tp >


const _Tp& __gnu_parallel::__replace_selector< _It, _Tp >::__new_val
Value to replace with.
Referenced by __gnu_parallel::__replace_selector< _It, _Tp >::operator()().

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.54 __gnu_cxx::__scoped_lock Class Reference


#include <concurrence.h>

Public Types

• typedef __mutex __mutex_type

Public Member Functions

• __scoped_lock (__mutex_type &__name)

5.54.1 Detailed Description

Scoped lock idiom.


The documentation for this class was generated from the following file:

• concurrence.h

5.55 __gnu_parallel::__transform1_selector< _It > Struct Template Reference


#include <for_each_selectors.h>

Generated by Doxygen
5.55 __gnu_parallel::__transform1_selector< _It > Struct Template Reference 795

Inheritance diagram for __gnu_parallel::__transform1_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__transform1
_selector< _It >

Public Member Functions

• template<typename _Op >


bool operator() (_Op &__o, _It __i)

Public Attributes

• _It _M_finish_iterator

5.55.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__transform1_selector< _It >

std::transform() __selector, one input sequence variant.

5.55.2 Member Function Documentation

operator()()

template<typename _It >


template<typename _Op >
bool __gnu_parallel::__transform1_selector< _It >::operator() (
_Op & __o,
_It __i) [inline]
Functor execution.

Parameters

_←- Operator.
_o
_←- iterator referencing object.
_i

Generated by Doxygen
796

5.55.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.56 __gnu_parallel::__transform2_selector< _It > Struct Template Reference


#include <for_each_selectors.h>
Inheritance diagram for __gnu_parallel::__transform2_selector< _It >:

__gnu_parallel::__generic
_for_each_selector< _It >

__gnu_parallel::__transform2
_selector< _It >

Public Member Functions

• template<typename _Op >


bool operator() (_Op &__o, _It __i)

Public Attributes

• _It _M_finish_iterator

5.56.1 Detailed Description

template<typename _It>
struct __gnu_parallel::__transform2_selector< _It >

std::transform() __selector, two input sequences variant.

5.56.2 Member Function Documentation

operator()()

template<typename _It >


template<typename _Op >
bool __gnu_parallel::__transform2_selector< _It >::operator() (

Generated by Doxygen
5.57 __gnu_parallel::__unary_negate< _Predicate, argument_type > Class Template Reference 797

_Op & __o,


_It __i) [inline]
Functor execution.

Parameters

_←- Operator.
_o
_←- iterator referencing object.
_i

5.56.3 Member Data Documentation

_M_finish_iterator

template<typename _It >


_It __gnu_parallel::__generic_for_each_selector< _It >::_M_finish_iterator [inherited]
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
The documentation for this struct was generated from the following file:
• for_each_selectors.h

5.57 __gnu_parallel::__unary_negate< _Predicate, argument_type > Class Template


Reference
#include <base.h>
Inheritance diagram for __gnu_parallel::__unary_negate< _Predicate, argument_type >:

std::unary_function
< argument_type, bool >

__gnu_parallel::__unary
_negate< _Predicate, argument
_type >

Public Types

• typedef argument_type argument_type


• typedef bool result_type

Public Member Functions

• __unary_negate (const _Predicate &__x)


• bool operator() (const argument_type &__x)

Generated by Doxygen
798

Protected Attributes

• _Predicate _M_pred

5.57.1 Detailed Description

template<typename _Predicate, typename argument_type>


class __gnu_parallel::__unary_negate< _Predicate, argument_type >

Similar to std::unary_negate, but giving the argument types explicitly.

5.57.2 Member Typedef Documentation

argument_type

argument_type std::unary_function< argument_type, bool >::argument_type [inherited]


argument_type is the type of the argument

result_type

bool std::unary_function< argument_type, bool >::result_type [inherited]


result_type is the return type
The documentation for this class was generated from the following file:

• base.h

5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template


Reference
#include <vstring.h>

Public Types

• typedef _Alloc allocator_type


• typedef __gnu_cxx::__normal_iterator< const_pointer, __versa_string > const_iterator
• typedef _CharT_alloc_traits::const_pointer const_pointer
• typedef const value_type & const_reference
• typedef std::reverse_iterator< const_iterator > const_reverse_iterator
• typedef _CharT_alloc_type::difference_type difference_type
• typedef __gnu_cxx::__normal_iterator< pointer, __versa_string > iterator
• typedef _CharT_alloc_traits::pointer pointer
• typedef value_type & reference
• typedef std::reverse_iterator< iterator > reverse_iterator
• typedef _CharT_alloc_type::size_type size_type
• typedef _Traits traits_type
• typedef _Traits::char_type value_type

Public Member Functions

• __versa_string (__versa_string &&__str) noexcept


• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__versa_string (_InputIterator __beg, _InputIterator __end, const _Alloc &__a=_Alloc())
• __versa_string (const __versa_string &__str)
• __versa_string (const __versa_string &__str, size_type __pos, size_type __n, const _Alloc &__a)
• __versa_string (const __versa_string &__str, size_type __pos, size_type __n=npos)

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 799

• __versa_string (const _Alloc &__a=_Alloc()) noexcept


• __versa_string (const _CharT ∗__s, const _Alloc &__a=_Alloc())
• __versa_string (const _CharT ∗__s, size_type __n, const _Alloc &__a=_Alloc())
• __versa_string (size_type __n, _CharT __c, const _Alloc &__a=_Alloc())
• __versa_string (std::initializer_list< _CharT > __l, const _Alloc &__a=_Alloc())
• ∼__versa_string () noexcept
• template<typename _InputIterator >
__versa_string< _CharT, _Traits, _Alloc, _Base > & _M_replace_dispatch (const_iterator __i1, const_iterator
__i2, _InputIterator __k1, _InputIterator __k2, std::__false_type)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__versa_string & append (_InputIterator __first, _InputIterator __last)
• __versa_string & append (const __versa_string &__str)
• __versa_string & append (const __versa_string &__str, size_type __pos, size_type __n)
• __versa_string & append (const _CharT ∗__s)
• __versa_string & append (const _CharT ∗__s, size_type __n)
• __versa_string & append (size_type __n, _CharT __c)
• __versa_string & append (std::initializer_list< _CharT > __l)
• __versa_string & assign (__versa_string &&__str) noexcept
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__versa_string & assign (_InputIterator __first, _InputIterator __last)
• __versa_string & assign (const __versa_string &__str)
• __versa_string & assign (const __versa_string &__str, size_type __pos, size_type __n)
• __versa_string & assign (const _CharT ∗__s)
• __versa_string & assign (const _CharT ∗__s, size_type __n)
• __versa_string & assign (size_type __n, _CharT __c)
• __versa_string & assign (std::initializer_list< _CharT > __l)
• reference at (size_type __n)
• const_reference at (size_type __n) const
• const_reference back () const noexcept
• reference back () noexcept
• const_iterator begin () const noexcept
• iterator begin () noexcept
• const _CharT ∗ c_str () const noexcept
• size_type capacity () const noexcept
• const_iterator cbegin () const noexcept
• const_iterator cend () const noexcept
• void clear () noexcept
• int compare (const __versa_string &__str) const
• int compare (const _CharT ∗__s) const
• int compare (size_type __pos, size_type __n, const __versa_string &__str) const
• int compare (size_type __pos, size_type __n1, const _CharT ∗__s) const
• int compare (size_type __pos, size_type __n1, const _CharT ∗__s, size_type __n2) const
• int compare (size_type __pos1, size_type __n1, const __versa_string &__str, size_type __pos2, size_type __n2)
const
• size_type copy (_CharT ∗__s, size_type __n, size_type __pos=0) const
• const_reverse_iterator crbegin () const noexcept
• const_reverse_iterator crend () const noexcept
• const _CharT ∗ data () const noexcept
• bool empty () const noexcept
• const_iterator end () const noexcept
• iterator end () noexcept

Generated by Doxygen
800

• iterator erase (const_iterator __first, const_iterator __last)


• iterator erase (const_iterator __position)
• __versa_string & erase (size_type __pos=0, size_type __n=npos)
• size_type find (_CharT __c, size_type __pos=0) const noexcept
• size_type find (const __versa_string &__str, size_type __pos=0) const noexcept
• size_type find (const _CharT ∗__s, size_type __pos, size_type __n) const
• size_type find (const _CharT ∗__s, size_type __pos=0) const
• size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept
• size_type find_first_not_of (const __versa_string &__str, size_type __pos=0) const noexcept
• size_type find_first_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const
• size_type find_first_not_of (const _CharT ∗__s, size_type __pos=0) const
• size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept
• size_type find_first_of (const __versa_string &__str, size_type __pos=0) const noexcept
• size_type find_first_of (const _CharT ∗__s, size_type __pos, size_type __n) const
• size_type find_first_of (const _CharT ∗__s, size_type __pos=0) const
• size_type find_last_not_of (_CharT __c, size_type __pos=npos) const noexcept
• size_type find_last_not_of (const __versa_string &__str, size_type __pos=npos) const noexcept
• size_type find_last_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const
• size_type find_last_not_of (const _CharT ∗__s, size_type __pos=npos) const
• size_type find_last_of (_CharT __c, size_type __pos=npos) const noexcept
• size_type find_last_of (const __versa_string &__str, size_type __pos=npos) const noexcept
• size_type find_last_of (const _CharT ∗__s, size_type __pos, size_type __n) const
• size_type find_last_of (const _CharT ∗__s, size_type __pos=npos) const
• const_reference front () const noexcept
• reference front () noexcept
• allocator_type get_allocator () const noexcept
• iterator insert (const_iterator __p, _CharT __c)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator insert (const_iterator __p, _InputIterator __beg, _InputIterator __end)
• iterator insert (const_iterator __p, size_type __n, _CharT __c)
• iterator insert (const_iterator __p, std::initializer_list< _CharT > __l)
• __versa_string & insert (size_type __pos, const _CharT ∗__s)
• __versa_string & insert (size_type __pos, const _CharT ∗__s, size_type __n)
• __versa_string & insert (size_type __pos, size_type __n, _CharT __c)
• __versa_string & insert (size_type __pos1, const __versa_string &__str)
• __versa_string & insert (size_type __pos1, const __versa_string &__str, size_type __pos2, size_type __n)
• size_type length () const noexcept
• size_type max_size () const noexcept
• __versa_string & operator+= (_CharT __c)
• __versa_string & operator+= (const __versa_string &__str)
• __versa_string & operator+= (const _CharT ∗__s)
• __versa_string & operator+= (std::initializer_list< _CharT > __l)
• __versa_string & operator= (__versa_string &&__str) noexcept
• __versa_string & operator= (_CharT __c)
• __versa_string & operator= (const __versa_string &__str)
• __versa_string & operator= (const _CharT ∗__s)
• __versa_string & operator= (std::initializer_list< _CharT > __l)
• const_reference operator[ ] (size_type __pos) const noexcept
• reference operator[ ] (size_type __pos) noexcept
• void pop_back ()
• void push_back (_CharT __c)

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 801

• const_reverse_iterator rbegin () const noexcept


• reverse_iterator rbegin () noexcept
• const_reverse_iterator rend () const noexcept
• reverse_iterator rend () noexcept
• __versa_string & replace (const_iterator __i1, const_iterator __i2, _CharT ∗__k1, _CharT ∗__k2)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__versa_string & replace (const_iterator __i1, const_iterator __i2, _InputIterator __k1, _InputIterator __k2)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, const __versa_string &__str)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, const _CharT ∗__k1, const _CharT ∗__k2)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, const _CharT ∗__s)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, const _CharT ∗__s, size_type __n)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, const_iterator __k1, const_iterator __k2)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, iterator __k1, iterator __k2)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, size_type __n, _CharT __c)
• __versa_string & replace (const_iterator __i1, const_iterator __i2, std::initializer_list< _CharT > __l)
• __versa_string & replace (size_type __pos, size_type __n, const __versa_string &__str)
• __versa_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s)
• __versa_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s, size_type __n2)
• __versa_string & replace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
• __versa_string & replace (size_type __pos1, size_type __n1, const __versa_string &__str, size_type __pos2,
size_type __n2)
• void reserve (size_type __res_arg=0)
• void resize (size_type __n)
• void resize (size_type __n, _CharT __c)
• size_type rfind (_CharT __c, size_type __pos=npos) const noexcept
• size_type rfind (const __versa_string &__str, size_type __pos=npos) const noexcept
• size_type rfind (const _CharT ∗__s, size_type __pos, size_type __n) const
• size_type rfind (const _CharT ∗__s, size_type __pos=npos) const
• void shrink_to_fit () noexcept
• size_type size () const noexcept
• __versa_string substr (size_type __pos=0, size_type __n=npos) const
• void swap (__versa_string &__s) noexcept

Static Public Attributes

• static const size_type npos

5.58.1 Detailed Description

template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
class __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >

Template class __versa_string.


Data structure managing sequences of characters and character-like objects.

5.58.2 Constructor & Destructor Documentation

__versa_string() [1/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
const _Alloc & __a = _Alloc()) [inline], [explicit], [noexcept]
Construct an empty string using allocator a.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::substr().

Generated by Doxygen
802

__versa_string() [2/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Construct string with copy of value of __str.

Parameters

__str Source string.

__versa_string() [3/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
__versa_string< _CharT, _Traits, _Alloc, _Base > && __str) [inline], [noexcept]
String move constructor.

Parameters

__str Source string.

The newly-constructed string contains the exact contents of __str. The contents of __str are a valid, but unspecified
string.

__versa_string() [4/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
std::initializer_list< _CharT > __l,
const _Alloc & __a = _Alloc()) [inline]
Construct string from an initializer list.

Parameters

_←- std::initializer_list of characters.


_l
_←- Allocator to use (default is default allocator).
_a

__versa_string() [5/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos,
size_type __n = npos) [inline]
Construct string as copy of a substring.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 803

Parameters

__str Source string.


__pos Index of first character to copy from.
__n Number of characters to copy (default remainder).

__versa_string() [6/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos,
size_type __n,
const _Alloc & __a) [inline]
Construct string as copy of a substring.

Parameters

__str Source string.


__pos Index of first character to copy from.
__n Number of characters to copy.
__a Allocator to use.

__versa_string() [7/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
const _CharT ∗ __s,
size_type __n,
const _Alloc & __a = _Alloc()) [inline]
Construct string initialized by a character array.

Parameters

_←- Source character array.


_s
_←- Number of characters to copy.
_n
_←- Allocator to use (default is default allocator).
_a

NB: __s must have at least __n characters, '\0' has no special meaning.

__versa_string() [8/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (

Generated by Doxygen
804

const _CharT ∗ __s,


const _Alloc & __a = _Alloc()) [inline]
Construct string as copy of a C string.

Parameters

_←- Source C string.


_s
_←- Allocator to use (default is default allocator).
_a

__versa_string() [9/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
size_type __n,
_CharT __c,
const _Alloc & __a = _Alloc()) [inline]
Construct string as multiple characters.

Parameters

_←- Number of characters.


_n
_←- Character to use.
_c
_←- Allocator to use (default is default allocator).
_a

__versa_string() [10/10]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string (
_InputIterator __beg,
_InputIterator __end,
const _Alloc & __a = _Alloc()) [inline]
Construct string as copy of a range.

Parameters

__beg Start of range.


__end End of range.
__a Allocator to use (default is default allocator).

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 805

∼__versa_string()
template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-
::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::∼__versa_string () [inline], [noexcept]
Destroy the string instance.

5.58.3 Member Function Documentation

append() [1/7]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append (
_InputIterator __first,
_InputIterator __last) [inline]
Append a range of characters.

Parameters

__first Iterator referencing the first character to append.


__last Iterator marking the end of the range.

Returns

Reference to this string.

Appends characters in the range [first,last) to this string.


References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

append() [2/7]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append(), std::getline(), __gnu_cxx::operator+(),


__gnu_cxx::operator+(), __gnu_cxx::operator+(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator+=(),
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator+=(), and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _B

append() [3/7]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>

Generated by Doxygen
806

__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append (


const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos,
size_type __n) [inline]
Append a substring.

Parameters
__str The string to append.
__pos Index of the first character of str to append.
__n The number of characters to append.

Returns

Reference to this string.

Exceptions

std::out_of_range if pos is not a valid index.

This function appends __n characters from __str starting at __pos to this string. If __n is is larger than the number of
available characters in __str, the remainder of __str is appended.

append() [4/7]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append (
const _CharT ∗ __s) [inline]
Append a C string.

Parameters

_←- The C string to append.


_s

Returns

Reference to this string.

append() [5/7]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append (
const _CharT ∗ __s,
size_type __n) [inline]
Append a C substring.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 807

Parameters

_←- The C string to append.


_s
_←- The number of characters to append.
_n

Returns

Reference to this string.

append() [6/7]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append (
size_type __n,
_CharT __c) [inline]
Append multiple characters.

Parameters

_←- The number of characters to append.


_n
_←- The character to use.
_c

Returns

Reference to this string.

Appends n copies of c to this string.


References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

append() [7/7]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append (
std::initializer_list< _CharT > __l) [inline]
Append an initializer_list of characters.

Parameters

←- The initializer_list of characters to append.


_←-
←-
_←-
l

Returns

Reference to this string.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append().

Generated by Doxygen
808

assign() [1/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
__versa_string< _CharT, _Traits, _Alloc, _Base > && __str) [inline], [noexcept]
Set value to contents of another string.

Parameters

__str Source string to use.

Returns

Reference to this string.

This function sets this string to the exact contents of __str. __str is a valid, but unspecified string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::swap().

assign() [2/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
_InputIterator __first,
_InputIterator __last) [inline]
Set value to a range of characters.

Parameters

__first Iterator referencing the first character to append.


__last Iterator marking the end of the range.

Returns

Reference to this string.

Sets value of string to characters in the range [first,last).


References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

assign() [3/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Set value to contents of another string.

Parameters

__str Source string to use.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 809

Returns

Reference to this string.

Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign(), __gnu_cxx::__versa_string< _CharT, _Traits, _Al
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator=(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator=().

assign() [4/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos,
size_type __n) [inline]
Set value to a substring of a string.

Parameters
__str The string to use.
__pos Index of the first character of str.
__n Number of characters to use.

Returns

Reference to this string.

Exceptions

std::out_of_range if __pos is not a valid index.

This function sets this string to the substring of __str consisting of __n characters at __pos. If __n is is larger than the
number of available characters in __str, the remainder of __str is used.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

assign() [5/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
const _CharT ∗ __s) [inline]
Set value to contents of a C string.

Parameters

_←- The C string to use.


_s

Returns

Reference to this string.

This function sets the value of this string to the value of __s. The data is copied, so there is no dependence on __s once
the function returns.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

Generated by Doxygen
810

assign() [6/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
const _CharT ∗ __s,
size_type __n) [inline]
Set value to a C substring.

Parameters

_←- The C string to use.


_s
_←- Number of characters to use.
_n

Returns

Reference to this string.

This function sets the value of this string to the first __n characters of __s. If __n is is larger than the number of available
characters in __s, the remainder of __s is used.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

assign() [7/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
size_type __n,
_CharT __c) [inline]
Set value to multiple characters.

Parameters

_←- Length of the resulting string.


_n
_←- The character to use.
_c

Returns

Reference to this string.

This function sets the value of this string to __n copies of character __c.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

assign() [8/8]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign (
std::initializer_list< _CharT > __l) [inline]
Set value to an initializer_list of characters.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 811

Parameters

←- The initializer_list of characters to assign.


_←-
←-
_←-
l

Returns

Reference to this string.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign().

at() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::at (
size_type __n) [inline]
Provides access to the data contained in the string.

Parameters

_←- The index of the character to access.


_n

Returns

Read/write reference to the character.

Exceptions

std::out_of_range If __n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails. Success results in unsharing the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

at() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::at (
size_type __n) const [inline]
Provides access to the data contained in the string.

Parameters

_←- The index of the character to access.


_n

Returns

Read-only (const) reference to the character.

Generated by Doxygen
812

Exceptions

std::out_of_range If __n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

back() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::back () const [inline],
[noexcept]
Returns a read-only (constant) reference to the data at the last element of the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator[ ](), and __gnu_cxx::__versa_string< _CharT, _Traits

back() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::back () [inline], [noexcept]
Returns a read/write reference to the data at the last element of the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator[ ](), and __gnu_cxx::__versa_string< _CharT, _Traits

begin() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::begin () const [inline],
[noexcept]
Returns a read-only (constant) iterator that points to the first character in the string.

begin() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::begin () [inline], [noexcept]
Returns a read/write iterator that points to the first character in the string. Unshares the string.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::crend(), __gnu_cxx::__versa_string< _CharT, _Traits, _Allo
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rend().

c_str()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const _CharT ∗ __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::c_str () const [inline],
[noexcept]
Return const pointer to null-terminated contents.
This is a handle to internal data. Do not modify or dire things may happen.

capacity()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 813

size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::capacity () const [inline],


[noexcept]
Returns the total number of characters that the string can hold before needing to allocate more memory.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::push_back(), and __gnu_cxx::__versa_string< _CharT, _T

cbegin()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::cbegin () const [inline],
[noexcept]
Returns a read-only (constant) iterator that points to the first character in the string.

cend()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::cend () const [inline],
[noexcept]
Returns a read-only (constant) iterator that points one past the last character in the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

clear()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::clear () [inline], [noexcept]
Erases the string, making it empty.

compare() [1/6]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
int __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) const [inline]
Compare to a string.

Parameters

__str String to compare against.

Returns

Integer < 0, 0, or > 0.

Returns an integer < 0 if this string is ordered before __str, 0 if their values are equivalent, or > 0 if this string is ordered
after __str. Determines the effective length rlen of the strings to compare as the smallest of size() and str.size(). The
function then compares the two strings by calling traits::compare(data(), str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.
References std::min(), and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

compare() [2/6]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>

Generated by Doxygen
814

int __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare (


const _CharT ∗ __s) const
Compare to a C string.

Parameters

_←- C string to compare against.


_s

Returns

Integer < 0, 0, or > 0.

Returns an integer < 0 if this string is ordered before __s, 0 if their values are equivalent, or > 0 if this string is ordered
after __s. Determines the effective length rlen of the strings to compare as the smallest of size() and the length of a
string constructed from __s. The function then compares the two strings by calling traits::compare(data(),s,rlen). If the
result of the comparison is nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

compare() [3/6]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
int __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare (
size_type __pos,
size_type __n,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) const
Compare substring to a string.

Parameters

__pos Index of first character of substring.


__n Number of characters in substring.
__str String to compare against.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n characters starting at __pos. Returns an integer < 0 if the substring
is ordered before __str, 0 if their values are equivalent, or > 0 if the substring is ordered after __str. Determines the
effective length rlen of the strings to compare as the smallest of the length of the substring and __str.size(). The function
then compares the two strings by calling traits::compare(substring.data(),str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::data(), std::min(), and __gnu_cxx::__versa_string< _CharT, _

compare() [4/6]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
int __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare (
size_type __pos,
size_type __n1,
const _CharT ∗ __s) const
Compare substring to a C string.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 815

Parameters

__pos Index of first character of substring.


__n1 Number of characters in substring.
__s C string to compare against.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos. Returns an integer < 0 if the substring is
ordered before __s, 0 if their values are equivalent, or > 0 if the substring is ordered after __s. Determines the effective
length rlen of the strings to compare as the smallest of the length of the substring and the length of a string constructed
from __s. The function then compares the two string by calling traits::compare(substring.data(),s,rlen). If the result of
the comparison is nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

compare() [5/6]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
int __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare (
size_type __pos,
size_type __n1,
const _CharT ∗ __s,
size_type __n2) const
Compare substring against a character array.

Parameters

__pos Index of first character of substring.


__n1 Number of characters in substring.
__s character array to compare against.
__n2 Number of characters of s.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos. Form a string from the first __n2 characters
of __s. Returns an integer < 0 if this substring is ordered before the string from __s, 0 if their values are equivalent, or
> 0 if this substring is ordered after the string from __s. Determines the effective length rlen of the strings to compare
as the smallest of the length of the substring and __n2. The function then compares the two strings by calling traits←-
::compare(substring.data(),__s,rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is
ordered first.
NB: __s must have at least n2 characters, \0 has no special meaning.
References std::min().

compare() [6/6]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
int __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare (

Generated by Doxygen
816

size_type __pos1,
size_type __n1,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos2,
size_type __n2) const
Compare substring to a substring.

Parameters

__pos1 Index of first character of substring.


__n1 Number of characters in substring.
__str String to compare against.
__pos2 Index of first character of substring of str.
__n2 Number of characters in substring of str.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos1. Form the substring of __str from the
__n2 characters starting at __pos2. Returns an integer < 0 if this substring is ordered before the substring of __str,
0 if their values are equivalent, or > 0 if this substring is ordered after the substring of __str. Determines the effective
length rlen of the strings to compare as the smallest of the lengths of the substrings. The function then compares the
two strings by calling traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). If the result of the comparison is
nonzero returns it, otherwise the shorter one is ordered first.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::data(), and std::min().

copy()

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::copy (
_CharT ∗ __s,
size_type __n,
size_type __pos = 0) const
Copy substring into C string.

Parameters

__s C string to copy value into.


__n Number of characters to copy.
__pos Index of first character to copy.

Returns

Number of characters actually copied

Exceptions

std::out_of_range If pos > size().

Copies up to __n characters starting at __pos into the C string s. If __pos is greater than size(), out_of_range is thrown.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 817

crbegin()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reverse_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::crbegin ()
const [inline], [noexcept]
Returns a read-only (constant) reverse iterator that points to the last character in the string. Iteration is done in reverse
element order.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::end().

crend()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reverse_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::crend ()
const [inline], [noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first character in the string. Iteration is done
in reverse element order.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::begin().

data()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const _CharT ∗ __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::data () const [inline],
[noexcept]
Return const pointer to contents.
This is a handle to internal data. Do not modify or dire things may happen.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare(), and __gnu_cxx::__versa_string< _CharT, _Tra

empty()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
bool __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::empty () const [inline], [nodiscard],
[noexcept]
Returns true if the string is empty. Equivalent to ∗this == "".
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

end() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::end () const [inline],
[noexcept]
Returns a read-only (constant) iterator that points one past the last character in the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

end() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::end () [inline], [noexcept]
Returns a read/write iterator that points one past the last character in the string. Unshares the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

Generated by Doxygen
818

Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::crbegin(), __gnu_cxx::__versa_string< _CharT, _Traits, _A
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rbegin().

erase() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::erase (
const_iterator __first,
const_iterator __last) [inline]
Remove a range of characters.

Parameters

__first Iterator referencing the first character to remove.


__last Iterator referencing the end of the range.

Returns

Iterator referencing location of first after removal.

Removes the characters in the range [first,last) from this string. The value of the string doesn't change if an error is
thrown.

erase() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::erase (
const_iterator __position) [inline]
Remove one character.

Parameters

__position Iterator referencing the character to remove.

Returns

iterator referencing same location after removal.

Removes the character at __position from this string. The value of the string doesn't change if an error is thrown.

erase() [3/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::erase (
size_type __pos = 0,
size_type __n = npos) [inline]
Remove characters.

Parameters

__pos Index of first character to remove (default 0).


__n Number of characters to remove (default remainder).

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 819

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos is beyond the end of this string.

Removes __n characters from this string starting at __pos. The length of the string is reduced by __n. If there are < __n
characters to remove, the remainder of the string is truncated. If __p is beyond end of string, out_of_range is thrown.
The value of the string doesn't change if an error is thrown.
Referenced by std::getline().

find() [1/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find (
_CharT __c,
size_type __pos = 0) const [noexcept]
Find position of a character.

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.

find() [2/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos = 0) const [inline], [noexcept]
Find position of a string.

Parameters

__str String to locate.


__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for value of __str within this string. If found, returns the index where it begins. If
not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find().

Generated by Doxygen
820

find() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const
Find position of a C substring.

Parameters

__s C string to locate.


__pos Index of character to search from.
__n Number of characters from __s to search for.

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for the first __n characters in __s within this string. If found, returns the index
where it begins. If not found, returns npos.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_of().

find() [4/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find (
const _CharT ∗ __s,
size_type __pos = 0) const [inline]
Find position of a C string.

Parameters

__s C string to locate.


__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for the value of __s within this string. If found, returns the index where it begins.
If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find().

find_first_not_of() [1/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find_first_not_of (

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 821

_CharT __c,
size_type __pos = 0) const [noexcept]
Find position of a different character.

Generated by Doxygen
822

Parameters

__c Character to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character other than __c within this string. If found, returns the index where
it was found. If not found, returns npos.

find_first_not_of() [2/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_not_of (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character not in string.

Parameters

__str String containing characters to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_not_of().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_not_of(), and __gnu_cxx::__versa_string< _Char

find_first_not_of() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find_first_not_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const
Find position of a character not in C substring.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search from.
__n Number of characters from s to consider.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 823

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in the first __n characters of __s within this string.
If found, returns the index where it was found. If not found, returns npos.

find_first_not_of() [4/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_not_of (
const _CharT ∗ __s,
size_type __pos = 0) const [inline]
Find position of a character not in C string.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_not_of().

find_first_of() [1/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_of (
_CharT __c,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character.

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for the character __c within this string. If found, returns the index where it was
found. If not found, returns npos.
Note: equivalent to find(c, pos).
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find().

Generated by Doxygen
824

find_first_of() [2/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_of (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character of string.

Parameters

__str String containing characters to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_of().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_of(), and __gnu_cxx::__versa_string< _CharT, _T

find_first_of() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find_first_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const
Find position of a character of C substring.

Parameters

__s String containing characters to locate.


__pos Index of character to search from.
__n Number of characters from s to search for.

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the first __n characters of __s within this string. If found, returns the
index where it was found. If not found, returns npos.

find_first_of() [4/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_of (
const _CharT ∗ __s,
size_type __pos = 0) const [inline]
Find position of a character of C string.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 825

Parameters

__s String containing characters to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the characters of __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_first_of().

find_last_not_of() [1/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find_last_not_of (
_CharT __c,
size_type __pos = npos) const [noexcept]
Find last position of a different character.

Parameters

__c Character to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character other than __c within this string. If found, returns the index
where it was found. If not found, returns npos.

find_last_not_of() [2/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_not_of (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character not in string.

Parameters

__str String containing characters to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in __str within this string. If found, returns the
index where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_not_of().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_not_of(), and __gnu_cxx::__versa_string< _Char

Generated by Doxygen
826

find_last_not_of() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find_last_not_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const
Find last position of a character not in C substring.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search back from.
__n Number of characters from s to consider.

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in the first __n characters of __s within this string.
If found, returns the index where it was found. If not found, returns npos.

find_last_not_of() [4/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_not_of (
const _CharT ∗ __s,
size_type __pos = npos) const [inline]
Find last position of a character not in C string.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in __s within this string. If found, returns the
index where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_not_of().

find_last_of() [1/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_of (
_CharT __c,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 827

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
Note: equivalent to rfind(c, pos).
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rfind().

find_last_of() [2/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_of (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character of string.

Parameters

__str String containing characters to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_of().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_of(), and __gnu_cxx::__versa_string< _CharT, _T

find_last_of() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::find_last_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const
Find last position of a character of C substring.

Parameters

__s C string containing characters to locate.


__pos Index of character to search back from.
__n Number of characters from s to search for.

Generated by Doxygen
828

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the first __n characters of __s within this string. If found, returns the
index where it was found. If not found, returns npos.

find_last_of() [4/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_of (
const _CharT ∗ __s,
size_type __pos = npos) const [inline]
Find last position of a character of C string.

Parameters

__s C string containing characters to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the characters of __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_of().

front() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::front () const [inline],
[noexcept]
Returns a read-only (constant) reference to the data at the first element of the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator[ ]().

front() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::front () [inline], [noexcept]
Returns a read/write reference to the data at the first element of the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator[ ]().

get_allocator()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
allocator_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::get_allocator ()
const [inline], [noexcept]
Return copy of allocator used to construct this string.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 829

insert() [1/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
const_iterator __p,
_CharT __c) [inline]
Insert one character.

Parameters

_←- Iterator referencing position in string to insert at.


_p
_←- The character to insert.
_c

Returns

Iterator referencing newly inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts character __c at position referenced by __p. If adding character causes the length to exceed max_size(),
length_error is thrown. If __p is beyond end of string, out_of_range is thrown. The value of the string doesn't change if
an error is thrown.

insert() [2/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
const_iterator __p,
_InputIterator __beg,
_InputIterator __end) [inline]
Insert a range of characters.

Parameters

__p Const_iterator referencing location in string to insert at.


__beg Start of range.
__end End of range.

Returns

Iterator referencing the first inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Generated by Doxygen
830

Inserts characters in range [beg,end). If adding characters causes the length to exceed max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

insert() [3/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
const_iterator __p,
size_type __n,
_CharT __c) [inline]
Insert multiple characters.

Parameters

_←- Const_iterator referencing location in string to insert at.


_p
_←- Number of characters to insert
_n
_←- The character to insert.
_c

Returns

Iterator referencing the first inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts __n copies of character __c starting at the position referenced by iterator __p. If adding characters causes the
length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert().

insert() [4/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
const_iterator __p,
std::initializer_list< _CharT > __l) [inline]
Insert an initializer_list of characters.

Parameters

_←- Const_iterator referencing location in string to insert at.


_p
_←- The initializer_list of characters to insert.
_l

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 831

Returns

Iterator referencing the first inserted char.

Exceptions

std::length_error If new length exceeds max_size().

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert().

insert() [5/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
size_type __pos,
const _CharT ∗ __s) [inline]
Insert a C string.

Parameters

__pos Iterator referencing location in string to insert at.


__s The C string to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If __pos is beyond the end of this string.

Inserts the first __n characters of __s starting at __pos. If adding characters causes the length to exceed max_size(),
length_error is thrown. If __pos is beyond end(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

insert() [6/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
size_type __pos,
const _CharT ∗ __s,
size_type __n) [inline]
Insert a C substring.

Parameters

__pos Iterator referencing location in string to insert at.


__s The C string to insert.
__n The number of characters to insert.

Generated by Doxygen
832

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If __pos is beyond the end of this string.

Inserts the first __n characters of __s starting at __pos. If adding characters causes the length to exceed max_size(),
length_error is thrown. If __pos is beyond end(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

insert() [7/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
size_type __pos,
size_type __n,
_CharT __c) [inline]
Insert multiple characters.

Parameters
__pos Index in string to insert at.
__n Number of characters to insert
__c The character to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If __pos is beyond the end of this string.

Inserts __n copies of character __c starting at index __pos. If adding characters causes the length to exceed max_←-
size(), length_error is thrown. If __pos > length(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.

insert() [8/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
size_type __pos1,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Insert value of a string.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 833

Parameters

__pos1 Iterator referencing location in string to insert at.


__str The string to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Inserts value of __str starting at __pos1. If adding characters causes the length to exceed max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

insert() [9/9]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert (
size_type __pos1,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos2,
size_type __n) [inline]
Insert a substring.

Parameters

__pos1 Iterator referencing location in string to insert at.


__str The string to insert.
__pos2 Start of characters in str to insert.
__n Number of characters to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If __pos1 > size() or __pos2 > __str.size().

Starting at __pos1, insert __n character of __str beginning with __pos2. If adding characters causes the length to
exceed max_size(), length_error is thrown. If __pos1 is beyond the end of this string or __pos2 is beyond the end of
__str, out_of_range is thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

Generated by Doxygen
834

length()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::length () const [inline],
[noexcept]
Returns the number of characters in the string, not including any null-termination.

max_size()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::max_size () const [inline],
[noexcept]
Returns the size() of the largest possible string.
Referenced by std::getline().

operator+=() [1/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator+= (
_CharT __c) [inline]
Append a character.

Parameters
_←- The character to append.
_c

Returns

Reference to this string.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::push_back().

operator+=() [2/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator+= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append().

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 835

operator+=() [3/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator+= (
const _CharT ∗ __s) [inline]
Append a C string.

Parameters

_←- The C string to append.


_s

Returns

Reference to this string.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append().

operator+=() [4/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator+= (
std::initializer_list< _CharT > __l) [inline]
Append an initializer_list of characters.

Parameters

←- The initializer_list of characters to be appended.


_←-
←-
_←-
l

Returns

Reference to this string.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append().

operator=() [1/5]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator= (
__versa_string< _CharT, _Traits, _Alloc, _Base > && __str) [inline], [noexcept]
String move assignment operator.

Parameters

__str Source string.

The contents of __str are moved into this string (without copying). __str is a valid, but unspecified string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::swap().

Generated by Doxygen
836

operator=() [2/5]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator= (
_CharT __c) [inline]
Set value to string of length 1.

Parameters

_←- Source character.


_c

Assigning to a character makes this string length 1 and (∗this)[0] == __c.


References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign().

operator=() [3/5]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator= (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Assign the value of str to this string.

Parameters

__str Source string.

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign().

operator=() [4/5]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator= (
const _CharT ∗ __s) [inline]
Copy contents of __s into this string.

Parameters

_←- Source null-terminated string.


_s

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign().

operator=() [5/5]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator= (
std::initializer_list< _CharT > __l) [inline]
Set value to string constructed from initializer list.

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 837

Parameters
←- std::initializer_list.
_←-
←-
_←-
l

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign().

operator[]() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator[ ] (
size_type __pos) const [inline], [noexcept]
Subscript access to the data contained in the string.

Parameters

__pos The index of the character to access.

Returns

Read-only (constant) reference to the character.

This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().)
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::back(), __gnu_cxx::__versa_string< _CharT, _Traits, _Allo
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::front(), and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >

operator[]() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
reference __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator[ ] (
size_type __pos) [inline], [noexcept]
Subscript access to the data contained in the string.

Parameters

__pos The index of the character to access.

Returns

Read/write reference to the character.

This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().) Unshares the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

Generated by Doxygen
838

pop_back()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::pop_back () [inline]
Remove the last character.
The string must be non-empty.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

push_back()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::push_back (
_CharT __c) [inline]
Append a single character.

Parameters

_←- Character to append.


_c

References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::capacity(), and __gnu_cxx::__versa_string< _CharT, _Traits,
Referenced by __gnu_cxx::operator+(), __gnu_cxx::operator+(), and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::opera

rbegin() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reverse_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rbegin ()
const [inline], [noexcept]
Returns a read-only (constant) reverse iterator that points to the last character in the string. Iteration is done in reverse
element order.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::end().

rbegin() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
reverse_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rbegin () [inline],
[noexcept]
Returns a read/write reverse iterator that points to the last character in the string. Iteration is done in reverse element
order. Unshares the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::end().

rend() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
const_reverse_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rend () const
[inline], [noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first character in the string. Iteration is done
in reverse element order.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::begin().

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 839

rend() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
reverse_iterator __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rend () [inline],
[noexcept]
Returns a read/write reverse iterator that points to one before the first character in the string. Iteration is done in reverse
element order. Unshares the string.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::begin().

replace() [1/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
const_iterator __i1,
const_iterator __i2,
_InputIterator __k1,
_InputIterator __k2) [inline]
Replace range of characters with range.

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__k1 Iterator referencing start of range to insert.
__k2 Iterator referencing end of range to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [i1,i2). In place, characters in the range [k1,k2) are inserted. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [2/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
const_iterator __i1,
const_iterator __i2,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Replace range of characters with string.

Parameters

__i1 Iterator referencing start of range to replace.

Generated by Doxygen
840

__i2 Iterator referencing end of range to replace.


__str String value to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [i1,i2). In place, the value of __str is inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

replace() [3/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
const_iterator __i1,
const_iterator __i2,
const _CharT ∗ __s) [inline]
Replace range of characters with C string.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [i1,i2). In place, the characters of __s are inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 841

replace() [4/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
const_iterator __i1,
const_iterator __i2,
const _CharT ∗ __s,
size_type __n) [inline]
Replace range of characters with C substring.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s
_←- Number of characters from s to insert.
_n

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [i1,i2). In place, the first n characters of __s are inserted. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

replace() [5/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
const_iterator __i1,
const_iterator __i2,
size_type __n,
_CharT __c) [inline]
Replace range of characters with multiple characters.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- Number of characters to insert.
_n

Generated by Doxygen
842

_←- Character to insert.


_c

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [i1,i2). In place, __n copies of __c are inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [6/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
const_iterator __i1,
const_iterator __i2,
std::initializer_list< _CharT > __l) [inline]
Replace range of characters with initializer_list.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- The initializer_list of characters to insert.
_l

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [i1,i2). In place, characters in the range [k1,k2) are inserted. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

replace() [7/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 843

size_type __pos,
size_type __n,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str) [inline]
Replace characters with value from another string.

Generated by Doxygen
844

Parameters

__pos Index of first character to replace.


__n Number of characters to be replaced.
__str String to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos is beyond the end of this string.


std::length_error If new length exceeds max_size().

Removes the characters in the range [pos,pos+n) from this string. In place, the value of __str is inserted. If __pos is
beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is thrown. The
value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append(), __gnu_cxx::__versa_string< _CharT, _Traits, _A
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::in
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::in
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::insert(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::in
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >:
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >:
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >:
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

replace() [8/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
size_type __pos,
size_type __n1,
const _CharT ∗ __s) [inline]
Replace characters with value of a C string.

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__s C string to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos > size().

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 845

std::length_error If new length exceeds max_size().

Removes the characters in the range [pos,pos + n1) from this string. In place, the characters of __s are inserted. If pos
is beyond end of string, out_of_range is thrown. If the length of result exceeds max_size(), length_error is thrown. The
value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

replace() [9/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
size_type __pos,
size_type __n1,
const _CharT ∗ __s,
size_type __n2) [inline]
Replace characters with value of a C substring.

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__s C string to insert.
__n2 Number of characters from __s to use.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos1 > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [pos,pos + n1) from this string. In place, the first __n2 characters of __s are
inserted, or all of __s if __n2 is too large. If __pos is beyond end of string, out_of_range is thrown. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [10/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
size_type __pos,
size_type __n1,
size_type __n2,
_CharT __c) [inline]
Replace characters with multiple characters.

Generated by Doxygen
846

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__n2 Number of characters to insert.
__c Character to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [pos,pos + n1) from this string. In place, __n2 copies of __c are inserted. If __pos
is beyond end of string, out_of_range is thrown. If the length of result exceeds max_size(), length_error is thrown. The
value of the string doesn't change if an error is thrown.

replace() [11/11]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string & __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace (
size_type __pos1,
size_type __n1,
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos2,
size_type __n2) [inline]
Replace characters with value from another string.

Parameters

__pos1 Index of first character to replace.


__n1 Number of characters to be replaced.
__str String to insert.
__pos2 Index of first character of str to use.
__n2 Number of characters from str to use.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos1 > size() or __pos2 > str.size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [pos1,pos1 + n) from this string. In place, the value of __str is inserted. If __pos
is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is thrown.
The value of the string doesn't change if an error is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::replace().

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 847

reserve()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::reserve (
size_type __res_arg = 0) [inline]
Attempt to preallocate enough memory for specified number of characters.

Parameters

__res_arg Number of characters required.

Exceptions

std::length_error If __res_arg exceeds max_size().

This function attempts to reserve enough memory for the string to hold the specified number of characters. If the number
requested is more than max_size(), length_error is thrown.
The advantage of this function is that if optimal code is a necessity and the user can determine the string length that
will be required, the user can reserve the memory in advance, and thus prevent a possible reallocation of memory and
copying of string data.
Referenced by __gnu_cxx::operator+(), __gnu_cxx::operator+(), __gnu_cxx::operator+(), and __gnu_cxx::__versa_string< _CharT, _Traits

resize() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::resize (
size_type __n) [inline]
Resizes the string to the specified number of characters.

Parameters

_←- Number of characters the string should contain.


_n

This function will resize the string to the specified length. If the new size is smaller than the string's current size the
string is truncated, otherwise the string is extended and new characters are default-constructed. For basic types such
as char, this means setting them to 0.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::resize().

resize() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::resize (
size_type __n,
_CharT __c)
Resizes the string to the specified number of characters.

Parameters

_←- Number of characters the string should contain.


_n

Generated by Doxygen
848

Parameters

_←- Character to fill any new elements.


_c

This function will resize the string to the specified number of characters. If the number is smaller than the string's current
size the string is truncated, otherwise the string is extended and new elements are set to __c.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::resize().

rfind() [1/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::rfind (
_CharT __c,
size_type __pos = npos) const [noexcept]
Find last position of a character.

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.

rfind() [2/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rfind (
const __versa_string< _CharT, _Traits, _Alloc, _Base > & __str,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a string.

Parameters

__str String to locate.


__pos Index of character to search back from (default end).

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for value of __str within this string. If found, returns the index where it begins.
If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rfind().
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::find_last_of(), __gnu_cxx::__versa_string< _CharT, _Traits
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rfind().

Generated by Doxygen
5.58 __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base > Class Template Reference 849

rfind() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
__versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _CharT, ←-
_Traits, _Alloc, _Base >::rfind (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const
Find last position of a C substring.

Parameters

__s C string to locate.


__pos Index of character to search back from.
__n Number of characters from s to search for.

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for the first __n characters in __s within this string. If found, returns the index
where it begins. If not found, returns npos.
References std::min().

rfind() [4/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rfind (
const _CharT ∗ __s,
size_type __pos = npos) const [inline]
Find last position of a C string.

Parameters

__s C string to locate.


__pos Index of character to start search at (default end).

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for the value of __s within this string. If found, returns the index where it begins.
If not found, returns npos.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::rfind().

shrink_to_fit()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::shrink_to_fit () [inline],
[noexcept]
A non-binding request to reduce capacity() to size().
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::capacity(), __gnu_cxx::__versa_string< _CharT, _Traits, _Allo
and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size().

Generated by Doxygen
850

size()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
size_type __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::size () const [inline],
[noexcept]
Returns the number of characters in the string, not including any null-termination.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::append(), __gnu_cxx::__versa_string< _CharT, _Traits, _A
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::a
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::a
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::at(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::back(
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::back(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::ce
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::compare(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::empty(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::e
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::end(), __gnu_cxx::operator+(), __gnu_cxx::operator+(),
__gnu_cxx::operator+(), __gnu_cxx::operator+(), __gnu_cxx::operator+(), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >:
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::operator[ ](), __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base
__gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::push_back(), and __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _B

substr()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
__versa_string __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::substr (
size_type __pos = 0,
size_type __n = npos) const [inline]
Get a substring.

Parameters

__pos Index of first character (default 0).


__n Number of characters in substring (default remainder).

Returns

The new string.

Exceptions

std::out_of_range If pos > size().

Construct and return a new string using the __n characters starting at __pos. If the string is too short, use the remainder
of the characters. If __pos is beyond the end of the string, out_of_range is thrown.
References __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::__versa_string().

swap()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Alloc = std←-


::allocator<_CharT>, template< typename, typename, typename > class _Base = __sso_string_base>
void __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::swap (
__versa_string< _CharT, _Traits, _Alloc, _Base > & __s) [inline], [noexcept]
Swap contents with another string.

Generated by Doxygen
5.59 __gnu_debug::_After_nth_from< _Iterator > Class Template Reference 851

Parameters

_←- String to swap with.


_s

Exchanges the contents of this string with that of __s in constant time.
Referenced by __gnu_cxx::__versa_string< _CharT, _Traits, _Alloc, _Base >::assign(), and __gnu_cxx::__versa_string< _CharT, _Traits

5.58.4 Member Data Documentation

npos

template<typename _CharT , typename _Traits , typename _Alloc , template< typename, typename,


typename > class _Base>
const __versa_string< _CharT, _Traits, _Alloc, _Base >::size_type __gnu_cxx::__versa_string< _←-
CharT, _Traits, _Alloc, _Base >::npos [static]
Value returned by various member functions when they fail.
The documentation for this class was generated from the following files:

• vstring.h
• vstring_fwd.h
• vstring.tcc

5.59 __gnu_debug::_After_nth_from< _Iterator > Class Template Reference


#include <safe_sequence.h>

Public Member Functions

• _After_nth_from (const difference_type &__n, const _Iterator &__base)


• bool operator() (const _Iterator &__x) const

5.59.1 Detailed Description

template<typename _Iterator>
class __gnu_debug::_After_nth_from< _Iterator >

A function object that returns true when the given random access iterator is at least n steps away from the given iterator.
The documentation for this class was generated from the following file:

• safe_sequence.h

5.60 std::_Base_bitset< _Nw > Struct Template Reference


#include <bitset>

Public Types

• typedef unsigned long _WordT

Public Member Functions

• constexpr _Base_bitset (unsigned long long __val) noexcept


• template<size_t _Nb>
constexpr bool _M_are_all () const noexcept
• constexpr void _M_do_and (const _Base_bitset< _Nw > &__x) noexcept

Generated by Doxygen
852

• constexpr size_t _M_do_count () const noexcept


• constexpr size_t _M_do_find_first (size_t) const noexcept
• constexpr size_t _M_do_find_next (size_t, size_t) const noexcept
• constexpr void _M_do_flip () noexcept
• constexpr void _M_do_left_shift (size_t __shift) noexcept
• constexpr void _M_do_or (const _Base_bitset< _Nw > &__x) noexcept
• constexpr void _M_do_reset () noexcept
• constexpr void _M_do_right_shift (size_t __shift) noexcept
• constexpr void _M_do_set () noexcept
• constexpr unsigned long long _M_do_to_ullong () const
• constexpr unsigned long _M_do_to_ulong () const
• constexpr void _M_do_xor (const _Base_bitset< _Nw > &__x) noexcept
• constexpr const _WordT ∗ _M_getdata () const noexcept
• constexpr _WordT _M_getword (size_t __pos) const noexcept
• constexpr _WordT & _M_getword (size_t __pos) noexcept
• constexpr _WordT _M_hiword () const noexcept
• constexpr _WordT & _M_hiword () noexcept
• constexpr bool _M_is_any () const noexcept
• constexpr bool _M_is_equal (const _Base_bitset< _Nw > &__x) const noexcept

Static Public Member Functions

• static constexpr _WordT _S_maskbit (size_t __pos) noexcept


• static constexpr size_t _S_whichbit (size_t __pos) noexcept
• static constexpr size_t _S_whichbyte (size_t __pos) noexcept
• static constexpr size_t _S_whichword (size_t __pos) noexcept

Public Attributes

• _WordT _M_w [_Nw]

5.60.1 Detailed Description

template<size_t _Nw>
struct std::_Base_bitset< _Nw >

Base class, general case. It is a class invariant that _Nw will be nonnegative.
See documentation for bitset.

5.60.2 Member Data Documentation

_M_w

template<size_t _Nw>
_WordT std::_Base_bitset< _Nw >::_M_w[_Nw]
0 is the least significant word.
The documentation for this struct was generated from the following file:

• bitset

5.61 std::_Base_bitset< 0 > Struct Reference


#include <bitset>

Generated by Doxygen
5.62 std::_Base_bitset< 1 > Struct Reference 853

Public Types

• typedef unsigned long _WordT

Public Member Functions

• constexpr _Base_bitset (unsigned long long) noexcept


• template<size_t _Nb>
constexpr bool _M_are_all () const noexcept
• constexpr void _M_do_and (const _Base_bitset< 0 > &) noexcept
• constexpr size_t _M_do_count () const noexcept
• constexpr size_t _M_do_find_first (size_t) const noexcept
• constexpr size_t _M_do_find_next (size_t, size_t) const noexcept
• constexpr void _M_do_flip () noexcept
• constexpr void _M_do_left_shift (size_t) noexcept
• constexpr void _M_do_or (const _Base_bitset< 0 > &) noexcept
• constexpr void _M_do_reset () noexcept
• constexpr void _M_do_right_shift (size_t) noexcept
• constexpr void _M_do_set () noexcept
• constexpr unsigned long long _M_do_to_ullong () const noexcept
• constexpr unsigned long _M_do_to_ulong () const noexcept
• constexpr void _M_do_xor (const _Base_bitset< 0 > &) noexcept
• constexpr _WordT _M_getword (size_t) const noexcept
• _WordT & _M_getword (size_t) noexcept
• constexpr _WordT _M_hiword () const noexcept
• constexpr bool _M_is_any () const noexcept
• constexpr bool _M_is_equal (const _Base_bitset< 0 > &) const noexcept

Static Public Member Functions

• static constexpr _WordT _S_maskbit (size_t __pos) noexcept


• static constexpr size_t _S_whichbit (size_t __pos) noexcept
• static constexpr size_t _S_whichbyte (size_t __pos) noexcept
• static constexpr size_t _S_whichword (size_t __pos) noexcept

5.61.1 Detailed Description

Base class, specialization for no storage (zero-length bitset).


See documentation for bitset.
The documentation for this struct was generated from the following file:

• bitset

5.62 std::_Base_bitset< 1 > Struct Reference


#include <bitset>

Public Types

• typedef unsigned long _WordT

Generated by Doxygen
854

Public Member Functions

• constexpr _Base_bitset (unsigned long long __val) noexcept


• template<size_t _Nb>
constexpr bool _M_are_all () const noexcept
• constexpr void _M_do_and (const _Base_bitset< 1 > &__x) noexcept
• constexpr size_t _M_do_count () const noexcept
• constexpr size_t _M_do_find_first (size_t __not_found) const noexcept
• constexpr size_t _M_do_find_next (size_t __prev, size_t __not_found) const noexcept
• constexpr void _M_do_flip () noexcept
• constexpr void _M_do_left_shift (size_t __shift) noexcept
• constexpr void _M_do_or (const _Base_bitset< 1 > &__x) noexcept
• constexpr void _M_do_reset () noexcept
• constexpr void _M_do_right_shift (size_t __shift) noexcept
• constexpr void _M_do_set () noexcept
• constexpr unsigned long long _M_do_to_ullong () const noexcept
• constexpr unsigned long _M_do_to_ulong () const noexcept
• constexpr void _M_do_xor (const _Base_bitset< 1 > &__x) noexcept
• constexpr const _WordT ∗ _M_getdata () const noexcept
• constexpr _WordT _M_getword (size_t) const noexcept
• constexpr _WordT & _M_getword (size_t) noexcept
• constexpr _WordT _M_hiword () const noexcept
• constexpr _WordT & _M_hiword () noexcept
• constexpr bool _M_is_any () const noexcept
• constexpr bool _M_is_equal (const _Base_bitset< 1 > &__x) const noexcept

Static Public Member Functions

• static constexpr _WordT _S_maskbit (size_t __pos) noexcept


• static constexpr size_t _S_whichbit (size_t __pos) noexcept
• static constexpr size_t _S_whichbyte (size_t __pos) noexcept
• static constexpr size_t _S_whichword (size_t __pos) noexcept

Public Attributes

• _WordT _M_w

5.62.1 Detailed Description

Base class, specialization for a single word.


See documentation for bitset.
The documentation for this struct was generated from the following file:

• bitset

5.63 __gnu_debug::_BeforeBeginHelper< _Sequence > Struct Template Reference


#include <safe_iterator.h>

Static Public Member Functions

• template<typename _Iterator , typename _Category >


static bool _S_Is (const _Safe_iterator< _Iterator, _Sequence, _Category > &)
• template<typename _Iterator , typename _Category >
static bool _S_Is_Beginnest (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it)

Generated by Doxygen
5.64 std::_Bind< _Signature > Class Template Reference 855

5.63.1 Detailed Description

template<typename _Sequence>
struct __gnu_debug::_BeforeBeginHelper< _Sequence >

Helper struct to deal with sequence offering a before_begin iterator.


The documentation for this struct was generated from the following file:
• safe_iterator.h

5.64 std::_Bind< _Signature > Class Template Reference


5.64.1 Detailed Description

template<typename _Signature>
class std::_Bind< _Signature >

Type of the function object returned from bind().


The documentation for this class was generated from the following file:
• functional

5.65 std::_Bind_result< _Result, _Signature > Class Template Reference


5.65.1 Detailed Description

template<typename _Result, typename _Signature>


class std::_Bind_result< _Result, _Signature >

Type of the function object returned from bind<R>().


The documentation for this class was generated from the following file:
• functional

5.66 __gnu_cxx::__detail::_Bitmap_counter< _Tp > Class Template Reference


#include <bitmap_allocator.h>

Public Member Functions

• _Bitmap_counter (_BPVector &Rvbp, long __index=-1)


• pointer _M_base () const throw ()
• bool _M_finished () const throw ()
• std::size_t ∗ _M_get () const throw ()
• _Index_type _M_offset () const throw ()
• void _M_reset (long __index=-1) throw ()
• void _M_set_internal_bitmap (std::size_t ∗__new_internal_marker) throw ()
• _Index_type _M_where () const throw ()
• _Bitmap_counter & operator++ () throw ()

5.66.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::__detail::_Bitmap_counter< _Tp >

The bitmap counter which acts as the bitmap manipulator, and manages the bit-manipulation functions and the searching
and identification functions on the bit-map.
The documentation for this class was generated from the following file:
• bitmap_allocator.h

Generated by Doxygen
856

5.67 std::__detail::_BracketMatcher< _TraitsT, __icase, __collate > Struct Template


Reference
#include <regex_compiler.h>

Public Types

• typedef _TraitsT::char_class_type _CharClassT


• typedef _TransT::_CharT _CharT
• typedef _TraitsT::string_type _StringT
• typedef _TransT::_StrTransT _StrTransT
• typedef _RegexTranslator< _TraitsT, __icase, __collate > _TransT

Public Member Functions

• _BracketMatcher (bool __is_non_matching, const _TraitsT &__traits)


• void _M_add_char (_CharT __c)
• void _M_add_character_class (const _StringT &__s, bool __neg)
• _StringT _M_add_collate_element (const _StringT &__s)
• void _M_add_equivalence_class (const _StringT &__s)
• void _M_make_range (_CharT __l, _CharT __r)
• void _M_ready ()
• bool operator() (_CharT __ch) const

5.67.1 Detailed Description

template<typename _TraitsT, bool __icase, bool __collate>


struct std::__detail::_BracketMatcher< _TraitsT, __icase, __collate >

Matches a character range (bracket expression)


The documentation for this struct was generated from the following files:

• regex_compiler.h
• regex_compiler.tcc

5.68 __gnu_cxx::_Caster< _ToType > Struct Template Reference


#include <cast.h>

Public Types

• typedef _ToType::element_type ∗ type

5.68.1 Detailed Description

template<typename _ToType>
struct __gnu_cxx::_Caster< _ToType >

These functions are here to allow containers to support non standard pointer types. For normal pointers, these resolve
to the use of the standard cast operation. For other types the functions will perform the appropriate cast to/from the
custom pointer class so long as that class meets the following conditions: 1) has a typedef element_type which names
tehe type it points to. 2) has a get() const method which returns element_type∗. 3) has a constructor which can take
one element_type∗ argument. This type supports the semantics of the pointer cast operators (below.)
The documentation for this struct was generated from the following file:

• cast.h

Generated by Doxygen
5.69 __gnu_cxx::_Char_types< _CharT > Struct Template Reference 857

5.69 __gnu_cxx::_Char_types< _CharT > Struct Template Reference


#include <char_traits.h>

Public Types

• typedef unsigned long int_type


• typedef std::streamoff off_type
• typedef std::streampos pos_type
• typedef std::mbstate_t state_type

5.69.1 Detailed Description

template<typename _CharT>
struct __gnu_cxx::_Char_types< _CharT >

Mapping from character type to associated types.

Note

This is an implementation class for the generic version of char_traits. It defines int_type, off_type, pos_type, and
state_type. By default these are unsigned long, streamoff, streampos, and mbstate_t. Users who need a different
set of types, but who don't need to change the definitions of any function defined in char_traits, can specialize
__gnu_cxx::_Char_types while leaving __gnu_cxx::char_traits alone.

The documentation for this struct was generated from the following file:

• char_traits.h

5.70 __gnu_pbds::detail::pat_trie_base::_CIter< Node, Leaf, Head, Inode,


Is_Forward_Iterator > Class Template Reference
#include <pat_trie_base.hpp>
Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_CIter< Node, Leaf, Head, Inode, Is_Forward_Iterator >:

__gnu_pbds::detail __gnu_pbds::detail
::pat_trie_base::_CIter ::pat_trie_base::_Iter
< Node, Leaf, Head, Inode, < Node, Leaf, Head, Inode,
Is_Forward_Iterator > Is_Forward_Iterator >

Public Types

• typedef allocator_type _Alloc


• typedef Node::allocator_type allocator_type
• typedef type_traits::const_pointer const_pointer
• typedef type_traits::const_reference const_reference
• typedef allocator_type::difference_type difference_type
• typedef rebind_traits< _Alloc, Head >::pointer head_pointer
• typedef Inode::iterator inode_iterator

Generated by Doxygen
858

• typedef rebind_traits< _Alloc, Inode >::pointer inode_pointer


• typedef std::bidirectional_iterator_tag iterator_category
• typedef rebind_traits< _Alloc, Leaf >::const_pointer leaf_const_pointer
• typedef rebind_traits< _Alloc, Leaf >::pointer leaf_pointer
• typedef rebind_traits< _Alloc, Node >::pointer node_pointer
• typedef type_traits::pointer pointer
• typedef type_traits::reference reference
• typedef Node::type_traits type_traits
• typedef type_traits::value_type value_type

Public Member Functions

• _CIter (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other)
• _CIter (node_pointer p_nd=0)
• bool operator!= (const _CIter &other) const
• bool operator!= (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other) const
• const_reference operator∗ () const
• _CIter & operator++ ()
• _CIter operator++ (int)
• _CIter & operator-- ()
• _CIter operator-- (int)
• const_pointer operator-> () const
• _CIter & operator= (const _CIter &other)
• _CIter & operator= (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other)
• bool operator== (const _CIter &other) const
• bool operator== (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other) const

Public Attributes

• node_pointer m_p_nd

Protected Member Functions

• void dec (false_type)


• void dec (true_type)
• void inc (false_type)
• void inc (true_type)

Static Protected Member Functions

• static node_pointer get_larger_sibling (node_pointer p_nd)


• static node_pointer get_smaller_sibling (node_pointer p_nd)
• static leaf_pointer leftmost_descendant (node_pointer p_nd)
• static leaf_pointer rightmost_descendant (node_pointer p_nd)

5.70.1 Detailed Description

template<typename Node, typename Leaf, typename Head, typename Inode, bool Is_Forward_Iterator>
class __gnu_pbds::detail::pat_trie_base::_CIter< Node, Leaf, Head, Inode, Is_Forward_Iterator >

Const iterator.
The documentation for this class was generated from the following file:

• pat_trie_base.hpp

Generated by Doxygen
5.71 std::__detail::_Compiler< _TraitsT > Class Template Reference 859

5.71 std::__detail::_Compiler< _TraitsT > Class Template Reference


#include <regex_compiler.h>

Public Types

• typedef _TraitsT::char_type _CharT


• typedef regex_constants::syntax_option_type _FlagT
• typedef _NFA< _TraitsT > _RegexT

Public Member Functions

• _Compiler (const _CharT ∗__b, const _CharT ∗__e, const typename _TraitsT::locale_type &__traits, _FlagT
__flags)
• shared_ptr< const _RegexT > _M_get_nfa () noexcept

5.71.1 Detailed Description

template<typename _TraitsT>
class std::__detail::_Compiler< _TraitsT >

Builds an NFA from an input iterator range.


The _TraitsT type should fulfill requirements [28.3].
The documentation for this class was generated from the following files:

• regex_compiler.h
• regex_compiler.tcc

5.72 std::__parallel::_CRandNumber< _MustBeInt > Struct Template Reference


#include <algo.h>

Public Member Functions

• int operator() (int __limit)

5.72.1 Detailed Description

template<typename _MustBeInt = int>


struct std::__parallel::_CRandNumber< _MustBeInt >

Functor wrapper for std::rand().


The documentation for this struct was generated from the following file:

• algo.h

5.73 std::_Deque_base< _Tp, _Alloc > Class Template Reference


#include <stl_deque.h>

Generated by Doxygen
860

Inheritance diagram for std::_Deque_base< _Tp, _Alloc >:

std::_Deque_base<
_Tp, _Alloc >

std::deque< _StateSeqT > std::deque< _Tp, _Alloc >

Protected Types

• enum { _S_initial_map_size }
• typedef __gnu_cxx::__alloc_traits< _Tp_alloc_type > _Alloc_traits
• typedef __gnu_cxx::__alloc_traits< _Map_alloc_type > _Map_alloc_traits
• typedef _Alloc_traits::template rebind< _Ptr >::other _Map_alloc_type
• typedef iterator::_Map_pointer _Map_pointer
• typedef _Alloc_traits::pointer _Ptr
• typedef _Alloc_traits::const_pointer _Ptr_const
• typedef __gnu_cxx::__alloc_traits< _Alloc >::template rebind< _Tp >::other _Tp_alloc_type
• typedef _Alloc allocator_type
• typedef _Deque_iterator< _Tp, const _Tp &, _Ptr_const > const_iterator
• typedef _Deque_iterator< _Tp, _Tp &, _Ptr > iterator

Protected Member Functions

• _Deque_base (_Deque_base &&__x)


• _Deque_base (_Deque_base &&__x, const allocator_type &__a)
• _Deque_base (_Deque_base &&__x, const allocator_type &__a, size_t __n)
• _Deque_base (const allocator_type &__a)
• _Deque_base (const allocator_type &__a, size_t __num_elements)
• _Deque_base (size_t __num_elements)
• _Map_pointer _M_allocate_map (size_t __n)
• _Ptr _M_allocate_node ()
• void _M_create_nodes (_Map_pointer __nstart, _Map_pointer __nfinish)
• void _M_deallocate_map (_Map_pointer __p, size_t __n) noexcept
• void _M_deallocate_node (_Ptr __p) noexcept
• void _M_destroy_nodes (_Map_pointer __nstart, _Map_pointer __nfinish) noexcept
• _Map_alloc_type _M_get_map_allocator () const noexcept
• const _Tp_alloc_type & _M_get_Tp_allocator () const noexcept
• _Tp_alloc_type & _M_get_Tp_allocator () noexcept
• void _M_initialize_map (size_t)
• allocator_type get_allocator () const noexcept

Protected Attributes

• _Deque_impl _M_impl

Generated by Doxygen
5.74 std::_Deque_iterator< _Tp, _Ref, _Ptr > Struct Template Reference 861

5.73.1 Detailed Description

template<typename _Tp, typename _Alloc>


class std::_Deque_base< _Tp, _Alloc >

Deque base class. This class provides the unified face for deque's allocation. This class's constructor and destructor
allocate and deallocate (but do not initialize) storage. This makes exception safety easier.
Nothing in this class ever constructs or destroys an actual Tp element. (Deque handles that itself.) Only/All memory
management is performed here.

5.73.2 Member Function Documentation

_M_initialize_map()

template<typename _Tp , typename _Alloc >


void std::_Deque_base< _Tp, _Alloc >::_M_initialize_map (
size_t __num_elements) [protected]
Layout storage.

Parameters

__num_elements The count of T's for which to allocate space at first.

Returns

Nothing.

The initial underlying memory layout is a bit complicated...


References std::max().
The documentation for this class was generated from the following file:

• stl_deque.h

5.74 std::_Deque_iterator< _Tp, _Ref, _Ptr > Struct Template Reference


#include <stl_deque.h>

Public Types

• typedef __ptr_rebind< _Ptr, _Tp > _Elt_pointer


• typedef __ptr_rebind< _Ptr, _Elt_pointer > _Map_pointer
• typedef _Deque_iterator _Self
• typedef __iter< const _Tp > const_iterator
• typedef ptrdiff_t difference_type
• typedef __iter< _Tp > iterator
• typedef std::random_access_iterator_tag iterator_category
• typedef _Ptr pointer
• typedef _Ref reference
• typedef size_t size_type
• typedef _Tp value_type

Generated by Doxygen
862

Public Member Functions

• _Deque_iterator (_Elt_pointer __x, _Map_pointer __y) noexcept


• _Deque_iterator (const _Deque_iterator &__x) noexcept
• template<typename _Iter , typename = _Require<is_same<_Self, const_iterator>, is_same<_Iter, iterator>>>
_Deque_iterator (const _Iter &__x) noexcept
• iterator _M_const_cast () const noexcept
• void _M_set_node (_Map_pointer __new_node) noexcept
• reference operator∗ () const noexcept
• _Self & operator++ () noexcept
• _Self operator++ (int) noexcept
• _Self & operator+= (difference_type __n) noexcept
• _Self & operator-- () noexcept
• _Self operator-- (int) noexcept
• _Self & operator-= (difference_type __n) noexcept
• pointer operator-> () const noexcept
• _Deque_iterator & operator= (const _Deque_iterator &)=default
• reference operator[ ] (difference_type __n) const noexcept

Static Public Member Functions

• static size_t _S_buffer_size () noexcept

Public Attributes

• _Elt_pointer _M_cur
• _Elt_pointer _M_first
• _Elt_pointer _M_last
• _Map_pointer _M_node

Friends

• _Self operator+ (const _Self &__x, difference_type __n) noexcept


• _Self operator+ (difference_type __n, const _Self &__x) noexcept
• template<typename _RefR , typename _PtrR >
difference_type operator- (const _Self &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y) noexcept
• difference_type operator- (const _Self &__x, const _Self &__y) noexcept
• _Self operator- (const _Self &__x, difference_type __n) noexcept
• strong_ordering operator<=> (const _Self &__x, const _Self &__y) noexcept
• template<typename _RefR , typename _PtrR >
bool operator== (const _Self &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y) noexcept
• bool operator== (const _Self &__x, const _Self &__y) noexcept

5.74.1 Detailed Description

template<typename _Tp, typename _Ref, typename _Ptr>


struct std::_Deque_iterator< _Tp, _Ref, _Ptr >

A deque::iterator.
Quite a bit of intelligence here. Much of the functionality of deque is actually passed off to this class. A deque holds
two of these internally, marking its valid range. Access to elements is done as offsets of either of those two, relying on
operator overloading in this class.
All the functions are op overloads except for _M_set_node.

Generated by Doxygen
5.75 __gnu_parallel::_DRandomShufflingGlobalData< _RAIter > Struct Template Reference 863

5.74.2 Member Function Documentation

_M_set_node()

template<typename _Tp , typename _Ref , typename _Ptr >


void std::_Deque_iterator< _Tp, _Ref, _Ptr >::_M_set_node (
_Map_pointer __new_node) [inline], [noexcept]
Prepares to traverse new_node. Sets everything except _M_cur, which should therefore be set by the caller immediately
afterwards, based on _M_first and _M_last.
The documentation for this struct was generated from the following files:

• stl_algobase.h
• stl_deque.h

5.75 __gnu_parallel::_DRandomShufflingGlobalData< _RAIter > Struct Template


Reference
#include <random_shuffle.h>

Public Types

• typedef _TraitsType::difference_type _DifferenceType


• typedef std::iterator_traits< _RAIter > _TraitsType
• typedef _TraitsType::value_type _ValueType

Public Member Functions

• _DRandomShufflingGlobalData (_RAIter &__source)

Public Attributes

• _ThreadIndex ∗ _M_bin_proc
• _DifferenceType ∗∗ _M_dist
• int _M_num_bins
• int _M_num_bits
• _RAIter & _M_source
• _DifferenceType ∗ _M_starts
• _ValueType ∗∗ _M_temporaries

5.75.1 Detailed Description

template<typename _RAIter>
struct __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >

Data known to every thread participating in __gnu_parallel::__parallel_random_shuffle().

5.75.2 Constructor & Destructor Documentation

_DRandomShufflingGlobalData()

template<typename _RAIter >


__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_DRandomShufflingGlobalData (
_RAIter & __source) [inline]
Constructor.

Generated by Doxygen
864

5.75.3 Member Data Documentation

_M_bin_proc

template<typename _RAIter >


_ThreadIndex∗ __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_bin_proc
Number of the thread that will further process the corresponding bin.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_dist

template<typename _RAIter >


_DifferenceType∗∗ __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_dist
Two-dimensional array to hold the thread-bin distribution.
Dimensions (_M_num_threads + 1) __x (_M_num_bins + 1).
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_num_bins

template<typename _RAIter >


int __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_num_bins
Number of bins to distribute to.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_num_bits

template<typename _RAIter >


int __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_num_bits
Number of bits needed to address the bins.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_source

template<typename _RAIter >


_RAIter& __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_source
Begin iterator of the __source.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_starts

template<typename _RAIter >


_DifferenceType∗ __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_starts
Start indexes of the threads' __chunks.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_temporaries

template<typename _RAIter >


_ValueType∗∗ __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_temporaries
Temporary arrays for each thread.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().
The documentation for this struct was generated from the following file:

• random_shuffle.h

Generated by Doxygen
5.76 __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator > Struct Template Reference 865

5.76 __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator > Struct


Template Reference
#include <random_shuffle.h>

Public Attributes

• _BinIndex __bins_end
• _BinIndex _M_bins_begin
• int _M_num_threads
• _DRandomShufflingGlobalData< _RAIter > ∗ _M_sd
• uint32_t _M_seed

5.76.1 Detailed Description

template<typename _RAIter, typename _RandomNumberGenerator>


struct __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >

Local data for a thread participating in __gnu_parallel::__parallel_random_shuffle().

5.76.2 Member Data Documentation

__bins_end

template<typename _RAIter , typename _RandomNumberGenerator >


_BinIndex __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::__bins_end
End index for bins taken care of by this thread.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs().

_M_bins_begin

template<typename _RAIter , typename _RandomNumberGenerator >


_BinIndex __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_bins_begin
Begin index for bins taken care of by this thread.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_num_threads

template<typename _RAIter , typename _RandomNumberGenerator >


int __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_num_threads
Number of threads participating in total.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_sd

template<typename _RAIter , typename _RandomNumberGenerator >


_DRandomShufflingGlobalData<_RAIter>∗ __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumber←-
Generator >::_M_sd
Pointer to global data.
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

_M_seed

template<typename _RAIter , typename _RandomNumberGenerator >


uint32_t __gnu_parallel::_DRSSorterPU< _RAIter, _RandomNumberGenerator >::_M_seed
Random _M_seed for this thread.

Generated by Doxygen
866

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().


The documentation for this struct was generated from the following file:

• random_shuffle.h

5.77 __gnu_parallel::_DummyReduct Struct Reference


#include <for_each_selectors.h>

Public Member Functions

• bool operator() (bool, bool) const

5.77.1 Detailed Description

Reduction function doing nothing.


The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.78 __gnu_debug::_Equal_to< _Type > Class Template Reference


#include <safe_sequence.h>

Public Member Functions

• _Equal_to (const _Type &__v)


• bool operator() (const _Type &__x) const

5.78.1 Detailed Description

template<typename _Type>
class __gnu_debug::_Equal_to< _Type >

A simple function object that returns true if the passed-in value is equal to the stored value.
The documentation for this class was generated from the following file:

• safe_sequence.h

5.79 __gnu_parallel::_EqualFromLess< _T1, _T2, _Compare > Class Template Reference


#include <base.h>

Generated by Doxygen
5.79 __gnu_parallel::_EqualFromLess< _T1, _T2, _Compare > Class Template Reference 867

Inheritance diagram for __gnu_parallel::_EqualFromLess< _T1, _T2, _Compare >:

std::binary_function
< _T1, _T2, bool >

__gnu_parallel::_EqualFrom
Less< _T1, _T2, _Compare >

Public Types

• typedef _T1 first_argument_type


• typedef bool result_type
• typedef _T2 second_argument_type

Public Member Functions

• _EqualFromLess (_Compare &__comp)


• bool operator() (const _T1 &__a, const _T2 &__b)

5.79.1 Detailed Description

template<typename _T1, typename _T2, typename _Compare>


class __gnu_parallel::_EqualFromLess< _T1, _T2, _Compare >

Constructs predicate for equality from strict weak ordering predicate.

5.79.2 Member Typedef Documentation

first_argument_type

_T1 std::binary_function< _T1, _T2, bool >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

bool std::binary_function< _T1, _T2, bool >::result_type [inherited]


result_type is the return type

second_argument_type

_T2 std::binary_function< _T1, _T2, bool >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this class was generated from the following file:

• base.h

Generated by Doxygen
868

5.80 __gnu_parallel::_EqualTo< _T1, _T2 > Struct Template Reference


#include <base.h>
Inheritance diagram for __gnu_parallel::_EqualTo< _T1, _T2 >:

std::binary_function
< _T1, _T2, bool >

__gnu_parallel::_EqualTo
< _T1, _T2 >

Public Types

• typedef _T1 first_argument_type


• typedef bool result_type
• typedef _T2 second_argument_type

Public Member Functions

• bool operator() (const _T1 &__t1, const _T2 &__t2) const

5.80.1 Detailed Description

template<typename _T1, typename _T2>


struct __gnu_parallel::_EqualTo< _T1, _T2 >

Similar to std::equal_to, but allows two different types.

5.80.2 Member Typedef Documentation

first_argument_type

_T1 std::binary_function< _T1, _T2, bool >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

bool std::binary_function< _T1, _T2, bool >::result_type [inherited]


result_type is the return type

second_argument_type

_T2 std::binary_function< _T1, _T2, bool >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

Generated by Doxygen
5.81 std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode > Class Template Reference 869

• base.h

5.81 std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode > Class Template


Reference
#include <regex_executor.h>

Public Types

• typedef iterator_traits< _BiIter >::value_type _CharT


• typedef _TraitsT::char_class_type _ClassT
• typedef regex_constants::match_flag_type _FlagT
• typedef _NFA< _TraitsT > _NFAT
• typedef basic_regex< _CharT, _TraitsT > _RegexT
• typedef ::vector< sub_match< _BiIter >, _Alloc > _ResultsVec

Public Member Functions

• _Executor (_BiIter __begin, _BiIter __end, _ResultsVec &__results, const _RegexT &__re, _FlagT __flags)
• bool _M_match ()
• bool _M_search ()
• bool _M_search_from_first ()

Public Attributes

• _BiIter _M_begin
• _ResultsVec _M_cur_results
• _BiIter _M_current
• const _BiIter _M_end
• _FlagT _M_flags
• bool _M_has_sol
• const _NFAT & _M_nfa
• const _RegexT & _M_re
• ::vector< pair< _BiIter, int > > _M_rep_count
• _ResultsVec & _M_results
• _State_info< __search_mode, _ResultsVec > _M_states

5.81.1 Detailed Description

template<typename _BiIter, typename _Alloc, typename _TraitsT, bool __dfs_mode>


class std::__detail::_Executor< _BiIter, _Alloc, _TraitsT, __dfs_mode >

Takes a regex and an input string and does the matching.


The _Executor class has two modes: DFS mode and BFS mode, controlled by the template parameter __dfs_mode.
The documentation for this class was generated from the following files:

• regex.h
• regex_executor.h
• regex_executor.tcc

5.82 __gnu_cxx::_ExtPtr_allocator< _Tp > Class Template Reference


#include <extptr_allocator.h>

Generated by Doxygen
870

Public Types

• typedef _Pointer_adapter< _Relative_pointer_impl< const _Tp > > const_pointer


• typedef const _Tp & const_reference
• typedef std::ptrdiff_t difference_type
• typedef _Pointer_adapter< _Relative_pointer_impl< _Tp > > pointer
• typedef _Tp & reference
• typedef std::size_t size_type
• typedef _Tp value_type

Public Member Functions

• _ExtPtr_allocator (const _ExtPtr_allocator &__rarg) noexcept


• template<typename _Up >
_ExtPtr_allocator (const _ExtPtr_allocator< _Up > &__rarg) noexcept
• const std::allocator< _Tp > & _M_getUnderlyingImp () const
• const_pointer address (const_reference __x) const noexcept
• pointer address (reference __x) const noexcept
• pointer allocate (size_type __n, const void ∗=0)
• template<typename _Up , typename... _Args>
void construct (_Up ∗__p, _Args &&... __args)
• template<typename... _Args>
void construct (pointer __p, _Args &&... __args)
• void deallocate (pointer __p, size_type __n)
• template<typename _Up >
void destroy (_Up ∗__p)
• void destroy (pointer __p)
• size_type max_size () const noexcept
• bool operator== (const _ExtPtr_allocator &__rarg) const
• template<typename _Up >
bool operator== (const _ExtPtr_allocator< _Up > &__rarg) const

Friends

• template<typename _Up >


void swap (_ExtPtr_allocator< _Up > &, _ExtPtr_allocator< _Up > &)

5.82.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::_ExtPtr_allocator< _Tp >

An example allocator which uses a non-standard pointer type.


This allocator specifies that containers use a 'relative pointer' as it's pointer type. (See ext/pointer.h) Memory allocation
in this example is still performed using std::allocator.
The documentation for this class was generated from the following file:

• extptr_allocator.h

5.83 __gnu_cxx::__detail::_Ffit_finder< _Tp > Class Template Reference


#include <bitmap_allocator.h>

Generated by Doxygen
5.84 std::_Function_base Class Reference 871

Public Types

• typedef _Block_pair argument_type


• typedef bool result_type

Public Member Functions

• std::size_t ∗ _M_get () const throw ()


• _Counter_type _M_offset () const throw ()
• bool operator() (_Block_pair __bp) throw ()

5.83.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::__detail::_Ffit_finder< _Tp >

The class which acts as a predicate for applying the first-fit memory allocation policy for the bitmap allocator.
The documentation for this class was generated from the following file:

• bitmap_allocator.h

5.84 std::_Function_base Class Reference


#include <std_function.h>
Inheritance diagram for std::_Function_base:

std::_Function_base

std::function< _Res
(_ArgTypes...)>

Public Types

• using _Manager_type

Public Member Functions

• bool _M_empty () const

Public Attributes

• _Any_data _M_functor
• _Manager_type _M_manager

Generated by Doxygen
872

Static Public Attributes

• static const size_t _M_max_align


• static const size_t _M_max_size

5.84.1 Detailed Description

Base class of all polymorphic function object wrappers.


The documentation for this class was generated from the following file:

• std_function.h

5.85 std::_Fwd_list_base< _Tp, _Alloc > Struct Template Reference


#include <forward_list.h>
Inheritance diagram for std::_Fwd_list_base< _Tp, _Alloc >:

std::_Fwd_list_base
< _Tp, _Alloc >

std::forward_list<
_Tp, _Alloc >

Public Types

• using const_iterator
• using iterator
• using pointer

Public Member Functions

• _Fwd_list_base (_Fwd_list_base &&)=default


• _Fwd_list_base (_Fwd_list_base &&__lst, _Node_alloc_type &&__a)
• _Fwd_list_base (_Fwd_list_base &&__lst, _Node_alloc_type &&__a, std::true_type)
• _Fwd_list_base (_Node_alloc_type &&__a)
• const _Node_alloc_type & _M_get_Node_allocator () const noexcept
• _Node_alloc_type & _M_get_Node_allocator () noexcept
• template<typename... _Args>
auto _M_insert_after (const_iterator __pos, _Args &&... __args) -> _Base_ptr

Generated by Doxygen
5.86 std::_Fwd_list_const_iterator< _Tp > Struct Template Reference 873

Protected Types

• using _Base_ptr
• using _Node
• using _Node_alloc_traits
• using _Node_alloc_type
• using _Node_ptr
• using _Node_traits

Protected Member Functions

• template<typename... _Args>
_Node_ptr _M_create_node (_Args &&... __args)
• void _M_destroy_node (_Node_ptr __p)
• _Base_ptr _M_erase_after (_Base_ptr __pos)
• _Base_ptr _M_erase_after (_Base_ptr __pos, _Base_ptr __last)
• _Node ∗ _M_get_node ()
• template<typename... _Args>
_Base_ptr _M_insert_after (const_iterator __pos, _Args &&... __args)
• void _M_put_node (_Node_ptr __p)

Protected Attributes

• _Fwd_list_impl _M_impl

5.85.1 Detailed Description

template<typename _Tp, typename _Alloc>


struct std::_Fwd_list_base< _Tp, _Alloc >

Base class for forward_list.


The documentation for this struct was generated from the following files:

• forward_list.h
• forward_list.tcc

5.86 std::_Fwd_list_const_iterator< _Tp > Struct Template Reference


#include <forward_list.h>

Public Types

• typedef const _Fwd_list_node< _Tp > _Node


• typedef _Fwd_list_const_iterator< _Tp > _Self
• typedef ptrdiff_t difference_type
• typedef _Fwd_list_iterator< _Tp > iterator
• typedef std::forward_iterator_tag iterator_category
• typedef const _Tp ∗ pointer
• typedef const _Tp & reference
• typedef _Tp value_type

Generated by Doxygen
874

Public Member Functions

• _Fwd_list_const_iterator (const _Fwd_list_node_base ∗__n) noexcept


• _Fwd_list_const_iterator (const iterator &__iter) noexcept
• reference operator∗ () const noexcept
• _Self & operator++ () noexcept
• _Self operator++ (int) noexcept
• pointer operator-> () const noexcept

Friends

• template<typename , typename >


struct _Fwd_list_base
• template<typename , typename >
class forward_list
• bool operator== (const _Self &__x, const _Self &__y) noexcept

5.86.1 Detailed Description

template<typename _Tp>
struct std::_Fwd_list_const_iterator< _Tp >

A forward_list::const_iterator.
All the functions are op overloads.

5.86.2 Friends And Related Symbol Documentation

operator==

template<typename _Tp >


bool operator== (
const _Self & __x,
const _Self & __y) [friend]
Forward list const_iterator equality comparison.
The documentation for this struct was generated from the following file:

• forward_list.h

5.87 std::_Fwd_list_iterator< _Tp > Struct Template Reference


#include <forward_list.h>

Public Types

• typedef _Fwd_list_node< _Tp > _Node


• typedef _Fwd_list_iterator< _Tp > _Self
• typedef ptrdiff_t difference_type
• typedef std::forward_iterator_tag iterator_category
• typedef _Tp ∗ pointer
• typedef _Tp & reference
• typedef _Tp value_type

Generated by Doxygen
5.88 std::_Fwd_list_node< _Tp > Struct Template Reference 875

Public Member Functions

• _Fwd_list_iterator (_Fwd_list_node_base ∗__n) noexcept


• reference operator∗ () const noexcept
• _Self & operator++ () noexcept
• _Self operator++ (int) noexcept
• pointer operator-> () const noexcept

Friends

• template<typename , typename >


struct _Fwd_list_base
• struct _Fwd_list_const_iterator< _Tp >
• template<typename , typename >
class forward_list
• bool operator== (const _Self &__x, const _Self &__y) noexcept

5.87.1 Detailed Description

template<typename _Tp>
struct std::_Fwd_list_iterator< _Tp >

A forward_list::iterator.
All the functions are op overloads.

5.87.2 Friends And Related Symbol Documentation

operator==

template<typename _Tp >


bool operator== (
const _Self & __x,
const _Self & __y) [friend]
Forward list iterator equality comparison.
The documentation for this struct was generated from the following file:

• forward_list.h

5.88 std::_Fwd_list_node< _Tp > Struct Template Reference


#include <forward_list.h>

Generated by Doxygen
876

Inheritance diagram for std::_Fwd_list_node< _Tp >:

std::_Fwd_list_node_base

std::_Fwd_list_node
< _Tp >

Public Types

• using _Base_ptr
• using _Node_ptr

Public Member Functions

• _Fwd_list_node_base ∗ _M_base_ptr ()
• const _Fwd_list_node_base ∗ _M_base_ptr () const
• _Node_ptr _M_node_ptr ()
• void _M_reverse_after () noexcept
• _Fwd_list_node_base ∗ _M_transfer_after (_Fwd_list_node_base ∗__begin, _Fwd_list_node_base ∗__end)
noexcept
• const _Tp ∗ _M_valptr () const noexcept
• _Tp ∗ _M_valptr () noexcept

Public Attributes

• _Fwd_list_node_base ∗ _M_next
• __gnu_cxx::__aligned_buffer< _Tp > _M_storage

5.88.1 Detailed Description

template<typename _Tp>
struct std::_Fwd_list_node< _Tp >

A helper node class for forward_list. This is just a linked list with uninitialized storage for a data value in each node.
There is a sorting utility method.
The documentation for this struct was generated from the following file:

• forward_list.h

5.89 std::_Fwd_list_node_base Struct Reference


#include <forward_list.h>

Generated by Doxygen
5.90 __gnu_parallel::_GuardedIterator< _RAIter, _Compare > Class Template Reference 877

Inheritance diagram for std::_Fwd_list_node_base:

std::_Fwd_list_node_base

std::_Fwd_list_node
< _Tp >

Public Types

• using _Base_ptr

Public Member Functions

• _Fwd_list_node_base (_Fwd_list_node_base &&__x) noexcept


• _Fwd_list_node_base (const _Fwd_list_node_base &)=delete
• _Fwd_list_node_base ∗ _M_base_ptr ()
• const _Fwd_list_node_base ∗ _M_base_ptr () const
• void _M_reverse_after () noexcept
• _Fwd_list_node_base ∗ _M_transfer_after (_Fwd_list_node_base ∗__begin, _Fwd_list_node_base ∗__end)
noexcept
• _Fwd_list_node_base & operator= (_Fwd_list_node_base &&__x) noexcept
• _Fwd_list_node_base & operator= (const _Fwd_list_node_base &)=delete

Public Attributes

• _Fwd_list_node_base ∗ _M_next

5.89.1 Detailed Description

A helper basic node class for forward_list.

This is just a linked list with nothing inside it.


There are purely list shuffling utility methods here.

The documentation for this struct was generated from the following file:

• forward_list.h

5.90 __gnu_parallel::_GuardedIterator< _RAIter, _Compare > Class Template Reference


#include <multiway_merge.h>

Generated by Doxygen
878

Public Member Functions

• _GuardedIterator (_RAIter __begin, _RAIter __end, _Compare &__comp)


• operator _RAIter () const
• std::iterator_traits< _RAIter >::value_type & operator∗ () const
• _GuardedIterator< _RAIter, _Compare > & operator++ ()

Friends

• bool operator< (const _GuardedIterator< _RAIter, _Compare > &__bi1, const _GuardedIterator< _RAIter, _←-
Compare > &__bi2)
• bool operator<= (const _GuardedIterator< _RAIter, _Compare > &__bi1, const _GuardedIterator< _RAIter, ←-
_Compare > &__bi2)

5.90.1 Detailed Description

template<typename _RAIter, typename _Compare>


class __gnu_parallel::_GuardedIterator< _RAIter, _Compare >

_Iterator wrapper supporting an implicit supremum at the end of the sequence, dominating all comparisons.
The implicit supremum comes with a performance cost.
Deriving from _RAIter is not possible since _RAIter need not be a class.

5.90.2 Constructor & Destructor Documentation

_GuardedIterator()

template<typename _RAIter , typename _Compare >


__gnu_parallel::_GuardedIterator< _RAIter, _Compare >::_GuardedIterator (
_RAIter __begin,
_RAIter __end,
_Compare & __comp) [inline]
Constructor. Sets iterator to beginning of sequence.

Parameters

__begin Begin iterator of sequence.


__end End iterator of sequence.
__comp Comparator provided for associated overloaded compare operators.

5.90.3 Member Function Documentation

operator _RAIter()

template<typename _RAIter , typename _Compare >


__gnu_parallel::_GuardedIterator< _RAIter, _Compare >::operator _RAIter () const [inline]
Convert to wrapped iterator.

Returns

Wrapped iterator.

Generated by Doxygen
5.90 __gnu_parallel::_GuardedIterator< _RAIter, _Compare > Class Template Reference 879

operator∗()

template<typename _RAIter , typename _Compare >


std::iterator_traits< _RAIter >::value_type & __gnu_parallel::_GuardedIterator< _RAIter, _Compare
>::operator∗ () const [inline]
Dereference operator.

Returns

Referenced element.

operator++()

template<typename _RAIter , typename _Compare >


_GuardedIterator< _RAIter, _Compare > & __gnu_parallel::_GuardedIterator< _RAIter, _Compare >←-
::operator++ () [inline]
Pre-increment operator.

Returns

This.

5.90.4 Friends And Related Symbol Documentation

operator<

template<typename _RAIter , typename _Compare >


bool operator< (
const _GuardedIterator< _RAIter, _Compare > & __bi1,
const _GuardedIterator< _RAIter, _Compare > & __bi2) [friend]
Compare two elements referenced by guarded iterators.

Parameters
__bi1 First iterator.
__bi2 Second iterator.

Returns

true if less.

operator<=

template<typename _RAIter , typename _Compare >


bool operator<= (
const _GuardedIterator< _RAIter, _Compare > & __bi1,
const _GuardedIterator< _RAIter, _Compare > & __bi2) [friend]
Compare two elements referenced by guarded iterators.

Parameters
__bi1 First iterator.
__bi2 Second iterator.

Generated by Doxygen
880

Returns

True if less equal.

The documentation for this class was generated from the following file:

• multiway_merge.h

5.91 __gnu_pbds::detail::pat_trie_base::_Head< _ATraits, Metadata > Struct Template


Reference
#include <pat_trie_base.hpp>
Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Head< _ATraits, Metadata >:

__gnu_pbds::detail
::pat_trie_base::_Node
_base< _ATraits, Metadata >

__gnu_pbds::detail
::pat_trie_base::_Head
< _ATraits, Metadata >

Public Types

• typedef _ATraits::const_iterator a_const_iterator


• typedef detail::rebind_traits< _Alloc, _ATraits >::const_pointer a_const_pointer
• typedef _ATraits access_traits
• typedef _Alloc allocator_type
• typedef _Node_base< _ATraits, Metadata > base_type
• typedef base_type::node_pointer node_pointer
• typedef base_type::type_traits type_traits

Public Attributes

• node_pointer m_p_max
• node_pointer m_p_min
• node_pointer m_p_parent
• const node_type m_type

5.91.1 Detailed Description

template<typename _ATraits, typename Metadata>


struct __gnu_pbds::detail::pat_trie_base::_Head< _ATraits, Metadata >

Head node for PATRICIA tree.

Generated by Doxygen
5.92 __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata > Struct Template Reference 881

The documentation for this struct was generated from the following file:

• pat_trie_base.hpp

5.92 __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata > Struct Template


Reference
#include <pat_trie_base.hpp>
Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata >:

__gnu_pbds::detail
::pat_trie_base::_Node
_base< _ATraits, Metadata >

__gnu_pbds::detail
::pat_trie_base::_Inode
< _ATraits, Metadata >

Classes

• struct const_iterator
• struct iterator

Public Types

• enum { arr_size }
• typedef detail::rebind_traits< _Alloc, node_pointer > __rebind_np
• typedef base_type::allocator_type _Alloc
• typedef base_type::access_traits access_traits
• typedef _Alloc allocator_type
• typedef _Node_base< _ATraits, Metadata > base_type
• typedef __rebind_np::pointer node_pointer_pointer
• typedef __rebind_np::reference node_pointer_reference
• typedef _Alloc::size_type size_type
• typedef base_type::type_traits type_traits
• typedef type_traits::value_type value_type

Public Member Functions

• _Inode (size_type, const a_const_iterator)


• node_pointer add_child (node_pointer, a_const_iterator, a_const_iterator, a_const_pointer)
• iterator begin ()

Generated by Doxygen
882

• const_iterator begin () const


• iterator end ()
• const_iterator end () const
• iterator get_child_it (a_const_iterator, a_const_iterator, a_const_pointer)
• node_pointer get_child_node (a_const_iterator, a_const_iterator, a_const_pointer)
• node_const_pointer get_child_node (a_const_iterator, a_const_iterator, a_const_pointer) const
• size_type get_e_ind () const
• node_const_pointer get_join_child (node_const_pointer, a_const_pointer) const
• node_pointer get_join_child (node_pointer, a_const_pointer)
• node_pointer get_lower_bound_child_node (a_const_iterator, a_const_iterator, size_type, a_const_pointer)
• leaf_pointer leftmost_descendant ()
• leaf_const_pointer leftmost_descendant () const
• a_const_iterator pref_b_it () const
• a_const_iterator pref_e_it () const
• void remove_child (iterator)
• void remove_child (node_pointer)
• void replace_child (node_pointer, a_const_iterator, a_const_iterator, a_const_pointer)
• leaf_pointer rightmost_descendant ()
• leaf_const_pointer rightmost_descendant () const
• bool should_be_mine (a_const_iterator, a_const_iterator, size_type, a_const_pointer) const
• void update_prefixes (a_const_pointer)

Public Attributes

• node_pointer m_p_parent
• const node_type m_type

5.92.1 Detailed Description

template<typename _ATraits, typename Metadata>


struct __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata >

Internal node type, PATRICIA tree.


The documentation for this struct was generated from the following file:

• pat_trie_base.hpp

5.93 __gnu_cxx::_Invalid_type Struct Reference


#include <pointer.h>

5.93.1 Detailed Description

The specialization on this type helps resolve the problem of reference to void, and eliminates the need to specialize
_Pointer_adapter for cases of void∗, const void∗, and so on.
The documentation for this struct was generated from the following file:

• pointer.h

Generated by Doxygen
5.94 __gnu_pbds::detail::pat_trie_base::_Iter< Node, Leaf, Head, Inode, Is_Forward_Iterator > Class
Template Reference 883

5.94 __gnu_pbds::detail::pat_trie_base::_Iter< Node, Leaf, Head, Inode,


Is_Forward_Iterator > Class Template Reference
#include <pat_trie_base.hpp>
Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Iter< Node, Leaf, Head, Inode, Is_Forward_Iterator >:

__gnu_pbds::detail __gnu_pbds::detail
::pat_trie_base::_CIter ::pat_trie_base::_Iter
< Node, Leaf, Head, Inode, < Node, Leaf, Head, Inode,
Is_Forward_Iterator > Is_Forward_Iterator >

Public Types

• typedef allocator_type _Alloc


• typedef base_type::allocator_type allocator_type
• typedef _CIter< Node, Leaf, Head, Inode, Is_Forward_Iterator > base_type
• typedef type_traits::const_pointer const_pointer
• typedef type_traits::const_reference const_reference
• typedef allocator_type::difference_type difference_type
• typedef base_type::head_pointer head_pointer
• typedef Inode::iterator inode_iterator
• typedef base_type::inode_pointer inode_pointer
• typedef std::bidirectional_iterator_tag iterator_category
• typedef base_type::leaf_const_pointer leaf_const_pointer
• typedef base_type::leaf_pointer leaf_pointer
• typedef base_type::node_pointer node_pointer
• typedef type_traits::pointer pointer
• typedef type_traits::reference reference
• typedef base_type::type_traits type_traits
• typedef type_traits::value_type value_type

Public Member Functions

• _Iter (const _Iter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other)
• _Iter (node_pointer p_nd=0)
• bool operator!= (const _CIter &other) const
• bool operator!= (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other) const
• reference operator∗ () const
• _Iter & operator++ ()
• _Iter operator++ (int)
• _Iter & operator-- ()
• _Iter operator-- (int)
• pointer operator-> () const
• _Iter & operator= (const _Iter &other)
• _Iter & operator= (const _Iter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other)
• bool operator== (const _CIter &other) const
• bool operator== (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other) const

Generated by Doxygen
884

Public Attributes

• node_pointer m_p_nd

Protected Member Functions

• void dec (false_type)


• void dec (true_type)
• void inc (false_type)
• void inc (true_type)

Static Protected Member Functions

• static node_pointer get_larger_sibling (node_pointer p_nd)


• static node_pointer get_smaller_sibling (node_pointer p_nd)
• static leaf_pointer leftmost_descendant (node_pointer p_nd)
• static leaf_pointer rightmost_descendant (node_pointer p_nd)

5.94.1 Detailed Description

template<typename Node, typename Leaf, typename Head, typename Inode, bool Is_Forward_Iterator>
class __gnu_pbds::detail::pat_trie_base::_Iter< Node, Leaf, Head, Inode, Is_Forward_Iterator >

Iterator.
The documentation for this class was generated from the following file:

• pat_trie_base.hpp

5.95 std::__fwdlist::_Iterator< _Const, _Ptr > Class Template Reference


#include <forward_list.h>

Public Types

• using difference_type
• using iterator_category
• using pointer
• using reference
• using value_type

Public Member Functions

• constexpr _Iterator (_Base_ptr __x) noexcept


• _Iterator (const _Iterator &)=default
• constexpr _Iterator (const _Iterator< false, _Ptr > &__i)
• constexpr reference operator∗ () const noexcept
• constexpr _Iterator & operator++ () noexcept
• constexpr _Iterator operator++ (int) noexcept
• constexpr pointer operator-> () const noexcept
• _Iterator & operator= (const _Iterator &)=default

Generated by Doxygen
5.96 __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory > Class Template Reference 885

Friends

• template<typename _Tp , typename _Allocator >


struct ::_Fwd_list_base
• template<typename _Tp , typename _Allocator >
class ::forward_list
• constexpr bool operator== (const _Iterator &__x, const _Iterator &__y) noexcept

5.95.1 Detailed Description

template<bool _Const, typename _Ptr>


class std::__fwdlist::_Iterator< _Const, _Ptr >

A forward_list iterator when the allocator uses fancy pointers.

5.95.2 Friends And Related Symbol Documentation

operator==

template<bool _Const, typename _Ptr >


bool operator== (
const _Iterator< _Const, _Ptr > & __x,
const _Iterator< _Const, _Ptr > & __y) [friend]
Forward list iterator equality comparison.
The documentation for this class was generated from the following file:

• forward_list.h

5.96 __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory > Class


Template Reference
#include <iterator.h>
Inheritance diagram for __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory >:

std::pair< _Iterator1,
_Iterator2 >

__gnu_parallel::_Iterator
Pair< _Iterator1, _Iterator2,
_IteratorCategory >

Public Types

• typedef std::iterator_traits< _Iterator1 > _TraitsType

Generated by Doxygen
886

• typedef _TraitsType::difference_type difference_type


• typedef _Iterator1 first_type
• typedef _IteratorCategory iterator_category
• typedef _IteratorPair ∗ pointer
• typedef _IteratorPair & reference
• typedef _Iterator2 second_type
• typedef void value_type

Public Member Functions

• _IteratorPair (const _Iterator1 &__first, const _Iterator2 &__second)


• operator _Iterator2 () const
• _IteratorPair operator+ (difference_type __delta) const
• _IteratorPair & operator++ ()
• const _IteratorPair operator++ (int)
• difference_type operator- (const _IteratorPair &__other) const
• _IteratorPair & operator-- ()
• const _IteratorPair operator-- (int)
• _IteratorPair & operator= (const _IteratorPair &__other)
• constexpr void swap (pair &__p) noexcept(__and_< __is_nothrow_swappable< _Iterator1 >, __is_nothrow_←-
swappable< _Iterator2 > >::value)

Public Attributes

• _Iterator1 first
• _Iterator2 second

Related Symbols

(Note that these are not member symbols.)

• constexpr enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type
swap (pair< _Iterator1, _Iterator2 > &__x, pair< _Iterator1, _Iterator2 > &__y) noexcept(noexcept(__x.swap(←-
__y)))
• constexpr bool operator== (const pair< _Iterator1, _Iterator2 > &__x, const pair< _U1, _U2 > &__y)
• constexpr common_comparison_category_t< __detail::__synth3way_t< _Iterator1, _U1 >, __detail::__←-
synth3way_t< _Iterator2, _U2 > > operator (const pair< _Iterator1, _Iterator2 > &__x, const pair< _U1,
_U2 > &__y)

5.96.1 Detailed Description

template<typename _Iterator1, typename _Iterator2, typename _IteratorCategory>


class __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory >

A pair of iterators. The usual iterator operations are applied to both child iterators.

5.96.2 Member Typedef Documentation

first_type

_Iterator1 std::pair< _Iterator1, _Iterator2 >::first_type [inherited]


The type of the first member.

Generated by Doxygen
5.96 __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory > Class Template Reference 887

second_type

_Iterator2 std::pair< _Iterator1, _Iterator2 >::second_type [inherited]


The type of the second member.

5.96.3 Member Function Documentation

swap()

void std::pair< _Iterator1, _Iterator2 >::swap (


pair< _Iterator1, _Iterator2 > & __p) [inline], [constexpr], [noexcept], [inherited]
Swap the first members and then the second members.

5.96.4 Friends And Related Symbol Documentation

operator()

common_comparison_category_t< __detail::__synth3way_t< _Iterator1, _U1 >, __detail::__synth3way←-


_t< _Iterator2, _U2 > > operator<=> (
const pair< _Iterator1, _Iterator2 > & __x,
const pair< _U1, _U2 > & __y) [related]
Defines a lexicographical order for pairs.
For two pairs of comparable types, P is ordered before Q if P.first is less than Q.first, or if P.first and
Q.first are equivalent (neither is less than the other) and P.second is less than Q.second.

operator==()

bool operator== (
const pair< _Iterator1, _Iterator2 > & __x,
const pair< _U1, _U2 > & __y) [related]
Two pairs are equal iff their members are equal.

swap()

enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type
swap (
pair< _Iterator1, _Iterator2 > & __x,
pair< _Iterator1, _Iterator2 > & __y) [related]
Swap overload for pairs. Calls std::pair::swap().
Note

This std::swap overload is not declared in C++03 mode, which has performance implications, e.g. see https←-
://gcc.gnu.org/PR38466

5.96.5 Member Data Documentation

first

_Iterator1 std::pair< _Iterator1, _Iterator2 >::first [inherited]


The first member.

second

_Iterator2 std::pair< _Iterator1, _Iterator2 >::second [inherited]


The second member.
The documentation for this class was generated from the following file:
• iterator.h

Generated by Doxygen
888

5.97 __gnu_parallel::_IteratorTriple< _Iterator1, _Iterator2, _Iterator3, _IteratorCategory >


Class Template Reference
#include <iterator.h>

Public Types

• typedef std::iterator_traits< _Iterator1 >::difference_type difference_type


• typedef _IteratorCategory iterator_category
• typedef _IteratorTriple ∗ pointer
• typedef _IteratorTriple & reference
• typedef void value_type

Public Member Functions

• _IteratorTriple (const _Iterator1 &__first, const _Iterator2 &__second, const _Iterator3 &__third)
• operator _Iterator3 () const
• _IteratorTriple operator+ (difference_type __delta) const
• _IteratorTriple & operator++ ()
• const _IteratorTriple operator++ (int)
• difference_type operator- (const _IteratorTriple &__other) const
• _IteratorTriple & operator-- ()
• const _IteratorTriple operator-- (int)
• _IteratorTriple & operator= (const _IteratorTriple &__other)

Public Attributes

• _Iterator1 _M_first
• _Iterator2 _M_second
• _Iterator3 _M_third

5.97.1 Detailed Description

template<typename _Iterator1, typename _Iterator2, typename _Iterator3, typename _IteratorCategory>


class __gnu_parallel::_IteratorTriple< _Iterator1, _Iterator2, _Iterator3, _IteratorCategory >

A triple of iterators. The usual iterator operations are applied to all three child iterators.
The documentation for this class was generated from the following file:

• iterator.h

5.98 __gnu_parallel::_Job< _DifferenceTp > Struct Template Reference


#include <workstealing.h>

Public Types

• typedef _DifferenceTp _DifferenceType

Public Attributes

• volatile _DifferenceType _M_first


• volatile _DifferenceType _M_last
• volatile _DifferenceType _M_load

Generated by Doxygen
5.99 __gnu_pbds::detail::pat_trie_base::_Leaf< _ATraits, Metadata > Struct Template Reference 889

5.98.1 Detailed Description

template<typename _DifferenceTp>
struct __gnu_parallel::_Job< _DifferenceTp >

One __job for a certain thread.

5.98.2 Member Data Documentation

_M_first

template<typename _DifferenceTp >


volatile _DifferenceType __gnu_parallel::_Job< _DifferenceTp >::_M_first
First element.
Changed by owning and stealing thread. By stealing thread, always incremented.
Referenced by __gnu_parallel::__for_each_template_random_access_workstealing().

_M_last

template<typename _DifferenceTp >


volatile _DifferenceType __gnu_parallel::_Job< _DifferenceTp >::_M_last
Last element.
Changed by owning thread only.
Referenced by __gnu_parallel::__for_each_template_random_access_workstealing().

_M_load

template<typename _DifferenceTp >


volatile _DifferenceType __gnu_parallel::_Job< _DifferenceTp >::_M_load
Number of elements, i.e. _M_last-_M_first+1.
Changed by owning thread only.
Referenced by __gnu_parallel::__for_each_template_random_access_workstealing().
The documentation for this struct was generated from the following file:

• workstealing.h

5.99 __gnu_pbds::detail::pat_trie_base::_Leaf< _ATraits, Metadata > Struct Template


Reference
#include <pat_trie_base.hpp>

Generated by Doxygen
890

Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Leaf< _ATraits, Metadata >:

__gnu_pbds::detail
::pat_trie_base::_Node
_base< _ATraits, Metadata >

__gnu_pbds::detail
::pat_trie_base::_Leaf
< _ATraits, Metadata >

Public Types

• typedef _ATraits::const_iterator a_const_iterator


• typedef detail::rebind_traits< _Alloc, _ATraits >::const_pointer a_const_pointer
• typedef _ATraits access_traits
• typedef _Alloc allocator_type
• typedef _Node_base< _ATraits, Metadata > base_type
• typedef type_traits::const_reference const_reference
• typedef detail::rebind_traits< _Alloc, _Node_base >::pointer node_pointer
• typedef type_traits::reference reference
• typedef base_type::type_traits type_traits
• typedef type_traits::value_type value_type

Public Member Functions

• _Leaf (const_reference other)


• reference value ()
• const_reference value () const

Public Attributes

• node_pointer m_p_parent
• const node_type m_type

5.99.1 Detailed Description

template<typename _ATraits, typename Metadata>


struct __gnu_pbds::detail::pat_trie_base::_Leaf< _ATraits, Metadata >

Leaf node for PATRICIA tree.


The documentation for this struct was generated from the following file:

• pat_trie_base.hpp

Generated by Doxygen
5.100 __gnu_parallel::_Less< _T1, _T2 > Struct Template Reference 891

5.100 __gnu_parallel::_Less< _T1, _T2 > Struct Template Reference


#include <base.h>
Inheritance diagram for __gnu_parallel::_Less< _T1, _T2 >:

std::binary_function
< _T1, _T2, bool >

__gnu_parallel::_Less
< _T1, _T2 >

Public Types

• typedef _T1 first_argument_type


• typedef bool result_type
• typedef _T2 second_argument_type

Public Member Functions

• bool operator() (const _T1 &__t1, const _T2 &__t2) const


• bool operator() (const _T2 &__t2, const _T1 &__t1) const

5.100.1 Detailed Description

template<typename _T1, typename _T2>


struct __gnu_parallel::_Less< _T1, _T2 >

Similar to std::less, but allows two different types.

5.100.2 Member Typedef Documentation

first_argument_type

_T1 std::binary_function< _T1, _T2, bool >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

bool std::binary_function< _T1, _T2, bool >::result_type [inherited]


result_type is the return type

second_argument_type

_T2 std::binary_function< _T1, _T2, bool >::second_argument_type [inherited]


second_argument_type is the type of the second argument

Generated by Doxygen
892

The documentation for this struct was generated from the following file:

• base.h

5.101 __gnu_parallel::_Lexicographic< _T1, _T2, _Compare > Class Template Reference


#include <multiseq_selection.h>
Inheritance diagram for __gnu_parallel::_Lexicographic< _T1, _T2, _Compare >:

std::binary_function
< std::pair< _T1, _T2
>, std::pair< _T1, _T2
>, bool >

__gnu_parallel::_Lexicographic
< _T1, _T2, _Compare >

Public Types

• typedef std::pair< _T1, _T2 > first_argument_type


• typedef bool result_type
• typedef std::pair< _T1, _T2 > second_argument_type

Public Member Functions

• _Lexicographic (_Compare &__comp)


• bool operator() (const std::pair< _T1, _T2 > &__p1, const std::pair< _T1, _T2 > &__p2) const

5.101.1 Detailed Description

template<typename _T1, typename _T2, typename _Compare>


class __gnu_parallel::_Lexicographic< _T1, _T2, _Compare >

Compare __a pair of types lexicographically, ascending.

5.101.2 Member Typedef Documentation

first_argument_type

std::pair< _T1, _T2 > std::binary_function< std::pair< _T1, _T2 >, std::pair< _T1, _T2 >, bool
>::first_argument_type [inherited]
first_argument_type is the type of the first argument

Generated by Doxygen
5.102 __gnu_parallel::_LexicographicReverse< _T1, _T2, _Compare > Class Template Reference 893

result_type

bool std::binary_function< std::pair< _T1, _T2 >, std::pair< _T1, _T2 >, bool >::result_type
[inherited]
result_type is the return type

second_argument_type

std::pair< _T1, _T2 > std::binary_function< std::pair< _T1, _T2 >, std::pair< _T1, _T2 >, bool
>::second_argument_type [inherited]
second_argument_type is the type of the second argument
The documentation for this class was generated from the following file:

• multiseq_selection.h

5.102 __gnu_parallel::_LexicographicReverse< _T1, _T2, _Compare > Class Template


Reference
#include <multiseq_selection.h>
Inheritance diagram for __gnu_parallel::_LexicographicReverse< _T1, _T2, _Compare >:

std::binary_function
< _T1, _T2, bool >

__gnu_parallel::_Lexicographic
Reverse< _T1, _T2, _Compare >

Public Types

• typedef _T1 first_argument_type


• typedef bool result_type
• typedef _T2 second_argument_type

Public Member Functions

• _LexicographicReverse (_Compare &__comp)


• bool operator() (const std::pair< _T1, _T2 > &__p1, const std::pair< _T1, _T2 > &__p2) const

5.102.1 Detailed Description

template<typename _T1, typename _T2, typename _Compare>


class __gnu_parallel::_LexicographicReverse< _T1, _T2, _Compare >

Compare __a pair of types lexicographically, descending.

Generated by Doxygen
894

5.102.2 Member Typedef Documentation

first_argument_type

_T1 std::binary_function< _T1, _T2, bool >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

bool std::binary_function< _T1, _T2, bool >::result_type [inherited]


result_type is the return type

second_argument_type

_T2 std::binary_function< _T1, _T2, bool >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this class was generated from the following file:

• multiseq_selection.h

5.103 std::_List_base< _Tp, _Alloc > Class Template Reference


#include <stl_list.h>
Inheritance diagram for std::_List_base< _Tp, _Alloc >:

std::_List_base< _Tp,
_Alloc >

std::list< _Tp, _Alloc >

Public Types

• typedef _Alloc allocator_type

Public Member Functions

• _List_base (_List_base &&)=default


• _List_base (_List_base &&__x, _Node_alloc_type &&__a)
• _List_base (_Node_alloc_type &&__a)
• _List_base (_Node_alloc_type &&__a, _List_base &&__x)
• _List_base (const _Node_alloc_type &__a) noexcept
• void _M_clear () noexcept
• size_t _M_distance (const __detail::_List_node_base ∗__first, const __detail::_List_node_base ∗__last) const
• const _Node_alloc_type & _M_get_Node_allocator () const noexcept

Generated by Doxygen
5.104 std::_List_const_iterator< _Tp > Struct Template Reference 895

• _Node_alloc_type & _M_get_Node_allocator () noexcept


• void _M_init () noexcept
• void _M_move_nodes (_List_base &&__x)
• size_t _M_node_count () const

Static Public Member Functions

• static size_t _S_distance (const __detail::_List_node_base ∗__first, const __detail::_List_node_base ∗__last)

Protected Types

• typedef __gnu_cxx::__alloc_traits< _Node_alloc_type > _Node_alloc_traits


• typedef _Tp_alloc_traits::template rebind< typename_Node_traits::_Node >::other _Node_alloc_type
• using _Node_ptr
• typedef __list::_Node_traits< _Tp, typename _Tp_alloc_traits::pointer > _Node_traits
• typedef __gnu_cxx::__alloc_traits< _Tp_alloc_type > _Tp_alloc_traits
• typedef __gnu_cxx::__alloc_traits< _Alloc >::template rebind< _Tp >::other _Tp_alloc_type

Protected Member Functions

• void _M_dec_size (size_t __n)


• void _M_destroy_node (_Node_ptr __p)
• _Node_alloc_traits::pointer _M_get_node ()
• size_t _M_get_size () const
• void _M_inc_size (size_t __n)
• void _M_put_node (_Node_ptr __p) noexcept
• void _M_set_size (size_t __n)

Protected Attributes

• _List_impl _M_impl

5.103.1 Detailed Description

template<typename _Tp, typename _Alloc>


class std::_List_base< _Tp, _Alloc >

See bits/stl_deque.h's _Deque_base for an explanation.


The documentation for this class was generated from the following files:
• stl_list.h
• list.tcc

5.104 std::_List_const_iterator< _Tp > Struct Template Reference


#include <stl_list.h>

Public Types

• typedef const _List_node< _Tp > _Node


• typedef ptrdiff_t difference_type
• typedef _List_iterator< _Tp > iterator
• typedef std::bidirectional_iterator_tag iterator_category
• typedef const _Tp ∗ pointer
• typedef const _Tp & reference
• typedef _Tp value_type

Generated by Doxygen
896

Public Member Functions

• _List_const_iterator (const __detail::_List_node_base ∗__x) noexcept


• _List_const_iterator (const iterator &__x) noexcept
• iterator _M_const_cast () const noexcept
• reference operator∗ () const noexcept
• _List_const_iterator & operator++ () noexcept
• _List_const_iterator operator++ (int) noexcept
• _List_const_iterator & operator-- () noexcept
• _List_const_iterator operator-- (int) noexcept
• pointer operator-> () const noexcept

Public Attributes

• const __detail::_List_node_base ∗ _M_node

Friends

• bool operator== (const _List_const_iterator &__x, const _List_const_iterator &__y) noexcept

5.104.1 Detailed Description

template<typename _Tp>
struct std::_List_const_iterator< _Tp >

A list::const_iterator.
All the functions are op overloads.
The documentation for this struct was generated from the following files:

• stl_iterator_base_funcs.h
• stl_list.h

5.105 std::_List_iterator< _Tp > Struct Template Reference


#include <stl_list.h>

Public Types

• typedef _List_node< _Tp > _Node


• typedef ptrdiff_t difference_type
• typedef std::bidirectional_iterator_tag iterator_category
• typedef _Tp ∗ pointer
• typedef _Tp & reference
• typedef _Tp value_type

Public Member Functions

• _List_iterator (__detail::_List_node_base ∗__x) noexcept


• _List_iterator _M_const_cast () const noexcept
• reference operator∗ () const noexcept
• _List_iterator & operator++ () noexcept
• _List_iterator operator++ (int) noexcept
• _List_iterator & operator-- () noexcept
• _List_iterator operator-- (int) noexcept
• pointer operator-> () const noexcept

Generated by Doxygen
5.106 std::_List_node< _Tp > Struct Template Reference 897

Public Attributes

• __detail::_List_node_base ∗ _M_node

Friends

• bool operator== (const _List_iterator &__x, const _List_iterator &__y) noexcept

5.105.1 Detailed Description

template<typename _Tp>
struct std::_List_iterator< _Tp >

A list::iterator.
All the functions are op overloads.
The documentation for this struct was generated from the following files:

• stl_iterator_base_funcs.h
• stl_list.h

5.106 std::_List_node< _Tp > Struct Template Reference


#include <stl_list.h>
Inheritance diagram for std::_List_node< _Tp >:

std::__detail::_List
_node_base

std::_List_node< _Tp >

Public Types

• typedef _List_node_base ∗ _Base_ptr


• typedef _List_node ∗ _Node_ptr

Public Member Functions

• _List_node_base ∗ _M_base ()
• const _List_node_base ∗ _M_base () const
• void _M_hook (_List_node_base ∗const __position) noexcept
• _Node_ptr _M_node_ptr ()
• void _M_reverse () noexcept
• void _M_transfer (_List_node_base ∗const __first, _List_node_base ∗const __last) noexcept
• void _M_unhook () noexcept

Generated by Doxygen
898

• _Tp ∗ _M_valptr ()
• _Tp const ∗ _M_valptr () const

Static Public Member Functions

• static void swap (_List_node_base &__x, _List_node_base &__y) noexcept

Public Attributes

• _List_node_base ∗ _M_next
• _List_node_base ∗ _M_prev
• __gnu_cxx::__aligned_membuf< _Tp > _M_storage

5.106.1 Detailed Description

template<typename _Tp>
struct std::_List_node< _Tp >

An actual node in the list.


The documentation for this struct was generated from the following file:

• stl_list.h

5.107 std::__detail::_List_node_base Struct Reference


#include <stl_list.h>
Inheritance diagram for std::__detail::_List_node_base:

std::__detail::_List
_node_base

std::__detail::_List
std::_List_node< _Tp >
_node_header

Public Types

• typedef _List_node_base ∗ _Base_ptr

Public Member Functions

• _List_node_base ∗ _M_base ()
• const _List_node_base ∗ _M_base () const
• void _M_hook (_List_node_base ∗const __position) noexcept
• void _M_reverse () noexcept

Generated by Doxygen
5.108 std::__detail::_List_node_header Struct Reference 899

• void _M_transfer (_List_node_base ∗const __first, _List_node_base ∗const __last) noexcept


• void _M_unhook () noexcept

Static Public Member Functions

• static void swap (_List_node_base &__x, _List_node_base &__y) noexcept

Public Attributes

• _List_node_base ∗ _M_next
• _List_node_base ∗ _M_prev

5.107.1 Detailed Description

Common part of a node in the list.


The documentation for this struct was generated from the following file:
• stl_list.h

5.108 std::__detail::_List_node_header Struct Reference


#include <stl_list.h>
Inheritance diagram for std::__detail::_List_node_header:

std::__detail::_List
_node_base

std::__detail::_List
_node_header

Public Types

• typedef _List_node_base ∗ _Base_ptr

Public Member Functions

• _List_node_header (_List_node_header &&__x) noexcept


• _List_node_base ∗ _M_base ()
• const _List_node_base ∗ _M_base () const
• void _M_hook (_List_node_base ∗const __position) noexcept
• void _M_init () noexcept
• void _M_move_nodes (_List_node_header &&__x)
• void _M_reverse () noexcept
• void _M_transfer (_List_node_base ∗const __first, _List_node_base ∗const __last) noexcept
• void _M_unhook () noexcept

Generated by Doxygen
900

Static Public Member Functions

• static void swap (_List_node_base &__x, _List_node_base &__y) noexcept

Public Attributes

• _List_node_base ∗ _M_next
• _List_node_base ∗ _M_prev
• size_t _M_size

5.108.1 Detailed Description

The list node header.


The documentation for this struct was generated from the following file:

• stl_list.h

5.109 __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser Struct Reference


#include <losertree.h>

Public Attributes

• _Tp _M_key
• int _M_source
• bool _M_sup

5.109.1 Detailed Description

template<typename _Tp, typename _Compare>


struct __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser

Internal representation of a _LoserTree element.

5.109.2 Member Data Documentation

_M_key

template<typename _Tp , typename _Compare >


_Tp __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_key
_M_key of the element in the _LoserTree.
Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__insert_start().

_M_source

template<typename _Tp , typename _Compare >


int __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_source
__index of the __source __sequence.
Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__get_min_source(), and __gnu_parallel::_LoserTreeBase< _Tp, _C

_M_sup

template<typename _Tp , typename _Compare >


bool __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sup
flag, true iff this is a "maximum" __sentinel.
Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__insert_start().
The documentation for this struct was generated from the following file:

Generated by Doxygen
5.110 __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare >::_Loser Struct Reference 901

• losertree.h

5.110 __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare >::_Loser Struct


Reference
#include <losertree.h>

Public Attributes

• const _Tp ∗ _M_keyp


• int _M_source
• bool _M_sup

5.110.1 Detailed Description

template<typename _Tp, typename _Compare>


struct __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare >::_Loser

Internal representation of _LoserTree __elements.


The documentation for this struct was generated from the following file:

• losertree.h

5.111 __gnu_parallel::_LoserTree< __stable, _Tp, _Compare > Class Template Reference


#include <losertree.h>
Inheritance diagram for __gnu_parallel::_LoserTree< __stable, _Tp, _Compare >:

__gnu_parallel::_LoserTree
Base< _Tp, _Compare >

__gnu_parallel::_LoserTree
< __stable, _Tp, _Compare >

Public Member Functions

• _LoserTree (unsigned int __k, _Compare __comp)


• void __delete_min_insert (_Tp __key, bool __sup)
• int __get_min_source ()
• void __init ()
• unsigned int __init_winner (unsigned int __root)
• void __insert_start (const _Tp &__key, int __source, bool __sup)

Generated by Doxygen
902

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_log_k
• unsigned int _M_offset

5.111.1 Detailed Description

template<bool __stable, typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTree< __stable, _Tp, _Compare >

Stable _LoserTree variant.


Provides the stable implementations of insert_start, __init_winner, __init and __delete_min_insert.
Unstable variant is done using partial specialisation below.

5.111.2 Member Function Documentation

__delete_min_insert()

template<bool __stable, typename _Tp , typename _Compare >


void __gnu_parallel::_LoserTree< __stable, _Tp, _Compare >::__delete_min_insert (
_Tp __key,
bool __sup) [inline]
Delete the smallest element and insert a new element from the previously smallest element's sequence.
This implementation is stable.

__get_min_source()

template<typename _Tp , typename _Compare >


int __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__get_min_source () [inline], [inherited]

Returns

the index of the sequence with the smallest element.

References __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers, and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::

__insert_start()

template<typename _Tp , typename _Compare >


void __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__insert_start (
const _Tp & __key,
int __source,
bool __sup) [inline], [inherited]
Initializes the sequence "_M_source" with the element "__key".

Parameters
__key the element to insert
__source __index of the __source __sequence
__sup flag that determines whether the value to insert is an explicit __supremum.

References __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_first_insert, __gnu_parallel::_LoserTreeBase< _Tp, _Compare >:


__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers, __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sou
and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sup.

Generated by Doxygen
5.112 __gnu_parallel::_LoserTree< false, _Tp, _Compare > Class Template Reference 903

5.111.3 Member Data Documentation

_M_log_k

template<typename _Tp , typename _Compare >


unsigned int __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_log_k [protected], [inherited]
log_2{_M_k}
Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase().
The documentation for this class was generated from the following file:

• losertree.h

5.112 __gnu_parallel::_LoserTree< false, _Tp, _Compare > Class Template Reference


#include <losertree.h>
Inheritance diagram for __gnu_parallel::_LoserTree< false, _Tp, _Compare >:

__gnu_parallel::_LoserTree
Base< _Tp, _Compare >

__gnu_parallel::_LoserTree
< false, _Tp, _Compare >

Public Member Functions

• _LoserTree (unsigned int __k, _Compare __comp)


• void __delete_min_insert (_Tp __key, bool __sup)
• int __get_min_source ()
• void __init ()
• unsigned int __init_winner (unsigned int __root)
• void __insert_start (const _Tp &__key, int __source, bool __sup)

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_offset

5.112.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTree< false, _Tp, _Compare >

Unstable _LoserTree variant.


Stability (non-stable here) is selected with partial specialization.

Generated by Doxygen
904

5.112.2 Member Function Documentation

__delete_min_insert()

template<typename _Tp , typename _Compare >


void __gnu_parallel::_LoserTree< false, _Tp, _Compare >::__delete_min_insert (
_Tp __key,
bool __sup) [inline]
Delete the _M_key smallest element and insert the element __key instead.

Parameters
__key the _M_key to insert
__sup true iff __key is an explicitly marked supremum

__get_min_source()

template<typename _Tp , typename _Compare >


int __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__get_min_source () [inline], [inherited]

Returns

the index of the sequence with the smallest element.

References __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers, and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::

__init_winner()

template<typename _Tp , typename _Compare >


unsigned int __gnu_parallel::_LoserTree< false, _Tp, _Compare >::__init_winner (
unsigned int __root) [inline]
Computes the winner of the competition at position "__root".
Called recursively (starting at 0) to build the initial tree.

Parameters

__root __index of the "game" to start.

__insert_start()

template<typename _Tp , typename _Compare >


void __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__insert_start (
const _Tp & __key,
int __source,
bool __sup) [inline], [inherited]
Initializes the sequence "_M_source" with the element "__key".

Parameters
__key the element to insert
__source __index of the __source __sequence
__sup flag that determines whether the value to insert is an explicit __supremum.

Generated by Doxygen
5.113 __gnu_parallel::_LoserTreeBase< _Tp, _Compare > Class Template Reference 905

References __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_first_insert, __gnu_parallel::_LoserTreeBase< _Tp, _Compare >:


__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers, __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sou
and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sup.
The documentation for this class was generated from the following file:

• losertree.h

5.113 __gnu_parallel::_LoserTreeBase< _Tp, _Compare > Class Template Reference


#include <losertree.h>
Inheritance diagram for __gnu_parallel::_LoserTreeBase< _Tp, _Compare >:

__gnu_parallel::_LoserTree
< __stable, _Tp, _Compare >
__gnu_parallel::_LoserTree
Base< _Tp, _Compare >
__gnu_parallel::_LoserTree
< false, _Tp, _Compare >

Classes

• struct _Loser

Public Member Functions

• _LoserTreeBase (unsigned int __k, _Compare __comp)


• ∼_LoserTreeBase ()
• int __get_min_source ()
• void __insert_start (const _Tp &__key, int __source, bool __sup)

Protected Attributes

• _Compare _M_comp
• bool _M_first_insert
• unsigned int _M_ik
• unsigned int _M_k
• unsigned int _M_log_k
• _Loser ∗ _M_losers
• unsigned int _M_offset

5.113.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreeBase< _Tp, _Compare >

Guarded loser/tournament tree.

Generated by Doxygen
906

The smallest element is at the top.


Guarding is done explicitly through one flag _M_sup per element, inf is not needed due to a better initialization routine.
This is a well-performing variant.

Parameters
_Tp the element type
_Compare the comparator to use, defaults to std::less<_Tp>

5.113.2 Constructor & Destructor Documentation

_LoserTreeBase()

template<typename _Tp , typename _Compare >


__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase (
unsigned int __k,
_Compare __comp) [inline]
The constructor.

Parameters

__k The number of sequences to merge.


__comp The comparator to use.

References __gnu_parallel::__rd_log2(), __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_first_insert,


__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_log_k, and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers.

∼_LoserTreeBase()
template<typename _Tp , typename _Compare >
__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::∼_LoserTreeBase () [inline]
The destructor.
References __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers.

5.113.3 Member Function Documentation

__get_min_source()

template<typename _Tp , typename _Compare >


int __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__get_min_source () [inline]

Returns

the index of the sequence with the smallest element.

References __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers, and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::

__insert_start()

template<typename _Tp , typename _Compare >


void __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__insert_start (
const _Tp & __key,
int __source,
bool __sup) [inline]
Initializes the sequence "_M_source" with the element "__key".

Generated by Doxygen
5.114 __gnu_parallel::_LoserTreePointer< __stable, _Tp, _Compare > Class Template Reference 907

Parameters
__key the element to insert
__source __index of the __source __sequence
__sup flag that determines whether the value to insert is an explicit __supremum.

References __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_first_insert, __gnu_parallel::_LoserTreeBase< _Tp, _Compare >:


__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers, __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sou
and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sup.

5.113.4 Member Data Documentation

_M_comp

template<typename _Tp , typename _Compare >


_Compare __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_comp [protected]
_Compare to use.

_M_first_insert

template<typename _Tp , typename _Compare >


bool __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_first_insert [protected]
State flag that determines whether the _LoserTree is empty.
Only used for building the _LoserTree.
Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase(), and __gnu_parallel::_LoserTreeBase< _Tp, _Co

_M_log_k

template<typename _Tp , typename _Compare >


unsigned int __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_log_k [protected]
log_2{_M_k}
Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase().

_M_losers

template<typename _Tp , typename _Compare >


_Loser∗ __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers [protected]
_LoserTree __elements.
Referenced by __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase(), __gnu_parallel::_LoserTreeBase< _Tp, _Compa
__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__get_min_source(), and __gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__
The documentation for this class was generated from the following file:

• losertree.h

5.114 __gnu_parallel::_LoserTreePointer< __stable, _Tp, _Compare > Class Template


Reference
#include <losertree.h>

Generated by Doxygen
908

Inheritance diagram for __gnu_parallel::_LoserTreePointer< __stable, _Tp, _Compare >:

__gnu_parallel::_LoserTree
PointerBase< _Tp, _Compare >

__gnu_parallel::_LoserTree
Pointer< __stable, _Tp,
_Compare >

Public Member Functions

• _LoserTreePointer (unsigned int __k, _Compare __comp=std::less< _Tp >())


• void __delete_min_insert (const _Tp &__key, bool __sup)
• int __get_min_source ()
• void __init ()
• unsigned int __init_winner (unsigned int __root)
• void __insert_start (const _Tp &__key, int __source, bool __sup)

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_offset

5.114.1 Detailed Description

template<bool __stable, typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreePointer< __stable, _Tp, _Compare >

Stable _LoserTree implementation.


The unstable variant is implemented using partial instantiation below.
The documentation for this class was generated from the following file:

• losertree.h

5.115 __gnu_parallel::_LoserTreePointer< false, _Tp, _Compare > Class Template


Reference
#include <losertree.h>

Generated by Doxygen
5.116 __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare > Class Template Reference 909

Inheritance diagram for __gnu_parallel::_LoserTreePointer< false, _Tp, _Compare >:

__gnu_parallel::_LoserTree
PointerBase< _Tp, _Compare >

__gnu_parallel::_LoserTree
Pointer< false, _Tp, _Compare >

Public Member Functions

• _LoserTreePointer (unsigned int __k, _Compare __comp=std::less< _Tp >())


• void __delete_min_insert (const _Tp &__key, bool __sup)
• int __get_min_source ()
• void __init ()
• unsigned int __init_winner (unsigned int __root)
• void __insert_start (const _Tp &__key, int __source, bool __sup)

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_offset

5.115.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreePointer< false, _Tp, _Compare >

Unstable _LoserTree implementation.


The stable variant is above.
The documentation for this class was generated from the following file:

• losertree.h

5.116 __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare > Class Template


Reference
#include <losertree.h>

Generated by Doxygen
910

Inheritance diagram for __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare >:

__gnu_parallel::_LoserTree
Pointer< __stable, _Tp,
_Compare >
__gnu_parallel::_LoserTree
PointerBase< _Tp, _Compare >
__gnu_parallel::_LoserTree
Pointer< false, _Tp, _Compare >

Classes

• struct _Loser

Public Member Functions

• _LoserTreePointerBase (unsigned int __k, _Compare __comp=std::less< _Tp >())


• int __get_min_source ()
• void __insert_start (const _Tp &__key, int __source, bool __sup)

Protected Attributes

• _Compare _M_comp
• unsigned int _M_ik
• unsigned int _M_k
• _Loser ∗ _M_losers
• unsigned int _M_offset

5.116.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreePointerBase< _Tp, _Compare >

Base class of _Loser Tree implementation using pointers.


The documentation for this class was generated from the following file:

• losertree.h

5.117 __gnu_parallel::_LoserTreePointerUnguarded< __stable, _Tp, _Compare > Class


Template Reference
#include <losertree.h>

Generated by Doxygen
5.118 __gnu_parallel::_LoserTreePointerUnguarded< false, _Tp, _Compare > Class Template Reference 911

Inheritance diagram for __gnu_parallel::_LoserTreePointerUnguarded< __stable, _Tp, _Compare >:

__gnu_parallel::_LoserTree
PointerUnguardedBase<
_Tp, _Compare >

__gnu_parallel::_LoserTree
PointerUnguarded< __stable,
_Tp, _Compare >

Public Member Functions

• _LoserTreePointerUnguarded (unsigned int __k, const _Tp &__sentinel, _Compare __comp=std::less< _Tp
>())
• void __delete_min_insert (const _Tp &__key, bool __sup)
• int __get_min_source ()
• void __init ()
• unsigned int __init_winner (unsigned int __root)
• void __insert_start (const _Tp &__key, int __source, bool)

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_offset

5.117.1 Detailed Description

template<bool __stable, typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreePointerUnguarded< __stable, _Tp, _Compare >

Stable unguarded _LoserTree variant storing pointers.


Unstable variant is implemented below using partial specialization.
The documentation for this class was generated from the following file:

• losertree.h

5.118 __gnu_parallel::_LoserTreePointerUnguarded< false, _Tp, _Compare > Class


Template Reference
#include <losertree.h>

Generated by Doxygen
912

Inheritance diagram for __gnu_parallel::_LoserTreePointerUnguarded< false, _Tp, _Compare >:

__gnu_parallel::_LoserTree
PointerUnguardedBase<
_Tp, _Compare >

__gnu_parallel::_LoserTree
PointerUnguarded< false,
_Tp, _Compare >

Public Member Functions

• _LoserTreePointerUnguarded (unsigned int __k, const _Tp &__sentinel, _Compare __comp=std::less< _Tp
>())
• void __delete_min_insert (const _Tp &__key, bool __sup)
• int __get_min_source ()
• void __init ()
• unsigned int __init_winner (unsigned int __root)
• void __insert_start (const _Tp &__key, int __source, bool)

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_offset

5.118.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreePointerUnguarded< false, _Tp, _Compare >

Unstable unguarded _LoserTree variant storing pointers.


Stable variant is above.
The documentation for this class was generated from the following file:

• losertree.h

5.119 __gnu_parallel::_LoserTreePointerUnguardedBase< _Tp, _Compare > Class


Template Reference
#include <losertree.h>

Generated by Doxygen
5.120 __gnu_parallel::_LoserTreeTraits< _Tp > Struct Template Reference 913

Inheritance diagram for __gnu_parallel::_LoserTreePointerUnguardedBase< _Tp, _Compare >:

__gnu_parallel::_LoserTree
PointerUnguarded< __stable,
_Tp, _Compare >
__gnu_parallel::_LoserTree
PointerUnguardedBase<
_Tp, _Compare >
__gnu_parallel::_LoserTree
PointerUnguarded< false,
_Tp, _Compare >

Public Member Functions

• _LoserTreePointerUnguardedBase (unsigned int __k, const _Tp &__sentinel, _Compare __comp=std::less<


_Tp >())
• int __get_min_source ()
• void __insert_start (const _Tp &__key, int __source, bool)

Protected Attributes

• _Compare _M_comp
• unsigned int _M_ik
• unsigned int _M_k
• _Loser ∗ _M_losers
• unsigned int _M_offset

5.119.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreePointerUnguardedBase< _Tp, _Compare >

Unguarded loser tree, keeping only pointers to the elements in the tree structure.
No guarding is done, therefore not a single input sequence must run empty. This is a very fast variant.
The documentation for this class was generated from the following file:

• losertree.h

5.120 __gnu_parallel::_LoserTreeTraits< _Tp > Struct Template Reference


#include <multiway_merge.h>

Static Public Attributes

• static const bool _M_use_pointer

Generated by Doxygen
914

5.120.1 Detailed Description

template<typename _Tp>
struct __gnu_parallel::_LoserTreeTraits< _Tp >

Traits for determining whether the loser tree should use pointers or copies.
The field "_M_use_pointer" is used to determine whether to use pointers in he loser trees or whether to copy the values
into the loser tree.
The default behavior is to use pointers if the data type is 4 times as big as the pointer to it.
Specialize for your data type to customize the behavior.
Example:
template<> struct _LoserTreeTraits<int> { static const bool _M_use_pointer = false; };
template<> struct _LoserTreeTraits<heavyweight_type> { static const bool _M_use_pointer = true; };

Parameters

_Tp type to give the loser tree traits for.

5.120.2 Member Data Documentation

_M_use_pointer

template<typename _Tp >


const bool __gnu_parallel::_LoserTreeTraits< _Tp >::_M_use_pointer [static]
True iff to use pointers instead of values in loser trees.
The default behavior is to use pointers if the data type is four times as big as the pointer to it.
The documentation for this struct was generated from the following file:

• multiway_merge.h

5.121 __gnu_parallel::_LoserTreeUnguarded< __stable, _Tp, _Compare > Class Template


Reference
#include <losertree.h>
Inheritance diagram for __gnu_parallel::_LoserTreeUnguarded< __stable, _Tp, _Compare >:

__gnu_parallel::_LoserTree
UnguardedBase< _Tp, _Compare >

__gnu_parallel::_LoserTree
Unguarded< __stable, _Tp,
_Compare >

Generated by Doxygen
5.122 __gnu_parallel::_LoserTreeUnguarded< false, _Tp, _Compare > Class Template Reference 915

Public Member Functions

• _LoserTreeUnguarded (unsigned int __k, const _Tp &__sentinel, _Compare __comp=std::less< _Tp >())
• void __delete_min_insert (_Tp __key, bool)
• int __get_min_source ()
• void __init ()
• unsigned int __init_winner (unsigned int __root)
• void __insert_start (const _Tp &__key, int __source, bool)

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_offset

5.121.1 Detailed Description

template<bool __stable, typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreeUnguarded< __stable, _Tp, _Compare >

Stable implementation of unguarded _LoserTree.


Unstable variant is selected below with partial specialization.
The documentation for this class was generated from the following file:

• losertree.h

5.122 __gnu_parallel::_LoserTreeUnguarded< false, _Tp, _Compare > Class Template


Reference
#include <losertree.h>
Inheritance diagram for __gnu_parallel::_LoserTreeUnguarded< false, _Tp, _Compare >:

__gnu_parallel::_LoserTree
UnguardedBase< _Tp, _Compare >

__gnu_parallel::_LoserTree
Unguarded< false, _Tp,
_Compare >

Public Member Functions

• _LoserTreeUnguarded (unsigned int __k, const _Tp &__sentinel, _Compare __comp=std::less< _Tp >())
• void __delete_min_insert (_Tp __key, bool)
• int __get_min_source ()
• void __init ()

Generated by Doxygen
916

• unsigned int __init_winner (unsigned int __root)


• void __insert_start (const _Tp &__key, int __source, bool)

Protected Attributes

• unsigned int _M_ik


• unsigned int _M_offset

5.122.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreeUnguarded< false, _Tp, _Compare >

Non-Stable implementation of unguarded _LoserTree.


Stable implementation is above.
The documentation for this class was generated from the following file:

• losertree.h

5.123 __gnu_parallel::_LoserTreeUnguardedBase< _Tp, _Compare > Class Template


Reference
#include <losertree.h>
Inheritance diagram for __gnu_parallel::_LoserTreeUnguardedBase< _Tp, _Compare >:

__gnu_parallel::_LoserTree
Unguarded< __stable, _Tp,
_Compare >
__gnu_parallel::_LoserTree
UnguardedBase< _Tp, _Compare >
__gnu_parallel::_LoserTree
Unguarded< false, _Tp,
_Compare >

Public Member Functions

• _LoserTreeUnguardedBase (unsigned int __k, const _Tp &__sentinel, _Compare __comp=std::less< _Tp >())
• int __get_min_source ()
• void __insert_start (const _Tp &__key, int __source, bool)

Protected Attributes

• _Compare _M_comp
• unsigned int _M_ik
• unsigned int _M_k
• _Loser ∗ _M_losers
• unsigned int _M_offset

Generated by Doxygen
5.124 __gnu_pbds::detail::pat_trie_base::_Metadata< Metadata, _Alloc > Struct Template Reference 917

5.123.1 Detailed Description

template<typename _Tp, typename _Compare>


class __gnu_parallel::_LoserTreeUnguardedBase< _Tp, _Compare >

Base class for unguarded _LoserTree implementation.


The whole element is copied into the tree structure.
No guarding is done, therefore not a single input sequence must run empty. Unused __sequence heads are marked
with a sentinel which is > all elements that are to be merged.
This is a very fast variant.
The documentation for this class was generated from the following file:

• losertree.h

5.124 __gnu_pbds::detail::pat_trie_base::_Metadata< Metadata, _Alloc > Struct Template


Reference
#include <pat_trie_base.hpp>

Public Types

• typedef _Alloc allocator_type


• typedef detail::rebind_traits< _Alloc, Metadata >::const_reference const_reference
• typedef Metadata metadata_type

Public Member Functions

• const_reference get_metadata () const

Public Attributes

• metadata_type m_metadata

5.124.1 Detailed Description

template<typename Metadata, typename _Alloc>


struct __gnu_pbds::detail::pat_trie_base::_Metadata< Metadata, _Alloc >

Metadata base primary template.


The documentation for this struct was generated from the following file:

• pat_trie_base.hpp

5.125 __gnu_pbds::detail::pat_trie_base::_Metadata< null_type, _Alloc > Struct Template


Reference
#include <pat_trie_base.hpp>

Public Types

• typedef _Alloc allocator_type


• typedef null_type metadata_type

Generated by Doxygen
918

5.125.1 Detailed Description

template<typename _Alloc>
struct __gnu_pbds::detail::pat_trie_base::_Metadata< null_type, _Alloc >

Specialization for null metadata.


The documentation for this struct was generated from the following file:

• pat_trie_base.hpp

5.126 __gnu_parallel::_Multiplies< _Tp1, _Tp2, _Result > Struct Template Reference


#include <base.h>
Inheritance diagram for __gnu_parallel::_Multiplies< _Tp1, _Tp2, _Result >:

std::binary_function
< _Arg1, _Arg2, _Result >

__gnu_parallel::_Multiplies
< _Tp1, _Tp2, _Result >

Public Types

• typedef _Arg1 first_argument_type


• typedef _Result result_type
• typedef _Arg2 second_argument_type

Public Member Functions

• _Result operator() (const _Tp1 &__x, const _Tp2 &__y) const

5.126.1 Detailed Description

template<typename _Tp1, typename _Tp2, typename _Result = __typeof__(∗static_cast<_Tp1∗>(0) ∗ ∗static←-


_cast<_Tp2∗>(0))>
struct __gnu_parallel::_Multiplies< _Tp1, _Tp2, _Result >

Similar to std::multiplies, but allows two different types.

5.126.2 Member Typedef Documentation

first_argument_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Arg1 std::binary_function< _Arg1, _Arg2, _Result >::first_argument_type [inherited]
first_argument_type is the type of the first argument

Generated by Doxygen
5.127 std::__fwdlist::_Node< _ValPtr > Struct Template Reference 919

result_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Result std::binary_function< _Arg1, _Arg2, _Result >::result_type [inherited]
result_type is the return type

second_argument_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Arg2 std::binary_function< _Arg1, _Arg2, _Result >::second_argument_type [inherited]
second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

• base.h

5.127 std::__fwdlist::_Node< _ValPtr > Struct Template Reference


#include <forward_list.h>
Inheritance diagram for std::__fwdlist::_Node< _ValPtr >:

std::__fwdlist::_Node
_base< __ptr_rebind<
_ValPtr, void > >

std::__fwdlist::_Node
< _ValPtr >

Public Types

• using _Base_ptr
• using _Node_ptr
• using value_type

Public Member Functions

• _Node (_Node &&)=delete


• _Base_ptr _M_base_ptr () const
• _Node_ptr _M_node_ptr ()
• void _M_reverse_after () noexcept
• _Base_ptr _M_transfer_after (_Base_ptr __begin, _Base_ptr __end) noexcept
• const value_type ∗ _M_valptr () const noexcept
• value_type ∗ _M_valptr () noexcept

Generated by Doxygen
920

Public Attributes

• _Base_ptr _M_next
• _Uninit_storage _M_u

5.127.1 Detailed Description

template<typename _ValPtr>
struct std::__fwdlist::_Node< _ValPtr >

A helper node class for forward_list.


The documentation for this struct was generated from the following file:

• forward_list.h

5.128 __gnu_pbds::detail::pat_trie_base::_Node_base< _ATraits, Metadata > Struct


Template Reference
#include <pat_trie_base.hpp>
Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Node_base< _ATraits, Metadata >:

__gnu_pbds::detail
::pat_trie_base::_Head
< _ATraits, Metadata >

__gnu_pbds::detail __gnu_pbds::detail
::pat_trie_base::_Node ::pat_trie_base::_Inode
_base< _ATraits, Metadata > < _ATraits, Metadata >

__gnu_pbds::detail
::pat_trie_base::_Leaf
< _ATraits, Metadata >

Public Types

• typedef _ATraits::const_iterator a_const_iterator


• typedef detail::rebind_traits< _Alloc, _ATraits >::const_pointer a_const_pointer
• typedef _ATraits access_traits
• typedef _Alloc allocator_type
• typedef detail::rebind_traits< _Alloc, _Node_base >::pointer node_pointer
• typedef _ATraits::type_traits type_traits

Public Member Functions

• _Node_base (node_type type)

Generated by Doxygen
5.129 std::__fwdlist::_Node_base< _VoidPtr > Struct Template Reference 921

Public Attributes

• node_pointer m_p_parent
• const node_type m_type

5.128.1 Detailed Description

template<typename _ATraits, typename Metadata>


struct __gnu_pbds::detail::pat_trie_base::_Node_base< _ATraits, Metadata >

Node base.
The documentation for this struct was generated from the following file:

• pat_trie_base.hpp

5.129 std::__fwdlist::_Node_base< _VoidPtr > Struct Template Reference


#include <forward_list.h>

Public Types

• using _Base_ptr

Public Member Functions

• _Node_base (_Node_base &&__x) noexcept


• _Node_base (const _Node_base &)=delete
• _Base_ptr _M_base_ptr () const
• void _M_reverse_after () noexcept
• _Base_ptr _M_transfer_after (_Base_ptr __begin, _Base_ptr __end) noexcept
• _Node_base & operator= (_Node_base &&__x) noexcept
• _Node_base & operator= (const _Node_base &)=delete

Public Attributes

• _Base_ptr _M_next

5.129.1 Detailed Description

template<typename _VoidPtr>
struct std::__fwdlist::_Node_base< _VoidPtr >

The node-base type for allocators that use fancy pointers.


The documentation for this struct was generated from the following file:

• forward_list.h

5.130 __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,


_CIterator, Iterator, _Alloc > Class Template Reference
#include <pat_trie_base.hpp>

Generated by Doxygen
922

Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator,
_Alloc >:

__gnu_pbds::detail __gnu_pbds::detail
::pat_trie_base::_Node ::pat_trie_base::_Node
_citer< Node, Leaf, Head, _iter< Node, Leaf, Head,
Inode, _CIterator, Iterator, Inode, _CIterator, Iterator,
_Alloc > _Alloc >

Public Types

• typedef value_type const_reference


• typedef trivial_iterator_difference_type difference_type
• typedef trivial_iterator_tag iterator_category
• typedef rebind_traits< _Alloc, metadata_type >::const_reference metadata_const_reference
• typedef Node::metadata_type metadata_type
• typedef value_type reference
• typedef _Alloc::size_type size_type
• typedef _CIterator value_type

Public Member Functions

• _Node_citer (node_pointer p_nd=0, a_const_pointer p_traits=0)


• _Node_citer get_child (size_type i) const
• metadata_const_reference get_metadata () const
• size_type num_children () const
• bool operator!= (const _Node_citer &other) const
• const_reference operator∗ () const
• bool operator== (const _Node_citer &other) const
• std::pair< a_const_iterator, a_const_iterator > valid_prefix () const

Public Attributes

• node_pointer m_p_nd
• a_const_pointer m_p_traits

Protected Types

• typedef Node::a_const_iterator a_const_iterator


• typedef Node::a_const_pointer a_const_pointer
• typedef rebind_traits< _Alloc, Inode >::const_pointer inode_const_pointer
• typedef rebind_traits< _Alloc, Inode >::pointer inode_pointer
• typedef rebind_traits< _Alloc, Leaf >::const_pointer leaf_const_pointer
• typedef rebind_traits< _Alloc, Leaf >::pointer leaf_pointer
• typedef rebind_traits< _Alloc, Node >::pointer node_pointer

Generated by Doxygen
5.130 __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >
Class Template Reference 923

5.130.1 Detailed Description

template<typename Node, typename Leaf, typename Head, typename Inode, typename _CIterator, typename
Iterator, typename _Alloc>
class __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >

Node const iterator.

5.130.2 Member Typedef Documentation

metadata_const_reference

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
rebind_traits<_Alloc,metadata_type>::const_reference __gnu_pbds::detail::pat_trie_base::_Node_citer<
Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::metadata_const_reference
Const metadata reference type.

metadata_type

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
Node::metadata_type __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _←-
CIterator, Iterator, _Alloc >::metadata_type
Metadata type.

5.130.3 Member Function Documentation

get_child()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
_Node_citer __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator,
Iterator, _Alloc >::get_child (
size_type i) const [inline]
Returns a __const node __iterator to the corresponding node's i-th child.
References std::advance().

get_metadata()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
metadata_const_reference __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::get_metadata () const [inline]
Metadata access.

num_children()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
size_type __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator,
Iterator, _Alloc >::num_children () const [inline]
Returns the number of children in the corresponding node.
References std::distance().
Referenced by __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::operator∗(),
and __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::operator∗().

Generated by Doxygen
924

operator"!=()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
bool __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator,
_Alloc >::operator!= (
const _Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc > & other)
const [inline]
Compares content (negatively) to a different iterator object.

operator∗()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
const_reference __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _←-
CIterator, Iterator, _Alloc >::operator∗ () const [inline]
Const access; returns the __const iterator∗ associated with the current leaf.
References __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::num_children().

operator==()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
bool __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator,
_Alloc >::operator== (
const _Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc > & other)
const [inline]
Compares content to a different iterator object.

valid_prefix()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
std::pair< a_const_iterator, a_const_iterator > __gnu_pbds::detail::pat_trie_base::_Node_citer<
Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::valid_prefix () const [inline]
Subtree valid prefix.
References std::make_pair().
The documentation for this class was generated from the following file:

• pat_trie_base.hpp

5.131 std::_Node_handle< _Key, _Value, _NodeAlloc > Class Template Reference


#include <node_handle.h>

Generated by Doxygen
5.131 std::_Node_handle< _Key, _Value, _NodeAlloc > Class Template Reference 925

Inheritance diagram for std::_Node_handle< _Key, _Value, _NodeAlloc >:

std::_Node_handle_common
< _Value, _NodeAlloc >

std::_Node_handle<
_Key, _Value, _NodeAlloc >

Public Types

• using allocator_type
• using key_type
• using mapped_type

Public Member Functions

• _Node_handle (_Node_handle &&) noexcept=default


• bool empty () const noexcept
• allocator_type get_allocator () const noexcept
• key_type & key () const noexcept
• mapped_type & mapped () const noexcept
• operator bool () const noexcept
• _Node_handle & operator= (_Node_handle &&) noexcept=default
• void swap (_Node_handle &__nh) noexcept

Friends

• template<typename _Key2 , typename _Value2 , typename _ValueAlloc , typename _ExtractKey , typename _Equal , typename _Hash ,
typename _RangeHash , typename _Unused , typename _RehashPolicy , typename _Traits >
class _Hashtable
• template<typename _Key2 , typename _Value2 , typename _KeyOfValue , typename _Compare , typename _ValueAlloc >
class _Rb_tree
• void swap (_Node_handle &__x, _Node_handle &__y) noexcept(noexcept(__x.swap(__y)))

5.131.1 Detailed Description

template<typename _Key, typename _Value, typename _NodeAlloc>


class std::_Node_handle< _Key, _Value, _NodeAlloc >

Node handle type for maps.


The documentation for this class was generated from the following file:

• node_handle.h

Generated by Doxygen
926

5.132 std::_Node_handle< _Value, _Value, _NodeAlloc > Class Template Reference


#include <node_handle.h>
Inheritance diagram for std::_Node_handle< _Value, _Value, _NodeAlloc >:

std::_Node_handle_common
< _Value, _NodeAlloc >

std::_Node_handle<
_Value, _Value, _NodeAlloc >

Public Types

• using allocator_type
• using value_type

Public Member Functions

• _Node_handle (_Node_handle &&) noexcept=default


• bool empty () const noexcept
• allocator_type get_allocator () const noexcept
• operator bool () const noexcept
• _Node_handle & operator= (_Node_handle &&) noexcept=default
• void swap (_Node_handle &__nh) noexcept
• value_type & value () const noexcept

Friends

• template<typename _Key2 , typename _Value2 , typename _ValueAlloc , typename _ExtractKey , typename _Equal , typename _Hash ,
typename _RangeHash , typename _Unused , typename _RehashPolicy , typename _Traits >
class _Hashtable
• template<typename _Key , typename _Val , typename _KeyOfValue , typename _Compare , typename _Alloc >
class _Rb_tree
• void swap (_Node_handle &__x, _Node_handle &__y) noexcept(noexcept(__x.swap(__y)))

5.132.1 Detailed Description

template<typename _Value, typename _NodeAlloc>


class std::_Node_handle< _Value, _Value, _NodeAlloc >

Node handle type for sets.


The documentation for this class was generated from the following file:

• node_handle.h

Generated by Doxygen
5.133 std::_Node_handle_common< _Val, _NodeAlloc > Class Template Reference 927

5.133 std::_Node_handle_common< _Val, _NodeAlloc > Class Template Reference


#include <node_handle.h>

Public Types

• using allocator_type

Public Member Functions

• bool empty () const noexcept


• allocator_type get_allocator () const noexcept
• operator bool () const noexcept

5.133.1 Detailed Description

template<typename _Val, typename _NodeAlloc>


class std::_Node_handle_common< _Val, _NodeAlloc >

Base class for node handle types of maps and sets.


The documentation for this class was generated from the following file:

• node_handle.h

5.134 std::_Node_insert_return< _Iterator, _NodeHandle > Struct Template Reference


#include <node_handle.h>

Public Attributes

• bool inserted
• _NodeHandle node
• _Iterator position

5.134.1 Detailed Description

template<typename _Iterator, typename _NodeHandle>


struct std::_Node_insert_return< _Iterator, _NodeHandle >

Return type of insert(node_handle&&) on unique maps/sets.


The documentation for this struct was generated from the following file:

• node_handle.h

5.135 __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator,


Iterator, _Alloc > Class Template Reference
#include <pat_trie_base.hpp>

Generated by Doxygen
928

Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator,
_Alloc >:

__gnu_pbds::detail __gnu_pbds::detail
::pat_trie_base::_Node ::pat_trie_base::_Node
_citer< Node, Leaf, Head, _iter< Node, Leaf, Head,
Inode, _CIterator, Iterator, Inode, _CIterator, Iterator,
_Alloc > _Alloc >

Public Types

• typedef value_type const_reference


• typedef trivial_iterator_difference_type difference_type
• typedef trivial_iterator_tag iterator_category
• typedef rebind_traits< _Alloc, metadata_type >::const_reference metadata_const_reference
• typedef Node::metadata_type metadata_type
• typedef value_type reference
• typedef base_type::size_type size_type
• typedef Iterator value_type

Public Member Functions

• _Node_iter (node_pointer p_nd=0, a_const_pointer p_traits=0)


• _Node_iter get_child (size_type i) const
• metadata_const_reference get_metadata () const
• size_type num_children () const
• bool operator!= (const _Node_citer &other) const
• reference operator∗ () const
• bool operator== (const _Node_citer &other) const
• std::pair< a_const_iterator, a_const_iterator > valid_prefix () const

Public Attributes

• node_pointer m_p_nd
• a_const_pointer m_p_traits

Protected Types

• typedef Node::a_const_iterator a_const_iterator


• typedef rebind_traits< _Alloc, Inode >::const_pointer inode_const_pointer
• typedef rebind_traits< _Alloc, Leaf >::const_pointer leaf_const_pointer
• typedef rebind_traits< _Alloc, Leaf >::pointer leaf_pointer

Generated by Doxygen
5.135 __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >
Class Template Reference 929

5.135.1 Detailed Description

template<typename Node, typename Leaf, typename Head, typename Inode, typename _CIterator, typename
Iterator, typename _Alloc>
class __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >

Node iterator.

5.135.2 Member Typedef Documentation

metadata_const_reference

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
rebind_traits<_Alloc,metadata_type>::const_reference __gnu_pbds::detail::pat_trie_base::_Node_citer<
Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::metadata_const_reference [inherited]
Const metadata reference type.

metadata_type

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
Node::metadata_type __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _←-
CIterator, Iterator, _Alloc >::metadata_type [inherited]
Metadata type.

5.135.3 Member Function Documentation

get_child()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
_Node_iter __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator,
Iterator, _Alloc >::get_child (
size_type i) const [inline]
Returns a node __iterator to the corresponding node's i-th child.
References std::advance().

get_metadata()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
metadata_const_reference __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::get_metadata () const [inline], [inherited]
Metadata access.

num_children()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
size_type __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator,
Iterator, _Alloc >::num_children () const [inline], [inherited]
Returns the number of children in the corresponding node.
References std::distance().
Referenced by __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::operator∗(),
and __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::operator∗().

Generated by Doxygen
930

operator"!=()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
bool __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator,
_Alloc >::operator!= (
const _Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc > & other)
const [inline], [inherited]
Compares content (negatively) to a different iterator object.

operator∗()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
reference __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator,
Iterator, _Alloc >::operator∗ () const [inline]
Access; returns the iterator∗ associated with the current leaf.
References __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::num_children().

operator==()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
bool __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator,
_Alloc >::operator== (
const _Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc > & other)
const [inline], [inherited]
Compares content to a different iterator object.

valid_prefix()

template<typename Node , typename Leaf , typename Head , typename Inode , typename _CIterator ,
typename Iterator , typename _Alloc >
std::pair< a_const_iterator, a_const_iterator > __gnu_pbds::detail::pat_trie_base::_Node_citer<
Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::valid_prefix () const [inline], [inherited]
Subtree valid prefix.
References std::make_pair().
The documentation for this class was generated from the following file:
• pat_trie_base.hpp

5.136 __gnu_debug::_Not_equal_to< _Type > Class Template Reference


#include <safe_sequence.h>

Public Member Functions

• _Not_equal_to (const _Type &__v)


• bool operator() (const _Type &__x) const

5.136.1 Detailed Description

template<typename _Type>
class __gnu_debug::_Not_equal_to< _Type >

A simple function object that returns true if the passed-in value is not equal to the stored value. It saves typing over
using both bind1st and not_equal.

Generated by Doxygen
5.137 std::_Not_fn< _Fn > Class Template Reference 931

The documentation for this class was generated from the following file:

• safe_sequence.h

5.137 std::_Not_fn< _Fn > Class Template Reference


#include <functional>

Public Member Functions

• template<typename _Fn2 >


constexpr _Not_fn (_Fn2 &&__fn, int)
• _Not_fn (_Not_fn &&__fn)=default
• _Not_fn (const _Not_fn &__fn)=default
• template<typename... _Args, typename = enable_if_t<!__is_invocable<_Fn &&, _Args...>::value>>
void operator() (_Args &&... __args) &&=delete
• template<typename... _Args, typename = enable_if_t<__is_invocable<_Fn &&, _Args...>::value>>
constexpr decltype(_S_not< __inv_res_t< _Fn &&, _Args... > >()) operator() (_Args &&... __args)
&&noexcept(__is_nothrow_invocable< _Fn &&, _Args... >::value &&noexcept(_S_not< __inv_res_t< _Fn
&&, _Args... > >()))
• template<typename... _Args, typename = enable_if_t<!__is_invocable<_Fn &, _Args...>::value>>
void operator() (_Args &&... __args) &=delete
• template<typename... _Args, typename = enable_if_t<__is_invocable<_Fn &, _Args...>::value>>
constexpr decltype(_S_not< __inv_res_t< _Fn &, _Args... > >()) operator() (_Args &&... __args) &noexcept(←-
__is_nothrow_invocable< _Fn &, _Args... >::value &&noexcept(_S_not< __inv_res_t< _Fn &, _Args... > >()))
• template<typename... _Args, typename = enable_if_t<!__is_invocable<_Fn const &&, _Args...>::value>>
void operator() (_Args &&... __args) const &&=delete
• template<typename... _Args, typename = enable_if_t<__is_invocable<_Fn const &&, _Args...>::value>>
constexpr decltype(_S_not< __inv_res_t< _Fn const &&, _Args... > >()) operator() (_Args &&... __args) const
&&noexcept(__is_nothrow_invocable< _Fn const &&, _Args... >::value &&noexcept(_S_not< __inv_res_t< _Fn
const &&, _Args... > >()))
• template<typename... _Args, typename = enable_if_t<!__is_invocable<_Fn const &, _Args...>::value>>
void operator() (_Args &&... __args) const &=delete
• template<typename... _Args, typename = enable_if_t<__is_invocable<_Fn const &, _Args...>::value>>
constexpr decltype(_S_not< __inv_res_t< _Fn const &, _Args... > >()) operator() (_Args &&... __args) const
&noexcept(__is_nothrow_invocable< _Fn const &, _Args... >::value &&noexcept(_S_not< __inv_res_t< _Fn
const &, _Args... > >()))

5.137.1 Detailed Description

template<typename _Fn>
class std::_Not_fn< _Fn >

Generalized negator.
The documentation for this class was generated from the following file:

• functional

5.138 __gnu_parallel::_Nothing Struct Reference


#include <for_each_selectors.h>

Public Member Functions

• template<typename _It >


void operator() (_It __i)

Generated by Doxygen
932

5.138.1 Detailed Description

Functor doing nothing.


For some __reduction tasks (this is not a function object, but is passed as __selector __dummy parameter.

5.138.2 Member Function Documentation

operator()()

template<typename _It >


void __gnu_parallel::_Nothing::operator() (
_It __i) [inline]
Functor execution.

Parameters

←- iterator referencing object.


_←-
←-
_←-
i

The documentation for this struct was generated from the following file:

• for_each_selectors.h

5.139 __gnu_parallel::_Piece< _DifferenceTp > Struct Template Reference


#include <multiway_mergesort.h>

Public Types

• typedef _DifferenceTp _DifferenceType

Public Attributes

• _DifferenceType _M_begin
• _DifferenceType _M_end

5.139.1 Detailed Description

template<typename _DifferenceTp>
struct __gnu_parallel::_Piece< _DifferenceTp >

Subsequence description.

5.139.2 Member Data Documentation

_M_begin

template<typename _DifferenceTp >


_DifferenceType __gnu_parallel::_Piece< _DifferenceTp >::_M_begin
Begin of subsequence.

Generated by Doxygen
5.140 std::_Placeholder< _Num > Struct Template Reference 933

_M_end

template<typename _DifferenceTp >


_DifferenceType __gnu_parallel::_Piece< _DifferenceTp >::_M_end
End of subsequence.
The documentation for this struct was generated from the following file:

• multiway_mergesort.h

5.140 std::_Placeholder< _Num > Struct Template Reference


#include <functional>

5.140.1 Detailed Description

template<int _Num>
struct std::_Placeholder< _Num >

The type of placeholder objects defined by libstdc++.

Since

C++11

The documentation for this struct was generated from the following file:

• functional

5.141 __gnu_parallel::_Plus< _Tp1, _Tp2, _Result > Struct Template Reference


#include <base.h>
Inheritance diagram for __gnu_parallel::_Plus< _Tp1, _Tp2, _Result >:

std::binary_function
< _Arg1, _Arg2, _Result >

__gnu_parallel::_Plus
< _Tp1, _Tp2, _Result >

Public Types

• typedef _Arg1 first_argument_type


• typedef _Result result_type
• typedef _Arg2 second_argument_type

Generated by Doxygen
934

Public Member Functions

• _Result operator() (const _Tp1 &__x, const _Tp2 &__y) const

5.141.1 Detailed Description

template<typename _Tp1, typename _Tp2, typename _Result = __typeof__(∗static_cast<_Tp1∗>(0) + ∗static←-


_cast<_Tp2∗>(0))>
struct __gnu_parallel::_Plus< _Tp1, _Tp2, _Result >

Similar to std::plus, but allows two different types.

5.141.2 Member Typedef Documentation

first_argument_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Arg1 std::binary_function< _Arg1, _Arg2, _Result >::first_argument_type [inherited]
first_argument_type is the type of the first argument

result_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Result std::binary_function< _Arg1, _Arg2, _Result >::result_type [inherited]
result_type is the return type

second_argument_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Arg2 std::binary_function< _Arg1, _Arg2, _Result >::second_argument_type [inherited]
second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

• base.h

5.142 __gnu_parallel::_PMWMSSortingData< _RAIter > Struct Template Reference


#include <multiway_mergesort.h>

Public Types

• typedef _TraitsType::difference_type _DifferenceType


• typedef std::iterator_traits< _RAIter > _TraitsType
• typedef _TraitsType::value_type _ValueType

Public Attributes

• _ThreadIndex _M_num_threads
• _DifferenceType ∗ _M_offsets
• std::vector< _Piece< _DifferenceType > > ∗ _M_pieces
• _ValueType ∗ _M_samples
• _RAIter _M_source
• _DifferenceType ∗ _M_starts
• _ValueType ∗∗ _M_temporary

Generated by Doxygen
5.142 __gnu_parallel::_PMWMSSortingData< _RAIter > Struct Template Reference 935

5.142.1 Detailed Description

template<typename _RAIter>
struct __gnu_parallel::_PMWMSSortingData< _RAIter >

Data accessed by all threads.


PMWMS = parallel multiway mergesort

5.142.2 Member Data Documentation

_M_num_threads

template<typename _RAIter >


_ThreadIndex __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_num_threads
Number of threads involved.
Referenced by __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_pu().

_M_offsets

template<typename _RAIter >


_DifferenceType∗ __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_offsets
Offsets to add to the found positions.
Referenced by __gnu_parallel::parallel_sort_mwms().

_M_pieces

template<typename _RAIter >


std::vector<_Piece<_DifferenceType> >∗ __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_pieces
Pieces of data to merge [thread][__sequence].
Referenced by __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_pu().

_M_samples

template<typename _RAIter >


_ValueType∗ __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_samples
Samples.
Referenced by __gnu_parallel::__determine_samples(), and __gnu_parallel::parallel_sort_mwms().

_M_source

template<typename _RAIter >


_RAIter __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_source
Input __begin.
Referenced by __gnu_parallel::__determine_samples(), __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_

_M_starts

template<typename _RAIter >


_DifferenceType∗ __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_starts
Start indices, per thread.
Referenced by __gnu_parallel::__determine_samples(), __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_

_M_temporary

template<typename _RAIter >


_ValueType∗∗ __gnu_parallel::_PMWMSSortingData< _RAIter >::_M_temporary

Generated by Doxygen
936

Storage in which to sort.


Referenced by __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_pu().
The documentation for this struct was generated from the following file:

• multiway_mergesort.h

5.143 __gnu_cxx::_Pointer_adapter< _Storage_policy > Class Template Reference


#include <pointer.h>

Public Types

• typedef std::ptrdiff_t difference_type


• typedef _Storage_policy::element_type element_type
• typedef std::random_access_iterator_tag iterator_category
• typedef _Pointer_adapter pointer
• typedef _Reference_type< element_type >::reference reference
• typedef _Unqualified_type< element_type >::type value_type

Public Member Functions

• template<typename _Up >


_Pointer_adapter (_Up ∗__arg)
• _Pointer_adapter (const _Pointer_adapter &__arg)
• template<typename _Up >
_Pointer_adapter (const _Pointer_adapter< _Up > &__arg)
• _Pointer_adapter (element_type ∗__arg=0)
• operator bool () const
• reference operator∗ () const
• _Pointer_adapter & operator++ ()
• _Pointer_adapter operator++ (int)
• _Pointer_adapter & operator+= (int __offset)
• _Pointer_adapter & operator+= (long __offset)
• _Pointer_adapter & operator+= (long long __offset)
• _Pointer_adapter & operator+= (short __offset)
• _Pointer_adapter & operator+= (unsigned int __offset)
• _Pointer_adapter & operator+= (unsigned long __offset)
• _Pointer_adapter & operator+= (unsigned long long __offset)
• _Pointer_adapter & operator+= (unsigned short __offset)
• template<typename _Up >
std::ptrdiff_t operator- (const _Pointer_adapter< _Up > &__rhs) const
• _Pointer_adapter & operator-- ()
• _Pointer_adapter operator-- (int)
• _Pointer_adapter & operator-= (int __offset)
• _Pointer_adapter & operator-= (long __offset)
• _Pointer_adapter & operator-= (long long __offset)
• _Pointer_adapter & operator-= (short __offset)
• _Pointer_adapter & operator-= (unsigned int __offset)
• _Pointer_adapter & operator-= (unsigned long __offset)
• _Pointer_adapter & operator-= (unsigned long long __offset)
• _Pointer_adapter & operator-= (unsigned short __offset)
• element_type ∗ operator-> () const

Generated by Doxygen
5.143 __gnu_cxx::_Pointer_adapter< _Storage_policy > Class Template Reference 937

• template<typename _Up >


_Pointer_adapter & operator= (_Up ∗__arg)
• _Pointer_adapter & operator= (const _Pointer_adapter &__arg)
• template<typename _Up >
_Pointer_adapter & operator= (const _Pointer_adapter< _Up > &__arg)
• reference operator[ ] (std::ptrdiff_t __index) const

Friends

• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, int __offset)


• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, long __offset)
• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, long long __offset)
• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, short __offset)
• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, unsigned int __offset)
• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, unsigned long __offset)
• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, unsigned long long __offset)
• _Pointer_adapter operator+ (const _Pointer_adapter &__lhs, unsigned short __offset)
• _Pointer_adapter operator+ (int __offset, const _Pointer_adapter &__rhs)
• _Pointer_adapter operator+ (long __offset, const _Pointer_adapter &__rhs)
• _Pointer_adapter operator+ (long long __offset, const _Pointer_adapter &__rhs)
• _Pointer_adapter operator+ (short __offset, const _Pointer_adapter &__rhs)
• _Pointer_adapter operator+ (unsigned int __offset, const _Pointer_adapter &__rhs)
• _Pointer_adapter operator+ (unsigned long __offset, const _Pointer_adapter &__rhs)
• _Pointer_adapter operator+ (unsigned long long __offset, const _Pointer_adapter &__rhs)
• _Pointer_adapter operator+ (unsigned short __offset, const _Pointer_adapter &__rhs)
• template<typename _Up >
std::ptrdiff_t operator- (_Up ∗__lhs, const _Pointer_adapter &__rhs)
• template<typename _Up >
std::ptrdiff_t operator- (const _Pointer_adapter &__lhs, _Up ∗__rhs)
• std::ptrdiff_t operator- (const _Pointer_adapter &__lhs, element_type ∗__rhs)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, int __offset)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, long __offset)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, long long __offset)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, short __offset)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, unsigned int __offset)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, unsigned long __offset)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, unsigned long long __offset)
• _Pointer_adapter operator- (const _Pointer_adapter &__lhs, unsigned short __offset)
• std::ptrdiff_t operator- (element_type ∗__lhs, const _Pointer_adapter &__rhs)
• std::strong_ordering operator<=> (const _Pointer_adapter &__lhs, const _Pointer_adapter &__rhs) noexcept

5.143.1 Detailed Description

template<typename _Storage_policy>
class __gnu_cxx::_Pointer_adapter< _Storage_policy >

The following provides an 'alternative pointer' that works with the containers when specified as the pointer typedef of the
allocator.
The pointer type used with the containers doesn't have to be this class, but it must support the implicit conversions,
pointer arithmetic, comparison operators, etc. that are supported by this class, and avoid raising compile-time ambigu-
ities. Because creating a working pointer can be challenging, this pointer template was designed to wrapper an easier
storage policy type, so that it becomes reusable for creating other pointer types.

Generated by Doxygen
938

A key point of this class is also that it allows container writers to 'assume' Allocator::pointer is a typedef for a normal
pointer. This class supports most of the conventions of a true pointer, and can, for instance handle implicit conversion to
const and base class pointer types. The only impositions on container writers to support extended pointers are: 1) use
the Allocator::pointer typedef appropriately for pointer types. 2) if you need pointer casting, use the __pointer_cast<>
functions from ext/cast.h. This allows pointer cast operations to be overloaded as necessary by custom pointers.
Note: The const qualifier works with this pointer adapter as follows:
_Tp∗ == _Pointer_adapter<_Std_pointer_impl<_Tp> >; const _Tp∗ == _Pointer_adapter<_Std_pointer_impl<const
_Tp> >; _Tp∗ const == const _Pointer_adapter<_Std_pointer_impl<_Tp> >; const _Tp∗ const == const _Pointer_←-
adapter<_Std_pointer_impl<const _Tp> >;
The documentation for this class was generated from the following file:

• pointer.h

5.144 __gnu_parallel::_PseudoSequence< _Tp, _DifferenceTp > Class Template


Reference
#include <base.h>

Public Types

• typedef _DifferenceTp _DifferenceType


• typedef _PseudoSequenceIterator< _Tp, uint64_t > iterator

Public Member Functions

• _PseudoSequence (const _Tp &__val, _DifferenceType __count)


• iterator begin () const
• iterator end () const

5.144.1 Detailed Description

template<typename _Tp, typename _DifferenceTp>


class __gnu_parallel::_PseudoSequence< _Tp, _DifferenceTp >

Sequence that conceptually consists of multiple copies of the same element. The copies are not stored explicitly, of
course.

Parameters

_Tp Sequence _M_value type.


_DifferenceTp Sequence difference type.

5.144.2 Constructor & Destructor Documentation

_PseudoSequence()

template<typename _Tp , typename _DifferenceTp >


__gnu_parallel::_PseudoSequence< _Tp, _DifferenceTp >::_PseudoSequence (
const _Tp & __val,
_DifferenceType __count) [inline]
Constructor.

Parameters

__val Element of the sequence.

Generated by Doxygen
5.145 __gnu_parallel::_PseudoSequenceIterator< _Tp, _DifferenceTp > Class Template Reference 939

__count Number of (virtual) copies.

5.144.3 Member Function Documentation

begin()

template<typename _Tp , typename _DifferenceTp >


iterator __gnu_parallel::_PseudoSequence< _Tp, _DifferenceTp >::begin () const [inline]
Begin iterator.

end()

template<typename _Tp , typename _DifferenceTp >


iterator __gnu_parallel::_PseudoSequence< _Tp, _DifferenceTp >::end () const [inline]
End iterator.
The documentation for this class was generated from the following file:

• base.h

5.145 __gnu_parallel::_PseudoSequenceIterator< _Tp, _DifferenceTp > Class Template


Reference
#include <base.h>

Public Types

• typedef _DifferenceTp _DifferenceType

Public Member Functions

• _PseudoSequenceIterator (const _Tp &__val, _DifferenceType __pos)


• bool operator!= (const _PseudoSequenceIterator &__i2)
• const _Tp & operator∗ () const
• _PseudoSequenceIterator & operator++ ()
• _PseudoSequenceIterator operator++ (int)
• _DifferenceType operator- (const _PseudoSequenceIterator &__i2)
• bool operator== (const _PseudoSequenceIterator &__i2)
• const _Tp & operator[ ] (_DifferenceType) const

5.145.1 Detailed Description

template<typename _Tp, typename _DifferenceTp>


class __gnu_parallel::_PseudoSequenceIterator< _Tp, _DifferenceTp >

_Iterator associated with __gnu_parallel::_PseudoSequence. If features the usual random-access iterator functionality.

Parameters

_Tp Sequence _M_value type.


_DifferenceTp Sequence difference type.

The documentation for this class was generated from the following file:

• base.h

Generated by Doxygen
940

5.146 __gnu_parallel::_QSBThreadLocal< _RAIter > Struct Template Reference


#include <balanced_quicksort.h>

Public Types

• typedef _TraitsType::difference_type _DifferenceType


• typedef std::pair< _RAIter, _RAIter > _Piece
• typedef std::iterator_traits< _RAIter > _TraitsType

Public Member Functions

• _QSBThreadLocal (int __queue_size)

Public Attributes

• volatile _DifferenceType ∗ _M_elements_leftover


• _Piece _M_global
• _Piece _M_initial
• _RestrictedBoundedConcurrentQueue< _Piece > _M_leftover_parts
• _ThreadIndex _M_num_threads

5.146.1 Detailed Description

template<typename _RAIter>
struct __gnu_parallel::_QSBThreadLocal< _RAIter >

Information local to one thread in the parallel quicksort run.

5.146.2 Member Typedef Documentation

_Piece

template<typename _RAIter >


std::pair<_RAIter, _RAIter> __gnu_parallel::_QSBThreadLocal< _RAIter >::_Piece
Continuous part of the sequence, described by an iterator pair.

5.146.3 Constructor & Destructor Documentation

_QSBThreadLocal()

template<typename _RAIter >


__gnu_parallel::_QSBThreadLocal< _RAIter >::_QSBThreadLocal (
int __queue_size) [inline]
Constructor.

Parameters

__queue_size size of the work-stealing queue.

Generated by Doxygen
5.147 std::__detail::_Quoted_string< _String, _CharT > Struct Template Reference 941

5.146.4 Member Data Documentation

_M_elements_leftover

template<typename _RAIter >


volatile _DifferenceType∗ __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_elements_leftover
Pointer to a counter of elements left over to sort.
Referenced by __gnu_parallel::__qsb_conquer(), and __gnu_parallel::__qsb_local_sort_with_helping().

_M_global

template<typename _RAIter >


_Piece __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_global
The complete sequence to sort.

_M_initial

template<typename _RAIter >


_Piece __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_initial
Initial piece to work on.
Referenced by __gnu_parallel::__qsb_conquer(), and __gnu_parallel::__qsb_local_sort_with_helping().

_M_leftover_parts

template<typename _RAIter >


_RestrictedBoundedConcurrentQueue<_Piece> __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_←-
leftover_parts
Work-stealing queue.
Referenced by __gnu_parallel::__qsb_local_sort_with_helping().

_M_num_threads

template<typename _RAIter >


_ThreadIndex __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_num_threads
Number of threads involved in this algorithm.
Referenced by __gnu_parallel::__qsb_local_sort_with_helping().
The documentation for this struct was generated from the following file:

• balanced_quicksort.h

5.147 std::__detail::_Quoted_string< _String, _CharT > Struct Template Reference


#include <quoted_string.h>

Public Member Functions

• _Quoted_string (_String __str, _CharT __del, _CharT __esc)


• _Quoted_string & operator= (_Quoted_string &)=delete

Public Attributes

• _CharT _M_delim
• _CharT _M_escape
• _String _M_string

Generated by Doxygen
942

5.147.1 Detailed Description

template<typename _String, typename _CharT>


struct std::__detail::_Quoted_string< _String, _CharT >

Struct for delimited strings.


The documentation for this struct was generated from the following file:
• quoted_string.h

5.148 __gnu_parallel::_RandomNumber Class Reference


#include <random_number.h>

Public Member Functions

• _RandomNumber ()
• _RandomNumber (uint32_t __seed, uint64_t _M_supremum=0x100000000ULL)
• unsigned long __genrand_bits (int __bits)
• uint32_t operator() ()
• uint32_t operator() (uint64_t local_supremum)

5.148.1 Detailed Description

Random number generator, based on the Mersenne twister.

5.148.2 Constructor & Destructor Documentation

_RandomNumber() [1/2]

__gnu_parallel::_RandomNumber::_RandomNumber () [inline]
Default constructor. Seed with 0.

_RandomNumber() [2/2]

__gnu_parallel::_RandomNumber::_RandomNumber (
uint32_t __seed,
uint64_t _M_supremum = 0x100000000ULL) [inline]
Constructor.

Parameters
__seed Random __seed.
_M_supremum Generate integer random numbers in the interval [0,_M_supremum).

5.148.3 Member Function Documentation

__genrand_bits()

unsigned long __gnu_parallel::_RandomNumber::__genrand_bits (


int __bits) [inline]
Generate a number of random bits, run-time parameter.

Parameters

__bits Number of bits to generate.

Generated by Doxygen
5.149 __gnu_cxx::_Relative_pointer_impl< _Tp > Class Template Reference 943

operator()() [1/2]

uint32_t __gnu_parallel::_RandomNumber::operator() () [inline]


Generate unsigned random 32-bit integer.

operator()() [2/2]

uint32_t __gnu_parallel::_RandomNumber::operator() (
uint64_t local_supremum) [inline]
Generate unsigned random 32-bit integer in the interval [0,local_supremum).
The documentation for this class was generated from the following file:
• random_number.h

5.149 __gnu_cxx::_Relative_pointer_impl< _Tp > Class Template Reference


#include <pointer.h>

Public Types

• typedef _Tp element_type

Public Member Functions

• _Tp ∗ get () const


• bool operator< (const _Relative_pointer_impl &__rarg) const
• bool operator== (const _Relative_pointer_impl &__rarg) const
• void set (_Tp ∗__arg)

5.149.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::_Relative_pointer_impl< _Tp >

A storage policy for use with _Pointer_adapter<> which stores the pointer's address as an offset value which is relative
to its own address.
This is intended for pointers within shared memory regions which might be mapped at different addresses by different
processes. For null pointers, a value of 1 is used. (0 is legitimate sometimes for nodes in circularly linked lists) This
value was chosen as the least likely to generate an incorrect null, As there is no reason why any normal pointer would
point 1 byte into its own pointer address.
The documentation for this class was generated from the following file:
• pointer.h

5.150 __gnu_cxx::_Relative_pointer_impl< const _Tp > Class Template Reference


#include <pointer.h>

Public Types

• typedef const _Tp element_type

Public Member Functions

• const _Tp ∗ get () const


• bool operator< (const _Relative_pointer_impl &__rarg) const
• bool operator== (const _Relative_pointer_impl &__rarg) const
• void set (const _Tp ∗__arg)

Generated by Doxygen
944

5.150.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::_Relative_pointer_impl< const _Tp >

Relative_pointer_impl needs a specialization for const T because of the casting done during pointer arithmetic.
The documentation for this class was generated from the following file:
• pointer.h

5.151 __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp > Class Template


Reference
#include <queue.h>

Public Member Functions

• _RestrictedBoundedConcurrentQueue (_SequenceIndex __max_size)


• ∼_RestrictedBoundedConcurrentQueue ()
• bool pop_back (_Tp &__t)
• bool pop_front (_Tp &__t)
• void push_front (const _Tp &__t)

5.151.1 Detailed Description

template<typename _Tp>
class __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >

Double-ended queue of bounded size, allowing lock-free atomic access. push_front() and pop_front() must not be called
concurrently to each other, while pop_back() can be called concurrently at all times. empty(), size(), and top()
are intentionally not provided. Calling them would not make sense in a concurrent setting.

Parameters

_Tp Contained element type.

5.151.2 Constructor & Destructor Documentation

_RestrictedBoundedConcurrentQueue()

template<typename _Tp >


__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::_RestrictedBoundedConcurrentQueue (
_SequenceIndex __max_size) [inline]
Constructor. Not to be called concurrent, of course.

Parameters

__max_size Maximal number of elements to be contained.

References __gnu_parallel::__encode2().

∼_RestrictedBoundedConcurrentQueue()
template<typename _Tp >
__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::∼_RestrictedBoundedConcurrentQueue ()
[inline]
Destructor. Not to be called concurrent, of course.

Generated by Doxygen
5.152 __gnu_debug::_Safe_container< _SafeContainer, _Alloc, _SafeBase, _IsCxx11AllocatorAware > Class
Template Reference 945

5.151.3 Member Function Documentation

pop_back()

template<typename _Tp >


bool __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_back (
_Tp & __t) [inline]
Pops one element from the queue at the front end. Must not be called concurrently with pop_front().
References __gnu_parallel::__compare_and_swap(), __gnu_parallel::__decode2(), and __gnu_parallel::__encode2().

pop_front()

template<typename _Tp >


bool __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_front (
_Tp & __t) [inline]
Pops one element from the queue at the front end. Must not be called concurrently with pop_front().
References __gnu_parallel::__compare_and_swap(), __gnu_parallel::__decode2(), and __gnu_parallel::__encode2().

push_front()

template<typename _Tp >


void __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::push_front (
const _Tp & __t) [inline]
Pushes one element into the queue at the front end. Must not be called concurrently with pop_front().
References __gnu_parallel::__decode2(), __gnu_parallel::__encode2(), and __gnu_parallel::__fetch_and_add().
The documentation for this class was generated from the following file:

• queue.h

5.152 __gnu_debug::_Safe_container< _SafeContainer, _Alloc, _SafeBase,


_IsCxx11AllocatorAware > Class Template Reference
#include <safe_container.h>
Inheritance diagram for __gnu_debug::_Safe_container< _SafeContainer, _Alloc, _SafeBase, _IsCxx11AllocatorAware

Generated by Doxygen
946

>:

__gnu_debug::basic
_string< _CharT, _Traits,
_Allocator >

std::__debug::deque
< _Tp, _Allocator >

std::__debug::forward
_list< _Tp, _Alloc >

std::__debug::list
< _Tp, _Allocator >

__gnu_debug::_Safe
std::__debug::unordered
_container< _SafeContainer,
_map< _Key, _Tp, _Hash,
_Alloc, _SafeBase, _IsCxx11Allocator
_Pred, _Alloc >
Aware >

std::__debug::unordered
_multimap< _Key, _Tp,
_Hash, _Pred, _Alloc >

std::__debug::unordered
_multiset< _Value, _Hash,
_Pred, _Alloc >

std::__debug::unordered
_set< _Value, _Hash,
_Pred, _Alloc >

std::__debug::vector
std::__debug::vector
< _Tp, std::allocator
< _Tp, _Allocator >
< _Tp > >

Protected Member Functions

• _Safe_container (_Safe_container &&)=default


• constexpr _Safe_container (_Safe_container &&__x, const _Alloc &__a)
• _Safe_container (const _Safe_container &)=default
• constexpr void _M_swap (_Safe_container &__x) noexcept
• constexpr _Safe_container & operator= (_Safe_container &&__x) noexcept
• constexpr _Safe_container & operator= (const _Safe_container &) noexcept

5.152.1 Detailed Description

template<typename _SafeContainer, typename _Alloc, template< typename > class _SafeBase, bool _Is←-
Cxx11AllocatorAware = true>
class __gnu_debug::_Safe_container< _SafeContainer, _Alloc, _SafeBase, _IsCxx11AllocatorAware >

Safe class dealing with some allocator dependent operations.


The documentation for this class was generated from the following file:

• safe_container.h

5.153 __gnu_debug::_Safe_forward_list< _SafeSequence > Class Template Reference


#include <forward_list>

Generated by Doxygen
5.153 __gnu_debug::_Safe_forward_list< _SafeSequence > Class Template Reference 947

Inheritance diagram for __gnu_debug::_Safe_forward_list< _SafeSequence >:

__gnu_debug::_Safe
_sequence_base

__gnu_debug::_Safe
_sequence< _SafeSequence >

__gnu_debug::_Safe
_forward_list< _SafeSequence >

Public Member Functions

• void _M_invalidate_if (_Predicate __pred)


• void _M_transfer_from_if (_Safe_sequence &__from, _Predicate __pred)

Public Attributes

• _Safe_iterator_base ∗ _M_const_iterators
• _Safe_iterator_base ∗ _M_iterators
• unsigned int _M_version

Protected Member Functions

• void _M_detach_all ()
• void _M_detach_singular ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()
• void _M_invalidate_all ()
• void _M_invalidate_all () const
• void _M_revalidate_singular ()
• void _M_swap (_Safe_sequence_base &) noexcept

5.153.1 Detailed Description

template<typename _SafeSequence>
class __gnu_debug::_Safe_forward_list< _SafeSequence >

Special iterators swap and invalidation for forward_list because of the before_begin iterator.

Generated by Doxygen
948

5.153.2 Member Function Documentation

_M_detach_all()

void __gnu_debug::_Safe_sequence_base::_M_detach_all () [protected], [inherited]


Detach all iterators, leaving them singular.
Referenced by __gnu_debug::_Safe_sequence_base::∼_Safe_sequence_base().

_M_detach_singular()

void __gnu_debug::_Safe_sequence_base::_M_detach_singular () [protected], [inherited]


Detach all singular iterators.

Postcondition

for all iterators i attached to this sequence, i->_M_version == _M_version.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_sequence.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_invalidate_all()

void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const [inline], [protected], [inherited]


Invalidates all iterators.
References __gnu_debug::_Safe_sequence_base::_M_version.

_M_invalidate_if()

void __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if (


_Predicate __pred) [inherited]
Invalidates all iterators x that reference this sequence, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal iterators nested in the safe ones.
References __gnu_debug::_Safe_iterator_base::_M_next, and __gnu_debug::_Safe_iterator_base::_M_prior.

_M_revalidate_singular()

void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () [protected], [inherited]


Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before
(but for some reason, such as an exception, need to become valid again).

_M_transfer_from_if()

void __gnu_debug::_Safe_sequence< _SafeSequence >::_M_transfer_from_if (


_Safe_sequence< _SafeSequence > & __from,
_Predicate __pred) [inherited]
Transfers all iterators x that reference from sequence, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal iterators nested in the safe ones.

5.153.3 Member Data Documentation

_M_const_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_const_iterators [mutable], [inherited]

Generated by Doxygen
5.154 __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category > Class Template Reference 949

The list of constant iterators that reference this container.


Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_iterators [mutable], [inherited]


The list of mutable iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_version

unsigned int __gnu_debug::_Safe_sequence_base::_M_version [mutable], [inherited]


The container version number. This number may never be 0.
Referenced by __gnu_debug::_Safe_sequence_base::_M_invalidate_all(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Catego
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().
The documentation for this class was generated from the following file:

• debug/forward_list

5.154 __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category > Class Template


Reference
#include <safe_iterator.h>
Inheritance diagram for __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >:

__gnu_debug::_Safe
_iterator_base

__gnu_debug::_Safe
_iterator< _Iterator,
_Sequence, _Category >

Public Types

• typedef _Safe_iterator< _Iterator, _Sequence, iterator_category > _Self


• typedef _Traits::difference_type difference_type
• typedef _Traits::iterator_category iterator_category
• typedef _Iterator iterator_type
• typedef _Traits::pointer pointer
• typedef _Traits::reference reference
• typedef _Traits::value_type value_type

Generated by Doxygen
950

Public Member Functions

• constexpr _Safe_iterator () noexcept


• constexpr _Safe_iterator (_Iterator __i, const _Safe_sequence_base ∗__seq) noexcept
• constexpr _Safe_iterator (_Safe_iterator &&__x) noexcept
• constexpr _Safe_iterator (const _Safe_iterator &__x) noexcept
• template<typename _MutableIterator >
constexpr _Safe_iterator (const _Safe_iterator< _MutableIterator, _Sequence, typename __gnu_cxx::__enable←-
_if< _IsConstant::__value &&std::__are_same< _MutableIterator, _OtherIterator >::__value, _Category >::_←-
_type > &__x) noexcept
• void _M_attach (_Safe_sequence_base ∗__seq)
• void _M_attach_single (_Safe_sequence_base ∗__seq)
• bool _M_attached_to (const _Safe_sequence_base ∗__seq) const
• bool _M_before_dereferenceable () const
• template<typename _Diff >
bool _M_can_advance (const std::pair< _Diff, _Distance_precision > &__dist, int __way) const
• bool _M_can_advance (difference_type __n, bool __strict=false) const
• bool _M_can_compare (const _Safe_iterator_base &__x) const throw ()
• bool _M_dereferenceable () const
• void _M_detach_single () throw ()
• _Distance_traits< _Iterator >::__type _M_get_distance_from_begin () const
• _Distance_traits< _Iterator >::__type _M_get_distance_to (const _Safe_iterator &__rhs) const
• _Distance_traits< _Iterator >::__type _M_get_distance_to_end () const
• __gnu_cxx::__conditional_type< _IsConstant::__value, const_Sequence ∗, _Sequence ∗ >::__type _M_get_←-
sequence () const
• bool _M_incrementable () const
• void _M_invalidate ()
• bool _M_is_before_begin () const
• constexpr bool _M_is_begin () const
• bool _M_is_beginnest () const
• bool _M_is_end () const
• void _M_reset () throw ()
• bool _M_singular () const throw ()
• void _M_unlink () throw ()
• bool _M_valid_range (const _Safe_iterator &__rhs, std::pair< difference_type, _Distance_precision > &__dist,
bool __check_dereferenceable=true) const
• bool _M_value_initialized () const
• constexpr const _Iterator & base () const noexcept
• constexpr _Iterator & base () noexcept
• constexpr operator _Iterator () const noexcept
• constexpr reference operator∗ () const noexcept
• constexpr _Safe_iterator & operator++ () noexcept
• constexpr _Safe_iterator operator++ (int) noexcept
• constexpr pointer operator-> () const noexcept
• constexpr _Safe_iterator & operator= (_Safe_iterator &&__x) noexcept
• constexpr _Safe_iterator & operator= (const _Safe_iterator &__x) noexcept

Static Public Member Functions

• static constexpr bool _S_constant ()

Generated by Doxygen
5.154 __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category > Class Template Reference 951

Public Attributes

• _Safe_iterator_base ∗ _M_next
• _Safe_iterator_base ∗ _M_prior
• _Safe_sequence_base ∗ _M_sequence
• unsigned int _M_version

Protected Types

• typedef std::__are_same< typename _Sequence::_Base::const_iterator, _Iterator > _IsConstant


• typedef __gnu_cxx::__conditional_type< _IsConstant::__value, typename_Sequence::_Base::iterator, typename←-
_Sequence::_Base::const_iterator >::__type _OtherIterator

Protected Member Functions

• constexpr _Safe_iterator (const _Safe_iterator &__x, _Unchecked) noexcept


• void _M_attach (_Safe_sequence_base ∗__seq, bool __constant)
• void _M_attach_single (_Safe_sequence_base ∗__seq, bool __constant) throw ()
• void _M_detach ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()

Friends

• template<typename _IteR >


constexpr friend bool operator== (const _Self &__lhs, const _Safe_iterator< _IteR, _Sequence, iterator_category
> &__rhs) noexcept
• constexpr friend bool operator== (const _Self &__lhs, const _Self &__rhs) noexcept

5.154.1 Detailed Description

template<typename _Iterator, typename _Sequence, typename _Category = typename std::iterator_traits<_←-


Iterator>::iterator_category>
class __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >

Safe iterator wrapper.


The class template _Safe_iterator is a wrapper around an iterator that tracks the iterator's movement among sequences
and checks that operations performed on the "safe" iterator are legal. In additional to the basic iterator operations (which
are validated, and then passed to the underlying iterator), _Safe_iterator has member functions for iterator invalidation,
attaching/detaching the iterator from sequences, and querying the iterator's state.
Note that _Iterator must be the first base class so that it gets initialized before the iterator is being attached to the
container's list of iterators and it is being detached before _Iterator get destroyed. Otherwise it would result in a data
race.

5.154.2 Constructor & Destructor Documentation

_Safe_iterator() [1/5]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator () [inline],
[constexpr], [noexcept]

Postcondition

the iterator is singular and unattached

Generated by Doxygen
952

_Safe_iterator() [2/5]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator (
_Iterator __i,
const _Safe_sequence_base ∗ __seq) [inline], [constexpr], [noexcept]
Safe iterator construction from an unsafe iterator and its sequence.

Precondition

seq is not NULL

Postcondition

this is not singular

_Safe_iterator() [3/5]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator (
const _Safe_iterator< _Iterator, _Sequence, _Category > & __x) [inline], [constexpr],
[noexcept]
Copy construction.
References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach(), __gnu_debug::_Safe_iterator_base::_M_se
__gnu_debug::_Safe_iterator_base::_M_singular(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_in

_Safe_iterator() [4/5]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator (
_Safe_iterator< _Iterator, _Sequence, _Category > && __x) [inline], [constexpr],
[noexcept]
Move construction.
Postcondition

__x is singular and unattached

References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach(), __gnu_debug::_Safe_iterator_base::_M_de


__gnu_debug::_Safe_iterator_base::_M_sequence, __gnu_debug::_Safe_iterator_base::_M_singular(), __gnu_debug::_Safe_iterator< _I
and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base().

_Safe_iterator() [5/5]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
template<typename _MutableIterator >
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator (
const _Safe_iterator< _MutableIterator, _Sequence, typename __gnu_cxx::__enable_if<
_IsConstant::__value &&std::__are_same< _MutableIterator, _OtherIterator >::__value, _Category
>::__type > & __x) [inline], [constexpr], [noexcept]
Converting constructor from a mutable iterator to a constant iterator.
References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach(), __gnu_debug::_Safe_iterator_base::_M_se
__gnu_debug::_Safe_iterator_base::_M_singular(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_in

Generated by Doxygen
5.154 __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category > Class Template Reference 953

5.154.3 Member Function Documentation

_M_attach() [1/2]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
void __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach (
_Safe_sequence_base ∗ __seq) [inline]
Attach iterator to the given sequence.
References __gnu_debug::_Safe_iterator_base::_M_attach(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_S
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence
and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=().

_M_attach() [2/2]

void __gnu_debug::_Safe_iterator_base::_M_attach (
_Safe_sequence_base ∗ __seq,
bool __constant) [protected], [inherited]
Attaches this iterator to the given sequence, detaching it from whatever sequence it was attached to originally. If the
new sequence is the NULL pointer, the iterator is left unattached.
Referenced by __gnu_debug::_Safe_iterator_base::_Safe_iterator_base(), __gnu_debug::_Safe_iterator_base::_Safe_iterator_base(),
and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach().

_M_attach_single() [1/2]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
void __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach_single (
_Safe_sequence_base ∗ __seq) [inline]
Likewise, but not thread-safe.
References __gnu_debug::_Safe_iterator_base::_M_attach_single(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category

_M_attach_single() [2/2]

void __gnu_debug::_Safe_iterator_base::_M_attach_single (
_Safe_sequence_base ∗ __seq,
bool __constant) throw ( ) [protected], [inherited]
Likewise, but not thread-safe.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach_single().

_M_attached_to()

bool __gnu_debug::_Safe_iterator_base::_M_attached_to (
const _Safe_sequence_base ∗ __seq) const [inline], [inherited]
Determines if we are attached to the given sequence.
References __gnu_debug::_Safe_iterator_base::_M_sequence.

_M_before_dereferenceable()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_before_dereferenceable ()
const [inline]
Is the iterator before a dereferenceable one?

Generated by Doxygen
954

References __gnu_debug::__base(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_incrementable(),


and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base().

_M_can_compare()

bool __gnu_debug::_Safe_iterator_base::_M_can_compare (
const _Safe_iterator_base & __x) const throw ( ) [inherited]
Can we compare this iterator to the given iterator __x? Returns true if both iterators are nonsingular and reference the
same sequence.

_M_dereferenceable()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable () const
[inline]
Is the iterator dereferenceable?
References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_is_before_begin(), __gnu_debug::_Safe_iterator< _I
and __gnu_debug::_Safe_iterator_base::_M_singular().
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator∗(), and __gnu_debug::_Safe_iterator< _Itera

_M_detach()

void __gnu_debug::_Safe_iterator_base::_M_detach () [protected], [inherited]


Detach the iterator for whatever sequence it is attached to, if any.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=().

_M_detach_single()

void __gnu_debug::_Safe_iterator_base::_M_detach_single () throw ( ) [inherited]


Likewise, but not thread-safe.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_iterator_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++(), __gnu_debug::_Safe_local_iterator< _It
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

_M_incrementable()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_incrementable () const
[inline]
Is the iterator incrementable?
References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_is_end(), and __gnu_debug::_Safe_iterator_base::_M
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_before_dereferenceable(),
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequen

Generated by Doxygen
5.154 __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category > Class Template Reference 955

_M_invalidate()

void __gnu_debug::_Safe_iterator_base::_M_invalidate () [inline], [inherited]


Invalidate the iterator, making it singular.
References __gnu_debug::_Safe_iterator_base::_M_version.

_M_is_before_begin()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_is_before_begin () const
[inline]
Is this iterator equal to the sequence's before_begin() iterator if any?
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable().

_M_is_begin()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_is_begin () const [inline],
[constexpr]
Is this iterator equal to the sequence's begin() iterator?
References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base().

_M_is_beginnest()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_is_beginnest () const
[inline]
Is this iterator equal to the sequence's before_begin() iterator if any or begin() otherwise?

_M_is_end()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_is_end () const [inline]
Is this iterator equal to the sequence's end() iterator?
References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base().
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable(), and
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_incrementable().

_M_reset()

void __gnu_debug::_Safe_iterator_base::_M_reset () throw ( ) [inherited]


Reset all member variables

_M_singular()

bool __gnu_debug::_Safe_iterator_base::_M_singular () const throw ( ) [inherited]


Is this iterator singular?
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::__check_singular_aux(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable(),

Generated by Doxygen
956

__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequenc


__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_incrementable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence,
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

_M_unlink()

void __gnu_debug::_Safe_iterator_base::_M_unlink () throw ( ) [inline], [inherited]


Unlink itself
References __gnu_debug::_Safe_iterator_base::_M_next, and __gnu_debug::_Safe_iterator_base::_M_prior.

_M_value_initialized()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_initialized ()
const [inline]
Is the iterator value-initialized?
References __gnu_debug::_Safe_iterator_base::_M_version, and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::bas
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence
and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=().

_S_constant()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
static constexpr bool __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_S_constant
() [inline], [static], [constexpr]
Determine if this is a constant iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach(), and __gnu_debug::_Safe_iterator< _Iter

base()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
_Iterator & __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base () [inline],
[constexpr], [noexcept]
Return the underlying iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_is_begin(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence,
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_initialized(), __gnu_debug::_Safe_iterator< _Iterator, _Seq
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequence

operator _Iterator()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator _Iterator () const [inline],
[constexpr], [noexcept]
Conversion to underlying non-debug iterator to allow better interaction with non-debug containers.

Generated by Doxygen
5.154 __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category > Class Template Reference 957

operator∗()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
reference __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator∗ () const
[inline], [nodiscard], [constexpr], [noexcept]
Iterator dereference.
Precondition

iterator is dereferenceable

References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable(), and __gnu_debug::_Safe_iterator

operator++() [1/2]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
_Safe_iterator & __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++ ()
[inline], [constexpr], [noexcept]
Iterator preincrement.

Precondition

iterator is incrementable

References __gnu_debug::_Safe_iterator_base::_M_get_mutex(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M


and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base().

operator++() [2/2]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
_Safe_iterator __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++ (
int ) [inline], [constexpr], [noexcept]
Iterator postincrement.

Precondition

iterator is incrementable

References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_incrementable().

operator->()

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
pointer __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator-> () const [inline],
[nodiscard], [constexpr], [noexcept]
Iterator dereference.
Precondition

iterator is dereferenceable

References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable(), and __gnu_debug::_Safe_iterator

Generated by Doxygen
958

operator=() [1/2]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
_Safe_iterator & __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator= (
_Safe_iterator< _Iterator, _Sequence, _Category > && __x) [inline], [constexpr],
[noexcept]
Move assignment.
Postcondition

__x is singular and unattached


References std::__addressof(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach(),
__gnu_debug::_Safe_iterator_base::_M_detach(), __gnu_debug::_Safe_iterator_base::_M_get_mutex(), __gnu_debug::_Safe_iterator_ba
__gnu_debug::_Safe_iterator_base::_M_singular(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_initializ
__gnu_debug::_Safe_iterator_base::_M_version, __gnu_debug::_Safe_sequence_base::_M_version, and __gnu_debug::_Safe_iterator<

operator=() [2/2]

template<typename _Iterator , typename _Sequence , typename _Category = typename std::iterator_←-


traits<_Iterator>::iterator_category>
_Safe_iterator & __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator= (
const _Safe_iterator< _Iterator, _Sequence, _Category > & __x) [inline], [constexpr],
[noexcept]
Copy assignment.
References __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach(), __gnu_debug::_Safe_iterator_base::_M_de
__gnu_debug::_Safe_iterator_base::_M_get_mutex(), __gnu_debug::_Safe_iterator_base::_M_sequence, __gnu_debug::_Safe_iterator_b
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_initialized(), __gnu_debug::_Safe_iterator_base::_M_versi
__gnu_debug::_Safe_sequence_base::_M_version, and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base().

5.154.4 Member Data Documentation

_M_next

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_next [inherited]


Pointer to the next iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and __gnu_debug::_Safe_iterator_base::_M_unlink().

_M_prior

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_prior [inherited]


Pointer to the previous iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and __gnu_debug::_Safe_iterator_base::_M_unlink().

_M_sequence

_Safe_sequence_base∗ __gnu_debug::_Safe_iterator_base::_M_sequence [inherited]


The sequence this iterator references; may be NULL to indicate a singular iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator_base::_Safe_iterator_
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator_base::_Safe_loc
__gnu_debug::_Safe_iterator_base::_M_attached_to(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if(),
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

Generated by Doxygen
5.155 __gnu_debug::_Safe_iterator_base Class Reference 959

_M_version

unsigned int __gnu_debug::_Safe_iterator_base::_M_version [inherited]


The version number of this iterator. The sentinel value 0 is used to indicate an invalidated iterator (i.e., one that is
singular because of an operation on the container). This version number must equal the version number in the sequence
referenced by _M_sequence for the iterator to be non-singular.
Referenced by __gnu_debug::_Safe_iterator_base::_M_invalidate(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_initialized(), __gnu_debug::_Safe_local_iterator< _Iterator
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence
The documentation for this class was generated from the following files:

• boost_concept_check.h
• bits/stl_iterator.h
• debug.h
• formatter.h
• helper_functions.h
• safe_iterator.h
• safe_iterator.tcc

5.155 __gnu_debug::_Safe_iterator_base Class Reference


#include <safe_base.h>
Inheritance diagram for __gnu_debug::_Safe_iterator_base:

__gnu_debug::_Safe
_iterator< _Iterator,
_Sequence, std::forward
_iterator_tag >

__gnu_debug::_Safe
_iterator< _Base_const
_iterator, multiset >

__gnu_debug::_Safe
__gnu_debug::_Safe
_iterator< _Base_const
_iterator_base
_iterator, set >

__gnu_debug::_Safe
_iterator< _Iterator,
_Sequence, _Category >

__gnu_debug::_Safe
__gnu_debug::_Safe
_local_iterator< _Iterator,
_local_iterator_base
_Sequence >

Public Member Functions

• bool _M_attached_to (const _Safe_sequence_base ∗__seq) const


• bool _M_can_compare (const _Safe_iterator_base &__x) const throw ()
• void _M_detach_single () throw ()
• void _M_invalidate ()

Generated by Doxygen
960

• void _M_reset () throw ()


• bool _M_singular () const throw ()
• void _M_unlink () throw ()

Public Attributes

• _Safe_iterator_base ∗ _M_next
• _Safe_iterator_base ∗ _M_prior
• _Safe_sequence_base ∗ _M_sequence
• unsigned int _M_version

Protected Member Functions

• constexpr _Safe_iterator_base ()
• constexpr _Safe_iterator_base (const _Safe_iterator_base &__x, bool __constant)
• constexpr _Safe_iterator_base (const _Safe_sequence_base ∗__seq, bool __constant)
• void _M_attach (_Safe_sequence_base ∗__seq, bool __constant)
• void _M_attach_single (_Safe_sequence_base ∗__seq, bool __constant) throw ()
• void _M_detach ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()

Friends

• class _Safe_sequence_base

5.155.1 Detailed Description

Basic functionality for a safe iterator.


The _Safe_iterator_base base class implements the functionality of a safe iterator that is not specific to a particular
iterator type. It contains a pointer back to the sequence it references along with iterator version information and pointers
to form a doubly-linked list of iterators referenced by the container.
This class must not perform any operations that can throw an exception, or the exception guarantees of derived iterators
will be broken.

5.155.2 Constructor & Destructor Documentation

_Safe_iterator_base() [1/3]

__gnu_debug::_Safe_iterator_base::_Safe_iterator_base () [inline], [constexpr], [protected]


Initializes the iterator and makes it singular.

_Safe_iterator_base() [2/3]

__gnu_debug::_Safe_iterator_base::_Safe_iterator_base (
const _Safe_sequence_base ∗ __seq,
bool __constant) [inline], [constexpr], [protected]
Initialize the iterator to reference the sequence pointed to by __seq. __constant is true when we are initializing a
constant iterator, and false if it is a mutable iterator. Note that __seq may be NULL, in which case the iterator will be
singular. Otherwise, the iterator will reference __seq and be nonsingular.
References _M_attach().

Generated by Doxygen
5.155 __gnu_debug::_Safe_iterator_base Class Reference 961

_Safe_iterator_base() [3/3]

__gnu_debug::_Safe_iterator_base::_Safe_iterator_base (
const _Safe_iterator_base & __x,
bool __constant) [inline], [constexpr], [protected]
Initializes the iterator to reference the same sequence that __x does. __constant is true if this is a constant iterator,
and false if it is mutable.
References _M_attach(), and _M_sequence.

5.155.3 Member Function Documentation

_M_attach()

void __gnu_debug::_Safe_iterator_base::_M_attach (
_Safe_sequence_base ∗ __seq,
bool __constant) [protected]
Attaches this iterator to the given sequence, detaching it from whatever sequence it was attached to originally. If the
new sequence is the NULL pointer, the iterator is left unattached.
Referenced by _Safe_iterator_base(), _Safe_iterator_base(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_

_M_attach_single()

void __gnu_debug::_Safe_iterator_base::_M_attach_single (
_Safe_sequence_base ∗ __seq,
bool __constant) throw ( ) [protected]
Likewise, but not thread-safe.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_attach_single().

_M_attached_to()

bool __gnu_debug::_Safe_iterator_base::_M_attached_to (
const _Safe_sequence_base ∗ __seq) const [inline]
Determines if we are attached to the given sequence.
References _M_sequence.

_M_can_compare()

bool __gnu_debug::_Safe_iterator_base::_M_can_compare (
const _Safe_iterator_base & __x) const throw ( )
Can we compare this iterator to the given iterator __x? Returns true if both iterators are nonsingular and reference the
same sequence.

_M_detach()

void __gnu_debug::_Safe_iterator_base::_M_detach () [protected]


Detach the iterator for whatever sequence it is attached to, if any.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=().

_M_detach_single()

void __gnu_debug::_Safe_iterator_base::_M_detach_single () throw ( )


Likewise, but not thread-safe.

Generated by Doxygen
962

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_iterator_base::_M_get_mutex () throw ( ) [protected]


For use in _Safe_iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++(), __gnu_debug::_Safe_local_iterator< _It
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

_M_invalidate()

void __gnu_debug::_Safe_iterator_base::_M_invalidate () [inline]


Invalidate the iterator, making it singular.
References _M_version.

_M_reset()

void __gnu_debug::_Safe_iterator_base::_M_reset () throw ( )


Reset all member variables

_M_singular()

bool __gnu_debug::_Safe_iterator_base::_M_singular () const throw ( )


Is this iterator singular?
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::__check_singular_aux(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable(),
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequenc
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_incrementable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence,
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

_M_unlink()

void __gnu_debug::_Safe_iterator_base::_M_unlink () throw ( ) [inline]


Unlink itself
References _M_next, and _M_prior.

5.155.4 Member Data Documentation

_M_next

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_next
Pointer to the next iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and _M_unlink().

_M_prior

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_prior
Pointer to the previous iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and _M_unlink().

Generated by Doxygen
5.156 __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence > Class Template Reference 963

_M_sequence

_Safe_sequence_base∗ __gnu_debug::_Safe_iterator_base::_M_sequence
The sequence this iterator references; may be NULL to indicate a singular iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), _Safe_iterator_base(), __gnu_debug::_Safe_local_it
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator_base::_Safe_local_iterator_base(), _M_attached_to(), __gnu_debug::_Safe_sequence< _Sequence
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

_M_version

unsigned int __gnu_debug::_Safe_iterator_base::_M_version


The version number of this iterator. The sentinel value 0 is used to indicate an invalidated iterator (i.e., one that is
singular because of an operation on the container). This version number must equal the version number in the sequence
referenced by _M_sequence for the iterator to be non-singular.
Referenced by _M_invalidate(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if(), __gnu_debug::_Safe_iterator< _
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_value_initialized(), __gnu_debug::_Safe_iterator< _Iterator, _Sequenc
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().
The documentation for this class was generated from the following file:

• safe_base.h

5.156 __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence > Class Template


Reference
#include <safe_local_iterator.h>
Inheritance diagram for __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >:

__gnu_debug::_Safe
_iterator_base

__gnu_debug::_Safe
_local_iterator_base

__gnu_debug::_Safe
_local_iterator< _Iterator,
_Sequence >

Generated by Doxygen
964

Public Types

• typedef _Traits::difference_type difference_type


• typedef _Traits::iterator_category iterator_category
• typedef _Iterator iterator_type
• typedef _Traits::pointer pointer
• typedef _Traits::reference reference
• typedef _Traits::value_type value_type

Public Member Functions

• _Safe_local_iterator () noexcept
• _Safe_local_iterator (_Iterator __i, const _Safe_sequence_base ∗__cont)
• _Safe_local_iterator (_Safe_local_iterator &&__x) noexcept
• _Safe_local_iterator (const _Safe_local_iterator &__x) noexcept
• template<typename _MutableIterator >
_Safe_local_iterator (const _Safe_local_iterator< _MutableIterator, typename __gnu_cxx::__enable_if< _Is←-
Constant::__value &&std::__are_same< _MutableIterator, _OtherIterator >::__value, _Sequence >::__type >
&__x) noexcept
• void _M_attach (_Safe_sequence_base ∗__seq)
• void _M_attach_single (_Safe_sequence_base ∗__seq)
• bool _M_attached_to (const _Safe_sequence_base ∗__seq) const
• bool _M_can_compare (const _Safe_iterator_base &__x) const throw ()
• bool _M_dereferenceable () const
• _Distance_traits< _Iterator >::__type _M_get_distance_to (const _Safe_local_iterator &__rhs) const
• __gnu_cxx::__conditional_type< _IsConstant::__value, const_Sequence ∗, _Sequence ∗ >::__type _M_get_←-
sequence () const
• template<typename _Other >
bool _M_in_same_bucket (const _Safe_local_iterator< _Other, _Sequence > &__other) const
• bool _M_incrementable () const
• void _M_invalidate ()
• bool _M_is_begin () const
• bool _M_is_end () const
• void _M_reset () throw ()
• bool _M_singular () const throw ()
• void _M_unlink () throw ()
• bool _M_valid_range (const _Safe_local_iterator &__rhs, std::pair< difference_type, _Distance_precision > &←-
__dist_info) const
• bool _M_value_initialized () const
• const _Iterator & base () const noexcept
• _Iterator & base () noexcept
• size_type bucket () const
• operator _Iterator () const
• reference operator∗ () const
• _Safe_local_iterator & operator++ ()
• _Safe_local_iterator operator++ (int)
• pointer operator-> () const
• _Safe_local_iterator & operator= (_Safe_local_iterator &&__x) noexcept
• _Safe_local_iterator & operator= (const _Safe_local_iterator &__x)

Static Public Member Functions

• static constexpr bool _S_constant ()

Generated by Doxygen
5.156 __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence > Class Template Reference 965

Public Attributes

• _Safe_iterator_base ∗ _M_next
• _Safe_iterator_base ∗ _M_prior
• _Safe_sequence_base ∗ _M_sequence
• unsigned int _M_version

Protected Member Functions

• void _M_attach (_Safe_sequence_base ∗__seq, bool __constant)


• void _M_attach_single (_Safe_sequence_base ∗__seq, bool __constant) throw ()
• void _M_detach ()
• void _M_detach_single () throw ()
• _Safe_unordered_container_base ∗ _M_get_container () const noexcept
• __gnu_cxx::__mutex & _M_get_mutex () throw ()

Friends

• bool operator!= (const _Self &__lhs, const _OtherSelf &__rhs) noexcept


• bool operator!= (const _Self &__lhs, const _Self &__rhs) noexcept
• bool operator== (const _Self &__lhs, const _OtherSelf &__rhs) noexcept
• bool operator== (const _Self &__lhs, const _Self &__rhs) noexcept

5.156.1 Detailed Description

template<typename _Iterator, typename _Sequence>


class __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >

Safe iterator wrapper.


The class template _Safe_local_iterator is a wrapper around an iterator that tracks the iterator's movement among
sequences and checks that operations performed on the "safe" iterator are legal. In additional to the basic iterator
operations (which are validated, and then passed to the underlying iterator), _Safe_local_iterator has member functions
for iterator invalidation, attaching/detaching the iterator from sequences, and querying the iterator's state.

5.156.2 Constructor & Destructor Documentation

_Safe_local_iterator() [1/5]

template<typename _Iterator , typename _Sequence >


__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator () [inline],
[noexcept]

Postcondition

the iterator is singular and unattached

_Safe_local_iterator() [2/5]

template<typename _Iterator , typename _Sequence >


__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator (
_Iterator __i,
const _Safe_sequence_base ∗ __cont) [inline]
Safe iterator construction from an unsafe iterator and its sequence.

Generated by Doxygen
966

Precondition

seq is not NULL

Postcondition

this is not singular

_Safe_local_iterator() [3/5]

template<typename _Iterator , typename _Sequence >


__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator (
const _Safe_local_iterator< _Iterator, _Sequence > & __x) [inline], [noexcept]
Copy construction.
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach(), __gnu_debug::_Safe_iterator_base::_M_sequenc
__gnu_debug::_Safe_iterator_base::_M_singular(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_value_initialize

_Safe_local_iterator() [4/5]

template<typename _Iterator , typename _Sequence >


__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator (
_Safe_local_iterator< _Iterator, _Sequence > && __x) [inline], [noexcept]
Move construction.
Postcondition

__x is singular and unattached

References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach(), __gnu_debug::_Safe_local_iterator_base::_M_de


__gnu_debug::_Safe_iterator_base::_M_sequence, __gnu_debug::_Safe_iterator_base::_M_singular(), __gnu_debug::_Safe_local_iterato
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base().

_Safe_local_iterator() [5/5]

template<typename _Iterator , typename _Sequence >


template<typename _MutableIterator >
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator (
const _Safe_local_iterator< _MutableIterator, typename __gnu_cxx::__enable_if< _Is←-
Constant::__value &&std::__are_same< _MutableIterator, _OtherIterator >::__value, _Sequence >::←-
__type > & __x) [inline], [noexcept]
Converting constructor from a mutable iterator to a constant iterator.
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach(), __gnu_debug::_Safe_iterator_base::_M_sequenc
__gnu_debug::_Safe_iterator_base::_M_singular(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_value_initialize

5.156.3 Member Function Documentation

_M_attach() [1/2]

template<typename _Iterator , typename _Sequence >


void __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach (
_Safe_sequence_base ∗ __seq) [inline]
Attach iterator to the given sequence.
References __gnu_debug::_Safe_local_iterator_base::_M_attach(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_S
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator<
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

Generated by Doxygen
5.156 __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence > Class Template Reference 967

_M_attach() [2/2]

void __gnu_debug::_Safe_local_iterator_base::_M_attach (
_Safe_sequence_base ∗ __seq,
bool __constant) [protected], [inherited]
Attaches this iterator to the given container, detaching it from whatever container it was attached to originally. If the new
container is the NULL pointer, the iterator is left unattached.
Referenced by __gnu_debug::_Safe_local_iterator_base::_Safe_local_iterator_base(), __gnu_debug::_Safe_local_iterator_base::_Safe_lo
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach().

_M_attach_single() [1/2]

template<typename _Iterator , typename _Sequence >


void __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach_single (
_Safe_sequence_base ∗ __seq) [inline]
Likewise, but not thread-safe.
References __gnu_debug::_Safe_local_iterator_base::_M_attach_single(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

_M_attach_single() [2/2]

void __gnu_debug::_Safe_local_iterator_base::_M_attach_single (
_Safe_sequence_base ∗ __seq,
bool __constant) throw ( ) [protected], [inherited]
Likewise, but not thread-safe.
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach_single().

_M_attached_to()

bool __gnu_debug::_Safe_iterator_base::_M_attached_to (
const _Safe_sequence_base ∗ __seq) const [inline], [inherited]
Determines if we are attached to the given sequence.
References __gnu_debug::_Safe_iterator_base::_M_sequence.

_M_can_compare()

bool __gnu_debug::_Safe_iterator_base::_M_can_compare (
const _Safe_iterator_base & __x) const throw ( ) [inherited]
Can we compare this iterator to the given iterator __x? Returns true if both iterators are nonsingular and reference the
same sequence.

_M_dereferenceable()

template<typename _Iterator , typename _Sequence >


bool __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable () const [inline]
Is the iterator dereferenceable?
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_is_end(), and __gnu_debug::_Safe_iterator_base::_M_sing
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator∗(), and __gnu_debug::_Safe_local_iterator< _Itera

_M_detach()

void __gnu_debug::_Safe_local_iterator_base::_M_detach () [protected], [inherited]


Detach the iterator for whatever container it is attached to, if any.
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator<
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

Generated by Doxygen
968

_M_detach_single()

void __gnu_debug::_Safe_local_iterator_base::_M_detach_single () throw ( ) [protected], [inherited]


Likewise, but not thread-safe.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_iterator_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++(), __gnu_debug::_Safe_local_iterator< _It
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

_M_in_same_bucket()

template<typename _Iterator , typename _Sequence >


template<typename _Other >
bool __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_in_same_bucket (
const _Safe_local_iterator< _Other, _Sequence > & __other) const [inline]
Is this iterator part of the same bucket as the other one?
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::bucket().

_M_incrementable()

template<typename _Iterator , typename _Sequence >


bool __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_incrementable () const [inline]
Is the iterator incrementable?
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_is_end(), and __gnu_debug::_Safe_iterator_base::_M_sing
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator++(), and __gnu_debug::_Safe_local_iterator< _Ite

_M_invalidate()

void __gnu_debug::_Safe_iterator_base::_M_invalidate () [inline], [inherited]


Invalidate the iterator, making it singular.
References __gnu_debug::_Safe_iterator_base::_M_version.

_M_is_begin()

template<typename _Iterator , typename _Sequence >


bool __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_is_begin () const [inline]
Is this iterator equal to the sequence's begin(bucket) iterator?
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Se

_M_is_end()

template<typename _Iterator , typename _Sequence >


bool __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_is_end () const [inline]
Is this iterator equal to the sequence's end(bucket) iterator?
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Se
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable(), and __gnu_debug::_Safe_local_itera

_M_reset()

void __gnu_debug::_Safe_iterator_base::_M_reset () throw ( ) [inherited]


Reset all member variables

Generated by Doxygen
5.156 __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence > Class Template Reference 969

_M_singular()

bool __gnu_debug::_Safe_iterator_base::_M_singular () const throw ( ) [inherited]


Is this iterator singular?
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::__check_singular_aux(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable(),
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequenc
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_incrementable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence,
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

_M_unlink()

void __gnu_debug::_Safe_iterator_base::_M_unlink () throw ( ) [inline], [inherited]


Unlink itself
References __gnu_debug::_Safe_iterator_base::_M_next, and __gnu_debug::_Safe_iterator_base::_M_prior.

_M_value_initialized()

template<typename _Iterator , typename _Sequence >


bool __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_value_initialized () const
[inline]
Is the iterator value-initialized?
References __gnu_debug::_Safe_iterator_base::_M_version, and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base().
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator<
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

_S_constant()

template<typename _Iterator , typename _Sequence >


static constexpr bool __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_S_constant ()
[inline], [static], [constexpr]
Determine if this is a constant iterator.
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach(), and __gnu_debug::_Safe_local_iterator< _Iter

base()

template<typename _Iterator , typename _Sequence >


_Iterator & __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base () [inline], [noexcept]
Return the underlying iterator.
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator<
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_is_end(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::bucket(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::op
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator++(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

bucket()

template<typename _Iterator , typename _Sequence >


size_type __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::bucket () const [inline]
Return the bucket.
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base().

Generated by Doxygen
970

Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_in_same_bucket(), __gnu_debug::_Safe_local_iterator<


and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_is_end().

operator _Iterator()

template<typename _Iterator , typename _Sequence >


__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator _Iterator () const [inline]
Conversion to underlying non-debug iterator to allow better interaction with non-debug containers.

operator∗()

template<typename _Iterator , typename _Sequence >


reference __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator∗ () const [inline]
Iterator dereference.
Precondition

iterator is dereferenceable

References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable(), and __gnu_debug::_Safe_local_iterator

operator++() [1/2]

template<typename _Iterator , typename _Sequence >


_Safe_local_iterator & __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator++ ()
[inline]
Iterator preincrement.

Precondition

iterator is incrementable

References __gnu_debug::_Safe_iterator_base::_M_get_mutex(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_incr


and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base().

operator++() [2/2]

template<typename _Iterator , typename _Sequence >


_Safe_local_iterator __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator++ (
int ) [inline]
Iterator postincrement.

Precondition

iterator is incrementable

References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_incrementable().

operator->()

template<typename _Iterator , typename _Sequence >


pointer __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator-> () const [inline]
Iterator dereference.
Precondition

iterator is dereferenceable

References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable(), and __gnu_debug::_Safe_local_iterator

Generated by Doxygen
5.156 __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence > Class Template Reference 971

operator=() [1/2]

template<typename _Iterator , typename _Sequence >


_Safe_local_iterator & __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator= (
_Safe_local_iterator< _Iterator, _Sequence > && __x) [inline], [noexcept]
Move assignment.

Postcondition

__x is singular and unattached

References std::__addressof(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach(), __gnu_debug::_Safe_local_ite


__gnu_debug::_Safe_iterator_base::_M_get_mutex(), __gnu_debug::_Safe_iterator_base::_M_sequence, __gnu_debug::_Safe_iterator_b
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_value_initialized(), __gnu_debug::_Safe_iterator_base::_M_version,
__gnu_debug::_Safe_sequence_base::_M_version, and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base().

operator=() [2/2]

template<typename _Iterator , typename _Sequence >


_Safe_local_iterator & __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator= (
const _Safe_local_iterator< _Iterator, _Sequence > & __x) [inline]
Copy assignment.
References __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach(), __gnu_debug::_Safe_local_iterator_base::_M_de
__gnu_debug::_Safe_iterator_base::_M_get_mutex(), __gnu_debug::_Safe_iterator_base::_M_sequence, __gnu_debug::_Safe_iterator_b
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_value_initialized(), __gnu_debug::_Safe_iterator_base::_M_version,
__gnu_debug::_Safe_sequence_base::_M_version, and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::base().

5.156.4 Member Data Documentation

_M_next

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_next [inherited]


Pointer to the next iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and __gnu_debug::_Safe_iterator_base::_M_unlink().

_M_prior

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_prior [inherited]


Pointer to the previous iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and __gnu_debug::_Safe_iterator_base::_M_unlink().

_M_sequence

_Safe_sequence_base∗ __gnu_debug::_Safe_iterator_base::_M_sequence [inherited]


The sequence this iterator references; may be NULL to indicate a singular iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator_base::_Safe_iterator_
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator_base::_Safe_loc
__gnu_debug::_Safe_iterator_base::_M_attached_to(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if(),
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

Generated by Doxygen
972

_M_version

unsigned int __gnu_debug::_Safe_iterator_base::_M_version [inherited]


The version number of this iterator. The sentinel value 0 is used to indicate an invalidated iterator (i.e., one that is
singular because of an operation on the container). This version number must equal the version number in the sequence
referenced by _M_sequence for the iterator to be non-singular.
Referenced by __gnu_debug::_Safe_iterator_base::_M_invalidate(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_initialized(), __gnu_debug::_Safe_local_iterator< _Iterator
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence
The documentation for this class was generated from the following files:

• formatter.h
• helper_functions.h
• safe_local_iterator.h
• safe_local_iterator.tcc

5.157 __gnu_debug::_Safe_local_iterator_base Class Reference


#include <safe_unordered_base.h>
Inheritance diagram for __gnu_debug::_Safe_local_iterator_base:

__gnu_debug::_Safe
_iterator_base

__gnu_debug::_Safe
_local_iterator_base

__gnu_debug::_Safe
_local_iterator< _Iterator,
_Sequence >

Public Member Functions

• bool _M_attached_to (const _Safe_sequence_base ∗__seq) const


• bool _M_can_compare (const _Safe_iterator_base &__x) const throw ()
• void _M_invalidate ()
• void _M_reset () throw ()
• bool _M_singular () const throw ()
• void _M_unlink () throw ()

Generated by Doxygen
5.157 __gnu_debug::_Safe_local_iterator_base Class Reference 973

Public Attributes

• _Safe_iterator_base ∗ _M_next
• _Safe_iterator_base ∗ _M_prior
• _Safe_sequence_base ∗ _M_sequence
• unsigned int _M_version

Protected Member Functions

• _Safe_local_iterator_base ()
• _Safe_local_iterator_base (const _Safe_local_iterator_base &__x, bool __constant)
• _Safe_local_iterator_base (const _Safe_sequence_base ∗__seq, bool __constant)
• void _M_attach (_Safe_sequence_base ∗__seq, bool __constant)
• void _M_attach_single (_Safe_sequence_base ∗__seq, bool __constant) throw ()
• void _M_detach ()
• void _M_detach_single () throw ()
• _Safe_unordered_container_base ∗ _M_get_container () const noexcept
• __gnu_cxx::__mutex & _M_get_mutex () throw ()

5.157.1 Detailed Description

Basic functionality for a safe iterator.


The _Safe_local_iterator_base base class implements the functionality of a safe local iterator that is not specific to a
particular iterator type. It contains a pointer back to the container it references along with iterator version information
and pointers to form a doubly-linked list of local iterators referenced by the container.
This class must not perform any operations that can throw an exception, or the exception guarantees of derived iterators
will be broken.

5.157.2 Constructor & Destructor Documentation

_Safe_local_iterator_base() [1/3]

__gnu_debug::_Safe_local_iterator_base::_Safe_local_iterator_base () [inline], [protected]


Initializes the iterator and makes it singular.

_Safe_local_iterator_base() [2/3]

__gnu_debug::_Safe_local_iterator_base::_Safe_local_iterator_base (
const _Safe_sequence_base ∗ __seq,
bool __constant) [inline], [protected]
Initialize the iterator to reference the container pointed to by __seq. __constant is true when we are initializing a
constant local iterator, and false if it is a mutable local iterator. Note that __seq may be NULL, in which case the iterator
will be singular. Otherwise, the iterator will reference __seq and be nonsingular.
References _M_attach().

_Safe_local_iterator_base() [3/3]

__gnu_debug::_Safe_local_iterator_base::_Safe_local_iterator_base (
const _Safe_local_iterator_base & __x,
bool __constant) [inline], [protected]
Initializes the iterator to reference the same container that __x does. __constant is true if this is a constant iterator,
and false if it is mutable.
References _M_attach(), and __gnu_debug::_Safe_iterator_base::_M_sequence.

Generated by Doxygen
974

5.157.3 Member Function Documentation

_M_attach()

void __gnu_debug::_Safe_local_iterator_base::_M_attach (
_Safe_sequence_base ∗ __seq,
bool __constant) [protected]
Attaches this iterator to the given container, detaching it from whatever container it was attached to originally. If the new
container is the NULL pointer, the iterator is left unattached.
Referenced by _Safe_local_iterator_base(), _Safe_local_iterator_base(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >

_M_attach_single()

void __gnu_debug::_Safe_local_iterator_base::_M_attach_single (
_Safe_sequence_base ∗ __seq,
bool __constant) throw ( ) [protected]
Likewise, but not thread-safe.
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_attach_single().

_M_attached_to()

bool __gnu_debug::_Safe_iterator_base::_M_attached_to (
const _Safe_sequence_base ∗ __seq) const [inline], [inherited]
Determines if we are attached to the given sequence.
References __gnu_debug::_Safe_iterator_base::_M_sequence.

_M_can_compare()

bool __gnu_debug::_Safe_iterator_base::_M_can_compare (
const _Safe_iterator_base & __x) const throw ( ) [inherited]
Can we compare this iterator to the given iterator __x? Returns true if both iterators are nonsingular and reference the
same sequence.

_M_detach()

void __gnu_debug::_Safe_local_iterator_base::_M_detach () [protected]


Detach the iterator for whatever container it is attached to, if any.
Referenced by __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator<
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

_M_detach_single()

void __gnu_debug::_Safe_local_iterator_base::_M_detach_single () throw ( ) [protected]


Likewise, but not thread-safe.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_iterator_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator++(), __gnu_debug::_Safe_local_iterator< _It
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

Generated by Doxygen
5.157 __gnu_debug::_Safe_local_iterator_base Class Reference 975

_M_invalidate()

void __gnu_debug::_Safe_iterator_base::_M_invalidate () [inline], [inherited]


Invalidate the iterator, making it singular.
References __gnu_debug::_Safe_iterator_base::_M_version.

_M_reset()

void __gnu_debug::_Safe_iterator_base::_M_reset () throw ( ) [inherited]


Reset all member variables

_M_singular()

bool __gnu_debug::_Safe_iterator_base::_M_singular () const throw ( ) [inherited]


Is this iterator singular?
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::__check_singular_aux(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_dereferenceable(),
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_dereferenceable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequenc
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_M_incrementable(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence,
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

_M_unlink()

void __gnu_debug::_Safe_iterator_base::_M_unlink () throw ( ) [inline], [inherited]


Unlink itself
References __gnu_debug::_Safe_iterator_base::_M_next, and __gnu_debug::_Safe_iterator_base::_M_prior.

5.157.4 Member Data Documentation

_M_next

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_next [inherited]


Pointer to the next iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and __gnu_debug::_Safe_iterator_base::_M_unlink().

_M_prior

_Safe_iterator_base∗ __gnu_debug::_Safe_iterator_base::_M_prior [inherited]


Pointer to the previous iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL.
Referenced by __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if(), __gnu_debug::_Safe_sequence< _Sequence >
and __gnu_debug::_Safe_iterator_base::_M_unlink().

_M_sequence

_Safe_sequence_base∗ __gnu_debug::_Safe_iterator_base::_M_sequence [inherited]


The sequence this iterator references; may be NULL to indicate a singular iterator.
Referenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator< _Itera
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_Safe_iterator(), __gnu_debug::_Safe_iterator_base::_Safe_iterator_
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), __gnu_debug::_Safe_local_iterator< _Iterator, _Seq
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::_Safe_local_iterator(), _Safe_local_iterator_base(),
__gnu_debug::_Safe_iterator_base::_M_attached_to(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if(),

Generated by Doxygen
976

__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C


__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence

_M_version

unsigned int __gnu_debug::_Safe_iterator_base::_M_version [inherited]


The version number of this iterator. The sentinel value 0 is used to indicate an invalidated iterator (i.e., one that is
singular because of an operation on the container). This version number must equal the version number in the sequence
referenced by _M_sequence for the iterator to be non-singular.
Referenced by __gnu_debug::_Safe_iterator_base::_M_invalidate(), __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::_M_value_initialized(), __gnu_debug::_Safe_local_iterator< _Iterator
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _C
__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence
The documentation for this class was generated from the following file:

• safe_unordered_base.h

5.158 __gnu_debug::_Safe_node_sequence< _Sequence > Class Template Reference


#include <safe_sequence.h>
Inheritance diagram for __gnu_debug::_Safe_node_sequence< _Sequence >:

__gnu_debug::_Safe
_sequence_base

__gnu_debug::_Safe
_sequence< _Sequence >

__gnu_debug::_Safe
_node_sequence< _Sequence >

Public Member Functions

• template<typename _Predicate >


void _M_invalidate_if (_Predicate __pred)
• template<typename _Predicate >
void _M_transfer_from_if (_Safe_sequence &__from, _Predicate __pred)

Public Attributes

• _Safe_iterator_base ∗ _M_const_iterators

Generated by Doxygen
5.158 __gnu_debug::_Safe_node_sequence< _Sequence > Class Template Reference 977

• _Safe_iterator_base ∗ _M_iterators
• unsigned int _M_version

Protected Member Functions

• void _M_detach_all ()
• void _M_detach_singular ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()
• void _M_invalidate_all ()
• void _M_invalidate_all () const
• void _M_revalidate_singular ()
• void _M_swap (_Safe_sequence_base &__x) noexcept

5.158.1 Detailed Description

template<typename _Sequence>
class __gnu_debug::_Safe_node_sequence< _Sequence >

Like _Safe_sequence but with a special _M_invalidate_all implementation not invalidating past-the-end iterators. Used
by node based sequence.

5.158.2 Member Function Documentation

_M_detach_all()

void __gnu_debug::_Safe_sequence_base::_M_detach_all () [protected], [inherited]


Detach all iterators, leaving them singular.
Referenced by __gnu_debug::_Safe_sequence_base::∼_Safe_sequence_base().

_M_detach_singular()

void __gnu_debug::_Safe_sequence_base::_M_detach_singular () [protected], [inherited]


Detach all singular iterators.

Postcondition

for all iterators i attached to this sequence, i->_M_version == _M_version.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_sequence.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_invalidate_all()

void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const [inline], [protected], [inherited]


Invalidates all iterators.
References __gnu_debug::_Safe_sequence_base::_M_version.

Generated by Doxygen
978

_M_invalidate_if()

template<typename _Sequence >


template<typename _Predicate >
void __gnu_debug::_Safe_sequence< _Sequence >::_M_invalidate_if (
_Predicate __pred) [inherited]
Invalidates all iterators x that reference this sequence, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal iterators nested in the safe ones.

_M_revalidate_singular()

void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () [protected], [inherited]


Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before
(but for some reason, such as an exception, need to become valid again).

_M_swap()

void __gnu_debug::_Safe_sequence_base::_M_swap (
_Safe_sequence_base & __x) [protected], [noexcept], [inherited]
Swap this sequence with the given sequence. This operation also swaps ownership of the iterators, so that when the
operation is complete all iterators that originally referenced one container now reference the other container.

_M_transfer_from_if()

template<typename _Sequence >


template<typename _Predicate >
void __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if (
_Safe_sequence< _Sequence > & __from,
_Predicate __pred) [inherited]
Transfers all iterators x that reference from sequence, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal iterators nested in the safe ones.
References std::__addressof(), __gnu_debug::_Safe_sequence_base::_M_const_iterators, __gnu_debug::_Safe_sequence_base::_M_ge
__gnu_debug::_Safe_sequence_base::_M_iterators, __gnu_debug::_Safe_iterator_base::_M_next, __gnu_debug::_Safe_iterator_base::_
__gnu_debug::_Safe_iterator_base::_M_sequence, and __gnu_debug::_Safe_iterator_base::_M_version.

5.158.3 Member Data Documentation

_M_const_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_const_iterators [mutable], [inherited]


The list of constant iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_iterators [mutable], [inherited]


The list of mutable iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_version

unsigned int __gnu_debug::_Safe_sequence_base::_M_version [mutable], [inherited]


The container version number. This number may never be 0.
Referenced by __gnu_debug::_Safe_sequence_base::_M_invalidate_all(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Catego
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().

Generated by Doxygen
5.159 __gnu_debug::_Safe_sequence< _Sequence > Class Template Reference 979

The documentation for this class was generated from the following file:

• safe_sequence.h

5.159 __gnu_debug::_Safe_sequence< _Sequence > Class Template Reference


#include <safe_sequence.h>
Inheritance diagram for __gnu_debug::_Safe_sequence< _Sequence >:

__gnu_debug::_Safe
_sequence_base

__gnu_debug::_Safe
_sequence< _Sequence >

__gnu_debug::_Safe
_node_sequence< _Sequence >

Public Member Functions

• template<typename _Predicate >


void _M_invalidate_if (_Predicate __pred)
• template<typename _Predicate >
void _M_transfer_from_if (_Safe_sequence &__from, _Predicate __pred)

Public Attributes

• _Safe_iterator_base ∗ _M_const_iterators
• _Safe_iterator_base ∗ _M_iterators
• unsigned int _M_version

Protected Member Functions

• void _M_detach_all ()
• void _M_detach_singular ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()
• void _M_invalidate_all () const
• void _M_revalidate_singular ()
• void _M_swap (_Safe_sequence_base &__x) noexcept

Generated by Doxygen
980

5.159.1 Detailed Description

template<typename _Sequence>
class __gnu_debug::_Safe_sequence< _Sequence >

Base class for constructing a safe sequence type that tracks iterators that reference it.
The class template _Safe_sequence simplifies the construction of safe sequences that track the iterators that reference
the sequence, so that the iterators are notified of changes in the sequence that may affect their operation, e.g., if the
container invalidates its iterators or is destructed. This class template may only be used by deriving from it and passing
the name of the derived class as its template parameter via the curiously recurring template pattern. The derived class
must have iterator and const_iterator types that are instantiations of class template _Safe_iterator for this
sequence. Iterators will then be tracked automatically.

5.159.2 Member Function Documentation

_M_detach_all()

void __gnu_debug::_Safe_sequence_base::_M_detach_all () [protected], [inherited]


Detach all iterators, leaving them singular.
Referenced by __gnu_debug::_Safe_sequence_base::∼_Safe_sequence_base().

_M_detach_singular()

void __gnu_debug::_Safe_sequence_base::_M_detach_singular () [protected], [inherited]


Detach all singular iterators.

Postcondition

for all iterators i attached to this sequence, i->_M_version == _M_version.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_sequence.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_invalidate_all()

void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const [inline], [protected], [inherited]


Invalidates all iterators.
References __gnu_debug::_Safe_sequence_base::_M_version.

_M_invalidate_if()

template<typename _Sequence >


template<typename _Predicate >
void __gnu_debug::_Safe_sequence< _Sequence >::_M_invalidate_if (
_Predicate __pred)
Invalidates all iterators x that reference this sequence, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal iterators nested in the safe ones.

_M_revalidate_singular()

void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () [protected], [inherited]


Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before
(but for some reason, such as an exception, need to become valid again).

Generated by Doxygen
5.160 __gnu_debug::_Safe_sequence_base Class Reference 981

_M_swap()

void __gnu_debug::_Safe_sequence_base::_M_swap (
_Safe_sequence_base & __x) [protected], [noexcept], [inherited]
Swap this sequence with the given sequence. This operation also swaps ownership of the iterators, so that when the
operation is complete all iterators that originally referenced one container now reference the other container.

_M_transfer_from_if()

template<typename _Sequence >


template<typename _Predicate >
void __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if (
_Safe_sequence< _Sequence > & __from,
_Predicate __pred)
Transfers all iterators x that reference from sequence, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal iterators nested in the safe ones.
References std::__addressof(), __gnu_debug::_Safe_sequence_base::_M_const_iterators, __gnu_debug::_Safe_sequence_base::_M_ge
__gnu_debug::_Safe_sequence_base::_M_iterators, __gnu_debug::_Safe_iterator_base::_M_next, __gnu_debug::_Safe_iterator_base::_
__gnu_debug::_Safe_iterator_base::_M_sequence, and __gnu_debug::_Safe_iterator_base::_M_version.

5.159.3 Member Data Documentation

_M_const_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_const_iterators [mutable], [inherited]


The list of constant iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_iterators [mutable], [inherited]


The list of mutable iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_version

unsigned int __gnu_debug::_Safe_sequence_base::_M_version [mutable], [inherited]


The container version number. This number may never be 0.
Referenced by __gnu_debug::_Safe_sequence_base::_M_invalidate_all(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Catego
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().
The documentation for this class was generated from the following files:

• formatter.h
• safe_sequence.h
• safe_sequence.tcc

5.160 __gnu_debug::_Safe_sequence_base Class Reference


#include <safe_base.h>

Generated by Doxygen
982

Inheritance diagram for __gnu_debug::_Safe_sequence_base:

__gnu_debug::_Safe
__gnu_debug::_Safe _forward_list< _SafeSequence >
_sequence< _SafeSequence >

__gnu_debug::_Safe
_container< basic_string
__gnu_debug::_Safe < _CharT, std::char_traits
_sequence< basic_string < _CharT >, std::allocator
< _CharT, std::char_traits < _CharT > >, std::allocator
< _CharT >, std::allocator < _CharT >, _Safe_sequence, bool(1)>
< _CharT > > >

__gnu_debug::_Safe __gnu_debug::_Safe
_container< deque< _container< forward
_Tp, std::allocator< _list< _Tp, std::allocator
__gnu_debug::_Safe < _Tp > >, std::allocator
_Tp > >, std::allocator
_sequence< deque< _Tp, < _Tp >, __gnu_debug::_Safe
< _Tp >, __gnu_debug::_Safe
std::allocator< _Tp > > > _forward_list >
_sequence >

__gnu_debug::_Safe __gnu_debug::_Safe
__gnu_debug::_Safe _container< list< _Tp,
_forward_list< _SafeContainer >
_sequence< _SafeContainer > std::allocator< _Tp >
>, std::allocator< _Tp
__gnu_debug::_Safe >, __gnu_debug::_Safe_node
__gnu_debug::_Safe _node_sequence< list _sequence >
_sequence< list< _Tp, < _Tp, std::allocator
std::allocator< _Tp > > > < _Tp > > >
__gnu_debug::_Safe
_container< map< _Key,
std::__debug::map<
__gnu_debug::_Safe _Tp, _Compare, _Allocator
__gnu_debug::_Safe _Key, _Tp, _Cmp, _Allocator >
_node_sequence< map >, _Allocator, __gnu_debug
_sequence< map< _Key, ::_Safe_node_sequence >
< _Key, _Tp, _Compare,
_Tp, _Compare, _Allocator > >
_Allocator > >
__gnu_debug::_Safe
_sequence_base __gnu_debug::_Safe
__gnu_debug::_Safe __gnu_debug::_Safe _container< multimap
_sequence< multimap _node_sequence< multimap < _Key, _Tp, _Compare, std::__debug::multimap
< _Key, _Tp, _Compare, < _Key, _Tp, _Compare, _Allocator >, _Allocator, < _Key, _Tp, _Cmp, _Allocator >
_Allocator > > _Allocator > > __gnu_debug::_Safe_node
_sequence >

__gnu_debug::_Safe __gnu_debug::_Safe
_sequence< multiset _node_sequence< multiset __gnu_debug::_Safe
< _Key, _Compare, _Allocator > > < _Key, _Compare, _Allocator > > _container< multiset
std::__debug::multiset
< _Key, _Compare, _Allocator
< _Key, _Cmp, _Allocator >
>, _Allocator, __gnu_debug
__gnu_debug::_Safe __gnu_debug::_Safe ::_Safe_node_sequence >
_sequence< set< _Key, _node_sequence< set
_Compare, _Allocator > > < _Key, _Compare, _Allocator > >
__gnu_debug::_Safe
_container< set< _Key,
std::__debug::set<
__gnu_debug::_Safe _Compare, _Allocator
__gnu_debug::_Safe _Key, _Cmp, _Allocator >
_container< vector< >, _Allocator, __gnu_debug
_sequence< vector< ::_Safe_node_sequence >
_Tp, std::allocator
_Tp, std::allocator<
< _Tp > >, std::allocator
_Tp > > >
< _Tp >, __gnu_debug::_Safe
_sequence > std::__debug::vector
< _Tp, std::allocator
< _Tp > >
__gnu_debug::_Safe
_sequence< _Sequence > __gnu_debug::_Safe
_node_sequence< _Sequence >
__gnu_debug::_Safe
_container< unordered
_map< _Key, _Tp, std::
__gnu_debug::_Safe hash< _Key >, std::equal
_unordered_container _to< _Key >, std::allocator
< unordered_map< _Key, < std::pair< const _Key, _Tp
_Tp, std::hash< _Key > > >, std::allocator< std::
>, std::equal_to< _Key pair< const _Key, _Tp > >, __gnu
>, std::allocator< std _debug::_Safe_unordered_container >
::pair< const _Key, _Tp > > > >

__gnu_debug::_Safe
__gnu_debug::_Safe _container< unordered
_unordered_container _multimap< _Key, _Tp,
< unordered_multimap std::hash< _Key >, std
< _Key, _Tp, std::hash ::equal_to< _Key >, std
< _Key >, std::equal_to ::allocator< std::pair< const
< _Key >, std::allocator _Key, _Tp > > >, std::allocator
< std::pair< const _Key, < std::pair< const _Key, _Tp >
_Tp > > > > >, __gnu_debug::_Safe_unordered
__gnu_debug::_Safe _container >
_unordered_container_base
__gnu_debug::_Safe
_unordered_container __gnu_debug::_Safe
< unordered_multiset _container< unordered
< _Value, std::hash< _multiset< _Value, std
_Value >, std::equal_to ::hash< _Value >, std::
< _Value >, std::allocator equal_to< _Value >, std
< _Value > > > ::allocator< _Value > >,
std::allocator< _Value >,
__gnu_debug::_Safe_unordered
__gnu_debug::_Safe _container >
_unordered_container
< unordered_set< _Value,
std::hash< _Value >, std __gnu_debug::_Safe
::equal_to< _Value >, std _container< unordered
::allocator< _Value > > > _set< _Value, std::hash
< _Value >, std::equal_to
< _Value >, std::allocator
__gnu_debug::_Safe < _Value > >, std::allocator
_unordered_container < _Value >, __gnu_debug::_Safe
< _Container > _unordered_container >

Public Attributes

• _Safe_iterator_base ∗ _M_const_iterators
• _Safe_iterator_base ∗ _M_iterators
• unsigned int _M_version

Protected Member Functions

• constexpr _Safe_sequence_base (_Safe_sequence_base &&__seq) noexcept


• constexpr _Safe_sequence_base (const _Safe_sequence_base &) noexcept
• constexpr ∼_Safe_sequence_base ()
• void _M_detach_all ()

Generated by Doxygen
5.160 __gnu_debug::_Safe_sequence_base Class Reference 983

• void _M_detach_singular ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()
• void _M_invalidate_all () const
• void _M_revalidate_singular ()
• void _M_swap (_Safe_sequence_base &__x) noexcept

Friends

• class _Safe_iterator_base

5.160.1 Detailed Description

Base class that supports tracking of iterators that reference a sequence.


The _Safe_sequence_base class provides basic support for tracking iterators into a sequence. Sequences that track
iterators must derived from _Safe_sequence_base publicly, so that safe iterators (which inherit _Safe_iterator_base) can
attach to them. This class contains two linked lists of iterators, one for constant iterators and one for mutable iterators,
and a version number that allows very fast invalidation of all iterators that reference the container.
This class must ensure that no operation on it may throw an exception, otherwise safe sequences may fail to provide
the exception-safety guarantees required by the C++ standard.

5.160.2 Constructor & Destructor Documentation

∼_Safe_sequence_base()
__gnu_debug::_Safe_sequence_base::∼_Safe_sequence_base () [inline], [constexpr], [protected]
Notify all iterators that reference this sequence that the sequence is being destroyed.
References _M_detach_all().

5.160.3 Member Function Documentation

_M_detach_all()

void __gnu_debug::_Safe_sequence_base::_M_detach_all () [protected]


Detach all iterators, leaving them singular.
Referenced by ∼_Safe_sequence_base().

_M_detach_singular()

void __gnu_debug::_Safe_sequence_base::_M_detach_singular () [protected]


Detach all singular iterators.

Postcondition

for all iterators i attached to this sequence, i->_M_version == _M_version.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex () throw ( ) [protected]


For use in _Safe_sequence.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_invalidate_all()

void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const [inline], [protected]


Invalidates all iterators.
References _M_version.

Generated by Doxygen
984

_M_revalidate_singular()

void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () [protected]


Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before
(but for some reason, such as an exception, need to become valid again).

_M_swap()

void __gnu_debug::_Safe_sequence_base::_M_swap (
_Safe_sequence_base & __x) [protected], [noexcept]
Swap this sequence with the given sequence. This operation also swaps ownership of the iterators, so that when the
operation is complete all iterators that originally referenced one container now reference the other container.

5.160.4 Member Data Documentation

_M_const_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_const_iterators [mutable]


The list of constant iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_iterators [mutable]


The list of mutable iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_version

unsigned int __gnu_debug::_Safe_sequence_base::_M_version [mutable]


The container version number. This number may never be 0.
Referenced by _M_invalidate_all(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(),
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().
The documentation for this class was generated from the following file:

• safe_base.h

5.161 __gnu_debug::_Safe_unordered_container< _Container > Class Template


Reference
#include <safe_unordered_container.h>

Generated by Doxygen
5.161 __gnu_debug::_Safe_unordered_container< _Container > Class Template Reference 985

Inheritance diagram for __gnu_debug::_Safe_unordered_container< _Container >:

__gnu_debug::_Safe
_sequence_base

__gnu_debug::_Safe
_unordered_container_base

__gnu_debug::_Safe
_unordered_container
< _Container >

Public Member Functions

• void _M_invalidate_all ()
• template<typename _Predicate >
void _M_invalidate_if (_Predicate __pred)
• template<typename _Predicate >
void _M_invalidate_local_if (_Predicate __pred)

Public Attributes

• _Safe_iterator_base ∗ _M_const_iterators
• _Safe_iterator_base ∗ _M_const_local_iterators
• _Safe_iterator_base ∗ _M_iterators
• _Safe_iterator_base ∗ _M_local_iterators
• unsigned int _M_version

Protected Member Functions

• void _M_detach_all ()
• void _M_detach_singular ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()
• void _M_invalidate_all () const
• void _M_invalidate_locals ()
• void _M_revalidate_singular ()
• void _M_swap (_Safe_sequence_base &__x) noexcept
• void _M_swap (_Safe_unordered_container_base &__x) noexcept

Generated by Doxygen
986

Static Protected Member Functions

• template<typename _ExtractKey , typename _Source >


static _UContMergeGuard< _Source, _UContInvalidatePred< _ExtractKey, _Source > > _S_uc_guard (_←-
ExtractKey, _Source &__src)
• template<typename _ExtractKey , typename _Source >
static _UContMergeGuard< _Source, _UMContInvalidatePred< _ExtractKey, _Source > > _S_umc_guard (←-
_ExtractKey, _Source &__src)

5.161.1 Detailed Description

template<typename _Container>
class __gnu_debug::_Safe_unordered_container< _Container >

Base class for constructing a safe unordered container type that tracks iterators that reference it.
The class template _Safe_unordered_container simplifies the construction of safe unordered containers that track the
iterators that reference the container, so that the iterators are notified of changes in the container that may affect their
operation, e.g., if the container invalidates its iterators or is destructed. This class template may only be used by deriving
from it and passing the name of the derived class as its template parameter via the curiously recurring template pattern.
The derived class must have iterator and const_iterator types that are instantiations of class template _←-
Safe_iterator for this container and local_iterator and const_local_iterator types that are instantiations
of class template _Safe_local_iterator for this container. Iterators will then be tracked automatically.

5.161.2 Member Function Documentation

_M_detach_all()

void __gnu_debug::_Safe_unordered_container_base::_M_detach_all () [protected], [inherited]


Detach all iterators, leaving them singular.

_M_detach_singular()

void __gnu_debug::_Safe_sequence_base::_M_detach_singular () [protected], [inherited]


Detach all singular iterators.

Postcondition

for all iterators i attached to this sequence, i->_M_version == _M_version.

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_sequence.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_invalidate_all()

void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const [inline], [protected], [inherited]


Invalidates all iterators.
References __gnu_debug::_Safe_sequence_base::_M_version.

_M_invalidate_if()

template<typename _Container >


template<typename _Predicate >

Generated by Doxygen
5.161 __gnu_debug::_Safe_unordered_container< _Container > Class Template Reference 987

void __gnu_debug::_Safe_unordered_container< _Container >::_M_invalidate_if (


_Predicate __pred)
Invalidates all iterators x that reference this container, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal iterators nested in the safe ones.

_M_invalidate_local_if()

template<typename _Container >


template<typename _Predicate >
void __gnu_debug::_Safe_unordered_container< _Container >::_M_invalidate_local_if (
_Predicate __pred)
Invalidates all local iterators x that reference this container, are not singular, and for which __pred(x) returns true.
__pred will be invoked with the normal local iterators nested in the safe ones.

_M_revalidate_singular()

void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () [protected], [inherited]


Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before
(but for some reason, such as an exception, need to become valid again).

_M_swap() [1/2]

void __gnu_debug::_Safe_sequence_base::_M_swap (
_Safe_sequence_base & __x) [protected], [noexcept], [inherited]
Swap this sequence with the given sequence. This operation also swaps ownership of the iterators, so that when the
operation is complete all iterators that originally referenced one container now reference the other container.

_M_swap() [2/2]

void __gnu_debug::_Safe_unordered_container_base::_M_swap (
_Safe_unordered_container_base & __x) [protected], [noexcept], [inherited]
Swap this container with the given container. This operation also swaps ownership of the iterators, so that when the
operation is complete all iterators that originally referenced one container now reference the other container.

5.161.3 Member Data Documentation

_M_const_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_const_iterators [mutable], [inherited]


The list of constant iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_const_local_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_unordered_container_base::_M_const_local_iterators [inherited]


The list of constant local iterators that reference this container.

_M_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_iterators [mutable], [inherited]


The list of mutable iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

Generated by Doxygen
988

_M_local_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_unordered_container_base::_M_local_iterators [inherited]


The list of mutable local iterators that reference this container.

_M_version

unsigned int __gnu_debug::_Safe_sequence_base::_M_version [mutable], [inherited]


The container version number. This number may never be 0.
Referenced by __gnu_debug::_Safe_sequence_base::_M_invalidate_all(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Catego
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().
The documentation for this class was generated from the following files:

• safe_unordered_container.h
• safe_unordered_container.tcc

5.162 __gnu_debug::_Safe_unordered_container_base Class Reference


#include <safe_unordered_base.h>
Inheritance diagram for __gnu_debug::_Safe_unordered_container_base:

__gnu_debug::_Safe
_container< unordered
__gnu_debug::_Safe _map< _Key, _Tp, std::
_unordered_container hash< _Key >, std::equal
< unordered_map< _Key, _to< _Key >, std::allocator
_Tp, std::hash< _Key < std::pair< const _Key, _Tp
>, std::equal_to< _Key > > >, std::allocator< std::
>, std::allocator< std pair< const _Key, _Tp > >, __gnu
::pair< const _Key, _Tp > > > > _debug::_Safe_unordered_container >

__gnu_debug::_Safe
_container< unordered
__gnu_debug::_Safe
_multimap< _Key, _Tp,
_unordered_container
std::hash< _Key >, std
< unordered_multimap
::equal_to< _Key >, std
< _Key, _Tp, std::hash
::allocator< std::pair< const
< _Key >, std::equal_to
_Key, _Tp > > >, std::allocator
< _Key >, std::allocator
< std::pair< const _Key, _Tp >
< std::pair< const _Key,
>, __gnu_debug::_Safe_unordered
_Tp > > > >
_container >

__gnu_debug::_Safe
__gnu_debug::_Safe
_container< unordered
_unordered_container
_multiset< _Value, std
< unordered_multiset
__gnu_debug::_Safe __gnu_debug::_Safe ::hash< _Value >, std::
< _Value, std::hash<
_sequence_base _unordered_container_base equal_to< _Value >, std
_Value >, std::equal_to
::allocator< _Value > >,
< _Value >, std::allocator
std::allocator< _Value >,
< _Value > > >
__gnu_debug::_Safe_unordered
_container >
__gnu_debug::_Safe
_unordered_container
__gnu_debug::_Safe
< unordered_set< _Value,
_container< unordered
std::hash< _Value >, std
_set< _Value, std::hash
::equal_to< _Value >, std
< _Value >, std::equal_to
::allocator< _Value > > >
< _Value >, std::allocator
< _Value > >, std::allocator
< _Value >, __gnu_debug::_Safe
__gnu_debug::_Safe
_unordered_container >
_unordered_container
< _Container >

Public Attributes

• _Safe_iterator_base ∗ _M_const_iterators
• _Safe_iterator_base ∗ _M_const_local_iterators
• _Safe_iterator_base ∗ _M_iterators
• _Safe_iterator_base ∗ _M_local_iterators
• unsigned int _M_version

Generated by Doxygen
5.162 __gnu_debug::_Safe_unordered_container_base Class Reference 989

Protected Member Functions

• _Safe_unordered_container_base (_Safe_unordered_container_base &&__x) noexcept


• _Safe_unordered_container_base (const _Safe_unordered_container_base &) noexcept
• ∼_Safe_unordered_container_base () noexcept
• void _M_detach_all ()
• void _M_detach_singular ()
• __gnu_cxx::__mutex & _M_get_mutex () throw ()
• void _M_invalidate_all () const
• void _M_revalidate_singular ()
• void _M_swap (_Safe_sequence_base &__x) noexcept
• void _M_swap (_Safe_unordered_container_base &__x) noexcept

Friends

• class _Safe_local_iterator_base

5.162.1 Detailed Description

Base class that supports tracking of local iterators that reference an unordered container.
The _Safe_unordered_container_base class provides basic support for tracking iterators into an unordered container.
Containers that track iterators must derived from _Safe_unordered_container_base publicly, so that safe iterators (which
inherit _Safe_iterator_base) can attach to them. This class contains four linked lists of iterators, one for constant itera-
tors, one for mutable iterators, one for constant local iterators, one for mutable local iterators and a version number that
allows very fast invalidation of all iterators that reference the container.
This class must ensure that no operation on it may throw an exception, otherwise safe containers may fail to provide the
exception-safety guarantees required by the C++ standard.

5.162.2 Constructor & Destructor Documentation

∼_Safe_unordered_container_base()
__gnu_debug::_Safe_unordered_container_base::∼_Safe_unordered_container_base () [inline], [protected],
[noexcept]
Notify all iterators that reference this container that the container is being destroyed.

5.162.3 Member Function Documentation

_M_detach_all()

void __gnu_debug::_Safe_unordered_container_base::_M_detach_all () [protected]


Detach all iterators, leaving them singular.

_M_detach_singular()

void __gnu_debug::_Safe_sequence_base::_M_detach_singular () [protected], [inherited]


Detach all singular iterators.

Postcondition

for all iterators i attached to this sequence, i->_M_version == _M_version.

Generated by Doxygen
990

_M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex () throw ( ) [protected],


[inherited]
For use in _Safe_sequence.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_invalidate_all()

void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const [inline], [protected], [inherited]


Invalidates all iterators.
References __gnu_debug::_Safe_sequence_base::_M_version.

_M_revalidate_singular()

void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () [protected], [inherited]


Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before
(but for some reason, such as an exception, need to become valid again).

_M_swap() [1/2]

void __gnu_debug::_Safe_sequence_base::_M_swap (
_Safe_sequence_base & __x) [protected], [noexcept], [inherited]
Swap this sequence with the given sequence. This operation also swaps ownership of the iterators, so that when the
operation is complete all iterators that originally referenced one container now reference the other container.

_M_swap() [2/2]

void __gnu_debug::_Safe_unordered_container_base::_M_swap (
_Safe_unordered_container_base & __x) [protected], [noexcept]
Swap this container with the given container. This operation also swaps ownership of the iterators, so that when the
operation is complete all iterators that originally referenced one container now reference the other container.

5.162.4 Member Data Documentation

_M_const_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_const_iterators [mutable], [inherited]


The list of constant iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_const_local_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_unordered_container_base::_M_const_local_iterators
The list of constant local iterators that reference this container.

_M_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_sequence_base::_M_iterators [mutable], [inherited]


The list of mutable iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().

_M_local_iterators

_Safe_iterator_base∗ __gnu_debug::_Safe_unordered_container_base::_M_local_iterators
The list of mutable local iterators that reference this container.

Generated by Doxygen
5.163 __gnu_debug::_Safe_vector< _SafeSequence, _BaseSequence > Class Template Reference 991

_M_version

unsigned int __gnu_debug::_Safe_sequence_base::_M_version [mutable], [inherited]


The container version number. This number may never be 0.
Referenced by __gnu_debug::_Safe_sequence_base::_M_invalidate_all(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Catego
__gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequen
and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().
The documentation for this class was generated from the following file:

• safe_unordered_base.h

5.163 __gnu_debug::_Safe_vector< _SafeSequence, _BaseSequence > Class Template


Reference
#include <vector>
Inheritance diagram for __gnu_debug::_Safe_vector< _SafeSequence, _BaseSequence >:

__gnu_debug::_Safe
_vector< _SafeSequence,
_BaseSequence >

std::__debug::vector
< _Tp, _Allocator >

std::__debug::vector
< _Tp, std::allocator
< _Tp > >

Protected Member Functions

• constexpr _Safe_vector (_Safe_vector &&__x) noexcept


• constexpr _Safe_vector (const _Safe_vector &) noexcept
• constexpr _Safe_vector (size_type __n) noexcept
• bool _M_requires_reallocation (size_type __elements) const noexcept
• constexpr void _M_update_guaranteed_capacity () noexcept
• constexpr _Safe_vector & operator= (_Safe_vector &&__x) noexcept
• constexpr _Safe_vector & operator= (const _Safe_vector &) noexcept

Protected Attributes

• size_type _M_guaranteed_capacity

Generated by Doxygen
992

5.163.1 Detailed Description

template<typename _SafeSequence, typename _BaseSequence>


class __gnu_debug::_Safe_vector< _SafeSequence, _BaseSequence >

Base class for Debug Mode vector.


Adds information about the guaranteed capacity, which is useful for detecting code which relies on non-portable imple-
mentation details of the libstdc++ reallocation policy.
The documentation for this class was generated from the following file:

• debug/vector

5.164 __gnu_parallel::_SamplingSorter< __stable, _RAIter, _StrictWeakOrdering > Struct


Template Reference
#include <multiway_merge.h>

Public Member Functions

• void operator() (_RAIter __first, _RAIter __last, _StrictWeakOrdering __comp)

5.164.1 Detailed Description

template<bool __stable, class _RAIter, class _StrictWeakOrdering>


struct __gnu_parallel::_SamplingSorter< __stable, _RAIter, _StrictWeakOrdering >

Stable sorting functor.


Used to reduce code instanciation in multiway_merge_sampling_splitting.
The documentation for this struct was generated from the following file:

• multiway_merge.h

5.165 __gnu_parallel::_SamplingSorter< false, _RAIter, _StrictWeakOrdering > Struct


Template Reference
#include <multiway_merge.h>

Public Member Functions

• void operator() (_RAIter __first, _RAIter __last, _StrictWeakOrdering __comp)

5.165.1 Detailed Description

template<class _RAIter, class _StrictWeakOrdering>


struct __gnu_parallel::_SamplingSorter< false, _RAIter, _StrictWeakOrdering >

Non-__stable sorting functor.


Used to reduce code instantiation in multiway_merge_sampling_splitting.
The documentation for this struct was generated from the following file:

• multiway_merge.h

5.166 std::__detail::_Scanner< _CharT > Class Template Reference


#include <regex_scanner.h>

Generated by Doxygen
5.166 std::__detail::_Scanner< _CharT > Class Template Reference 993

Public Types

• typedef const std::ctype< _CharT > _CtypeT


• typedef regex_constants::syntax_option_type _FlagT
• typedef std::basic_string< _CharT > _StringT
• enum _TokenT : unsigned {
_S_token_anychar , _S_token_ord_char , _S_token_oct_num , _S_token_hex_num ,
_S_token_backref , _S_token_subexpr_begin , _S_token_subexpr_no_group_begin , _S_token_←-
subexpr_lookahead_begin ,
_S_token_subexpr_end , _S_token_bracket_begin , _S_token_bracket_neg_begin , _S_token_bracket_←-
end ,
_S_token_interval_begin , _S_token_interval_end , _S_token_quoted_class , _S_token_char_class_name
,
_S_token_collsymbol , _S_token_equiv_class_name , _S_token_opt , _S_token_or ,
_S_token_closure0 , _S_token_closure1 , _S_token_line_begin , _S_token_line_end ,
_S_token_word_bound , _S_token_comma , _S_token_dup_count , _S_token_eof ,
_S_token_bracket_dash , _S_token_unknown }

Public Member Functions

• _Scanner (const _CharT ∗__begin, const _CharT ∗__end, _FlagT __flags, std::locale __loc)
• void _M_advance ()
• _TokenT _M_get_token () const noexcept
• const _StringT & _M_get_value () const noexcept

Protected Types

• enum _StateT { _S_state_normal , _S_state_in_brace , _S_state_in_bracket }

Protected Member Functions

• const char ∗ _M_find_escape (char __c)


• bool _M_is_awk () const
• bool _M_is_basic () const
• bool _M_is_ecma () const
• bool _M_is_extended () const
• bool _M_is_grep () const

Protected Attributes

• bool _M_at_bracket_start
• const std::pair< char, char > _M_awk_escape_tbl [11]
• const char ∗ _M_basic_spec_char
• const std::pair< char, char > _M_ecma_escape_tbl [8]
• const char ∗ _M_ecma_spec_char
• const std::pair< char, char > ∗ _M_escape_tbl
• const char ∗ _M_extended_spec_char
• _FlagT _M_flags
• const char ∗ _M_spec_char
• _StateT _M_state
• _TokenT _M_token
• const std::pair< char, _TokenT > _M_token_tbl [9]

Generated by Doxygen
994

5.166.1 Detailed Description

template<typename _CharT>
class std::__detail::_Scanner< _CharT >

Scans an input range for regex tokens.


The _Scanner class interprets the regular expression pattern in the input range passed to its constructor as a se-
quence of parse tokens passed to the regular expression compiler. The sequence of tokens provided depends on the
flag settings passed to the constructor: different regular expression grammars will interpret the same input pattern in
syntactically different ways.

5.166.2 Member Enumeration Documentation

_TokenT

enum std::__detail::_ScannerBase::_TokenT : unsigned [inherited]


Token types returned from the scanner.
The documentation for this class was generated from the following files:

• regex_scanner.h
• regex_scanner.tcc

5.167 __gnu_debug::_Sequence_traits< _Sequence > Struct Template Reference


#include <safe_iterator.h>

Public Types

• typedef _Distance_traits< typename _Sequence::iterator > _DistTraits

Static Public Member Functions

• static _DistTraits::__type _S_size (const _Sequence &__seq)

5.167.1 Detailed Description

template<typename _Sequence>
struct __gnu_debug::_Sequence_traits< _Sequence >

Sequence traits giving the size of a container if possible.


The documentation for this struct was generated from the following file:

• safe_iterator.h

5.168 __gnu_parallel::_Settings Struct Reference


#include <settings.h>

Static Public Member Functions

• static const _Settings & get () throw ()


• static void set (_Settings &) throw ()

Generated by Doxygen
5.168 __gnu_parallel::_Settings Struct Reference 995

Public Attributes

• _SequenceIndex accumulate_minimal_n
• unsigned int adjacent_difference_minimal_n
• _AlgorithmStrategy algorithm_strategy
• unsigned int cache_line_size
• _SequenceIndex count_minimal_n
• _SequenceIndex fill_minimal_n
• _FindAlgorithm find_algorithm
• double find_increasing_factor
• _SequenceIndex find_initial_block_size
• _SequenceIndex find_maximum_block_size
• float find_scale_factor
• _SequenceIndex find_sequential_search_size
• _SequenceIndex for_each_minimal_n
• _SequenceIndex generate_minimal_n
• unsigned long long L1_cache_size
• unsigned long long L2_cache_size
• _SequenceIndex max_element_minimal_n
• _SequenceIndex merge_minimal_n
• unsigned int merge_oversampling
• _SplittingAlgorithm merge_splitting
• _SequenceIndex min_element_minimal_n
• _MultiwayMergeAlgorithm multiway_merge_algorithm
• int multiway_merge_minimal_k
• _SequenceIndex multiway_merge_minimal_n
• unsigned int multiway_merge_oversampling
• _SplittingAlgorithm multiway_merge_splitting
• _SequenceIndex nth_element_minimal_n
• _SequenceIndex partial_sort_minimal_n
• _PartialSumAlgorithm partial_sum_algorithm
• float partial_sum_dilation
• unsigned int partial_sum_minimal_n
• double partition_chunk_share
• _SequenceIndex partition_chunk_size
• _SequenceIndex partition_minimal_n
• _SequenceIndex qsb_steals
• unsigned int random_shuffle_minimal_n
• _SequenceIndex replace_minimal_n
• _SequenceIndex search_minimal_n
• _SequenceIndex set_difference_minimal_n
• _SequenceIndex set_intersection_minimal_n
• _SequenceIndex set_symmetric_difference_minimal_n
• _SequenceIndex set_union_minimal_n
• _SortAlgorithm sort_algorithm
• _SequenceIndex sort_minimal_n
• unsigned int sort_mwms_oversampling
• unsigned int sort_qs_num_samples_preset
• _SequenceIndex sort_qsb_base_case_maximal_n
• _SplittingAlgorithm sort_splitting
• unsigned int TLB_size
• _SequenceIndex transform_minimal_n
• _SequenceIndex unique_copy_minimal_n
• _SequenceIndex workstealing_chunk_size

Generated by Doxygen
996

5.168.1 Detailed Description

class _Settings Run-time settings for the parallel mode including all tunable parameters.

5.168.2 Member Function Documentation

get()

static const _Settings & __gnu_parallel::_Settings::get () throw ( ) [static]


Get the global settings.
Referenced by __gnu_parallel::__find_template(), __gnu_parallel::__find_template(), __gnu_parallel::__find_template(),
__gnu_parallel::__for_each_template_random_access_workstealing(), __gnu_parallel::__parallel_nth_element(),
__gnu_parallel::__parallel_partial_sum(), __gnu_parallel::__parallel_partial_sum_linear(), __gnu_parallel::__parallel_partition(),
__gnu_parallel::__parallel_random_shuffle_drs(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(),
__gnu_parallel::__parallel_sort_qs_conquer(), __gnu_parallel::__qsb_local_sort_with_helping(), __gnu_parallel::__sequential_random_s
__gnu_parallel::multiway_merge_sampling_splitting(), __gnu_parallel::parallel_multiway_merge(), __gnu_parallel::parallel_sort_mwms(),
and __gnu_parallel::parallel_sort_mwms_pu().

set()

static void __gnu_parallel::_Settings::set (


_Settings & ) throw ( ) [static]
Set the global settings.

5.168.3 Member Data Documentation

accumulate_minimal_n

_SequenceIndex __gnu_parallel::_Settings::accumulate_minimal_n
Minimal input size for accumulate.

adjacent_difference_minimal_n

unsigned int __gnu_parallel::_Settings::adjacent_difference_minimal_n


Minimal input size for adjacent_difference.

cache_line_size

unsigned int __gnu_parallel::_Settings::cache_line_size


Overestimation of cache line size. Used to avoid false sharing, i.e. elements of different threads are at least this amount
apart.
Referenced by __gnu_parallel::__for_each_template_random_access_workstealing().

count_minimal_n

_SequenceIndex __gnu_parallel::_Settings::count_minimal_n
Minimal input size for count and count_if.

fill_minimal_n

_SequenceIndex __gnu_parallel::_Settings::fill_minimal_n
Minimal input size for fill.

find_increasing_factor

double __gnu_parallel::_Settings::find_increasing_factor
Block size increase factor for find.

Generated by Doxygen
5.168 __gnu_parallel::_Settings Struct Reference 997

find_initial_block_size

_SequenceIndex __gnu_parallel::_Settings::find_initial_block_size
Initial block size for find.
Referenced by __gnu_parallel::__find_template().

find_maximum_block_size

_SequenceIndex __gnu_parallel::_Settings::find_maximum_block_size
Maximal block size for find.

find_scale_factor

float __gnu_parallel::_Settings::find_scale_factor
Block size scale-down factor with respect to current position.
Referenced by __gnu_parallel::__find_template().

find_sequential_search_size

_SequenceIndex __gnu_parallel::_Settings::find_sequential_search_size
Start with looking for this many elements sequentially, for find.
Referenced by __gnu_parallel::__find_template(), and __gnu_parallel::__find_template().

for_each_minimal_n

_SequenceIndex __gnu_parallel::_Settings::for_each_minimal_n
Minimal input size for for_each.

generate_minimal_n

_SequenceIndex __gnu_parallel::_Settings::generate_minimal_n
Minimal input size for generate.

L1_cache_size

unsigned long long __gnu_parallel::_Settings::L1_cache_size


size of the L1 cache in bytes (underestimation).

L2_cache_size

unsigned long long __gnu_parallel::_Settings::L2_cache_size


size of the L2 cache in bytes (underestimation).
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__sequential_random_shuffle().

max_element_minimal_n

_SequenceIndex __gnu_parallel::_Settings::max_element_minimal_n
Minimal input size for max_element.

merge_minimal_n

_SequenceIndex __gnu_parallel::_Settings::merge_minimal_n
Minimal input size for merge.

Generated by Doxygen
998

merge_oversampling

unsigned int __gnu_parallel::_Settings::merge_oversampling


Oversampling factor for merge.
Referenced by __gnu_parallel::multiway_merge_sampling_splitting(), and __gnu_parallel::parallel_multiway_merge().

min_element_minimal_n

_SequenceIndex __gnu_parallel::_Settings::min_element_minimal_n
Minimal input size for min_element.

multiway_merge_minimal_k

int __gnu_parallel::_Settings::multiway_merge_minimal_k
Oversampling factor for multiway_merge.

multiway_merge_minimal_n

_SequenceIndex __gnu_parallel::_Settings::multiway_merge_minimal_n
Minimal input size for multiway_merge.

multiway_merge_oversampling

unsigned int __gnu_parallel::_Settings::multiway_merge_oversampling


Oversampling factor for multiway_merge.

nth_element_minimal_n

_SequenceIndex __gnu_parallel::_Settings::nth_element_minimal_n
Minimal input size for nth_element.
Referenced by __gnu_parallel::__parallel_nth_element().

partial_sort_minimal_n

_SequenceIndex __gnu_parallel::_Settings::partial_sort_minimal_n
Minimal input size for partial_sort.

partial_sum_dilation

float __gnu_parallel::_Settings::partial_sum_dilation
Ratio for partial_sum. Assume "sum and write result" to be this factor slower than just "sum".
Referenced by __gnu_parallel::__parallel_partial_sum_linear().

partial_sum_minimal_n

unsigned int __gnu_parallel::_Settings::partial_sum_minimal_n


Minimal input size for partial_sum.

partition_chunk_share

double __gnu_parallel::_Settings::partition_chunk_share
Chunk size for partition, relative to input size. If > 0.0, this value overrides partition_chunk_size.
Referenced by __gnu_parallel::__parallel_partition().

Generated by Doxygen
5.168 __gnu_parallel::_Settings Struct Reference 999

partition_chunk_size

_SequenceIndex __gnu_parallel::_Settings::partition_chunk_size
Chunk size for partition.
Referenced by __gnu_parallel::__parallel_partition().

partition_minimal_n

_SequenceIndex __gnu_parallel::_Settings::partition_minimal_n
Minimal input size for partition.
Referenced by __gnu_parallel::__parallel_nth_element().

qsb_steals

_SequenceIndex __gnu_parallel::_Settings::qsb_steals
The number of stolen ranges in load-balanced quicksort.

random_shuffle_minimal_n

unsigned int __gnu_parallel::_Settings::random_shuffle_minimal_n


Minimal input size for random_shuffle.

replace_minimal_n

_SequenceIndex __gnu_parallel::_Settings::replace_minimal_n
Minimal input size for replace and replace_if.

search_minimal_n

_SequenceIndex __gnu_parallel::_Settings::search_minimal_n
Minimal input size for search and search_n.

set_difference_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_difference_minimal_n
Minimal input size for set_difference.

set_intersection_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_intersection_minimal_n
Minimal input size for set_intersection.

set_symmetric_difference_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_symmetric_difference_minimal_n
Minimal input size for set_symmetric_difference.

set_union_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_union_minimal_n
Minimal input size for set_union.

sort_minimal_n

_SequenceIndex __gnu_parallel::_Settings::sort_minimal_n
Minimal input size for parallel sorting.

Generated by Doxygen
1000

sort_mwms_oversampling

unsigned int __gnu_parallel::_Settings::sort_mwms_oversampling


Oversampling factor for parallel std::sort (MWMS).
Referenced by __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_pu().

sort_qs_num_samples_preset

unsigned int __gnu_parallel::_Settings::sort_qs_num_samples_preset


Such many samples to take to find a good pivot (quicksort).

sort_qsb_base_case_maximal_n

_SequenceIndex __gnu_parallel::_Settings::sort_qsb_base_case_maximal_n
Maximal subsequence __length to switch to unbalanced __base case. Applies to std::sort with dynamically load-
balanced quicksort.
Referenced by __gnu_parallel::__qsb_local_sort_with_helping().

TLB_size

unsigned int __gnu_parallel::_Settings::TLB_size


size of the Translation Lookaside Buffer (underestimation).
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__sequential_random_shuffle().

transform_minimal_n

_SequenceIndex __gnu_parallel::_Settings::transform_minimal_n
Minimal input size for parallel std::transform.

unique_copy_minimal_n

_SequenceIndex __gnu_parallel::_Settings::unique_copy_minimal_n
Minimal input size for unique_copy.
The documentation for this struct was generated from the following file:

• settings.h

5.169 std::_Sp_ebo_helper< _Nm, _Tp, false > Struct Template Reference


#include <shared_ptr_base.h>

Public Member Functions

• _Sp_ebo_helper (_Tp &&__tp)


• _Sp_ebo_helper (const _Tp &__tp)

Static Public Member Functions

• static _Tp & _S_get (_Sp_ebo_helper &__eboh)

5.169.1 Detailed Description

template<int _Nm, typename _Tp>


struct std::_Sp_ebo_helper< _Nm, _Tp, false >

Specialization not using EBO.


The documentation for this struct was generated from the following file:

Generated by Doxygen
5.170 std::_Sp_ebo_helper< _Nm, _Tp, true > Struct Template Reference 1001

• shared_ptr_base.h

5.170 std::_Sp_ebo_helper< _Nm, _Tp, true > Struct Template Reference


#include <shared_ptr_base.h>

Public Member Functions

• _Sp_ebo_helper (_Tp &&__tp)


• _Sp_ebo_helper (const _Tp &__tp)

Static Public Member Functions

• static _Tp & _S_get (_Sp_ebo_helper &__eboh)

5.170.1 Detailed Description

template<int _Nm, typename _Tp>


struct std::_Sp_ebo_helper< _Nm, _Tp, true >

Specialization using EBO.


The documentation for this struct was generated from the following file:

• shared_ptr_base.h

5.171 __gnu_parallel::_SplitConsistently< __exact, _RAIter, _Compare,


_SortingPlacesIterator > Struct Template Reference
#include <multiway_mergesort.h>

5.171.1 Detailed Description

template<bool __exact, typename _RAIter, typename _Compare, typename _SortingPlacesIterator>


struct __gnu_parallel::_SplitConsistently< __exact, _RAIter, _Compare, _SortingPlacesIterator >

Split consistently.
The documentation for this struct was generated from the following file:

• multiway_mergesort.h

5.172 __gnu_parallel::_SplitConsistently< false, _RAIter, _Compare,


_SortingPlacesIterator > Struct Template Reference
#include <multiway_mergesort.h>

Public Member Functions

• void operator() (const _ThreadIndex __iam, _PMWMSSortingData< _RAIter > ∗__sd, _Compare &__comp,
const typename std::iterator_traits< _RAIter >::difference_type __num_samples) const

5.172.1 Detailed Description

template<typename _RAIter, typename _Compare, typename _SortingPlacesIterator>


struct __gnu_parallel::_SplitConsistently< false, _RAIter, _Compare, _SortingPlacesIterator >

Split by sampling.
The documentation for this struct was generated from the following file:

Generated by Doxygen
1002

• multiway_mergesort.h

5.173 __gnu_parallel::_SplitConsistently< true, _RAIter, _Compare, _SortingPlacesIterator


> Struct Template Reference
#include <multiway_mergesort.h>

Public Member Functions

• void operator() (const _ThreadIndex __iam, _PMWMSSortingData< _RAIter > ∗__sd, _Compare &__comp,
const typename std::iterator_traits< _RAIter >::difference_type __num_samples) const

5.173.1 Detailed Description

template<typename _RAIter, typename _Compare, typename _SortingPlacesIterator>


struct __gnu_parallel::_SplitConsistently< true, _RAIter, _Compare, _SortingPlacesIterator >

Split by exact splitting.


The documentation for this struct was generated from the following file:

• multiway_mergesort.h

5.174 std::__detail::_StateSeq< _TraitsT > Class Template Reference


#include <regex_automaton.h>

Public Types

• typedef _NFA< _TraitsT > _RegexT

Public Member Functions

• _StateSeq (_RegexT &__nfa, _StateIdT __s)


• _StateSeq (_RegexT &__nfa, _StateIdT __s, _StateIdT __end)
• void _M_append (_StateIdT __id)
• void _M_append (const _StateSeq &__s)
• _StateSeq _M_clone ()

Public Attributes

• _StateIdT _M_end
• _RegexT & _M_nfa
• _StateIdT _M_start

5.174.1 Detailed Description

template<typename _TraitsT>
class std::__detail::_StateSeq< _TraitsT >

Describes a sequence of one or more _State, its current start and end(s). This structure contains fragments of an NFA
during construction.
The documentation for this class was generated from the following files:

• regex_automaton.h
• regex_automaton.tcc

Generated by Doxygen
5.175 __gnu_cxx::_Std_pointer_impl< _Tp > Class Template Reference 1003

5.175 __gnu_cxx::_Std_pointer_impl< _Tp > Class Template Reference


#include <pointer.h>

Public Types

• typedef _Tp element_type

Public Member Functions

• _Tp ∗ get () const


• bool operator< (const _Std_pointer_impl &__rarg) const
• bool operator== (const _Std_pointer_impl &__rarg) const
• void set (element_type ∗__arg)

5.175.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::_Std_pointer_impl< _Tp >

A storage policy for use with _Pointer_adapter<> which yields a standard pointer.
A _Storage_policy is required to provide 4 things: 1) A get() API for returning the stored pointer value. 2) An set() API
for storing a pointer value. 3) An element_type typedef to define the type this points to. 4) An operator<() to support
pointer comparison. 5) An operator==() to support pointer comparison.
The documentation for this class was generated from the following file:

• pointer.h

5.176 std::_Temporary_buffer< _ForwardIterator, _Tp > Class Template Reference


#include <stl_tempbuf.h>
Inheritance diagram for std::_Temporary_buffer< _ForwardIterator, _Tp >:

std::_Temporary_buffer
< _ForwardIterator, _Tp >

__gnu_cxx::temporary
_buffer< _ForwardIterator,
_Tp >

Public Types

• typedef pointer iterator


• typedef value_type ∗ pointer

Generated by Doxygen
1004

• typedef ptrdiff_t size_type


• typedef _Tp value_type

Public Member Functions

• _Temporary_buffer (_ForwardIterator __seed, size_type __original_len)


• iterator begin ()
• iterator end ()
• size_type requested_size () const
• size_type size () const

Protected Attributes

• struct std::_Temporary_buffer::_Impl _M_impl


• size_type _M_original_len

5.176.1 Detailed Description

template<typename _ForwardIterator, typename _Tp>


class std::_Temporary_buffer< _ForwardIterator, _Tp >

This class is used in two places: stl_algo.h and ext/memory, where it is wrapped as the temporary_buffer class. See
temporary_buffer docs for more notes.

5.176.2 Constructor & Destructor Documentation

_Temporary_buffer()

template<typename _ForwardIterator , typename _Tp >


std::_Temporary_buffer< _ForwardIterator, _Tp >::_Temporary_buffer (
_ForwardIterator __seed,
size_type __original_len)
Constructs a temporary buffer of a size somewhere between zero and the given length.
References std::_Temporary_buffer< _ForwardIterator, _Tp >::begin(), and std::_Temporary_buffer< _ForwardIterator, _Tp >::end().

5.176.3 Member Function Documentation

begin()

template<typename _ForwardIterator , typename _Tp >


iterator std::_Temporary_buffer< _ForwardIterator, _Tp >::begin () [inline]
As per Table mumble.
Referenced by std::_Temporary_buffer< _ForwardIterator, _Tp >::_Temporary_buffer().

end()

template<typename _ForwardIterator , typename _Tp >


iterator std::_Temporary_buffer< _ForwardIterator, _Tp >::end () [inline]
As per Table mumble.
Referenced by std::_Temporary_buffer< _ForwardIterator, _Tp >::_Temporary_buffer().

requested_size()

template<typename _ForwardIterator , typename _Tp >


size_type std::_Temporary_buffer< _ForwardIterator, _Tp >::requested_size () const [inline]
Returns the size requested by the constructor; may be >size().

Generated by Doxygen
5.177 __gnu_cxx::_Unqualified_type< _Tp > Struct Template Reference 1005

size()

template<typename _ForwardIterator , typename _Tp >


size_type std::_Temporary_buffer< _ForwardIterator, _Tp >::size () const [inline]
As per Table mumble.
The documentation for this class was generated from the following file:

• stl_tempbuf.h

5.177 __gnu_cxx::_Unqualified_type< _Tp > Struct Template Reference


#include <pointer.h>

Public Types

• typedef _Tp type

5.177.1 Detailed Description

template<typename _Tp>
struct __gnu_cxx::_Unqualified_type< _Tp >

This structure accommodates the way in which std::iterator_traits<> is normally specialized for const T∗, so that value←-
_type is still T.
The documentation for this struct was generated from the following file:

• pointer.h

5.178 std::_Vector_base< _Tp, _Alloc > Struct Template Reference


#include <stl_vector.h>

Generated by Doxygen
1006

Inheritance diagram for std::_Vector_base< _Tp, _Alloc >:

std::vector< Catalog
_info * >

std::vector< _CharT >

std::vector< _StringT >

std::vector< _CharClassT >

std::vector< size_t >

std::vector< time_zone >

std::vector< time_zone
_link >

std::vector< leap_second >


std::_Vector_base<
_Tp, _Alloc >
std::vector< double >

std::vector< _Cmpt >

std::vector< __diff
_type >

std::vector< _RealType >

std::vector< _BigBlock >

std::vector< int >

std::vector< result
_type >

std::vector< _Tp, std::match_results


_Alloc > < _Bi_iter, _Alloc >

Public Types

• typedef __gnu_cxx::__alloc_traits< _Alloc >::template rebind< _Tp >::other _Tp_alloc_type


• typedef _Alloc allocator_type
• typedef __gnu_cxx::__alloc_traits< _Tp_alloc_type >::pointer pointer

Public Member Functions

• constexpr _Vector_base (_Tp_alloc_type &&__a) noexcept

Generated by Doxygen
5.179 std::add_const< _Tp > Struct Template Reference 1007

• _Vector_base (_Vector_base &&)=default


• constexpr _Vector_base (_Vector_base &&__x, const allocator_type &__a)
• constexpr _Vector_base (const allocator_type &__a) noexcept
• constexpr _Vector_base (const allocator_type &__a, _Vector_base &&__x)
• constexpr _Vector_base (size_t __n)
• constexpr _Vector_base (size_t __n, const allocator_type &__a)
• constexpr pointer _M_allocate (size_t __n)
• constexpr void _M_deallocate (pointer __p, size_t __n)
• constexpr const _Tp_alloc_type & _M_get_Tp_allocator () const noexcept
• constexpr _Tp_alloc_type & _M_get_Tp_allocator () noexcept
• constexpr allocator_type get_allocator () const noexcept

Public Attributes

• _Vector_impl _M_impl

Protected Member Functions

• constexpr void _M_create_storage (size_t __n)

5.178.1 Detailed Description

template<typename _Tp, typename _Alloc>


struct std::_Vector_base< _Tp, _Alloc >

See bits/stl_deque.h's _Deque_base for an explanation.


The documentation for this struct was generated from the following file:

• stl_vector.h

5.179 std::add_const< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• using type

5.179.1 Detailed Description

template<typename _Tp>
struct std::add_const< _Tp >

add_const
The documentation for this struct was generated from the following file:

• type_traits

5.180 std::add_cv< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• using type

Generated by Doxygen
1008

5.180.1 Detailed Description

template<typename _Tp>
struct std::add_cv< _Tp >

add_cv
The documentation for this struct was generated from the following file:

• type_traits

5.181 std::add_lvalue_reference< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• using type

5.181.1 Detailed Description

template<typename _Tp>
struct std::add_lvalue_reference< _Tp >

add_lvalue_reference
The documentation for this struct was generated from the following file:

• type_traits

5.182 std::add_pointer< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• using type

5.182.1 Detailed Description

template<typename _Tp>
struct std::add_pointer< _Tp >

add_pointer
The documentation for this struct was generated from the following file:

• type_traits

5.183 std::add_rvalue_reference< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• using type

Generated by Doxygen
5.184 std::add_volatile< _Tp > Struct Template Reference 1009

5.183.1 Detailed Description

template<typename _Tp>
struct std::add_rvalue_reference< _Tp >

add_rvalue_reference
The documentation for this struct was generated from the following file:

• type_traits

5.184 std::add_volatile< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• using type

5.184.1 Detailed Description

template<typename _Tp>
struct std::add_volatile< _Tp >

add_volatile
The documentation for this struct was generated from the following file:

• type_traits

5.185 std::adopt_lock_t Struct Reference


#include <std_mutex.h>

5.185.1 Detailed Description

Assume the calling thread has already obtained mutex ownership and manage it.
The documentation for this struct was generated from the following file:

• std_mutex.h

5.186 std::aligned_storage< _Len, _Align > Struct Template Reference


#include <type_traits>

5.186.1 Detailed Description

template<size_t _Len, size_t _Align = __aligned_storage_default_alignment(_Len)>


struct std::aligned_storage< _Len, _Align >

Aligned storage.
The member typedef type is be a POD type suitable for use as uninitialized storage for any object whose size is at
most _Len and whose alignment is a divisor of _Align.
It is important to use the nested type as uninitialized storage, not the std::aligned_storage type itself which
is an empty class with 1-byte alignment. So this is correct:
typename std::aligned_storage<sizeof(X), alignof(X)>::type m_xobj;
This is wrong:
std::aligned_storage<sizeof(X), alignof(X)> m_xobj;
In C++14 and later std::aligned_storage_t<sizeof(X), alignof(X)> can be used to refer to the
type member typedef.

Generated by Doxygen
1010

The default value of _Align is supposed to be the most stringent fundamental alignment requirement for any C++ object
type whose size is no greater than _Len (see [basic.align] in the C++ standard).

Deprecated Deprecated in C++23. Uses can be replaced by an array std::byte[_Len] declared with
alignas(_Align).

The documentation for this struct was generated from the following file:

• type_traits

5.187 std::aligned_union< _Len, _Types > Struct Template Reference


#include <type_traits>

Public Types

• using type

Static Public Attributes

• static const size_t alignment_value

5.187.1 Detailed Description

template<size_t _Len, typename... _Types>


struct std::aligned_union< _Len, _Types >

Provide aligned storage for types.


[meta.trans.other]
Provides aligned storage for any of the provided types of at least size _Len.

See also

aligned_storage

Deprecated Deprecated in C++23.

The documentation for this struct was generated from the following file:

• type_traits

5.188 std::alignment_of< _Tp > Struct Template Reference


#include <type_traits>

Generated by Doxygen
5.189 std::allocator< typename > Class Template Reference 1011

Inheritance diagram for std::alignment_of< _Tp >:

std::integral_constant
< std::size_t, alignof(_Tp)>

std::alignment_of<
_Tp >

Public Types

• using type
• using value_type

Public Member Functions

• constexpr operator value_type () const noexcept

Static Public Attributes

• static constexpr std::size_t value

5.188.1 Detailed Description

template<typename _Tp>
struct std::alignment_of< _Tp >

alignment_of
The documentation for this struct was generated from the following file:

• type_traits

5.189 std::allocator< typename > Class Template Reference


#include <memory>

Generated by Doxygen
1012

Inheritance diagram for std::allocator< typename >:

__allocator_base< _Tp >

std::allocator< typename >

Public Types

• typedef ptrdiff_t difference_type


• using is_always_equal
• using propagate_on_container_move_assignment
• typedef size_t size_type
• typedef _Tp value_type

Public Member Functions

• constexpr allocator (const allocator &__a) noexcept


• template<typename _Tp1 >
constexpr allocator (const allocator< _Tp1 > &) noexcept
• _Tp ∗ allocate (size_type __n, const void ∗=static_cast< const void ∗ >(0))
• constexpr _Tp ∗ allocate (size_t __n)
• constexpr void deallocate (_Tp ∗__p, size_t __n)
• allocator & operator= (const allocator &)=default

Friends

• constexpr bool operator== (const allocator &, const allocator &) noexcept

Related Symbols

(Note that these are not member symbols.)

• template<typename _T1 , typename _T2 >


constexpr bool operator== (const allocator< _T1 > &, const allocator< _T2 > &) noexcept

5.189.1 Detailed Description

template<typename>
class std::allocator< typename >

The standard allocator, as per C++03 [20.4.1].


See https://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#std.util.←-
memory.allocator for further details.

Generated by Doxygen
5.190 std::allocator< void > Class Reference 1013

Template Parameters

_Tp Type of allocated object.

The documentation for this class was generated from the following files:

• allocator.h
• memoryfwd.h

5.190 std::allocator< void > Class Reference


#include <memory>

Public Types

• typedef ptrdiff_t difference_type


• using is_always_equal
• using propagate_on_container_move_assignment
• typedef size_t size_type
• typedef void value_type

Public Member Functions

• template<typename _Up >


constexpr allocator (const allocator< _Up > &) noexcept

5.190.1 Detailed Description

std::allocator<void> specialization.
The documentation for this class was generated from the following file:

• allocator.h

5.191 std::allocator_traits< typename > Struct Template Reference


#include <memory>

Public Types

• typedef _Alloc allocator_type


• using const_pointer
• using const_void_pointer
• using difference_type
• using is_always_equal
• using pointer
• using propagate_on_container_copy_assignment
• using propagate_on_container_move_assignment
• using propagate_on_container_swap
• template<typename _Tp >
using rebind_alloc
• template<typename _Tp >
using rebind_traits
• using size_type
• typedef _Alloc::value_type value_type
• using void_pointer

Generated by Doxygen
1014

Static Public Member Functions

• static constexpr pointer allocate (_Alloc &__a, size_type __n)


• static constexpr pointer allocate (_Alloc &__a, size_type __n, const_void_pointer __hint)
• template<typename _Tp , typename... _Args>
requires __can_construct<_Alloc, _Tp, _Args...>
static constexpr void construct (_Alloc &__a, _Tp ∗__p, _Args &&... __args) noexcept(_S_nothrow_construct<
_Tp, _Args... >())
• static constexpr void deallocate (_Alloc &__a, pointer __p, size_type __n)
• template<typename _Tp >
static constexpr void destroy (_Alloc &__a, _Tp ∗__p) noexcept(_S_nothrow_destroy< _Tp >())
• static constexpr size_type max_size (const _Alloc &__a) noexcept
• static constexpr _Alloc select_on_container_copy_construction (const _Alloc &__rhs)

5.191.1 Detailed Description

template<typename>
struct std::allocator_traits< typename >

Uniform interface to all allocator types.

Since

C++11

5.191.2 Member Typedef Documentation

allocator_type

template<typename >
_Alloc std::allocator_traits< typename >::allocator_type
The allocator type.

const_pointer

template<typename >
using std::allocator_traits< typename >::const_pointer
The allocator's const pointer type.
Alloc::const_pointer if that type exists, otherwise pointer_traits<pointer>::rebind<const
value_type>

const_void_pointer

template<typename >
using std::allocator_traits< typename >::const_void_pointer
The allocator's const void pointer type.
Alloc::const_void_pointer if that type exists, otherwise pointer_traits<pointer>::rebind<const
void>

difference_type

template<typename >
using std::allocator_traits< typename >::difference_type
The allocator's difference type.
Alloc::difference_type if that type exists, otherwise pointer_traits<pointer>::difference←-
_type

Generated by Doxygen
5.191 std::allocator_traits< typename > Struct Template Reference 1015

is_always_equal

template<typename >
using std::allocator_traits< typename >::is_always_equal
Whether all instances of the allocator type compare equal.
Alloc::is_always_equal if that type exists, otherwise is_empty<Alloc>::type

pointer

template<typename >
using std::allocator_traits< typename >::pointer
The allocator's pointer type.
Alloc::pointer if that type exists, otherwise value_type∗

propagate_on_container_copy_assignment

template<typename >
using std::allocator_traits< typename >::propagate_on_container_copy_assignment
How the allocator is propagated on copy assignment.
Alloc::propagate_on_container_copy_assignment if that type exists, otherwise false_type

propagate_on_container_move_assignment

template<typename >
using std::allocator_traits< typename >::propagate_on_container_move_assignment
How the allocator is propagated on move assignment.
Alloc::propagate_on_container_move_assignment if that type exists, otherwise false_type

propagate_on_container_swap

template<typename >
using std::allocator_traits< typename >::propagate_on_container_swap
How the allocator is propagated on swap.
Alloc::propagate_on_container_swap if that type exists, otherwise false_type

size_type

template<typename >
using std::allocator_traits< typename >::size_type
The allocator's size type.
Alloc::size_type if that type exists, otherwise make_unsigned<difference_type>::type

value_type

template<typename >
_Alloc::value_type std::allocator_traits< typename >::value_type
The allocated type.

void_pointer

template<typename >
using std::allocator_traits< typename >::void_pointer
The allocator's void pointer type.
Alloc::void_pointer if that type exists, otherwise pointer_traits<pointer>::rebind<void>

Generated by Doxygen
1016

5.191.3 Member Function Documentation

allocate() [1/2]

template<typename >
static constexpr pointer std::allocator_traits< typename >::allocate (
_Alloc & __a,
size_type __n) [inline], [static], [nodiscard], [constexpr]
Allocate memory.

Parameters
_←- An allocator.
_a
_←- The number of objects to allocate space for.
_n

Calls a.allocate(n)

allocate() [2/2]

template<typename >
static constexpr pointer std::allocator_traits< typename >::allocate (
_Alloc & __a,
size_type __n,
const_void_pointer __hint) [inline], [static], [nodiscard], [constexpr]
Allocate memory.

Parameters
__a An allocator.
__n The number of objects to allocate space for.
__hint Aid to locality.

Returns

Memory of suitable size and alignment for n objects of type value_type

Returns a.allocate(n, hint) if that expression is well-formed, otherwise returns a.allocate(n)

construct()

template<typename >
template<typename _Tp , typename... _Args>
requires __can_construct<_Alloc, _Tp, _Args...>
static constexpr void std::allocator_traits< typename >::construct (
_Alloc & __a,
_Tp ∗ __p,
_Args &&... __args) [inline], [static], [constexpr], [noexcept]
Construct an object of type _Tp

Parameters
__a An allocator.
__p Pointer to memory of suitable size and alignment for Tp

Generated by Doxygen
5.191 std::allocator_traits< typename > Struct Template Reference 1017

__args Constructor arguments.

Calls __a.construct(__p, std::forward<Args>(__args)...) if that expression is well-formed,


otherwise uses placement-new to construct an object of type _Tp at location __p from the arguments __args...
References std::_Construct(), and std::forward().

deallocate()

template<typename >
static constexpr void std::allocator_traits< typename >::deallocate (
_Alloc & __a,
pointer __p,
size_type __n) [inline], [static], [constexpr]
Deallocate memory.

Parameters
_←- An allocator.
_a
_←- Pointer to the memory to deallocate.
_p
_←- The number of objects space was allocated for.
_n

Calls a.deallocate(p, n)

destroy()

template<typename >
template<typename _Tp >
static constexpr void std::allocator_traits< typename >::destroy (
_Alloc & __a,
_Tp ∗ __p) [inline], [static], [constexpr], [noexcept]
Destroy an object of type _Tp.

Parameters
_←- An allocator.
_a
_←- Pointer to the object to destroy
_p

Calls __a.destroy(__p) if that expression is well-formed, otherwise calls __p->∼_Tp()


References std::_Destroy().

max_size()

template<typename >
static constexpr size_type std::allocator_traits< typename >::max_size (
const _Alloc & __a) [inline], [static], [constexpr], [noexcept]
The maximum supported allocation size.

Generated by Doxygen
1018

Parameters
_←- An allocator.
_a

Returns

__a.max_size() or numeric_limits<size_type>::max()
Returns __a.max_size() if that expression is well-formed, otherwise returns numeric_limits<size_←-
type>::max()

select_on_container_copy_construction()

template<typename >
static constexpr _Alloc std::allocator_traits< typename >::select_on_container_copy_construction
(
const _Alloc & __rhs) [inline], [static], [constexpr]
Obtain an allocator to use when copying a container.

Parameters
__rhs An allocator.

Returns

__rhs.select_on_container_copy_construction() or __rhs
Returns __rhs.select_on_container_copy_construction() if that expression is well-formed, otherwise
returns __rhs
The documentation for this struct was generated from the following files:
• bits/alloc_traits.h
• memory_resource.h
• memoryfwd.h

5.192 std::allocator_traits< allocator< _Tp > > Struct Template Reference


#include <memory>

Public Types

• using allocator_type
• using const_pointer
• using const_void_pointer
• using difference_type
• using is_always_equal
• using pointer
• using propagate_on_container_copy_assignment
• using propagate_on_container_move_assignment
• using propagate_on_container_swap
• template<typename _Up >
using rebind_alloc
• template<typename _Up >
using rebind_traits
• using size_type
• using value_type
• using void_pointer

Generated by Doxygen
5.192 std::allocator_traits< allocator< _Tp > > Struct Template Reference 1019

Static Public Member Functions

• static constexpr pointer allocate (allocator_type &__a, size_type __n)


• static constexpr pointer allocate (allocator_type &__a, size_type __n, const_void_pointer __hint)
• template<typename _Up , typename... _Args>
static constexpr void construct (allocator_type &__a, _Up ∗__p, _Args &&... __args) noexcept(__is_nothrow_←-
new_constructible< _Up, _Args... >)
• static constexpr void deallocate (allocator_type &__a, pointer __p, size_type __n)
• template<typename _Up >
static constexpr void destroy (allocator_type &__a, _Up ∗__p) noexcept(is_nothrow_destructible< _Up >::value)
• static constexpr size_type max_size (const allocator_type &__a) noexcept
• static constexpr allocator_type select_on_container_copy_construction (const allocator_type &__rhs)

5.192.1 Detailed Description

template<typename _Tp>
struct std::allocator_traits< allocator< _Tp > >

Partial specialization for std::allocator


Since

C++11

See also

std::allocator_traits

5.192.2 Member Typedef Documentation

allocator_type

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::allocator_type
The allocator type.

const_pointer

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::const_pointer
The allocator's const pointer type.

const_void_pointer

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::const_void_pointer
The allocator's const void pointer type.

difference_type

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::difference_type
The allocator's difference type.

is_always_equal

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::is_always_equal
Whether all instances of the allocator type compare equal.

Generated by Doxygen
1020

pointer

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::pointer
The allocator's pointer type.

propagate_on_container_copy_assignment

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::propagate_on_container_copy_assignment
How the allocator is propagated on copy assignment.

propagate_on_container_move_assignment

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::propagate_on_container_move_assignment
How the allocator is propagated on move assignment.

propagate_on_container_swap

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::propagate_on_container_swap
How the allocator is propagated on swap.

size_type

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::size_type
The allocator's size type.

value_type

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::value_type
The allocated type.

void_pointer

template<typename _Tp >


using std::allocator_traits< allocator< _Tp > >::void_pointer
The allocator's void pointer type.

5.192.3 Member Function Documentation

allocate() [1/2]

template<typename _Tp >


static constexpr pointer std::allocator_traits< allocator< _Tp > >::allocate (
allocator_type & __a,
size_type __n) [inline], [static], [constexpr]
Allocate memory.

Parameters
_←- An allocator.
_a

Generated by Doxygen
5.192 std::allocator_traits< allocator< _Tp > > Struct Template Reference 1021

Parameters

_←- The number of objects to allocate space for.


_n

Calls a.allocate(n)

allocate() [2/2]

template<typename _Tp >


static constexpr pointer std::allocator_traits< allocator< _Tp > >::allocate (
allocator_type & __a,
size_type __n,
const_void_pointer __hint) [inline], [static], [constexpr]
Allocate memory.

Parameters
__a An allocator.
__n The number of objects to allocate space for.
__hint Aid to locality.

Returns

Memory of suitable size and alignment for n objects of type value_type

Returns a.allocate(n, hint)

construct()

template<typename _Tp >


template<typename _Up , typename... _Args>
static constexpr void std::allocator_traits< allocator< _Tp > >::construct (
allocator_type & __a,
_Up ∗ __p,
_Args &&... __args) [inline], [static], [constexpr], [noexcept]
Construct an object of type _Up

Parameters
__a An allocator.
__p Pointer to memory of suitable size and alignment for an object of type _Up.
__args Constructor arguments.

Calls __a.construct(__p, std::forward<_Args>(__args)...) in C++11, C++14 and C++17.


Changed in C++20 to call std::construct_at(__p, std::forward<_Args>(__args)...) instead.
References std::_Construct(), and std::forward().

deallocate()

template<typename _Tp >


static constexpr void std::allocator_traits< allocator< _Tp > >::deallocate (
allocator_type & __a,

Generated by Doxygen
1022

pointer __p,
size_type __n) [inline], [static], [constexpr]
Deallocate memory.

Generated by Doxygen
5.192 std::allocator_traits< allocator< _Tp > > Struct Template Reference 1023

Parameters
_←- An allocator.
_a
_←- Pointer to the memory to deallocate.
_p
_←- The number of objects space was allocated for.
_n

Calls a.deallocate(p, n)

destroy()

template<typename _Tp >


template<typename _Up >
static constexpr void std::allocator_traits< allocator< _Tp > >::destroy (
allocator_type & __a,
_Up ∗ __p) [inline], [static], [constexpr], [noexcept]
Destroy an object of type _Up.

Parameters
_←- An allocator.
_a
_←- Pointer to the object to destroy
_p

Calls __a.destroy(__p).

max_size()

template<typename _Tp >


static constexpr size_type std::allocator_traits< allocator< _Tp > >::max_size (
const allocator_type & __a) [inline], [static], [constexpr], [noexcept]
The maximum supported allocation size.

Parameters
_←- An allocator.
_a

Returns

__a.max_size()

select_on_container_copy_construction()

template<typename _Tp >


static constexpr allocator_type std::allocator_traits< allocator< _Tp > >::select_on_container←-
_copy_construction (
const allocator_type & __rhs) [inline], [static], [constexpr]
Obtain an allocator to use when copying a container.

Generated by Doxygen
1024

Parameters
__rhs An allocator.

Returns

__rhs

The documentation for this struct was generated from the following file:

• bits/alloc_traits.h

5.193 std::allocator_traits< allocator< void > > Struct Reference


#include <memory>

Public Types

• using allocator_type
• using const_pointer
• using const_void_pointer
• using difference_type
• using is_always_equal
• using pointer
• using propagate_on_container_copy_assignment
• using propagate_on_container_move_assignment
• using propagate_on_container_swap
• template<typename _Up >
using rebind_alloc
• template<typename _Up >
using rebind_traits
• using size_type
• using value_type
• using void_pointer

Static Public Member Functions

• static void ∗ allocate (allocator_type &, size_type, const void ∗=nullptr)=delete


• template<typename _Up , typename... _Args>
static constexpr void construct (allocator_type &, _Up ∗__p, _Args &&... __args) noexcept(__is_nothrow_new←-
_constructible< _Up, _Args... >)
• static void deallocate (allocator_type &, void ∗, size_type)=delete
• template<typename _Up >
static constexpr void destroy (allocator_type &, _Up ∗__p) noexcept(is_nothrow_destructible< _Up >::value)
• static size_type max_size (const allocator_type &)=delete
• static constexpr allocator_type select_on_container_copy_construction (const allocator_type &__rhs)

5.193.1 Detailed Description

Explicit specialization for std::allocator<void>

Since

C++11

Generated by Doxygen
5.193 std::allocator_traits< allocator< void > > Struct Reference 1025

See also

std::allocator_traits

5.193.2 Member Typedef Documentation

allocator_type

using std::allocator_traits< allocator< void > >::allocator_type


The allocator type.

const_pointer

using std::allocator_traits< allocator< void > >::const_pointer


The allocator's const pointer type.

const_void_pointer

using std::allocator_traits< allocator< void > >::const_void_pointer


The allocator's const void pointer type.

difference_type

using std::allocator_traits< allocator< void > >::difference_type


The allocator's difference type.

is_always_equal

using std::allocator_traits< allocator< void > >::is_always_equal


Whether all instances of the allocator type compare equal.

pointer

using std::allocator_traits< allocator< void > >::pointer


The allocator's pointer type.

propagate_on_container_copy_assignment

using std::allocator_traits< allocator< void > >::propagate_on_container_copy_assignment


How the allocator is propagated on copy assignment.

propagate_on_container_move_assignment

using std::allocator_traits< allocator< void > >::propagate_on_container_move_assignment


How the allocator is propagated on move assignment.

propagate_on_container_swap

using std::allocator_traits< allocator< void > >::propagate_on_container_swap


How the allocator is propagated on swap.

size_type

using std::allocator_traits< allocator< void > >::size_type


The allocator's size type.

Generated by Doxygen
1026

value_type

using std::allocator_traits< allocator< void > >::value_type


The allocated type.

void_pointer

using std::allocator_traits< allocator< void > >::void_pointer


The allocator's void pointer type.

5.193.3 Member Function Documentation

allocate()

static void ∗ std::allocator_traits< allocator< void > >::allocate (


allocator_type & ,
size_type ,
const void ∗ = nullptr) [static], [delete]
allocate is ill-formed for allocator<void>

construct()

template<typename _Up , typename... _Args>


static constexpr void std::allocator_traits< allocator< void > >::construct (
allocator_type & ,
_Up ∗ __p,
_Args &&... __args) [inline], [static], [constexpr], [noexcept]
Construct an object of type _Up

Parameters
__a An allocator.
__p Pointer to memory of suitable size and alignment for an object of type _Up.
__args Constructor arguments.

Calls __a.construct(__p, std::forward<_Args>(__args)...) in C++11, C++14 and C++17.


Changed in C++20 to call std::construct_at(__p, std::forward<_Args>(__args)...) instead.
References std::_Construct(), and std::forward().

deallocate()

static void std::allocator_traits< allocator< void > >::deallocate (


allocator_type & ,
void ∗ ,
size_type ) [static], [delete]
deallocate is ill-formed for allocator<void>

destroy()

template<typename _Up >


static constexpr void std::allocator_traits< allocator< void > >::destroy (
allocator_type & ,
_Up ∗ __p) [inline], [static], [constexpr], [noexcept]
Destroy an object of type _Up

Generated by Doxygen
5.194 std::allocator_traits< pmr::polymorphic_allocator< _Tp > > Struct Template Reference 1027

Parameters
_←- An allocator.
_a
_←- Pointer to the object to destroy
_p

Invokes the destructor for ∗__p.


References std::_Destroy().

max_size()

static size_type std::allocator_traits< allocator< void > >::max_size (


const allocator_type & ) [static], [delete]
max_size is ill-formed for allocator<void>

select_on_container_copy_construction()

static constexpr allocator_type std::allocator_traits< allocator< void > >::select_on_container←-


_copy_construction (
const allocator_type & __rhs) [inline], [static], [constexpr]
Obtain an allocator to use when copying a container.

Parameters
__rhs An allocator.

Returns

__rhs

The documentation for this struct was generated from the following file:

• bits/alloc_traits.h

5.194 std::allocator_traits< pmr::polymorphic_allocator< _Tp > > Struct Template


Reference
#include <memory_resource>

Public Types

• using allocator_type
• using const_pointer
• using const_void_pointer
• using difference_type
• using is_always_equal
• using pointer
• template<typename _Up >
using rebind_alloc
• template<typename _Up >
using rebind_traits
• using size_type
• using value_type
• using void_pointer

Generated by Doxygen
1028

Static Public Member Functions

• static pointer allocate (allocator_type &__a, size_type __n)


• static pointer allocate (allocator_type &__a, size_type __n, const_void_pointer)
• template<typename _Up , typename... _Args>
static void construct (allocator_type &__a, _Up ∗__p, _Args &&... __args)
• static void deallocate (allocator_type &__a, pointer __p, size_type __n)
• template<typename _Up >
static constexpr void destroy (allocator_type &, _Up ∗__p) noexcept(is_nothrow_destructible< _Up >::value)
• static constexpr size_type max_size (const allocator_type &) noexcept

• using propagate_on_container_copy_assignment
• using propagate_on_container_move_assignment
• using propagate_on_container_swap
• static allocator_type select_on_container_copy_construction (const allocator_type &) noexcept

5.194.1 Detailed Description

template<typename _Tp>
struct std::allocator_traits< pmr::polymorphic_allocator< _Tp > >

Partial specialization for std::pmr::polymorphic_allocator


Since

C++17

5.194.2 Member Typedef Documentation

allocator_type

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::allocator_type
The allocator type.

const_pointer

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::const_pointer
The allocator's const pointer type.

const_void_pointer

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::const_void_pointer
The allocator's const void pointer type.

difference_type

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::difference_type
The allocator's difference type.

is_always_equal

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::is_always_equal
Whether all instances of the allocator type compare equal.

Generated by Doxygen
5.194 std::allocator_traits< pmr::polymorphic_allocator< _Tp > > Struct Template Reference 1029

pointer

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::pointer
The allocator's pointer type.

propagate_on_container_copy_assignment

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::propagate_on_container_copy_←-
assignment
A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.

propagate_on_container_move_assignment

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::propagate_on_container_move_←-
assignment
A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.

propagate_on_container_swap

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::propagate_on_container_swap
A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.

size_type

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::size_type
The allocator's size type.

value_type

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::value_type
The allocated type.

void_pointer

template<typename _Tp >


using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::void_pointer
The allocator's void pointer type.

5.194.3 Member Function Documentation

allocate() [1/2]

template<typename _Tp >


static pointer std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::allocate (
allocator_type & __a,
size_type __n) [inline], [static], [nodiscard]
Allocate memory.

Generated by Doxygen
1030

Parameters
_←- An allocator.
_a
_←- The number of objects to allocate space for.
_n

Calls a.allocate(n).

allocate() [2/2]

template<typename _Tp >


static pointer std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::allocate (
allocator_type & __a,
size_type __n,
const_void_pointer ) [inline], [static], [nodiscard]
Allocate memory.

Parameters
_←- An allocator.
_a
_←- The number of objects to allocate space for.
_n

Returns

Memory of suitable size and alignment for n objects of type value_type.

The third parameter is ignored..


Returns a.allocate(n).

construct()

template<typename _Tp >


template<typename _Up , typename... _Args>
static void std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::construct (
allocator_type & __a,
_Up ∗ __p,
_Args &&... __args) [inline], [static]
Construct an object of type _Up

Parameters
__a An allocator.
__p Pointer to memory of suitable size and alignment for an object of type _Up.
__args Constructor arguments.

Calls __a.construct(__p, std::forward<_Args>(__args)...) in C++11, C++14 and C++17.


Changed in C++20 to call std::construct_at(__p, std::forward<_Args>(__args)...) instead.
References std::forward().

Generated by Doxygen
5.194 std::allocator_traits< pmr::polymorphic_allocator< _Tp > > Struct Template Reference 1031

deallocate()

template<typename _Tp >


static void std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::deallocate (
allocator_type & __a,
pointer __p,
size_type __n) [inline], [static]
Deallocate memory.

Parameters
_←- An allocator.
_a
_←- Pointer to the memory to deallocate.
_p
_←- The number of objects space was allocated for.
_n

Calls a.deallocate(p, n).

destroy()

template<typename _Tp >


template<typename _Up >
static constexpr void std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::destroy (
allocator_type & ,
_Up ∗ __p) [inline], [static], [constexpr], [noexcept]
Destroy an object of type _Up

Parameters
_←- An allocator.
_a
_←- Pointer to the object to destroy
_p

Calls p->_Up().

max_size()

template<typename _Tp >


static constexpr size_type std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::max_size
(
const allocator_type & ) [inline], [static], [constexpr], [noexcept]
The maximum supported allocation size.
Returns

numeric_limits<size_t>::max() / sizeof(value_type)

select_on_container_copy_construction()

template<typename _Tp >


static allocator_type std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::select_on_←-
container_copy_construction (
const allocator_type & ) [inline], [static], [noexcept]

Generated by Doxygen
1032

A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.


The documentation for this struct was generated from the following file:

• memory_resource.h

5.195 __gnu_cxx::limit_condition::always_adjustor Struct Reference


#include <throw_allocator.h>

5.195.1 Detailed Description

Always enter the condition.


The documentation for this struct was generated from the following file:

• throw_allocator.h

5.196 __gnu_cxx::random_condition::always_adjustor Struct Reference


#include <throw_allocator.h>

5.196.1 Detailed Description

Always enter the condition.


The documentation for this struct was generated from the following file:

• throw_allocator.h

5.197 __gnu_cxx::annotate_base Struct Reference


#include <throw_allocator.h>
Inheritance diagram for __gnu_cxx::annotate_base:

__gnu_cxx::throw_allocator __gnu_cxx::throw_allocator
_base< _Tp, limit_condition > _limit< _Tp >

__gnu_cxx::throw_allocator __gnu_cxx::throw_allocator
__gnu_cxx::annotate_base
_base< _Tp, random_condition > _random< _Tp >

__gnu_cxx::throw_allocator
_base< _Tp, _Cond >

Public Member Functions

• void check (size_t label)


• map_alloc_type::iterator check_allocated (void ∗p, size_t size)
• void check_constructed (size_t label)
• map_construct_type::iterator check_constructed (void ∗p)
• void erase (void ∗p, size_t size)
• void erase_construct (void ∗p)
• void insert (void ∗p, size_t size)
• void insert_construct (void ∗p)

Generated by Doxygen
5.198 std::experimental::fundamentals_v1::any Class Reference 1033

Static Public Member Functions

• static void check ()


• static size_t get_label ()
• static void set_label (size_t l)

Friends

• std::ostream & operator<< (std::ostream &os, const annotate_base &__b)

5.197.1 Detailed Description

Base class for checking address and label information about allocations. Create a std::map between the allocated
address (void∗) and a datum for annotations, which are a pair of numbers corresponding to label and allocated size.
The documentation for this struct was generated from the following file:

• throw_allocator.h

5.198 std::experimental::fundamentals_v1::any Class Reference


#include <any>

Public Member Functions

• any () noexcept
• template<typename _ValueType , typename _Tp = _Decay<_ValueType>, typename _Mgr = _Manager<_Tp>, typename enable_if<
is_constructible< _Tp, _ValueType && >::value, bool >::type = true>
any (_ValueType &&__value)
• template<typename _ValueType , typename _Tp = _Decay<_ValueType>, typename _Mgr = _Manager<_Tp>, typename
enable_if<!is_constructible< _Tp, _ValueType && >::value, bool >::type = false>
any (_ValueType &&__value)
• any (any &&__other) noexcept
• any (const any &__other)
• ∼any ()
• void clear () noexcept
• bool empty () const noexcept
• template<typename _ValueType >
enable_if_t<!is_same< any, decay_t< _ValueType > >::value, any & > operator= (_ValueType &&__rhs)
• any & operator= (any &&__rhs) noexcept
• any & operator= (const any &__rhs)
• void swap (any &__rhs) noexcept
• const type_info & type () const noexcept

Static Public Member Functions

• template<typename _Tp >


static constexpr bool __is_valid_cast ()

Friends

• template<typename _Tp >


enable_if_t< is_object< _Tp >::value, void ∗ > __any_caster (const any ∗__any)

Generated by Doxygen
1034

5.198.1 Detailed Description

A type-safe container of any type.


An any object's state is either empty or it stores a contained object of CopyConstructible type.

5.198.2 Constructor & Destructor Documentation

any() [1/5]

std::experimental::fundamentals_v1::any::any () [inline], [noexcept]


Default constructor, creates an empty object.

any() [2/5]

std::experimental::fundamentals_v1::any::any (
const any & __other) [inline]
Copy constructor, copies the state of __other.

any() [3/5]

std::experimental::fundamentals_v1::any::any (
any && __other) [inline], [noexcept]
Move constructor, transfer the state from __other.

Postcondition

__other.empty() (this postcondition is a GNU extension)

any() [4/5]

template<typename _ValueType , typename _Tp = _Decay<_ValueType>, typename _Mgr = _Manager<_Tp>,


typename enable_if< is_constructible< _Tp, _ValueType && >::value, bool >::type = true>
std::experimental::fundamentals_v1::any::any (
_ValueType && __value) [inline]
Construct with a copy of __value as the contained object.

any() [5/5]

template<typename _ValueType , typename _Tp = _Decay<_ValueType>, typename _Mgr = _Manager<_Tp>,


typename enable_if<!is_constructible< _Tp, _ValueType && >::value, bool >::type = false>
std::experimental::fundamentals_v1::any::any (
_ValueType && __value) [inline]
Construct with a copy of __value as the contained object.

∼any()
std::experimental::fundamentals_v1::any::∼any () [inline]
Destructor, calls clear()

5.198.3 Member Function Documentation

clear()

void std::experimental::fundamentals_v1::any::clear () [inline], [noexcept]


If not empty, destroy the contained object.

Generated by Doxygen
5.199 std::array< _Tp, _Nm > Struct Template Reference 1035

empty()

bool std::experimental::fundamentals_v1::any::empty () const [inline], [nodiscard], [noexcept]


Reports whether there is a contained object or not.

operator=() [1/3]

template<typename _ValueType >


enable_if_t<!is_same< any, decay_t< _ValueType > >::value, any & > std::experimental::fundamentals←-
_v1::any::operator= (
_ValueType && __rhs) [inline]
Store a copy of __rhs as the contained object.

operator=() [2/3]

any & std::experimental::fundamentals_v1::any::operator= (


any && __rhs) [inline], [noexcept]
Move assignment operator.

Postcondition

__rhs.empty() (not guaranteed for other implementations)

operator=() [3/3]

any & std::experimental::fundamentals_v1::any::operator= (


const any & __rhs) [inline]
Copy the state of another object.

swap()

void std::experimental::fundamentals_v1::any::swap (
any & __rhs) [inline], [noexcept]
Exchange state with another object.

type()

const type_info & std::experimental::fundamentals_v1::any::type () const [inline], [noexcept]


The typeid of the contained object, or typeid(void) if empty.
The documentation for this class was generated from the following file:

• experimental/any

5.199 std::array< _Tp, _Nm > Struct Template Reference


#include <array>

Public Types

• typedef const value_type ∗ const_iterator


• typedef const value_type ∗ const_pointer
• typedef const value_type & const_reference
• typedef std::reverse_iterator< const_iterator > const_reverse_iterator
• typedef std::ptrdiff_t difference_type
• typedef value_type ∗ iterator
• typedef value_type ∗ pointer

Generated by Doxygen
1036

• typedef value_type & reference


• typedef std::reverse_iterator< iterator > reverse_iterator
• typedef std::size_t size_type
• typedef _Tp value_type

Public Member Functions

• constexpr reference at (size_type __n)


• constexpr const_reference at (size_type __n) const
• constexpr const_reference back () const noexcept
• constexpr reference back () noexcept
• constexpr const_iterator begin () const noexcept
• constexpr iterator begin () noexcept
• constexpr const_iterator cbegin () const noexcept
• constexpr const_iterator cend () const noexcept
• constexpr const_reverse_iterator crbegin () const noexcept
• constexpr const_reverse_iterator crend () const noexcept
• constexpr const_pointer data () const noexcept
• constexpr pointer data () noexcept
• constexpr bool empty () const noexcept
• constexpr const_iterator end () const noexcept
• constexpr iterator end () noexcept
• constexpr void fill (const value_type &__u)
• constexpr const_reference front () const noexcept
• constexpr reference front () noexcept
• constexpr size_type max_size () const noexcept
• constexpr const_reference operator[ ] (size_type __n) const noexcept
• constexpr reference operator[ ] (size_type __n) noexcept
• constexpr const_reverse_iterator rbegin () const noexcept
• constexpr reverse_iterator rbegin () noexcept
• constexpr const_reverse_iterator rend () const noexcept
• constexpr reverse_iterator rend () noexcept
• constexpr size_type size () const noexcept
• constexpr void swap (array &__other) noexcept(__array_traits< _Tp, _Nm >::_Is_nothrow_swappable::value)

Public Attributes

• __array_traits< _Tp, _Nm >::_Type _M_elems

5.199.1 Detailed Description

template<typename _Tp, std::size_t _Nm>


struct std::array< _Tp, _Nm >

A standard container for storing a fixed size sequence of elements.


Meets the requirements of a container, a reversible container, and a sequence.
Sets support random access iterators.

Template Parameters

Tp Type of element. Required to be a complete type.


Nm Number of elements.

The documentation for this struct was generated from the following file:
• array

Generated by Doxygen
5.200 __gnu_pbds::associative_tag Struct Reference 1037

5.200 __gnu_pbds::associative_tag Struct Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::associative_tag:

__gnu_pbds::ov_tree_tag

__gnu_pbds::rb_tree_tag
__gnu_pbds::tree_tag

__gnu_pbds::splay_tree_tag

__gnu_pbds::basic_branch_tag __gnu_pbds::trie_tag
__gnu_pbds::pat_trie_tag

__gnu_pbds::container_tag __gnu_pbds::associative_tag __gnu_pbds::basic_hash_tag __gnu_pbds::cc_hash_tag

__gnu_pbds::list_update_tag __gnu_pbds::gp_hash_tag

5.200.1 Detailed Description

Basic associative-container.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.201 std::atomic< _Tp > Struct Template Reference


#include <atomic>

Public Types

• using value_type

Public Member Functions

• constexpr atomic (_Tp __i) noexcept


• atomic (const atomic &)=delete
• bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) noexcept
• bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) volatile
noexcept
• bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) noexcept
• bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) volatile noexcept
• bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) noexcept
• bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) volatile noex-
cept
• bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) noexcept
• bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) volatile noexcept
• _Tp exchange (_Tp __i, memory_order __m=memory_order_seq_cst) noexcept
• _Tp exchange (_Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept
• bool is_lock_free () const noexcept
• bool is_lock_free () const volatile noexcept
• _Tp load (memory_order __m=memory_order_seq_cst) const noexcept
• _Tp load (memory_order __m=memory_order_seq_cst) const volatile noexcept
• operator _Tp () const noexcept
• operator _Tp () const volatile noexcept
• _Tp operator= (_Tp __i) noexcept

Generated by Doxygen
1038

• _Tp operator= (_Tp __i) volatile noexcept


• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete
• void store (_Tp __i, memory_order __m=memory_order_seq_cst) noexcept
• void store (_Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept

5.201.1 Detailed Description

template<typename _Tp>
struct std::atomic< _Tp >

Generic atomic type, primary class template.

Template Parameters

_Tp Type to be made atomic, must be trivially copyable.

The documentation for this struct was generated from the following files:

• atomic
• atomic_base.h
• shared_ptr_atomic.h

5.202 std::atomic< _Tp ∗ > Struct Template Reference


#include <atomic>

Public Types

• typedef __atomic_base< _Tp ∗ > __base_type


• typedef _Tp ∗ __pointer_type
• using difference_type
• using value_type

Public Member Functions

• constexpr atomic (__pointer_type __p) noexcept


• atomic (const atomic &)=delete
• bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m1,
memory_order __m2) noexcept
• bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m1,
memory_order __m2) volatile noexcept
• bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory←-
_order_seq_cst) noexcept
• bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory←-
_order_seq_cst) volatile noexcept
• bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m1,
memory_order __m2) noexcept
• bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m1,
memory_order __m2) volatile noexcept
• bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory_←-
order_seq_cst) noexcept
• bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory_←-
order_seq_cst) volatile noexcept

Generated by Doxygen
5.203 std::atomic< bool > Struct Reference 1039

• __pointer_type exchange (__pointer_type __p, memory_order __m=memory_order_seq_cst) noexcept


• __pointer_type exchange (__pointer_type __p, memory_order __m=memory_order_seq_cst) volatile noexcept
• __pointer_type fetch_add (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) noexcept
• __pointer_type fetch_add (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) volatile noexcept
• __pointer_type fetch_sub (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) noexcept
• __pointer_type fetch_sub (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) volatile noexcept
• bool is_lock_free () const noexcept
• bool is_lock_free () const volatile noexcept
• __pointer_type load (memory_order __m=memory_order_seq_cst) const noexcept
• __pointer_type load (memory_order __m=memory_order_seq_cst) const volatile noexcept
• operator __pointer_type () const noexcept
• operator __pointer_type () const volatile noexcept
• __pointer_type operator++ () noexcept
• __pointer_type operator++ () volatile noexcept
• __pointer_type operator++ (int) noexcept
• __pointer_type operator++ (int) volatile noexcept
• __pointer_type operator+= (ptrdiff_t __d) noexcept
• __pointer_type operator+= (ptrdiff_t __d) volatile noexcept
• __pointer_type operator-- () noexcept
• __pointer_type operator-- () volatile noexcept
• __pointer_type operator-- (int) noexcept
• __pointer_type operator-- (int) volatile noexcept
• __pointer_type operator-= (ptrdiff_t __d) noexcept
• __pointer_type operator-= (ptrdiff_t __d) volatile noexcept
• __pointer_type operator= (__pointer_type __p) noexcept
• __pointer_type operator= (__pointer_type __p) volatile noexcept
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete
• void store (__pointer_type __p, memory_order __m=memory_order_seq_cst) noexcept
• void store (__pointer_type __p, memory_order __m=memory_order_seq_cst) volatile noexcept

Public Attributes

• __base_type _M_b

5.202.1 Detailed Description

template<typename _Tp>
struct std::atomic< _Tp ∗ >

Partial specialization for pointer types.


The documentation for this struct was generated from the following file:

• atomic

5.203 std::atomic< bool > Struct Reference


#include <atomic>

Public Types

• using value_type

Generated by Doxygen
1040

Public Member Functions

• constexpr atomic (bool __i) noexcept


• atomic (const atomic &)=delete
• bool compare_exchange_strong (bool &__i1, bool __i2, memory_order __m1, memory_order __m2) noexcept
• bool compare_exchange_strong (bool &__i1, bool __i2, memory_order __m1, memory_order __m2) volatile
noexcept
• bool compare_exchange_strong (bool &__i1, bool __i2, memory_order __m=memory_order_seq_cst) noexcept
• bool compare_exchange_strong (bool &__i1, bool __i2, memory_order __m=memory_order_seq_cst) volatile
noexcept
• bool compare_exchange_weak (bool &__i1, bool __i2, memory_order __m1, memory_order __m2) noexcept
• bool compare_exchange_weak (bool &__i1, bool __i2, memory_order __m1, memory_order __m2) volatile
noexcept
• bool compare_exchange_weak (bool &__i1, bool __i2, memory_order __m=memory_order_seq_cst) noexcept
• bool compare_exchange_weak (bool &__i1, bool __i2, memory_order __m=memory_order_seq_cst) volatile
noexcept
• bool exchange (bool __i, memory_order __m=memory_order_seq_cst) noexcept
• bool exchange (bool __i, memory_order __m=memory_order_seq_cst) volatile noexcept
• bool is_lock_free () const noexcept
• bool is_lock_free () const volatile noexcept
• bool load (memory_order __m=memory_order_seq_cst) const noexcept
• bool load (memory_order __m=memory_order_seq_cst) const volatile noexcept
• operator bool () const noexcept
• operator bool () const volatile noexcept
• bool operator= (bool __i) noexcept
• bool operator= (bool __i) volatile noexcept
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete
• void store (bool __i, memory_order __m=memory_order_seq_cst) noexcept
• void store (bool __i, memory_order __m=memory_order_seq_cst) volatile noexcept

5.203.1 Detailed Description

atomic<bool>
The documentation for this struct was generated from the following file:

• atomic

5.204 std::atomic< char > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< char > __base_type


• typedef char __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

Generated by Doxygen
5.205 std::atomic< char16_t > Struct Reference 1041

5.204.1 Detailed Description

Explicit specialization for char.


The documentation for this struct was generated from the following file:

• atomic

5.205 std::atomic< char16_t > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< char16_t > __base_type


• typedef char16_t __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.205.1 Detailed Description

Explicit specialization for char16_t.


The documentation for this struct was generated from the following file:

• atomic

5.206 std::atomic< char32_t > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< char32_t > __base_type


• typedef char32_t __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.206.1 Detailed Description

Explicit specialization for char32_t.


The documentation for this struct was generated from the following file:

• atomic

5.207 std::atomic< int > Struct Reference


#include <atomic>

Generated by Doxygen
1042

Public Types

• typedef __atomic_base< int > __base_type


• typedef int __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.207.1 Detailed Description

Explicit specialization for int.


The documentation for this struct was generated from the following file:
• atomic

5.208 std::atomic< long > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< long > __base_type


• typedef long __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.208.1 Detailed Description

Explicit specialization for long.


The documentation for this struct was generated from the following file:
• atomic

5.209 std::atomic< long long > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< long long > __base_type


• typedef long long __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

Generated by Doxygen
5.210 std::atomic< short > Struct Reference 1043

5.209.1 Detailed Description

Explicit specialization for long long.


The documentation for this struct was generated from the following file:

• atomic

5.210 std::atomic< short > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< short > __base_type


• typedef short __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.210.1 Detailed Description

Explicit specialization for short.


The documentation for this struct was generated from the following file:

• atomic

5.211 std::atomic< signed char > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< signed char > __base_type


• typedef signed char __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.211.1 Detailed Description

Explicit specialization for signed char.


The documentation for this struct was generated from the following file:

• atomic

5.212 std::atomic< unsigned char > Struct Reference


#include <atomic>

Generated by Doxygen
1044

Public Types

• typedef __atomic_base< unsigned char > __base_type


• typedef unsigned char __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.212.1 Detailed Description

Explicit specialization for unsigned char.


The documentation for this struct was generated from the following file:
• atomic

5.213 std::atomic< unsigned int > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< unsigned int > __base_type


• typedef unsigned int __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.213.1 Detailed Description

Explicit specialization for unsigned int.


The documentation for this struct was generated from the following file:
• atomic

5.214 std::atomic< unsigned long > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< unsigned long > __base_type


• typedef unsigned long __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

Generated by Doxygen
5.215 std::atomic< unsigned long long > Struct Reference 1045

5.214.1 Detailed Description

Explicit specialization for unsigned long.


The documentation for this struct was generated from the following file:

• atomic

5.215 std::atomic< unsigned long long > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< unsigned long long > __base_type


• typedef unsigned long long __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.215.1 Detailed Description

Explicit specialization for unsigned long long.


The documentation for this struct was generated from the following file:

• atomic

5.216 std::atomic< unsigned short > Struct Reference


#include <atomic>

Public Types

• typedef __atomic_base< unsigned short > __base_type


• typedef unsigned short __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.216.1 Detailed Description

Explicit specialization for unsigned short.


The documentation for this struct was generated from the following file:

• atomic

5.217 std::atomic< wchar_t > Struct Reference


#include <atomic>

Generated by Doxygen
1046

Public Types

• typedef __atomic_base< wchar_t > __base_type


• typedef wchar_t __integral_type

Public Member Functions

• constexpr atomic (__integral_type __i) noexcept


• atomic (const atomic &)=delete
• atomic & operator= (const atomic &) volatile =delete
• atomic & operator= (const atomic &)=delete

5.217.1 Detailed Description

Explicit specialization for wchar_t.


The documentation for this struct was generated from the following file:

• atomic

5.218 std::atomic_flag Struct Reference


#include <atomic_base.h>

Public Member Functions

• constexpr atomic_flag (bool __i) noexcept


• atomic_flag (const atomic_flag &)=delete
• void clear (memory_order __m=memory_order_seq_cst) noexcept
• void clear (memory_order __m=memory_order_seq_cst) volatile noexcept
• void notify_all () noexcept
• void notify_one () noexcept
• atomic_flag & operator= (const atomic_flag &) volatile =delete
• atomic_flag & operator= (const atomic_flag &)=delete
• bool test (memory_order __m=memory_order_seq_cst) const noexcept
• bool test (memory_order __m=memory_order_seq_cst) const volatile noexcept
• bool test_and_set (memory_order __m=memory_order_seq_cst) noexcept
• bool test_and_set (memory_order __m=memory_order_seq_cst) volatile noexcept
• void wait (bool __old, memory_order __m=memory_order_seq_cst) const noexcept

5.218.1 Detailed Description

atomic_flag
The documentation for this struct was generated from the following file:

• atomic_base.h

5.219 std::auto_ptr< _Tp > Class Template Reference


#include <memory>

Public Types

• typedef _Tp element_type

Generated by Doxygen
5.219 std::auto_ptr< _Tp > Class Template Reference 1047

Public Member Functions

• auto_ptr (auto_ptr &__a) throw ()


• template<typename _Tp1 >
auto_ptr (auto_ptr< _Tp1 > &__a) throw ()
• auto_ptr (auto_ptr_ref< element_type > __ref) throw ()
• auto_ptr (element_type ∗__p=0) throw ()
• ∼auto_ptr ()
• element_type ∗ get () const throw ()
• template<typename _Tp1 >
operator auto_ptr< _Tp1 > () throw ()
• template<typename _Tp1 >
operator auto_ptr_ref< _Tp1 > () throw ()
• element_type & operator∗ () const throw ()
• element_type ∗ operator-> () const throw ()
• auto_ptr & operator= (auto_ptr &__a) throw ()
• template<typename _Tp1 >
auto_ptr & operator= (auto_ptr< _Tp1 > &__a) throw ()
• auto_ptr & operator= (auto_ptr_ref< element_type > __ref) throw ()
• element_type ∗ release () throw ()
• void reset (element_type ∗__p=0) throw ()

5.219.1 Detailed Description

template<typename _Tp>
class std::auto_ptr< _Tp >

A simple smart pointer providing strict ownership semantics.


The Standard says:
An auto_ptr owns the object it holds a pointer to. Copying
an auto_ptr copies the pointer and transfers ownership to the
destination. If more than one auto_ptr owns the same object
at the same time the behavior of the program is undefined.

The uses of auto_ptr include providing temporary


exception-safety for dynamically allocated memory, passing
ownership of dynamically allocated memory to a function, and
returning dynamically allocated memory from a function. auto_ptr does not meet the CopyConstructib
requirements for Standard Library container elements and thus
instantiating a Standard Library container with an auto_ptr results in undefined behavior.

Quoted from [20.4.5]/3.


Good examples of what can and cannot be done with auto_ptr can be found in the libstdc++ testsuite.
_GLIBCXX_RESOLVE_LIB_DEFECTS

1. auto_ptr<> conversion issues These resolutions have all been incorporated.

Deprecated Deprecated in C++11, no longer in the standard since C++17. Use unique_ptr instead.

5.219.2 Member Typedef Documentation

element_type

template<typename _Tp >


_Tp std::auto_ptr< _Tp >::element_type
The pointed-to type.

Generated by Doxygen
1048

5.219.3 Constructor & Destructor Documentation

auto_ptr() [1/4]

template<typename _Tp >


std::auto_ptr< _Tp >::auto_ptr (
element_type ∗ __p = 0) throw ( ) [inline], [explicit]
An auto_ptr is usually constructed from a raw pointer.

Parameters

_←- A pointer (defaults to NULL).


_p

This object now owns the object pointed to by __p.

auto_ptr() [2/4]

template<typename _Tp >


std::auto_ptr< _Tp >::auto_ptr (
auto_ptr< _Tp > & __a) throw ( ) [inline]
An auto_ptr can be constructed from another auto_ptr.

Parameters

_←- Another auto_ptr of the same type.


_a

This object now owns the object previously owned by __a, which has given up ownership.

auto_ptr() [3/4]

template<typename _Tp >


template<typename _Tp1 >
std::auto_ptr< _Tp >::auto_ptr (
auto_ptr< _Tp1 > & __a) throw ( ) [inline]
An auto_ptr can be constructed from another auto_ptr.

Parameters

_←- Another auto_ptr of a different but related type.


_a

A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.


This object now owns the object previously owned by __a, which has given up ownership.

∼auto_ptr()
template<typename _Tp >
std::auto_ptr< _Tp >::∼auto_ptr () [inline]
When the auto_ptr goes out of scope, the object it owns is deleted. If it no longer owns anything (i.e., get() is NULL),
then this has no effect.
The C++ standard says there is supposed to be an empty throw specification here, but omitting it is standard conforming.
Its presence can be detected only if _Tp::∼_Tp() throws, but this is prohibited. [17.4.3.6]/2

Generated by Doxygen
5.219 std::auto_ptr< _Tp > Class Template Reference 1049

auto_ptr() [4/4]

template<typename _Tp >


std::auto_ptr< _Tp >::auto_ptr (
auto_ptr_ref< element_type > __ref) throw ( ) [inline]
Automatic conversions.
These operations are supposed to convert an auto_ptr into and from an auto_ptr_ref automatically as needed. This
would allow constructs such as
auto_ptr<Derived> func_returning_auto_ptr(.....);
...
auto_ptr<Base> ptr = func_returning_auto_ptr(.....);
But it doesn't work, and won't be fixed. For further details see https://cplusplus.github.io/←-
LWG/lwg-closed.html#463

5.219.4 Member Function Documentation

get()

template<typename _Tp >


element_type ∗ std::auto_ptr< _Tp >::get () const throw ( ) [inline]
Bypassing the smart pointer.
Returns

The raw pointer being managed.

You can get a copy of the pointer that this object owns, for situations such as passing to a function which only accepts a
raw pointer.
Note

This auto_ptr still owns the memory.

operator∗()

template<typename _Tp >


element_type & std::auto_ptr< _Tp >::operator∗ () const throw ( ) [inline]
Smart pointer dereferencing.
If this auto_ptr no longer owns anything, then this operation will crash. (For a smart pointer, no longer owns anything is
the same as being a null pointer, and you know what happens when you dereference one of those...)

operator->()

template<typename _Tp >


element_type ∗ std::auto_ptr< _Tp >::operator-> () const throw ( ) [inline]
Smart pointer dereferencing.
This returns the pointer itself, which the language then will automatically cause to be dereferenced.

operator=() [1/2]

template<typename _Tp >


auto_ptr & std::auto_ptr< _Tp >::operator= (
auto_ptr< _Tp > & __a) throw ( ) [inline]
auto_ptr assignment operator.

Parameters

_←- Another auto_ptr of the same type.


_a

Generated by Doxygen
1050

This object now owns the object previously owned by __a, which has given up ownership. The object that this one used
to own and track has been deleted.
References std::auto_ptr< _Tp >::reset().

operator=() [2/2]

template<typename _Tp >


template<typename _Tp1 >
auto_ptr & std::auto_ptr< _Tp >::operator= (
auto_ptr< _Tp1 > & __a) throw ( ) [inline]
auto_ptr assignment operator.

Parameters

_←- Another auto_ptr of a different but related type.


_a

A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.


This object now owns the object previously owned by __a, which has given up ownership. The object that this one used
to own and track has been deleted.
References std::auto_ptr< _Tp >::reset().

release()

template<typename _Tp >


element_type ∗ std::auto_ptr< _Tp >::release () throw ( ) [inline]
Bypassing the smart pointer.
Returns

The raw pointer being managed.

You can get a copy of the pointer that this object owns, for situations such as passing to a function which only accepts a
raw pointer.
Note

This auto_ptr no longer owns the memory. When this object goes out of scope, nothing will happen.

reset()

template<typename _Tp >


void std::auto_ptr< _Tp >::reset (
element_type ∗ __p = 0) throw ( ) [inline]
Forcibly deletes the managed object.

Parameters

_←- A pointer (defaults to NULL).


_p

This object now owns the object pointed to by __p. The previous object has been deleted.
Referenced by std::auto_ptr< _Tp >::operator=(), and std::auto_ptr< _Tp >::operator=().
The documentation for this class was generated from the following files:

Generated by Doxygen
5.220 std::auto_ptr_ref< _Tp1 > Struct Template Reference 1051

• shared_ptr_base.h
• unique_ptr.h
• auto_ptr.h

5.220 std::auto_ptr_ref< _Tp1 > Struct Template Reference


#include <auto_ptr.h>

Public Member Functions

• auto_ptr_ref (_Tp1 ∗__p)

Public Attributes

• _Tp1 ∗ _M_ptr

5.220.1 Detailed Description

template<typename _Tp1>
struct std::auto_ptr_ref< _Tp1 >

A wrapper class to provide auto_ptr with reference semantics. For example, an auto_ptr can be assigned (or constructed
from) the result of a function which returns an auto_ptr by value.
All the auto_ptr_ref stuff should happen behind the scenes.
The documentation for this struct was generated from the following file:

• auto_ptr.h

5.221 std::back_insert_iterator< _Container > Class Template Reference


#include <stl_iterator.h>
Inheritance diagram for std::back_insert_iterator< _Container >:

std::iterator< output
_iterator_tag, void,
void, void, void >

std::back_insert_iterator
< _Container >

Public Types

• typedef _Container container_type


• using difference_type

Generated by Doxygen
1052

• typedef output_iterator_tag iterator_category


• typedef void pointer
• typedef void reference
• typedef void value_type

Public Member Functions

• constexpr back_insert_iterator (_Container &__x)


• constexpr back_insert_iterator & operator∗ ()
• constexpr back_insert_iterator & operator++ ()
• constexpr back_insert_iterator operator++ (int)
• constexpr back_insert_iterator & operator= (const typename _Container::value_type &__value)
• constexpr back_insert_iterator & operator= (typename _Container::value_type &&__value)

Protected Attributes

• _Container ∗ container

5.221.1 Detailed Description

template<typename _Container>
class std::back_insert_iterator< _Container >

Turns assignment into insertion.


These are output iterators, constructed from a container-of-T. Assigning a T to the iterator appends it to the container
using push_back.
Tip: Using the back_inserter function to create these iterators can save typing.

5.221.2 Member Typedef Documentation

container_type

template<typename _Container >


_Container std::back_insert_iterator< _Container >::container_type
A nested typedef for the type of whatever container you used.

iterator_category

output_iterator_tag std::iterator< output_iterator_tag, void, void, void, void >::iterator_←-


category [inherited]
One of the tag types.

pointer

void std::iterator< output_iterator_tag, void, void, void, void >::pointer [inherited]


This type represents a pointer-to-value_type.

reference

void std::iterator< output_iterator_tag, void, void, void, void >::reference [inherited]


This type represents a reference-to-value_type.

value_type

void std::iterator< output_iterator_tag, void, void, void, void >::value_type [inherited]


The type "pointed to" by the iterator.

Generated by Doxygen
5.222 std::bad_alloc Class Reference 1053

5.221.3 Constructor & Destructor Documentation

back_insert_iterator()

template<typename _Container >


std::back_insert_iterator< _Container >::back_insert_iterator (
_Container & __x) [inline], [explicit], [constexpr]
The only way to create this iterator is with a container.

5.221.4 Member Function Documentation

operator∗()

template<typename _Container >


back_insert_iterator & std::back_insert_iterator< _Container >::operator∗ () [inline], [nodiscard],
[constexpr]
Simply returns ∗this.

operator++() [1/2]

template<typename _Container >


back_insert_iterator & std::back_insert_iterator< _Container >::operator++ () [inline], [constexpr]
Simply returns ∗this. (This iterator does not move.)

operator++() [2/2]

template<typename _Container >


back_insert_iterator std::back_insert_iterator< _Container >::operator++ (
int ) [inline], [constexpr]
Simply returns ∗this. (This iterator does not move.)

operator=()

template<typename _Container >


back_insert_iterator & std::back_insert_iterator< _Container >::operator= (
const typename _Container::value_type & __value) [inline], [constexpr]

Parameters

__value An instance of whatever type container_type::const_reference is; presumably a reference-to-const T for


container<T>.

Returns

This iterator, for chained operations.

This kind of iterator doesn't really have a position in the container (you can think of the position as being permanently at
the end, if you like). Assigning a value to the iterator will always append the value to the end of the container.
The documentation for this class was generated from the following file:

• bits/stl_iterator.h

5.222 std::bad_alloc Class Reference


#include <new>

Generated by Doxygen
1054

Inheritance diagram for std::bad_alloc:

std::exception

std::bad_alloc

Public Member Functions

• bad_alloc (const bad_alloc &)=default


• bad_alloc & operator= (const bad_alloc &)=default
• virtual const char ∗ what () const throw ()

5.222.1 Detailed Description

Exception possibly thrown by new.


bad_alloc (or classes derived from it) is used to report allocation errors from the throwing forms of new.

5.222.2 Member Function Documentation

what()

virtual const char ∗ std::bad_alloc::what () const throw ( ) [virtual]


Returns a C-style character string describing the general cause of the current error.

Reimplemented from std::exception.


The documentation for this class was generated from the following file:

• new

5.223 std::experimental::fundamentals_v1::bad_any_cast Class Reference


#include <any>

Generated by Doxygen
5.224 std::bad_cast Class Reference 1055

Inheritance diagram for std::experimental::fundamentals_v1::bad_any_cast:

std::exception

std::bad_cast

std::experimental::
fundamentals_v1::bad
_any_cast

Public Member Functions

• virtual const char ∗ what () const noexcept

5.223.1 Detailed Description

Exception class thrown by a failed any_cast.

5.223.2 Member Function Documentation

what()

virtual const char ∗ std::experimental::fundamentals_v1::bad_any_cast::what () const [inline],


[virtual], [noexcept]
Returns a C-style character string describing the general cause of the current error.

Reimplemented from std::bad_cast.


The documentation for this class was generated from the following file:

• experimental/any

5.224 std::bad_cast Class Reference


#include <typeinfo>

Generated by Doxygen
1056

Inheritance diagram for std::bad_cast:

std::exception

std::bad_cast

std::experimental::
fundamentals_v1::bad
_any_cast

Public Member Functions

• virtual const char ∗ what () const noexcept

5.224.1 Detailed Description

Thrown during incorrect typecasting.


If you attempt an invalid dynamic_cast expression, an instance of this class (or something derived from this class)
is thrown.

5.224.2 Member Function Documentation

what()

virtual const char ∗ std::bad_cast::what () const [virtual], [noexcept]


Returns a C-style character string describing the general cause of the current error.

Reimplemented from std::exception.


Reimplemented in std::experimental::fundamentals_v1::bad_any_cast.
The documentation for this class was generated from the following file:

• typeinfo

5.225 std::bad_exception Class Reference


#include <exception>

Generated by Doxygen
5.226 std::bad_function_call Class Reference 1057

Inheritance diagram for std::bad_exception:

std::exception

std::bad_exception

Public Member Functions

• virtual const char ∗ what () const noexcept

5.225.1 Detailed Description

If an exception is thrown which is not listed in a function's exception specification, one of these may be thrown.

5.225.2 Member Function Documentation

what()

virtual const char ∗ std::bad_exception::what () const [virtual], [noexcept]


Returns a C-style character string describing the general cause of the current error.

Reimplemented from std::exception.


The documentation for this class was generated from the following file:
• exception

5.226 std::bad_function_call Class Reference


#include <std_function.h>
Inheritance diagram for std::bad_function_call:

std::exception

std::bad_function_call

Generated by Doxygen
1058

Public Member Functions

• const char ∗ what () const noexcept

5.226.1 Detailed Description

Exception class thrown when class template function's operator() is called with an empty target.

5.226.2 Member Function Documentation

what()

const char ∗ std::bad_function_call::what () const [virtual], [noexcept]


Returns a C-style character string describing the general cause of the current error.

Reimplemented from std::exception.


The documentation for this class was generated from the following file:

• std_function.h

5.227 std::experimental::fundamentals_v1::bad_optional_access Class Reference


#include <optional>
Inheritance diagram for std::experimental::fundamentals_v1::bad_optional_access:

std::exception

std::logic_error

std::experimental::
fundamentals_v1::bad
_optional_access

Public Member Functions

• bad_optional_access (const char ∗__arg)


• virtual const char ∗ what () const noexcept

5.227.1 Detailed Description

Exception class thrown when a disengaged optional object is dereferenced.

Generated by Doxygen
5.228 std::bad_typeid Class Reference 1059

5.227.2 Member Function Documentation

what()

virtual const char ∗ std::logic_error::what () const [virtual], [noexcept], [inherited]


Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::exception.


Reimplemented in std::future_error.
The documentation for this class was generated from the following file:

• experimental/optional

5.228 std::bad_typeid Class Reference


#include <typeinfo>
Inheritance diagram for std::bad_typeid:

std::exception

std::bad_typeid

Public Member Functions

• virtual const char ∗ what () const noexcept

5.228.1 Detailed Description

Thrown when a NULL pointer in a typeid expression is used.

5.228.2 Member Function Documentation

what()

virtual const char ∗ std::bad_typeid::what () const [virtual], [noexcept]


Returns a C-style character string describing the general cause of the current error.

Reimplemented from std::exception.


The documentation for this class was generated from the following file:

• typeinfo

5.229 std::bad_weak_ptr Class Reference


#include <shared_ptr_base.h>

Generated by Doxygen
1060

Inheritance diagram for std::bad_weak_ptr:

std::exception

std::bad_weak_ptr

Public Member Functions

• virtual char const ∗ what () const noexcept

5.229.1 Detailed Description

Exception possibly thrown by shared_ptr.

5.229.2 Member Function Documentation

what()

virtual char const ∗ std::bad_weak_ptr::what () const [virtual], [noexcept]


Returns a C-style character string describing the general cause of the current error.

Reimplemented from std::exception.


The documentation for this class was generated from the following file:

• shared_ptr_base.h

5.230 __gnu_parallel::balanced_quicksort_tag Struct Reference


#include <tags.h>

Generated by Doxygen
5.230 __gnu_parallel::balanced_quicksort_tag Struct Reference 1061

Inheritance diagram for __gnu_parallel::balanced_quicksort_tag:

__gnu_parallel::parallel_tag

__gnu_parallel::balanced
_quicksort_tag

Public Member Functions

• balanced_quicksort_tag (_ThreadIndex __num_threads)


• _ThreadIndex __get_num_threads ()
• void set_num_threads (_ThreadIndex __num_threads)

5.230.1 Detailed Description

Forces parallel sorting using balanced quicksort at compile time.

5.230.2 Member Function Documentation

__get_num_threads()

_ThreadIndex __gnu_parallel::parallel_tag::__get_num_threads () [inline], [inherited]


Find out desired number of threads.
Returns

Desired number of threads.

Referenced by __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(),


__gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), and __gnu_parallel::__parallel_sort(

set_num_threads()

void __gnu_parallel::parallel_tag::set_num_threads (
_ThreadIndex __num_threads) [inline], [inherited]
Set the desired number of threads.

Parameters

__num_threads Desired number of threads.

The documentation for this struct was generated from the following file:

• tags.h

Generated by Doxygen
1062

5.231 __gnu_parallel::balanced_tag Struct Reference


#include <tags.h>
Inheritance diagram for __gnu_parallel::balanced_tag:

__gnu_parallel::parallel_tag

__gnu_parallel::balanced_tag

Public Member Functions

• _ThreadIndex __get_num_threads ()
• void set_num_threads (_ThreadIndex __num_threads)

5.231.1 Detailed Description

Recommends parallel execution using dynamic load-balancing at compile time.

5.231.2 Member Function Documentation

__get_num_threads()

_ThreadIndex __gnu_parallel::parallel_tag::__get_num_threads () [inline], [inherited]


Find out desired number of threads.
Returns

Desired number of threads.

Referenced by __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(),


__gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), and __gnu_parallel::__parallel_sort(

set_num_threads()

void __gnu_parallel::parallel_tag::set_num_threads (
_ThreadIndex __num_threads) [inline], [inherited]
Set the desired number of threads.

Parameters

__num_threads Desired number of threads.

The documentation for this struct was generated from the following file:

• tags.h

Generated by Doxygen
5.232 std::tr2::bases< _Tp > Struct Template Reference 1063

5.232 std::tr2::bases< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• typedef __reflection_typelist< __bases(_Tp)... > type

5.232.1 Detailed Description

template<typename _Tp>
struct std::tr2::bases< _Tp >

Sequence abstraction metafunctions for manipulating a typelist.


Enumerate all the base classes of a class. Form of a typelist.
The documentation for this struct was generated from the following file:

• tr2/type_traits

5.233 __gnu_pbds::basic_branch< Key, Mapped, Tag, Node_Update, Policy_Tl, _Alloc >


Class Template Reference
#include <assoc_container.hpp>
Inheritance diagram for __gnu_pbds::basic_branch< Key, Mapped, Tag, Node_Update, Policy_Tl, _Alloc >:

__gnu_pbds::tree< Key,
Mapped, Cmp_Fn, Tag,
Node_Update, _Alloc >
__gnu_pbds::basic_branch
< Key, Mapped, Tag, Node
_Update, Policy_Tl, _Alloc >
__gnu_pbds::trie< Key,
Mapped, _ATraits, Tag,
Node_Update, _Alloc >

Public Types

• typedef Node_Update node_update

Protected Member Functions

• basic_branch (const basic_branch &other)


• template<typename T0 >
basic_branch (T0 t0)
• template<typename T0 , typename T1 >
basic_branch (T0 t0, T1 t1)
• template<typename T0 , typename T1 , typename T2 >
basic_branch (T0 t0, T1 t1, T2 t2)
• template<typename T0 , typename T1 , typename T2 , typename T3 >
basic_branch (T0 t0, T1 t1, T2 t2, T3 t3)

Generated by Doxygen
1064

• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >


basic_branch (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4)
• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
basic_branch (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
basic_branch (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)

5.233.1 Detailed Description

template<typename Key, typename Mapped, typename Tag, typename Node_Update, typename Policy_Tl, type-
name _Alloc>
class __gnu_pbds::basic_branch< Key, Mapped, Tag, Node_Update, Policy_Tl, _Alloc >

A branched, tree-like (tree, trie) container abstraction.

Template Parameters

Key Key type.


Mapped Map type.
Tag Instantiating data structure type, see container_tag.
Node_Update Updates nodes, restores invariants.
Policy_TL Policy typelist.
_Alloc Allocator type.

Base is dispatched at compile time via Tag, from the following choices: tree_tag, trie_tag, and their descendants.
Base choices are: detail::ov_tree_map, detail::rb_tree_map, detail::splay_tree_map, and detail::pat_trie_map.
The documentation for this class was generated from the following file:

• assoc_container.hpp

5.234 __gnu_pbds::basic_branch_tag Struct Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::basic_branch_tag:

__gnu_pbds::ov_tree_tag

__gnu_pbds::rb_tree_tag

__gnu_pbds::tree_tag

__gnu_pbds::container_tag __gnu_pbds::associative_tag __gnu_pbds::basic_branch_tag __gnu_pbds::splay_tree_tag

__gnu_pbds::trie_tag
__gnu_pbds::pat_trie_tag

5.234.1 Detailed Description

Basic branch structure.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference


#include <fstream>

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1065

Inheritance diagram for std::basic_filebuf< _CharT, _Traits >:

std::basic_streambuf
< _CharT, _Traits >

std::basic_filebuf
< _CharT, _Traits >

__gnu_cxx::stdio_filebuf
< _CharT, _Traits >

Public Types

• typedef codecvt< char_type, char, __state_type > __codecvt_type


• typedef __basic_file< char > __file_type
• typedef basic_filebuf< char_type, traits_type > __filebuf_type
• typedef traits_type::state_type __state_type
• typedef basic_streambuf< char_type, traits_type > __streambuf_type
• typedef _CharT char_type
• typedef traits_type::int_type int_type
• typedef traits_type::off_type off_type
• typedef traits_type::pos_type pos_type
• typedef _Traits traits_type

Public Member Functions

• basic_filebuf ()
• basic_filebuf (basic_filebuf &&)
• basic_filebuf (const basic_filebuf &)=delete
• virtual ∼basic_filebuf ()
• __filebuf_type ∗ close ()
• locale getloc () const
• streamsize in_avail ()
• bool is_open () const throw ()
• template<typename _Path >
_If_fs_path< _Path, __filebuf_type ∗ > open (const _Path &__s, ios_base::openmode __mode)
• __filebuf_type ∗ open (const char ∗__s, ios_base::openmode __mode)
• __filebuf_type ∗ open (const std::string &__s, ios_base::openmode __mode)
• basic_filebuf & operator= (basic_filebuf &&)

Generated by Doxygen
1066

• basic_filebuf & operator= (const basic_filebuf &)=delete


• locale pubimbue (const locale &__loc)
• int_type sbumpc ()
• int_type sgetc ()
• streamsize sgetn (char_type ∗__s, streamsize __n)
• int_type snextc ()
• int_type sputbackc (char_type __c)
• int_type sputc (char_type __c)
• streamsize sputn (const char_type ∗__s, streamsize __n)
• int_type sungetc ()
• void swap (basic_filebuf &)

• basic_streambuf ∗ pubsetbuf (char_type ∗__s, streamsize __n)


• pos_type pubseekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
• pos_type pubseekpos (pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
• int pubsync ()

Protected Member Functions

• void __safe_gbump (streamsize __n)


• void __safe_pbump (streamsize __n)
• void _M_allocate_internal_buffer ()
• bool _M_convert_to_external (char_type ∗, streamsize)
• void _M_create_pback ()
• void _M_destroy_internal_buffer () throw ()
• void _M_destroy_pback () throw ()
• int _M_get_ext_pos (__state_type &__state)
• pos_type _M_seek (off_type __off, ios_base::seekdir __way, __state_type __state)
• void _M_set_buffer (streamsize __off)
• bool _M_terminate_output ()
• void gbump (int __n)
• virtual void imbue (const locale &__loc)
• virtual int_type overflow (int_type __c=_Traits::eof())
• virtual int_type pbackfail (int_type __c=_Traits::eof())
• void pbump (int __n)
• virtual pos_type seekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
• virtual pos_type seekpos (pos_type __pos, ios_base::openmode __mode=ios_base::in|ios_base::out)
• virtual __streambuf_type ∗ setbuf (char_type ∗__s, streamsize __n)
• void setg (char_type ∗__gbeg, char_type ∗__gnext, char_type ∗__gend)
• void setp (char_type ∗__pbeg, char_type ∗__pend)
• virtual streamsize showmanyc ()
• void swap (basic_streambuf &__sb)
• virtual int sync ()
• virtual int_type uflow ()
• virtual int_type underflow ()
• virtual streamsize xsgetn (char_type ∗__s, streamsize __n)
• virtual streamsize xsputn (const char_type ∗__s, streamsize __n)

• char_type ∗ eback () const


• char_type ∗ gptr () const

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1067

• char_type ∗ egptr () const

• char_type ∗ pbase () const


• char_type ∗ pptr () const
• char_type ∗ epptr () const

Protected Attributes

• char_type ∗ _M_buf
• bool _M_buf_allocated
• locale _M_buf_locale
• size_t _M_buf_size
• const __codecvt_type ∗ _M_codecvt
• char ∗ _M_ext_buf
• streamsize _M_ext_buf_size
• char ∗ _M_ext_end
• const char ∗ _M_ext_next
• __file_type _M_file
• char_type ∗ _M_in_beg
• char_type ∗ _M_in_cur
• char_type ∗ _M_in_end
• __c_lock _M_lock
• ios_base::openmode _M_mode
• char_type ∗ _M_out_beg
• char_type ∗ _M_out_cur
• char_type ∗ _M_out_end
• bool _M_reading
• __state_type _M_state_beg
• __state_type _M_state_cur
• __state_type _M_state_last
• bool _M_writing

• char_type _M_pback
• char_type ∗ _M_pback_cur_save
• char_type ∗ _M_pback_end_save
• bool _M_pback_init

Friends

• class ios_base

5.235.1 Detailed Description

template<typename _CharT, typename _Traits = char_traits<_CharT>>


class std::basic_filebuf< _CharT, _Traits >

The actual work of input and output (for files).

Template Parameters

_CharT Type of character stream.

Generated by Doxygen
1068

_Traits Traits for character type, defaults to char_traits<_CharT>.

This class associates both its input and output sequence with an external disk file, and maintains a joint file position for
both sequences. Many of its semantics are described in terms of similar behavior in the Standard C Library's FILE
streams.
Requirements on traits_type, specific to this class:
• traits_type::pos_type must be fpos<traits_type::state_type>

• traits_type::off_type must be streamoff

• traits_type::state_type must be Assignable and DefaultConstructible,

• traits_type::state_type() must be the initial state for codecvt.

5.235.2 Constructor & Destructor Documentation

basic_filebuf()

template<typename _CharT , typename _Traits >


std::basic_filebuf< _CharT, _Traits >::basic_filebuf ()
Does not open any files.
The default constructor initializes the parent class using its own default ctor.
References std::basic_streambuf< _CharT, _Traits >::_M_buf_locale.

∼basic_filebuf()
template<typename _CharT , typename _Traits = char_traits<_CharT>>
virtual std::basic_filebuf< _CharT, _Traits >::∼basic_filebuf () [inline], [virtual]
The destructor closes the file first.

5.235.3 Member Function Documentation

_M_create_pback()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_filebuf< _CharT, _Traits >::_M_create_pback () [inline], [protected]
Initializes pback buffers, and moves normal buffers to safety. Assumptions: _M_in_cur has already been moved back

_M_destroy_pback()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_filebuf< _CharT, _Traits >::_M_destroy_pback () throw ( ) [inline], [protected]
Deactivates pback buffer contents, and restores normal buffer. Assumptions: The pback buffer has only moved forward.

_M_set_buffer()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_filebuf< _CharT, _Traits >::_M_set_buffer (
streamsize __off) [inline], [protected]
This function sets the pointers of the internal buffer, both get and put areas. Typically:
__off == egptr() - eback() upon underflow/uflow (read mode); __off == 0 upon overflow (write mode); __off == -1 upon
open, setbuf, seekoff/pos (uncommitted mode).
NB: epptr() - pbase() == _M_buf_size - 1, since _M_buf_size reflects the actual allocated memory and the last cell is
reserved for the overflow char of a full put area.
Referenced by std::basic_filebuf< _CharT, _Traits >::close().

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1069

close()

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::__filebuf_type ∗ std::basic_filebuf< _CharT, _Traits >::close
()
Closes the currently associated file.

Returns

this on success, NULL on failure

If no file is currently open, this function immediately fails.


If a put buffer area exists, overflow(eof) is called to flush all the characters. The file is then closed.
If any operations fail, this function also fails.
References std::basic_filebuf< _CharT, _Traits >::_M_mode, std::basic_filebuf< _CharT, _Traits >::_M_pback_init,
std::basic_filebuf< _CharT, _Traits >::_M_reading, and std::basic_filebuf< _CharT, _Traits >::_M_set_buffer().

eback()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::eback () const [inline], [protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

egptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::egptr () const [inline], [protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

epptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::epptr () const [inline], [protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

Generated by Doxygen
1070

gbump()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::gbump (
int __n) [inline], [protected], [inherited]
Moving the read position.

Parameters
_←- The delta by which to move.
_n

This just advances the read position without returning any data.

getloc()

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::getloc () const [inline], [inherited]
Locale access.
Returns

The current locale in effect.


If pubimbue(loc) has been called, then the most recent loc is returned. Otherwise the global locale in effect at the time
of construction is returned.

gptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::gptr () const [inline], [protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.
• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

imbue()

template<typename _CharT , typename _Traits >


void std::basic_filebuf< _CharT, _Traits >::imbue (
const locale & __loc) [protected], [virtual]
Changes translations.

Parameters
__loc A new locale.

Translations done during I/O which depend on the current locale are changed by this call. The standard adds, Between
invocations of this function a class derived from streambuf can safely cache results of calls to locale functions and to
members of facets so obtained.
Note

Base class version does nothing.


Reimplemented from std::basic_streambuf< _CharT, _Traits >.
References std::ios_base::cur.

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1071

in_avail()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::in_avail () [inline], [inherited]
Looking ahead into the stream.

Returns

The number of characters available.

If a read position is available, returns the number of characters available for reading before the buffer must be refilled.
Otherwise returns the derived showmanyc().

is_open()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


bool std::basic_filebuf< _CharT, _Traits >::is_open () const throw ( ) [inline], [nodiscard]
Returns true if the external file is open.

open() [1/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


template<typename _Path >
_If_fs_path< _Path, __filebuf_type ∗ > std::basic_filebuf< _CharT, _Traits >::open (
const _Path & __s,
ios_base::openmode __mode) [inline]
Opens an external file.

Parameters

__s The name of the file, as a filesystem::path.


__mode The open mode flags.

Returns

this on success, NULL on failure

open() [2/3]

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::__filebuf_type ∗ std::basic_filebuf< _CharT, _Traits >::open (
const char ∗ __s,
ios_base::openmode __mode)
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Generated by Doxygen
1072

Returns

this on success, NULL on failure


If a file is already open, this function immediately fails. Otherwise it tries to open the file named __s using the flags given
in __mode.
Table 92, adapted here, gives the relation between openmode combinations and the equivalent fopen() flags. (NB:
lines app, in|out|app, in|app, binary|app, binary|in|out|app, and binary|in|app per DR 596)
+---------------------------------------------------------+
| ios_base Flag combination stdio equivalent |
|binary in out trunc app |
+---------------------------------------------------------+
| + w |
| + + a |
| + a |
| + + w |
| + r |
| + + r+ |
| + + + w+ |
| + + + a+ |
| + + a+ |
+---------------------------------------------------------+
| + + wb |
| + + + ab |
| + + ab |
| + + + wb |
| + + rb |
| + + + r+b |
| + + + + w+b |
| + + + + a+b |
| + + + a+b |
+---------------------------------------------------------+
References std::ios_base::ate, and std::ios_base::end.

open() [3/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


__filebuf_type ∗ std::basic_filebuf< _CharT, _Traits >::open (
const std::string & __s,
ios_base::openmode __mode) [inline]
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Returns

this on success, NULL on failure

overflow()

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::int_type std::basic_filebuf< _CharT, _Traits >::overflow (
int_type __c = _Traits::eof()) [protected], [virtual]
Consumes data from the buffer; writes to the controlled sequence.

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1073

Parameters
_←- An additional character to consume.
_c

Returns

eof() to indicate failure, something else (usually __c, or not_eof())


Informally, this function is called when the output buffer is full (or does not exist, as buffering need not actually be done).
If a buffer exists, it is consumed, with some effect on the controlled sequence. (Typically, the buffer is written out to the
sequence verbatim.) In either case, the character c is also written out, if __c is not eof().
For a formal definition of this function, see a good text such as Langer & Kreft, or [27.5.2.4.5]/3-7.
A functioning output streambuf can be created by overriding only this function (no buffer area will be used).
Note

Base class version does nothing, returns eof().


Reimplemented from std::basic_streambuf< _CharT, _Traits >.
References std::ios_base::app, std::ios_base::cur, and std::ios_base::out.

pbackfail()

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::int_type std::basic_filebuf< _CharT, _Traits >::pbackfail (
int_type __c = _Traits::eof()) [protected], [virtual]
Tries to back up the input sequence.

Parameters
_←- The character to be inserted back into the sequence.
_c

Returns

eof() on failure, some other value on success

Postcondition

The constraints of gptr(), eback(), and pptr() are the same as for underflow().

Note

Base class version does nothing, returns eof().


Reimplemented from std::basic_streambuf< _CharT, _Traits >.
References std::ios_base::cur, and std::ios_base::in.

pbase()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::pbase () const [inline], [protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.
• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

Generated by Doxygen
1074

pbump()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::pbump (
int __n) [inline], [protected], [inherited]
Moving the write position.

Parameters
_←- The delta by which to move.
_n

This just advances the write position without returning any data.

pptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::pptr () const [inline], [protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

pubimbue()

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::pubimbue (
const locale & __loc) [inline], [inherited]
Entry point for imbue().

Parameters
__loc The new locale.

Returns

The previous locale.

Calls the derived imbue(__loc).

pubseekoff()

template<typename _CharT , typename _Traits >


pos_type std::basic_streambuf< _CharT, _Traits >::pubseekoff (
off_type __off,
ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [inherited]
Alters the stream position.

Parameters

__off Offset.

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1075

__way Value for ios_base::seekdir.


__mode Value for ios_base::openmode.

Calls virtual seekoff function.

pubseekpos()

template<typename _CharT , typename _Traits >


pos_type std::basic_streambuf< _CharT, _Traits >::pubseekpos (
pos_type __sp,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [inherited]
Alters the stream position.

Parameters
__sp Position
__mode Value for ios_base::openmode.

Calls virtual seekpos function.

pubsetbuf()

template<typename _CharT , typename _Traits >


basic_streambuf ∗ std::basic_streambuf< _CharT, _Traits >::pubsetbuf (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry points for derived buffer functions.
The public versions of pubfoo dispatch to the protected derived foo member functions, passing the arguments (if
any) and returning the result unchanged.

pubsync()

template<typename _CharT , typename _Traits >


int std::basic_streambuf< _CharT, _Traits >::pubsync () [inline], [inherited]
Calls virtual sync function.
Referenced by std::basic_istream< _CharT, _Traits >::sync().

sbumpc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sbumpc () [inline], [inherited]
Getting the next character.

Returns

The next character, or eof.

If the input read position is available, returns that character and increments the read pointer, otherwise calls and returns
uflow().
Referenced by std::basic_istream< _CharT, _Traits >::getline(), std::istreambuf_iterator< _CharT, _Traits >::operator++(),
and std::istreambuf_iterator< _CharT, _Traits >::operator++().

Generated by Doxygen
1076

seekoff()

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::pos_type std::basic_filebuf< _CharT, _Traits >::seekoff (
off_type ,
ios_base::seekdir ,
ios_base::openmode = ios_base::in | ios_base::out) [protected], [virtual]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::cur.

seekpos()

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::pos_type std::basic_filebuf< _CharT, _Traits >::seekpos (
pos_type ,
ios_base::openmode = ios_base::in | ios_base::out) [protected], [virtual]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::beg.

setbuf()

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::__streambuf_type ∗ std::basic_filebuf< _CharT, _Traits >←-
::setbuf (
char_type ∗ __s,
streamsize __n) [protected], [virtual]
Manipulates the buffer.

Parameters

_←- Pointer to a buffer area.


_s
_←- Size of __s.
_n

Returns

this

If no file has been opened, and both __s and __n are zero, then the stream becomes unbuffered. Otherwise, __s
is used as a buffer; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.←-
html#io.streambuf.buffering for more.
Reimplemented from std::basic_streambuf< _CharT, _Traits >.

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1077

setg()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::setg (
char_type ∗ __gbeg,
char_type ∗ __gnext,
char_type ∗ __gend) [inline], [protected], [inherited]
Setting the three read area pointers.

Parameters
__gbeg A pointer.
__gnext A pointer.
__gend A pointer.

Postcondition

__gbeg == eback(), __gnext == gptr(), and __gend == egptr()

setp()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::setp (
char_type ∗ __pbeg,
char_type ∗ __pend) [inline], [protected], [inherited]
Setting the three write area pointers.

Parameters
__pbeg A pointer.
__pend A pointer.

Postcondition

__pbeg == pbase(), __pbeg == pptr(), and __pend == epptr()

sgetc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sgetc () [inline], [inherited]
Getting the next character.

Returns

The next character, or eof.

If the input read position is available, returns that character, otherwise calls and returns underflow(). Does not
move the read position after fetching the character.
Referenced by std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >::ignore(), std::istreambuf_iterator< _CharT, _Trait
and std::istreambuf_iterator< _CharT, _Traits >::operator++().

Generated by Doxygen
1078

sgetn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::sgetn (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry point for xsgetn.

Parameters

_←- A buffer area.


_s
_←- A count.
_n

Returns xsgetn(__s,__n). The effect is to fill __s[0] through __s[__n-1] with characters from the input sequence, if
possible.

showmanyc()

template<typename _CharT , typename _Traits >


streamsize std::basic_filebuf< _CharT, _Traits >::showmanyc () [protected], [virtual]
Investigating the data available.

Returns

An estimate of the number of characters available in the input sequence, or -1.

If it returns a positive value, then successive calls to underflow() will not return traits::eof() until at least that
number of characters have been supplied. If showmanyc() returns -1, then calls to underflow() or uflow()
will fail. [27.5.2.4.3]/1

Note

Base class version does nothing, returns zero.


The standard adds that the intention is not only that the calls [to underflow or uflow] will not return eof() but that
they will return immediately.
The standard adds that the morphemes of showmanyc are es-how-many-see, not show-manic.

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::binary, and std::ios_base::in.

snextc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::snextc () [inline], [inherited]
Getting the next character.

Returns

The next character, or eof.

Calls sbumpc(), and if that function returns traits::eof(), so does this function. Otherwise, sgetc().
Referenced by std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, char_traits< _CharT > >::ignore(),
std::basic_istream< _CharT, char_traits< _CharT > >::operator>>(), and std::basic_istream< _CharT, char_traits< _CharT > >::putba

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1079

sputbackc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sputbackc (
char_type __c) [inline], [inherited]
Pushing characters back into the input stream.

Parameters
_←- The character to push back.
_c

Returns

The previous character, if possible.

Similar to sungetc(), but __c is pushed onto the stream instead of the previous character. If successful, the next character
fetched from the input stream will be __c.
Referenced by std::basic_istream< _CharT, _Traits >::putback().

sputc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sputc (
char_type __c) [inline], [inherited]
Entry point for all single-character output functions.

Parameters
_←- A character to output.
_c

Returns

__c, if possible.

One of two public output functions.


If a write position is available for the output sequence (i.e., the buffer is not full), stores __c in that position, increments
the position, and returns traits::to_int_type(__c). If a write position is not available, returns overflow(←-
__c).
Referenced by std::ostreambuf_iterator< _CharT, _Traits >::operator=().

sputn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::sputn (
const char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry point for all single-character output functions.

Parameters

_←- A buffer read area.


_s
_←- A count.
_n

Generated by Doxygen
1080

One of two public output functions.


Returns xsputn(__s,__n). The effect is to write __s[0] through __s[__n-1] to the output sequence, if possible.

sungetc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sungetc () [inline], [inherited]
Moving backwards in the input stream.

Returns

The previous character, if possible.

If a putback position is available, this function decrements the input pointer and returns that character. Otherwise, calls
and returns pbackfail(). The effect is to unget the last character gotten.
Referenced by std::basic_istream< _CharT, char_traits< _CharT > >::sentry::sentry().

sync()

template<typename _CharT , typename _Traits >


int std::basic_filebuf< _CharT, _Traits >::sync () [protected], [virtual]
Synchronizes the buffer arrays with the controlled sequences.

Returns

-1 on failure.

Each derived class provides its own appropriate behavior, including the definition of failure.

Note

Base class version does nothing, returns zero.

Reimplemented from std::basic_streambuf< _CharT, _Traits >.

uflow()

template<typename _CharT , typename _Traits >


virtual int_type std::basic_streambuf< _CharT, _Traits >::uflow () [inline], [protected], [virtual],
[inherited]
Fetches more data from the controlled sequence.

Returns

The first character from the pending sequence.

Informally, this function does the same thing as underflow(), and in fact is required to call that function. It also
returns the new character, like underflow() does. However, this function also moves the read position forward by
one.
Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >.

underflow()

template<typename _CharT , typename _Traits >


basic_filebuf< _CharT, _Traits >::int_type std::basic_filebuf< _CharT, _Traits >::underflow ()
[protected], [virtual]
Fetches more data from the controlled sequence.

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1081

Returns

The first character from the pending sequence.

Informally, this function is called when the input buffer is exhausted (or does not exist, as buffering need not actually be
done). If a buffer exists, it is refilled. In either case, the next available character is returned, or traits::eof() to
indicate a null pending sequence.
For a formal definition of the pending sequence, see a good text such as Langer & Kreft, or [27.5.2.4.3]/7-14.
A functioning input streambuf can be created by overriding only this function (no buffer area will be used). For an
example, see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html
Note

Base class version does nothing, returns eof().

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::in.

xsgetn()

template<typename _CharT , typename _Traits >


streamsize std::basic_filebuf< _CharT, _Traits >::xsgetn (
char_type ∗ __s,
streamsize __n) [protected], [virtual]
Multiple character extraction.

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to assign.
_n

Returns

The number of characters assigned.

Fills __s[0] through __s[__n-1] with characters from the input sequence, as if by sbumpc(). Stops when either __n
characters have been copied, or when traits::eof() would be copied.
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented from std::basic_streambuf< _CharT, _Traits >.
References std::ios_base::in.

xsputn()

template<typename _CharT , typename _Traits >


streamsize std::basic_filebuf< _CharT, _Traits >::xsputn (
const char_type ∗ __s,
streamsize __n) [protected], [virtual]
Multiple character insertion.

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to write.
_n

Generated by Doxygen
1082

Returns

The number of characters written.

Writes __s[0] through __s[__n-1] to the output sequence, as if by sputc(). Stops when either n characters have been
copied, or when sputc() would return traits::eof().
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented from std::basic_streambuf< _CharT, _Traits >.
References std::ios_base::app, and std::ios_base::out.

5.235.4 Member Data Documentation

_M_buf

template<typename _CharT , typename _Traits = char_traits<_CharT>>


char_type∗ std::basic_filebuf< _CharT, _Traits >::_M_buf [protected]
Pointer to the beginning of internal buffer.

_M_buf_locale

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::_M_buf_locale [protected], [inherited]
Current locale setting.
Referenced by std::basic_filebuf< _CharT, _Traits >::basic_filebuf().

_M_buf_size

template<typename _CharT , typename _Traits = char_traits<_CharT>>


size_t std::basic_filebuf< _CharT, _Traits >::_M_buf_size [protected]
Actual size of internal buffer. This number is equal to the size of the put area + 1 position, reserved for the overflow char
of a full area.

_M_ext_buf

template<typename _CharT , typename _Traits = char_traits<_CharT>>


char∗ std::basic_filebuf< _CharT, _Traits >::_M_ext_buf [protected]
Buffer for external characters. Used for input when codecvt::always_noconv() == false. When valid, this corresponds to
eback().

_M_ext_buf_size

template<typename _CharT , typename _Traits = char_traits<_CharT>>


streamsize std::basic_filebuf< _CharT, _Traits >::_M_ext_buf_size [protected]
Size of buffer held by _M_ext_buf.

_M_ext_next

template<typename _CharT , typename _Traits = char_traits<_CharT>>


const char∗ std::basic_filebuf< _CharT, _Traits >::_M_ext_next [protected]
Pointers into the buffer held by _M_ext_buf that delimit a subsequence of bytes that have been read but not yet con-
verted. When valid, _M_ext_next corresponds to egptr().

_M_in_beg

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_beg [protected], [inherited]
Start of get area.

Generated by Doxygen
5.235 std::basic_filebuf< _CharT, _Traits > Class Template Reference 1083

_M_in_cur

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_cur [protected], [inherited]
Current read area.

_M_in_end

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_end [protected], [inherited]
End of get area.

_M_mode

template<typename _CharT , typename _Traits = char_traits<_CharT>>


ios_base::openmode std::basic_filebuf< _CharT, _Traits >::_M_mode [protected]
Place to stash in || out || in | out settings for current filebuf.
Referenced by std::basic_filebuf< _CharT, _Traits >::close().

_M_out_beg

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_beg [protected], [inherited]
Start of put area.

_M_out_cur

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_cur [protected], [inherited]
Current put area.

_M_out_end

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_end [protected], [inherited]
End of put area.

_M_pback

template<typename _CharT , typename _Traits = char_traits<_CharT>>


char_type std::basic_filebuf< _CharT, _Traits >::_M_pback [protected]
Necessary bits for putback buffer management.

Note

pbacks of over one character are not currently supported.

_M_pback_cur_save

template<typename _CharT , typename _Traits = char_traits<_CharT>>


char_type∗ std::basic_filebuf< _CharT, _Traits >::_M_pback_cur_save [protected]
Necessary bits for putback buffer management.

Note

pbacks of over one character are not currently supported.

Generated by Doxygen
1084

_M_pback_end_save

template<typename _CharT , typename _Traits = char_traits<_CharT>>


char_type∗ std::basic_filebuf< _CharT, _Traits >::_M_pback_end_save [protected]
Necessary bits for putback buffer management.

Note

pbacks of over one character are not currently supported.

_M_pback_init

template<typename _CharT , typename _Traits = char_traits<_CharT>>


bool std::basic_filebuf< _CharT, _Traits >::_M_pback_init [protected]
Necessary bits for putback buffer management.

Note

pbacks of over one character are not currently supported.

Referenced by std::basic_filebuf< _CharT, _Traits >::close().

_M_reading

template<typename _CharT , typename _Traits = char_traits<_CharT>>


bool std::basic_filebuf< _CharT, _Traits >::_M_reading [protected]
_M_reading == false && _M_writing == false for uncommitted mode; _M_reading == true for read mode; _M_writing
== true for write mode;
NB: _M_reading == true && _M_writing == true is unused.
Referenced by std::basic_filebuf< _CharT, _Traits >::close().
The documentation for this class was generated from the following files:

• fstream
• iosfwd
• fstream.tcc

5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference


#include <fstream>

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1085

Inheritance diagram for std::basic_fstream< _CharT, _Traits >:

std::ios_base

std::basic_ios< _CharT,
_Traits >

std::basic_istream std::basic_ostream
< _CharT, _Traits > < _CharT, _Traits >

std::basic_iostream
< _CharT, _Traits >

std::basic_fstream
< _CharT, _Traits >

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef ctype< _CharT > __ctype_type
• typedef basic_filebuf< char_type, traits_type > __filebuf_type
• typedef basic_ios< char_type, traits_type > __ios_type
• typedef basic_iostream< char_type, traits_type > __iostream_type
• typedef basic_istream< _CharT, _Traits > __istream_type
• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type
• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
• typedef basic_ostream< _CharT, _Traits > __ostream_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef traits_type::int_type int_type

Generated by Doxygen
1086

• typedef _Ios_Iostate iostate


• typedef traits_type::off_type off_type
• typedef _Ios_Openmode openmode
• typedef traits_type::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

Public Member Functions

• basic_fstream ()
• basic_fstream (basic_fstream &&__rhs)
• template<typename _Path , typename _Require = _If_fs_path<_Path>>
basic_fstream (const _Path &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
• basic_fstream (const basic_fstream &)=delete
• basic_fstream (const char ∗__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
• basic_fstream (const std::string &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
• ∼basic_fstream ()
• template<typename _ValueT >
basic_istream< _CharT, _Traits > & _M_extract (_ValueT &__v)
• const locale & _M_getloc () const
• template<typename _ValueT >
basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v)
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• void close ()
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• __ostream_type & flush ()
• streamsize gcount () const
• basic_istream< char > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• basic_istream< wchar_t > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• locale getloc () const
• bool good () const
• basic_istream< char > & ignore (streamsize __n)
• basic_istream< wchar_t > & ignore (streamsize __n)
• basic_istream< char > & ignore (streamsize __n, int_type __delim)
• basic_istream< wchar_t > & ignore (streamsize __n, int_type __delim)
• locale imbue (const locale &__loc)
• bool is_open ()
• bool is_open () const
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1087

• template<typename _Path >


_If_fs_path< _Path, void > open (const _Path &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
• void open (const char ∗__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
• void open (const std::string &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
• __ostream_type & operator<< (__streambuf_type ∗__sb)
• __ostream_type & operator<< (const void ∗__p)
• __ostream_type & operator<< (nullptr_t)
• basic_fstream & operator= (basic_fstream &&__rhs)
• basic_fstream & operator= (const basic_fstream &)=delete
• __istream_type & operator>> (__streambuf_type ∗__sb)
• __istream_type & operator>> (void ∗&__p)
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• __filebuf_type ∗ rdbuf () const
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• __ostream_type & seekp (off_type, ios_base::seekdir)
• __ostream_type & seekp (pos_type)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• void swap (basic_fstream &__rhs)
• pos_type tellp ()
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __istream_type & operator>> (__istream_type &(∗__pf)(__istream_type &))


• __istream_type & operator>> (__ios_type &(∗__pf)(__ios_type &))
• __istream_type & operator>> (ios_base &(∗__pf)(ios_base &))

Extractors
All the operator>> functions (aka formatted input functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_istream::sentry with the second argument (noskipws) set to false.
This has several effects, concluding with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• __istream_type & operator>> (bool &__n)


• __istream_type & operator>> (short &__n)
• __istream_type & operator>> (unsigned short &__n)
• __istream_type & operator>> (int &__n)
• __istream_type & operator>> (unsigned int &__n)
• __istream_type & operator>> (long &__n)
• __istream_type & operator>> (unsigned long &__n)

Generated by Doxygen
1088

• __istream_type & operator>> (long long &__n)


• __istream_type & operator>> (unsigned long long &__n)

• __istream_type & operator>> (float &__f)


• __istream_type & operator>> (double &__f)
• __istream_type & operator>> (long double &__f)

Unformatted Input Functions


All the unformatted input functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_istream::sentry with the second argument (noskipws) set to true. This has several effects, concluding
with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
The number of characters extracted is stored for later retrieval by gcount().
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• int_type get ()
• __istream_type & get (char_type &__c)
• __istream_type & get (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & get (char_type ∗__s, streamsize __n)
• __istream_type & get (__streambuf_type &__sb, char_type __delim)
• __istream_type & get (__streambuf_type &__sb)
• __istream_type & getline (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & getline (char_type ∗__s, streamsize __n)
• __istream_type & ignore (streamsize __n, int_type __delim)
• __istream_type & ignore (streamsize __n)
• __istream_type & ignore ()
• int_type peek ()
• __istream_type & read (char_type ∗__s, streamsize __n)
• streamsize readsome (char_type ∗__s, streamsize __n)
• __istream_type & putback (char_type __c)
• __istream_type & unget ()
• int sync ()
• pos_type tellg ()
• __istream_type & seekg (pos_type)
• __istream_type & seekg (off_type, ios_base::seekdir)

• operator bool () const


• bool operator! () const

• __ostream_type & operator<< (__ostream_type &(∗__pf)(__ostream_type &))


• __ostream_type & operator<< (__ios_type &(∗__pf)(__ios_type &))
• __ostream_type & operator<< (ios_base &(∗__pf)(ios_base &))

Inserters
All the operator<< functions (aka formatted output functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_ostream::sentry. This can have several effects, concluding with
the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state without
causing an ios_base::failure to be thrown. The original exception will then be rethrown.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1089

• __ostream_type & operator<< (long __n)


• __ostream_type & operator<< (unsigned long __n)
• __ostream_type & operator<< (bool __n)
• __ostream_type & operator<< (short __n)
• __ostream_type & operator<< (unsigned short __n)
• __ostream_type & operator<< (int __n)
• __ostream_type & operator<< (unsigned int __n)
• __ostream_type & operator<< (long long __n)
• __ostream_type & operator<< (unsigned long long __n)

• __ostream_type & operator<< (double __f)


• __ostream_type & operator<< (float __f)
• __ostream_type & operator<< (long double __f)

Unformatted Output Functions


All the unformatted output functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_ostream::sentry. This has several effects, concluding with the setting of a status flag; see the sentry
documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. If badbit is
on in the stream's exceptions mask, the exception will be rethrown without completing its actions.

• __ostream_type & put (char_type __c)


• __ostream_type & write (const char_type ∗__s, streamsize __n)

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left

Generated by Doxygen
1090

• static const fmtflags oct


• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• void _M_cache_locale (const locale &__loc)


• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• template<typename _ValueT >
__istream_type & _M_extract (_ValueT &__v)
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• template<typename _ValueT >
__ostream_type & _M_insert (_ValueT __v)
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_iostream &__rhs)
• void swap (basic_istream &__rhs)
• void swap (basic_ostream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• streamsize _M_gcount
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1091

• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf


• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.236.1 Detailed Description

template<typename _CharT, typename _Traits = char_traits<_CharT>>


class std::basic_fstream< _CharT, _Traits >

Controlling input and output for files.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.

This class supports reading from and writing to named files, using the inherited functions from std::basic_iostream. To
control the associated sequence, an instance of std::basic_filebuf is used, which this page refers to as sb.

5.236.2 Member Typedef Documentation

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

Generated by Doxygen
1092

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.236.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.236.4 Constructor & Destructor Documentation

basic_fstream() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_fstream< _CharT, _Traits >::basic_fstream () [inline]
Default constructor.
Initializes sb using its default constructor, and passes &sb to the base class initializer. Does not open any files (you
haven't given it a filename to open).

basic_fstream() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_fstream< _CharT, _Traits >::basic_fstream (
const char ∗ __s,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [explicit]
Create an input/output file stream.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1093

Parameters

__s Null terminated string specifying the filename.


__mode Open file in specified mode (see std::ios_base).

basic_fstream() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_fstream< _CharT, _Traits >::basic_fstream (
const std::string & __s,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [explicit]
Create an input/output file stream.

Parameters

__s Null terminated string specifying the filename.


__mode Open file in specified mode (see std::ios_base).

basic_fstream() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


template<typename _Path , typename _Require = _If_fs_path<_Path>>
std::basic_fstream< _CharT, _Traits >::basic_fstream (
const _Path & __s,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline]
Create an input/output file stream.

Parameters

__s filesystem::path specifying the filename.


__mode Open file in specified mode (see std::ios_base).

∼basic_fstream()
template<typename _CharT , typename _Traits = char_traits<_CharT>>
std::basic_fstream< _CharT, _Traits >::∼basic_fstream () [inline]
The destructor does nothing.
The file is closed by the filebuf object, not the formatting stream.

5.236.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.

Generated by Doxygen
1094

Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

close()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_fstream< _CharT, _Traits >::close () [inline]
Close the file.
Calls std::basic_filebuf::close(). If that function fails, failbit is set in the stream's error state.

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1095

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{

Generated by Doxygen
1096

std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.

Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1097

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.

Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

flush()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush () [inherited]
Synchronizing the stream buffer.

Returns

∗this

If rdbuf() is a null pointer, changes nothing.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit.
References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

gcount()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::gcount () const [inline], [inherited]
Character counting.

Returns

The number of characters extracted by the previous unformatted input function dispatched for this stream.

Generated by Doxygen
1098

get() [1/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::get (
void ) [inherited]
Simple extraction.
Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [2/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb) [inline], [inherited]
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.

Returns

∗this
Returns get(__sb,widen('\n')).

get() [3/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb,
char_type __delim) [inherited]
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.


__delim A "stop" character.

Returns

∗this
Characters are extracted and inserted into __sb until one of the following happens:

• the input sequence reaches EOF

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted)

• the next character equals __delim (in this case, the character is not extracted)

• an exception occurs (and in this case is caught)

If no characters are stored, failbit is set in the stream's error state.


References std::ios_base::goodbit.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1099

get() [4/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type & __c) [inherited]
Simple extraction.

Parameters
_←- The character in which to store data.
_c

Returns

∗this

Tries to extract a character and store it in __c. If none are available, sets failbit and returns traits::eof().

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [5/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Simple multiple-character extraction.

Parameters
_←- Pointer to an array.
_s
_←- Maximum number of characters to store in s.
_n

Returns

∗this

Returns get(__s,__n,widen('\n')).

get() [6/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Simple multiple-character extraction.

Parameters
__s Pointer to an array.

Generated by Doxygen
1100

__n Maximum number of characters to store in __s.


__delim A "stop" character.

Returns

∗this

Characters are extracted and stored into __s until one of the following happens:

• __n-1 characters are stored

• the input sequence reaches EOF

• the next character equals __delim, in which case the character is not extracted

If no characters are stored, failbit is set in the stream's error state.


In any case, a null character is stored into the next location in the array.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

getline() [1/3]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
String extraction.

Parameters
_←- A character array in which to store the data.
_s
_←- Maximum number of characters to extract.
_n

Returns

∗this

Returns getline(__s,__n,widen('\n')).

getline() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
String extraction.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1101

Parameters
__s A character array in which to store the data.
__n Maximum number of characters to extract.
__delim A "stop" character.

Returns

∗this
Extracts and stores characters into __s until one of the following happens. Note that these criteria are required to be
tested in the order listed here, to allow an input line to exactly fill the __s array without setting failbit.

1. the input sequence reaches end-of-file, in which case eofbit is set in the stream error state

2. the next character equals __delim, in which case the character is extracted (and therefore counted in
gcount()) but not stored
3. __n-1 characters are stored, in which case failbit is set in the stream error state

If no characters are extracted, failbit is set. (An empty line of input should therefore not cause failbit to be set.)
In any case, a null character is stored in the next location in the array.
References std::ios_base::eofbit, std::ios_base::goodbit, std::basic_streambuf< _CharT, _Traits >::sbumpc(),
std::basic_streambuf< _CharT, _Traits >::sgetc(), and std::basic_streambuf< _CharT, _Traits >::snextc().

getline() [3/3]

basic_istream< char > & std::basic_istream< char >::getline (


char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Explicit specialization declarations, defined in src/istream.cc.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.
Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

Generated by Doxygen
1102

ignore() [1/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
void ) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit.

ignore() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

ignore() [3/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n,
int_type __delim) [inherited]
Discarding characters.

Parameters

__n Number of characters to discard.


__delim A "stop" character.

Returns

∗this

Extracts characters and throws them away until one of the following happens:

• if __n != std::numeric_limits<int>::max(), __n characters are extracted

• the input sequence reaches end-of-file

• the next character equals __delim (in this case, the character is extracted); note that this condition will never occur
if __delim equals traits::eof().

NB: Provide three overloads, instead of the single function (with defaults) mandated by the Standard: this leads to a
better performing implementation, while still conforming to the Standard.
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1103

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

is_open()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


bool std::basic_fstream< _CharT, _Traits >::is_open () [inline], [nodiscard]
Wrapper to test for an open file.

Returns

rdbuf()->is_open()

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Generated by Doxygen
1104

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.

Maps a character of char_type to a character of char, if possible.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

open() [1/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


template<typename _Path >
_If_fs_path< _Path, void > std::basic_fstream< _CharT, _Traits >::open (
const _Path & __s,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline]
Opens an external file.

Parameters

__s The name of the file, as a filesystem::path.


__mode The open mode flags.

Calls std::basic_filebuf::open(__s,__mode). If that function fails, failbit is set in the stream's error
state.

open() [2/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_fstream< _CharT, _Traits >::open (
const char ∗ __s,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline]
Opens an external file.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1105

Parameters

__s The name of the file.


__mode The open mode flags.

Calls std::basic_filebuf::open(__s,__mode). If that function fails, failbit is set in the stream's error
state.

open() [3/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_fstream< _CharT, _Traits >::open (
const std::string & __s,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline]
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Calls std::basic_filebuf::open(__s,__mode). If that function fails, failbit is set in the stream's error
state.

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator<<() [1/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [2/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ostream_type &(∗ __pf )(__ostream_type &)) [inline], [inherited]

Generated by Doxygen
1106

Interface for manipulators.


Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [3/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
__streambuf_type ∗ __sb) [inherited]
Extracting from another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from __sb and inserted into ∗this until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted),
or

• an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

operator<<() [4/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
bool __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [5/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
const void ∗ __p) [inline], [inherited]
Pointer arithmetic inserters.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1107

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [6/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [7/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
float __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
1108

operator<<() [8/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
int __n) [inherited]
Integer arithmetic inserters.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1109

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [9/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [10/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [11/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
1110

operator<<() [12/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [13/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
short __n) [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.
References std::ios_base::badbit, std::ios_base::goodbit, std::num_put< _CharT, _OutIter >::put(), std::basic_ios< _CharT, _Traits >::se
and std::use_facet().

operator<<() [14/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned int __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1111

operator<<() [15/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [16/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [17/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned short __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
1112

operator>>() [1/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [2/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__istream_type &(∗ __pf )(__istream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [3/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
__streambuf_type ∗ __sb) [inherited]
Extracting into another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from this stream and inserted into the __sb streambuf until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted), or

• an exception occurs (and in this case is caught)

If the function inserts no characters, failbit is set.


References std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

operator>>() [4/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
bool & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1113

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [5/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [6/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
float & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [7/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
int & __n) [inherited]
Integer arithmetic extractors.

Generated by Doxygen
1114

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [8/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [9/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [10/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1115

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [11/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [12/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
short & __n) [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [13/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned int & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
1116

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [14/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [15/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [16/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned short & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1117

operator>>() [17/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
void ∗& __p) [inline], [inherited]
Basic arithmetic extractors.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

peek()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::peek (
void ) [inherited]
Looking ahead in the stream.

Returns

The next character, or eof().

If, after constructing the sentry object, good() is false, returns traits::eof(). Otherwise reads but does not
extract the next input character.

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

Generated by Doxygen
1118

put()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put (
char_type __c) [inherited]
Simple insertion.

Parameters
_←- The character to insert.
_c

Returns

∗this

Tries to insert __c.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

putback()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::putback (
char_type __c) [inherited]
Unextracting a single character.

Parameters
_←- The character to push back into the input stream.
_c

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sputbackc(c).


If rdbuf() is null or if sputbackc() fails, sets badbit in the error state.

Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sputbackc()

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1119

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

rdbuf() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


__filebuf_type ∗ std::basic_fstream< _CharT, _Traits >::rdbuf () const [inline], [nodiscard]
Accessing the underlying buffer.

Returns

The current basic_filebuf buffer.

This hides both signatures of std::basic_ios::rdbuf().

rdbuf() [2/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.

Generated by Doxygen
1120

Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

read()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::read (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction without delimiters.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Returns

∗this

If the stream state is good(), extracts characters and stores them into __s until one of the following happens:

• __n characters are stored

• the input sequence reaches end-of-file, in which case the error state is set to failbit|eofbit.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

readsome()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::readsome (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction until the buffer is exhausted, but no more.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1121

Returns

The number of characters extracted.

Extracts characters and stores them into __s depending on the number of characters remaining in the streambuf's buffer,
rdbuf()->in_avail(), called A here:
• if A == -1, sets eofbit and extracts no characters

• if A == 0, extracts no characters

• if A > 0, extracts min(A,n)

The goal is to empty the current buffer, and to not request any more from the external input sequence controlled by the
streambuf.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::min().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekg() [1/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current read position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(__off,__dir). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

Generated by Doxygen
1122

seekg() [2/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
pos_type __pos) [inherited]
Changing the current read position.

Parameters

__pos A file position object.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(__pos). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

seekp() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current write position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

seekp() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
pos_type __pos) [inherited]
Changing the current write position.

Parameters

__pos A file position object.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1123

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

Generated by Doxygen
1124

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

sync()

template<typename _CharT , typename _Traits >


int std::basic_istream< _CharT, _Traits >::sync (
void ) [inherited]
Synchronizing the stream buffer.

Returns

0 on success, -1 on failure

If rdbuf() is a null pointer, returns -1.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit and returns -1.
Otherwise, returns 0.

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount().

References std::ios_base::badbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::pubsync().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tellg()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::pos_type std::basic_istream< _CharT, _Traits >::tellg (
void ) [inherited]
Getting the current read position.

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1125

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,in).

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount(). At variance with putback, unget and seekg, eofbit is not cleared first.

References std::ios_base::badbit, std::ios_base::cur, and std::ios_base::in.

tellp()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp () [inherited]
Getting the current write position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).
References std::ios_base::cur, std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::out, and std::basic_ios< _CharT, _Traits >::rdbuf()

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

Generated by Doxygen
1126

unget()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::unget (
void ) [inherited]
Unextracting the previous character.

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sungetc(c).


If rdbuf() is null or if sungetc() fails, sets badbit in the error state.

Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::eofbit, and std::ios_base::goodbit.


Referenced by std::__detail::operator>>().

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1127

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

write()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write (
const char_type ∗ __s,
streamsize __n) [inherited]
Character string insertion.

Parameters
_←- The array to insert.
_s
_←- Maximum number of characters to insert.
_n

Returns

∗this

Characters are copied from __s and inserted into the stream until one of the following happens:

• __n characters are inserted

• inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)

Note

This function is not overloaded on signed char and unsigned char.

Generated by Doxygen
1128

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.236.6 Member Data Documentation

_M_gcount

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::_M_gcount [protected], [inherited]
The number of characters extracted in the previous unformatted function; see gcount().

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1129

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),

Generated by Doxygen
1130

std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

Generated by Doxygen
5.236 std::basic_fstream< _CharT, _Traits > Class Template Reference 1131

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]


Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

Generated by Doxygen
1132

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• fstream
• iosfwd

5.237 __gnu_pbds::basic_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy,


Store_Hash, Tag, Policy_Tl, _Alloc > Class Template Reference
#include <assoc_container.hpp>
Inheritance diagram for __gnu_pbds::basic_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash,

Generated by Doxygen
5.237 __gnu_pbds::basic_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, Tag,
Policy_Tl, _Alloc > Class Template Reference 1133

Tag, Policy_Tl, _Alloc >:

__gnu_pbds::cc_hash
_table< Key, Mapped,
Hash_Fn, Eq_Fn, Comb
_Hash_Fn, Resize_Policy,
__gnu_pbds::basic_hash
Store_Hash, _Alloc >
_table< Key, Mapped, Hash
_Fn, Eq_Fn, Resize_Policy,
Store_Hash, Tag, Policy_Tl,
__gnu_pbds::gp_hash
_Alloc >
_table< Key, Mapped,
Hash_Fn, Eq_Fn, Comb
_Probe_Fn, Probe_Fn, Resize
_Policy, Store_Hash, _Alloc >

Protected Member Functions

• basic_hash_table (const basic_hash_table &other)


• template<typename T0 >
basic_hash_table (T0 t0)
• template<typename T0 , typename T1 >
basic_hash_table (T0 t0, T1 t1)
• template<typename T0 , typename T1 , typename T2 >
basic_hash_table (T0 t0, T1 t1, T2 t2)
• template<typename T0 , typename T1 , typename T2 , typename T3 >
basic_hash_table (T0 t0, T1 t1, T2 t2, T3 t3)
• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
basic_hash_table (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4)
• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
basic_hash_table (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
basic_hash_table (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
basic_hash_table (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7)
• template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename
T8 >
basic_hash_table (T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8)

5.237.1 Detailed Description

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn, typename Resize_Policy,
bool Store_Hash, typename Tag, typename Policy_Tl, typename _Alloc>
class __gnu_pbds::basic_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, Tag,
Policy_Tl, _Alloc >

A hashed container abstraction.

Generated by Doxygen
1134

Template Parameters

Key Key type.


Mapped Map type.
Hash_Fn Hashing functor.
Eq_Fn Equal functor.
Resize_Policy Resizes hash.
Store_Hash Indicates whether the hash value will be stored along with each key.
Tag Instantiating data structure type, see container_tag.
Policy_TL Policy typelist.
_Alloc Allocator type.

Base is dispatched at compile time via Tag, from the following choices: cc_hash_tag, gp_hash_tag, and descendants
of basic_hash_tag.
Base choices are: detail::cc_ht_map, detail::gp_ht_map
The documentation for this class was generated from the following file:

• assoc_container.hpp

5.238 __gnu_pbds::basic_hash_tag Struct Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::basic_hash_tag:

__gnu_pbds::container_tag

__gnu_pbds::associative_tag

__gnu_pbds::basic_hash_tag

__gnu_pbds::cc_hash_tag __gnu_pbds::gp_hash_tag

5.238.1 Detailed Description

Basic hash structure.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1135

5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference


#include <fstream>
Inheritance diagram for std::basic_ifstream< _CharT, _Traits >:

std::ios_base

std::basic_ios< _CharT,
_Traits >

std::basic_istream
< _CharT, _Traits >

std::basic_ifstream
< _CharT, _Traits >

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef basic_filebuf< char_type, traits_type > __filebuf_type
• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef basic_istream< char_type, traits_type > __istream_type
• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef traits_type::int_type int_type
• typedef _Ios_Iostate iostate
• typedef traits_type::off_type off_type
• typedef _Ios_Openmode openmode
• typedef traits_type::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type

Generated by Doxygen
1136

Public Member Functions

• basic_ifstream ()
• basic_ifstream (basic_ifstream &&__rhs)
• template<typename _Path , typename _Require = _If_fs_path<_Path>>
basic_ifstream (const _Path &__s, ios_base::openmode __mode=ios_base::in)
• basic_ifstream (const basic_ifstream &)=delete
• basic_ifstream (const char ∗__s, ios_base::openmode __mode=ios_base::in)
• basic_ifstream (const std::string &__s, ios_base::openmode __mode=ios_base::in)
• ∼basic_ifstream ()
• template<typename _ValueT >
basic_istream< _CharT, _Traits > & _M_extract (_ValueT &__v)
• const locale & _M_getloc () const
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• void close ()
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• streamsize gcount () const
• basic_istream< char > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• basic_istream< wchar_t > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• locale getloc () const
• bool good () const
• basic_istream< char > & ignore (streamsize __n)
• basic_istream< wchar_t > & ignore (streamsize __n)
• basic_istream< char > & ignore (streamsize __n, int_type __delim)
• basic_istream< wchar_t > & ignore (streamsize __n, int_type __delim)
• locale imbue (const locale &__loc)
• bool is_open ()
• bool is_open () const
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const
• template<typename _Path >
_If_fs_path< _Path, void > open (const _Path &__s, ios_base::openmode __mode=ios_base::in)
• void open (const char ∗__s, ios_base::openmode __mode=ios_base::in)
• void open (const std::string &__s, ios_base::openmode __mode=ios_base::in)
• basic_ifstream & operator= (basic_ifstream &&__rhs)
• basic_ifstream & operator= (const basic_ifstream &)=delete
• __istream_type & operator>> (__streambuf_type ∗__sb)
• __istream_type & operator>> (void ∗&__p)
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1137

• __filebuf_type ∗ rdbuf () const


• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• void swap (basic_ifstream &__rhs)
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __istream_type & operator>> (__istream_type &(∗__pf)(__istream_type &))


• __istream_type & operator>> (__ios_type &(∗__pf)(__ios_type &))
• __istream_type & operator>> (ios_base &(∗__pf)(ios_base &))

Extractors
All the operator>> functions (aka formatted input functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_istream::sentry with the second argument (noskipws) set to false.
This has several effects, concluding with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• __istream_type & operator>> (bool &__n)


• __istream_type & operator>> (short &__n)
• __istream_type & operator>> (unsigned short &__n)
• __istream_type & operator>> (int &__n)
• __istream_type & operator>> (unsigned int &__n)
• __istream_type & operator>> (long &__n)
• __istream_type & operator>> (unsigned long &__n)
• __istream_type & operator>> (long long &__n)
• __istream_type & operator>> (unsigned long long &__n)

• __istream_type & operator>> (float &__f)


• __istream_type & operator>> (double &__f)
• __istream_type & operator>> (long double &__f)

Unformatted Input Functions


All the unformatted input functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_istream::sentry with the second argument (noskipws) set to true. This has several effects, concluding
with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
The number of characters extracted is stored for later retrieval by gcount().
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

Generated by Doxygen
1138

• int_type get ()
• __istream_type & get (char_type &__c)
• __istream_type & get (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & get (char_type ∗__s, streamsize __n)
• __istream_type & get (__streambuf_type &__sb, char_type __delim)
• __istream_type & get (__streambuf_type &__sb)
• __istream_type & getline (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & getline (char_type ∗__s, streamsize __n)
• __istream_type & ignore (streamsize __n, int_type __delim)
• __istream_type & ignore (streamsize __n)
• __istream_type & ignore ()
• int_type peek ()
• __istream_type & read (char_type ∗__s, streamsize __n)
• streamsize readsome (char_type ∗__s, streamsize __n)
• __istream_type & putback (char_type __c)
• __istream_type & unget ()
• int sync ()
• pos_type tellg ()
• __istream_type & seekg (pos_type)
• __istream_type & seekg (off_type, ios_base::seekdir)

• operator bool () const


• bool operator! () const

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1139

• static const fmtflags right


• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• void _M_cache_locale (const locale &__loc)


• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• template<typename _ValueT >
__istream_type & _M_extract (_ValueT &__v)
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_istream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• streamsize _M_gcount
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

Generated by Doxygen
1140

5.239.1 Detailed Description

template<typename _CharT, typename _Traits = char_traits<_CharT>>


class std::basic_ifstream< _CharT, _Traits >

Controlling input for files.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.

This class supports reading from named files, using the inherited functions from std::basic_istream. To control the
associated sequence, an instance of std::basic_filebuf is used, which this page refers to as sb.

5.239.2 Member Typedef Documentation

__num_put_type

template<typename _CharT , typename _Traits >


num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_put_type [inherited]
These are non-standard types.

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1141

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.239.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.239.4 Constructor & Destructor Documentation

basic_ifstream() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_ifstream< _CharT, _Traits >::basic_ifstream () [inline]
Default constructor.
Initializes sb using its default constructor, and passes &sb to the base class initializer. Does not open any files (you
haven't given it a filename to open).

basic_ifstream() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_ifstream< _CharT, _Traits >::basic_ifstream (
const char ∗ __s,
ios_base::openmode __mode = ios_base::in) [inline], [explicit]
Create an input file stream.

Generated by Doxygen
1142

Parameters

__s Null terminated string specifying the filename.


__mode Open file in specified mode (see std::ios_base).

ios_base::in is automatically included in __mode.

basic_ifstream() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_ifstream< _CharT, _Traits >::basic_ifstream (
const std::string & __s,
ios_base::openmode __mode = ios_base::in) [inline], [explicit]
Create an input file stream.

Parameters

__s std::string specifying the filename.


__mode Open file in specified mode (see std::ios_base).

ios_base::in is automatically included in __mode.

basic_ifstream() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


template<typename _Path , typename _Require = _If_fs_path<_Path>>
std::basic_ifstream< _CharT, _Traits >::basic_ifstream (
const _Path & __s,
ios_base::openmode __mode = ios_base::in) [inline]
Create an input file stream.

Parameters

__s filesystem::path specifying the filename.


__mode Open file in specified mode (see std::ios_base).

ios_base::in is automatically included in __mode.

∼basic_ifstream()
template<typename _CharT , typename _Traits = char_traits<_CharT>>
std::basic_ifstream< _CharT, _Traits >::∼basic_ifstream () [inline]
The destructor does nothing.
The file is closed by the filebuf object, not the formatting stream.

5.239.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1143

Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

close()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_ifstream< _CharT, _Traits >::close () [inline]
Close the file.
Calls std::basic_filebuf::close(). If that function fails, failbit is set in the stream's error state.

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Generated by Doxygen
1144

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1145

std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.

Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

Generated by Doxygen
1146

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.
Returns

The format control flags for both input and output.


Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),
std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.


This function overwrites all the format flags with __fmtfl.

gcount()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::gcount () const [inline], [inherited]
Character counting.
Returns

The number of characters extracted by the previous unformatted input function dispatched for this stream.

get() [1/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::get (
void ) [inherited]
Simple extraction.
Returns

A character, or eof().
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [2/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb) [inline], [inherited]
Extraction into another streambuf.

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1147

Parameters

__sb A streambuf in which to store data.

Returns

∗this
Returns get(__sb,widen('\n')).

get() [3/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb,
char_type __delim) [inherited]
Extraction into another streambuf.
Parameters

__sb A streambuf in which to store data.


__delim A "stop" character.

Returns

∗this
Characters are extracted and inserted into __sb until one of the following happens:
• the input sequence reaches EOF

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted)

• the next character equals __delim (in this case, the character is not extracted)

• an exception occurs (and in this case is caught)


If no characters are stored, failbit is set in the stream's error state.
References std::ios_base::goodbit.

get() [4/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type & __c) [inherited]
Simple extraction.

Parameters
_←- The character in which to store data.
_c

Returns

∗this
Tries to extract a character and store it in __c. If none are available, sets failbit and returns traits::eof().
Note

This function is not overloaded on signed char and unsigned char.


References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

Generated by Doxygen
1148

get() [5/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Simple multiple-character extraction.

Parameters
_←- Pointer to an array.
_s
_←- Maximum number of characters to store in s.
_n

Returns

∗this

Returns get(__s,__n,widen('\n')).

get() [6/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Simple multiple-character extraction.

Parameters
__s Pointer to an array.
__n Maximum number of characters to store in __s.
__delim A "stop" character.

Returns

∗this

Characters are extracted and stored into __s until one of the following happens:

• __n-1 characters are stored

• the input sequence reaches EOF

• the next character equals __delim, in which case the character is not extracted

If no characters are stored, failbit is set in the stream's error state.


In any case, a null character is stored into the next location in the array.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1149

getline() [1/3]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
String extraction.

Parameters
_←- A character array in which to store the data.
_s
_←- Maximum number of characters to extract.
_n

Returns

∗this

Returns getline(__s,__n,widen('\n')).

getline() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
String extraction.

Parameters
__s A character array in which to store the data.
__n Maximum number of characters to extract.
__delim A "stop" character.

Returns

∗this

Extracts and stores characters into __s until one of the following happens. Note that these criteria are required to be
tested in the order listed here, to allow an input line to exactly fill the __s array without setting failbit.

1. the input sequence reaches end-of-file, in which case eofbit is set in the stream error state

2. the next character equals __delim, in which case the character is extracted (and therefore counted in
gcount()) but not stored

3. __n-1 characters are stored, in which case failbit is set in the stream error state

If no characters are extracted, failbit is set. (An empty line of input should therefore not cause failbit to be set.)
In any case, a null character is stored in the next location in the array.
References std::ios_base::eofbit, std::ios_base::goodbit, std::basic_streambuf< _CharT, _Traits >::sbumpc(),
std::basic_streambuf< _CharT, _Traits >::sgetc(), and std::basic_streambuf< _CharT, _Traits >::snextc().

Generated by Doxygen
1150

getline() [3/3]

basic_istream< char > & std::basic_istream< char >::getline (


char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Explicit specialization declarations, defined in src/istream.cc.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

ignore() [1/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
void ) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit.

ignore() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n) [inherited]
Simple extraction.

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1151

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

ignore() [3/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n,
int_type __delim) [inherited]
Discarding characters.

Parameters

__n Number of characters to discard.


__delim A "stop" character.

Returns

∗this

Extracts characters and throws them away until one of the following happens:

• if __n != std::numeric_limits<int>::max(), __n characters are extracted

• the input sequence reaches end-of-file

• the next character equals __delim (in this case, the character is extracted); note that this condition will never occur
if __delim equals traits::eof().

NB: Provide three overloads, instead of the single function (with defaults) mandated by the Standard: this leads to a
better performing implementation, while still conforming to the Standard.
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

Generated by Doxygen
1152

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

is_open()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


bool std::basic_ifstream< _CharT, _Traits >::is_open () [inline], [nodiscard]
Wrapper to test for an open file.

Returns

rdbuf()->is_open()

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Parameters
__c The character to narrow.
__dfault The character to narrow.

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1153

Returns

The narrowed character.

Maps a character of char_type to a character of char, if possible.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

open() [1/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


template<typename _Path >
_If_fs_path< _Path, void > std::basic_ifstream< _CharT, _Traits >::open (
const _Path & __s,
ios_base::openmode __mode = ios_base::in) [inline]
Opens an external file.

Parameters

__s The name of the file, as a filesystem::path.


__mode The open mode flags.

Calls std::basic_filebuf::open(__s,__mode|in). If that function fails, failbit is set in the stream's error
state.

open() [2/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_ifstream< _CharT, _Traits >::open (
const char ∗ __s,
ios_base::openmode __mode = ios_base::in) [inline]
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Calls std::basic_filebuf::open(s,__mode|in). If that function fails, failbit is set in the stream's error
state.

open() [3/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_ifstream< _CharT, _Traits >::open (
const std::string & __s,
ios_base::openmode __mode = ios_base::in) [inline]
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Generated by Doxygen
1154

Calls std::basic_filebuf::open(__s,__mode|in). If that function fails, failbit is set in the stream's error
state.

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator>>() [1/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [2/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__istream_type &(∗ __pf )(__istream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [3/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
__streambuf_type ∗ __sb) [inherited]
Extracting into another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from this stream and inserted into the __sb streambuf until one of the following occurs:

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1155

• the input stream reaches end-of-file,

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted), or

• an exception occurs (and in this case is caught)

If the function inserts no characters, failbit is set.


References std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

operator>>() [4/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
bool & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [5/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [6/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
float & __f) [inline], [inherited]
Floating point arithmetic extractors.

Generated by Doxygen
1156

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [7/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
int & __n) [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [8/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [9/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1157

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [10/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [11/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [12/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
short & __n) [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
1158

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [13/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned int & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [14/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [15/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1159

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [16/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned short & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [17/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
void ∗& __p) [inline], [inherited]
Basic arithmetic extractors.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

peek()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::peek (
void ) [inherited]
Looking ahead in the stream.

Returns

The next character, or eof().

If, after constructing the sentry object, good() is false, returns traits::eof(). Otherwise reads but does not
extract the next input character.

Generated by Doxygen
1160

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

putback()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::putback (
char_type __c) [inherited]
Unextracting a single character.

Parameters
_←- The character to push back into the input stream.
_c

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sputbackc(c).


If rdbuf() is null or if sputbackc() fails, sets badbit in the error state.
Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sputbackc()

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1161

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

rdbuf() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


__filebuf_type ∗ std::basic_ifstream< _CharT, _Traits >::rdbuf () const [inline], [nodiscard]
Accessing the underlying buffer.

Returns

The current basic_filebuf buffer.

This hides both signatures of std::basic_ios::rdbuf().

rdbuf() [2/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.

Generated by Doxygen
1162

Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

read()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::read (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction without delimiters.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Returns

∗this

If the stream state is good(), extracts characters and stores them into __s until one of the following happens:

• __n characters are stored

• the input sequence reaches end-of-file, in which case the error state is set to failbit|eofbit.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

readsome()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::readsome (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction until the buffer is exhausted, but no more.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1163

Returns

The number of characters extracted.

Extracts characters and stores them into __s depending on the number of characters remaining in the streambuf's buffer,
rdbuf()->in_avail(), called A here:
• if A == -1, sets eofbit and extracts no characters

• if A == 0, extracts no characters

• if A > 0, extracts min(A,n)

The goal is to empty the current buffer, and to not request any more from the external input sequence controlled by the
streambuf.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::min().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekg() [1/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current read position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(__off,__dir). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

Generated by Doxygen
1164

seekg() [2/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
pos_type __pos) [inherited]
Changing the current read position.

Parameters

__pos A file position object.

Returns

∗this
If fail() is not true, calls rdbuf()->pubseekpos(__pos). If that function fails, sets failbit.
Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1165

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

sync()

template<typename _CharT , typename _Traits >


int std::basic_istream< _CharT, _Traits >::sync (
void ) [inherited]
Synchronizing the stream buffer.

Returns

0 on success, -1 on failure

If rdbuf() is a null pointer, returns -1.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit and returns -1.
Otherwise, returns 0.

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount().

References std::ios_base::badbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::pubsync().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

Generated by Doxygen
1166

tellg()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::pos_type std::basic_istream< _CharT, _Traits >::tellg (
void ) [inherited]
Getting the current read position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,in).

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount(). At variance with putback, unget and seekg, eofbit is not cleared first.

References std::ios_base::badbit, std::ios_base::cur, and std::ios_base::in.

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

unget()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::unget (
void ) [inherited]
Unextracting the previous character.

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1167

Returns

∗this
If rdbuf() is not null, calls rdbuf()->sungetc(c).
If rdbuf() is null or if sungetc() fails, sets badbit in the error state.
Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.
References std::ios_base::eofbit, and std::ios_base::goodbit.
Referenced by std::__detail::operator>>().

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.
Parameters
_←- The character to widen.
_c

Returns

The widened character.


Maps a character of char to a character of char_type.
Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The minimum field width to generate on output operations.


Minimum field width refers to the number of characters.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

Generated by Doxygen
1168

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.239.6 Member Data Documentation

_M_gcount

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::_M_gcount [protected], [inherited]
The number of characters extracted in the previous unformatted function; see gcount().

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1169

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

Generated by Doxygen
1170

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:

Generated by Doxygen
5.239 std::basic_ifstream< _CharT, _Traits > Class Template Reference 1171

std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]

Generated by Doxygen
1172

Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• fstream
• iosfwd

Generated by Doxygen
5.240 __gnu_pbds::basic_invalidation_guarantee Struct Reference 1173

5.240 __gnu_pbds::basic_invalidation_guarantee Struct Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::basic_invalidation_guarantee:

__gnu_pbds::basic_invalidation
_guarantee

__gnu_pbds::point_invalidation
_guarantee

__gnu_pbds::range_invalidation
_guarantee

5.240.1 Detailed Description

Signifies a basic invalidation guarantee that any iterator, pointer, or reference to a container object's mapped value type
is valid as long as the container is not modified.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.241 std::basic_ios< _CharT, _Traits > Class Template Reference


#include <basic_ios.h>
Inheritance diagram for std::basic_ios< _CharT, _Traits >:

std::basic_ifstream
< _CharT, _Traits >

std::basic_istringstream
< _CharT, _Traits, _Alloc >
std::basic_istream std::basic_fstream
< _CharT, _Traits > < _CharT, _Traits >
std::basic_ios< _CharT, std::basic_iostream
std::ios_base
_Traits > < _CharT, _Traits >
std::basic_ostream std::basic_stringstream
< _CharT, _Traits > < _CharT, _Traits, _Alloc >
std::basic_ofstream
< _CharT, _Traits >

std::basic_ostringstream
< _CharT, _Traits, _Alloc >

Generated by Doxygen
1174

Public Types

• enum event { erase_event , imbue_event , copyfmt_event }


• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef _Ios_Iostate iostate
• typedef _Ios_Openmode openmode
• typedef _Ios_Seekdir seekdir

• typedef _CharT char_type


• typedef _Traits::int_type int_type
• typedef _Traits::pos_type pos_type
• typedef _Traits::off_type off_type
• typedef _Traits traits_type

• typedef ctype< _CharT > __ctype_type


• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type

Public Member Functions

• basic_ios (basic_streambuf< _CharT, _Traits > ∗__sb)


• virtual ∼basic_ios ()
• const locale & _M_getloc () const
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• locale getloc () const
• bool good () const
• locale imbue (const locale &__loc)
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• basic_streambuf< _CharT, _Traits > ∗ rdbuf () const
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1175

• void setstate (iostate __state)


• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• operator bool () const


• bool operator! () const

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Generated by Doxygen
1176

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• basic_ios ()
• basic_ios (const basic_ios &)=delete
• void _M_cache_locale (const locale &__loc)
• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• basic_ios & operator= (const basic_ios &)=delete
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.241.1 Detailed Description

template<typename _CharT, typename _Traits>


class std::basic_ios< _CharT, _Traits >

Template class basic_ios, virtual base class for all stream classes.

Template Parameters

_CharT Type of character stream.

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1177

_Traits Traits for character type, defaults to char_traits<_CharT>.

Most of the member functions called dispatched on stream objects (e.g., std::cout.foo(bar);) are consolidated
in this class.

5.241.2 Member Typedef Documentation

__ctype_type

template<typename _CharT , typename _Traits >


ctype<_CharT> std::basic_ios< _CharT, _Traits >::__ctype_type
These are non-standard types.

__num_get_type

template<typename _CharT , typename _Traits >


num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_get_type
These are non-standard types.

__num_put_type

template<typename _CharT , typename _Traits >


num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_put_type
These are non-standard types.

char_type

template<typename _CharT , typename _Traits >


_CharT std::basic_ios< _CharT, _Traits >::char_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

Generated by Doxygen
1178

int_type

template<typename _CharT , typename _Traits >


_Traits::int_type std::basic_ios< _CharT, _Traits >::int_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

off_type

template<typename _CharT , typename _Traits >


_Traits::off_type std::basic_ios< _CharT, _Traits >::off_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

pos_type

template<typename _CharT , typename _Traits >


_Traits::pos_type std::basic_ios< _CharT, _Traits >::pos_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1179

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

traits_type

template<typename _CharT , typename _Traits >


_Traits std::basic_ios< _CharT, _Traits >::traits_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

5.241.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.241.4 Constructor & Destructor Documentation

basic_ios() [1/2]

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::basic_ios (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inline], [explicit]
Constructor performs initialization.
The parameter is passed by derived streams.
References std::basic_ios< _CharT, _Traits >::init().

∼basic_ios()
template<typename _CharT , typename _Traits >
virtual std::basic_ios< _CharT, _Traits >::∼basic_ios () [inline], [virtual]
Empty.
The destructor does nothing. More specifically, it does not destroy the streambuf held by rdbuf().

basic_ios() [2/2]

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::basic_ios () [inline], [protected]
Empty.
The default constructor does nothing and is not normally accessible to users.

Generated by Doxygen
1180

5.241.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit)
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs)
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1181

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{

Generated by Doxygen
1182

std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard]
Fast error checking.

Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard]
Retrieves the empty character.

Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1183

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.

Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

Generated by Doxygen
1184

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc)
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1185

char_type __c,
char __dfault) const [inline]
Squeezes characters.

Generated by Doxygen
1186

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.

Maps a character of char_type to a character of char, if possible.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1187

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf () const [inline],
[nodiscard]
Accessing the underlying buffer.
Returns

The current stream buffer.

This does not change the state of the stream.


Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ostream< _CharT, _Traits >::flush(),
std::getline(), std::getline(), std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::s
std::basic_ostream< _CharT, _Traits >::tellp(), and std::ws().

rdbuf() [2/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb)
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

Generated by Doxygen
1188

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard]
Returns the error state of the stream buffer.
Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1189

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

Generated by Doxygen
1190

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline]
Widens characters.

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1191

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.241.6 Member Data Documentation

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

Generated by Doxygen
1192

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1193

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.

Generated by Doxygen
1194

Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),


std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),

Generated by Doxygen
5.241 std::basic_ios< _CharT, _Traits > Class Template Reference 1195

std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]


Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

Generated by Doxygen
1196

• iosfwd
• basic_ios.h
• basic_ios.tcc

5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference


#include <istream>
Inheritance diagram for std::basic_iostream< _CharT, _Traits >:

std::basic_istream std::basic_fstream
< _CharT, _Traits > < _CharT, _Traits >
std::basic_ios< _CharT, std::basic_iostream
std::ios_base
_Traits > < _CharT, _Traits >
std::basic_ostream std::basic_stringstream
< _CharT, _Traits > < _CharT, _Traits, _Alloc >

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef ctype< _CharT > __ctype_type
• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef basic_istream< _CharT, _Traits > __istream_type
• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type
• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
• typedef basic_ostream< _CharT, _Traits > __ostream_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef _Traits::int_type int_type
• typedef _Ios_Iostate iostate
• typedef _Traits::off_type off_type
• typedef _Ios_Openmode openmode
• typedef _Traits::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

Public Member Functions

• basic_iostream (basic_streambuf< _CharT, _Traits > ∗__sb)


• virtual ∼basic_iostream ()
• template<typename _ValueT >
basic_istream< _CharT, _Traits > & _M_extract (_ValueT &__v)
• const locale & _M_getloc () const
• template<typename _ValueT >
basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v)
• void _M_setstate (iostate __state)
• bool bad () const

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1197

• void clear (iostate __state=goodbit)


• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• __ostream_type & flush ()
• streamsize gcount () const
• basic_istream< char > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• basic_istream< wchar_t > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• locale getloc () const
• bool good () const
• basic_istream< char > & ignore (streamsize __n)
• basic_istream< wchar_t > & ignore (streamsize __n)
• basic_istream< char > & ignore (streamsize __n, int_type __delim)
• basic_istream< wchar_t > & ignore (streamsize __n, int_type __delim)
• locale imbue (const locale &__loc)
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const
• __ostream_type & operator<< (__streambuf_type ∗__sb)
• __ostream_type & operator<< (const void ∗__p)
• __ostream_type & operator<< (nullptr_t)
• __istream_type & operator>> (__streambuf_type ∗__sb)
• __istream_type & operator>> (void ∗&__p)
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• basic_streambuf< _CharT, _Traits > ∗ rdbuf () const
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• __ostream_type & seekp (off_type, ios_base::seekdir)
• __ostream_type & seekp (pos_type)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• pos_type tellp ()
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __istream_type & operator>> (__istream_type &(∗__pf)(__istream_type &))


• __istream_type & operator>> (__ios_type &(∗__pf)(__ios_type &))

Generated by Doxygen
1198

• __istream_type & operator>> (ios_base &(∗__pf)(ios_base &))

Extractors
All the operator>> functions (aka formatted input functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_istream::sentry with the second argument (noskipws) set to false.
This has several effects, concluding with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• __istream_type & operator>> (bool &__n)


• __istream_type & operator>> (short &__n)
• __istream_type & operator>> (unsigned short &__n)
• __istream_type & operator>> (int &__n)
• __istream_type & operator>> (unsigned int &__n)
• __istream_type & operator>> (long &__n)
• __istream_type & operator>> (unsigned long &__n)
• __istream_type & operator>> (long long &__n)
• __istream_type & operator>> (unsigned long long &__n)

• __istream_type & operator>> (float &__f)


• __istream_type & operator>> (double &__f)
• __istream_type & operator>> (long double &__f)

Unformatted Input Functions


All the unformatted input functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_istream::sentry with the second argument (noskipws) set to true. This has several effects, concluding
with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
The number of characters extracted is stored for later retrieval by gcount().
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• int_type get ()
• __istream_type & get (char_type &__c)
• __istream_type & get (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & get (char_type ∗__s, streamsize __n)
• __istream_type & get (__streambuf_type &__sb, char_type __delim)
• __istream_type & get (__streambuf_type &__sb)
• __istream_type & getline (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & getline (char_type ∗__s, streamsize __n)
• __istream_type & ignore (streamsize __n, int_type __delim)
• __istream_type & ignore (streamsize __n)
• __istream_type & ignore ()
• int_type peek ()
• __istream_type & read (char_type ∗__s, streamsize __n)
• streamsize readsome (char_type ∗__s, streamsize __n)
• __istream_type & putback (char_type __c)
• __istream_type & unget ()
• int sync ()
• pos_type tellg ()
• __istream_type & seekg (pos_type)
• __istream_type & seekg (off_type, ios_base::seekdir)

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1199

• __ostream_type & operator<< (__ostream_type &(∗__pf)(__ostream_type &))


• __ostream_type & operator<< (__ios_type &(∗__pf)(__ios_type &))
• __ostream_type & operator<< (ios_base &(∗__pf)(ios_base &))

Inserters
All the operator<< functions (aka formatted output functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_ostream::sentry. This can have several effects, concluding with
the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state without
causing an ios_base::failure to be thrown. The original exception will then be rethrown.

• __ostream_type & operator<< (long __n)


• __ostream_type & operator<< (unsigned long __n)
• __ostream_type & operator<< (bool __n)
• __ostream_type & operator<< (short __n)
• __ostream_type & operator<< (unsigned short __n)
• __ostream_type & operator<< (int __n)
• __ostream_type & operator<< (unsigned int __n)
• __ostream_type & operator<< (long long __n)
• __ostream_type & operator<< (unsigned long long __n)

• __ostream_type & operator<< (double __f)


• __ostream_type & operator<< (float __f)
• __ostream_type & operator<< (long double __f)

Unformatted Output Functions


All the unformatted output functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_ostream::sentry. This has several effects, concluding with the setting of a status flag; see the sentry
documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. If badbit is
on in the stream's exceptions mask, the exception will be rethrown without completing its actions.

• __ostream_type & put (char_type __c)


• __ostream_type & write (const char_type ∗__s, streamsize __n)

• operator bool () const


• bool operator! () const

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield

Generated by Doxygen
1200

• static const seekdir beg


• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• basic_iostream (basic_iostream &&__rhs)


• basic_iostream (const basic_iostream &)=delete
• void _M_cache_locale (const locale &__loc)
• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• template<typename _ValueT >
__istream_type & _M_extract (_ValueT &__v)
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• template<typename _ValueT >
__ostream_type & _M_insert (_ValueT __v)
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• basic_iostream & operator= (basic_iostream &&__rhs)
• basic_iostream & operator= (const basic_iostream &)=delete
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1201

• void swap (basic_ios &__rhs) noexcept


• void swap (basic_iostream &__rhs)
• void swap (basic_istream &__rhs)
• void swap (basic_ostream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• streamsize _M_gcount
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.242.1 Detailed Description

template<typename _CharT, typename _Traits>


class std::basic_iostream< _CharT, _Traits >

Template class basic_iostream.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.

This class multiply inherits from the input and output stream classes simply to provide a single interface.

5.242.2 Member Typedef Documentation

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b

Generated by Doxygen
1202

_←- The integer provided when the callback was registered.


_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:
• badbit

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:
• app

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:
• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.242.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1203

5.242.4 Constructor & Destructor Documentation

basic_iostream()

template<typename _CharT , typename _Traits >


std::basic_iostream< _CharT, _Traits >::basic_iostream (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inline], [explicit]
Constructor does nothing.
Both of the parent classes are initialized with the same streambuf pointer passed to this constructor.

∼basic_iostream()
template<typename _CharT , typename _Traits >
virtual std::basic_iostream< _CharT, _Traits >::∼basic_iostream () [inline], [virtual]
Destructor does nothing.

5.242.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

Generated by Doxygen
1204

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1205

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Generated by Doxygen
1206

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{
std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.
Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.
Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1207

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.

Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

flush()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush () [inherited]
Synchronizing the stream buffer.

Returns

∗this

If rdbuf() is a null pointer, changes nothing.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit.
References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

Generated by Doxygen
1208

gcount()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::gcount () const [inline], [inherited]
Character counting.

Returns

The number of characters extracted by the previous unformatted input function dispatched for this stream.

get() [1/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::get (
void ) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [2/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb) [inline], [inherited]
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.

Returns

∗this

Returns get(__sb,widen('\n')).

get() [3/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb,
char_type __delim) [inherited]
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.


__delim A "stop" character.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1209

Returns

∗this
Characters are extracted and inserted into __sb until one of the following happens:

• the input sequence reaches EOF

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted)

• the next character equals __delim (in this case, the character is not extracted)

• an exception occurs (and in this case is caught)

If no characters are stored, failbit is set in the stream's error state.


References std::ios_base::goodbit.

get() [4/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type & __c) [inherited]
Simple extraction.

Parameters
_←- The character in which to store data.
_c

Returns

∗this
Tries to extract a character and store it in __c. If none are available, sets failbit and returns traits::eof().
Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [5/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Simple multiple-character extraction.

Parameters
_←- Pointer to an array.
_s
_←- Maximum number of characters to store in s.
_n

Returns

∗this
Returns get(__s,__n,widen('\n')).

Generated by Doxygen
1210

get() [6/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Simple multiple-character extraction.

Parameters
__s Pointer to an array.
__n Maximum number of characters to store in __s.
__delim A "stop" character.

Returns

∗this

Characters are extracted and stored into __s until one of the following happens:

• __n-1 characters are stored

• the input sequence reaches EOF

• the next character equals __delim, in which case the character is not extracted

If no characters are stored, failbit is set in the stream's error state.


In any case, a null character is stored into the next location in the array.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

getline() [1/3]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
String extraction.

Parameters
_←- A character array in which to store the data.
_s
_←- Maximum number of characters to extract.
_n

Returns

∗this

Returns getline(__s,__n,widen('\n')).

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1211

getline() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
String extraction.

Parameters
__s A character array in which to store the data.
__n Maximum number of characters to extract.
__delim A "stop" character.

Returns

∗this

Extracts and stores characters into __s until one of the following happens. Note that these criteria are required to be
tested in the order listed here, to allow an input line to exactly fill the __s array without setting failbit.

1. the input sequence reaches end-of-file, in which case eofbit is set in the stream error state

2. the next character equals __delim, in which case the character is extracted (and therefore counted in
gcount()) but not stored

3. __n-1 characters are stored, in which case failbit is set in the stream error state

If no characters are extracted, failbit is set. (An empty line of input should therefore not cause failbit to be set.)
In any case, a null character is stored in the next location in the array.
References std::ios_base::eofbit, std::ios_base::goodbit, std::basic_streambuf< _CharT, _Traits >::sbumpc(),
std::basic_streambuf< _CharT, _Traits >::sgetc(), and std::basic_streambuf< _CharT, _Traits >::snextc().

getline() [3/3]

basic_istream< char > & std::basic_istream< char >::getline (


char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Explicit specialization declarations, defined in src/istream.cc.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

Generated by Doxygen
1212

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

ignore() [1/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
void ) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit.

ignore() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

ignore() [3/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n,
int_type __delim) [inherited]
Discarding characters.

Parameters

__n Number of characters to discard.


__delim A "stop" character.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1213

Returns

∗this
Extracts characters and throws them away until one of the following happens:
• if __n != std::numeric_limits<int>::max(), __n characters are extracted

• the input sequence reaches end-of-file

• the next character equals __delim (in this case, the character is extracted); note that this condition will never occur
if __delim equals traits::eof().
NB: Provide three overloads, instead of the single function (with defaults) mandated by the Standard: this leads to a
better performing implementation, while still conforming to the Standard.
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Generated by Doxygen
1214

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.

Maps a character of char_type to a character of char, if possible.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator<<() [1/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1215

operator<<() [2/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ostream_type &(∗ __pf )(__ostream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [3/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
__streambuf_type ∗ __sb) [inherited]
Extracting from another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from __sb and inserted into ∗this until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted),
or

• an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

operator<<() [4/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
bool __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [5/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
const void ∗ __p) [inline], [inherited]
Pointer arithmetic inserters.

Generated by Doxygen
1216

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [6/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [7/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
float __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1217

operator<<() [8/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
int __n) [inherited]
Integer arithmetic inserters.

Generated by Doxygen
1218

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [9/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [10/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [11/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1219

operator<<() [12/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [13/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
short __n) [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.
References std::ios_base::badbit, std::ios_base::goodbit, std::num_put< _CharT, _OutIter >::put(), std::basic_ios< _CharT, _Traits >::se
and std::use_facet().

operator<<() [14/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned int __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
1220

operator<<() [15/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [16/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [17/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned short __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1221

operator>>() [1/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [2/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__istream_type &(∗ __pf )(__istream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [3/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
__streambuf_type ∗ __sb) [inherited]
Extracting into another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from this stream and inserted into the __sb streambuf until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted), or

• an exception occurs (and in this case is caught)

If the function inserts no characters, failbit is set.


References std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

operator>>() [4/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
bool & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
1222

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [5/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [6/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
float & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [7/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
int & __n) [inherited]
Integer arithmetic extractors.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1223

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [8/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [9/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [10/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Generated by Doxygen
1224

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [11/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [12/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
short & __n) [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [13/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned int & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1225

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [14/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [15/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [16/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned short & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

Generated by Doxygen
1226

operator>>() [17/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
void ∗& __p) [inline], [inherited]
Basic arithmetic extractors.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

peek()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::peek (
void ) [inherited]
Looking ahead in the stream.

Returns

The next character, or eof().

If, after constructing the sentry object, good() is false, returns traits::eof(). Otherwise reads but does not
extract the next input character.

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1227

put()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put (
char_type __c) [inherited]
Simple insertion.

Parameters
_←- The character to insert.
_c

Returns

∗this

Tries to insert __c.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

putback()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::putback (
char_type __c) [inherited]
Unextracting a single character.

Parameters
_←- The character to push back into the input stream.
_c

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sputbackc(c).


If rdbuf() is null or if sputbackc() fails, sets badbit in the error state.

Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sputbackc()

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Generated by Doxygen
1228

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf () const [inline],
[nodiscard], [inherited]
Accessing the underlying buffer.

Returns

The current stream buffer.

This does not change the state of the stream.


Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ostream< _CharT, _Traits >::flush(),
std::getline(), std::getline(), std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::s
std::basic_ostream< _CharT, _Traits >::tellp(), and std::ws().

rdbuf() [2/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1229

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.
Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

read()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::read (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction without delimiters.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Returns

∗this
If the stream state is good(), extracts characters and stores them into __s until one of the following happens:
• __n characters are stored

• the input sequence reaches end-of-file, in which case the error state is set to failbit|eofbit.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

readsome()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::readsome (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction until the buffer is exhausted, but no more.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Generated by Doxygen
1230

Returns

The number of characters extracted.

Extracts characters and stores them into __s depending on the number of characters remaining in the streambuf's buffer,
rdbuf()->in_avail(), called A here:
• if A == -1, sets eofbit and extracts no characters

• if A == 0, extracts no characters

• if A > 0, extracts min(A,n)

The goal is to empty the current buffer, and to not request any more from the external input sequence controlled by the
streambuf.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::min().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekg() [1/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current read position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(__off,__dir). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1231

seekg() [2/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
pos_type __pos) [inherited]
Changing the current read position.

Parameters

__pos A file position object.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(__pos). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

seekp() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current write position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

seekp() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
pos_type __pos) [inherited]
Changing the current write position.

Parameters

__pos A file position object.

Generated by Doxygen
1232

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1233

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

sync()

template<typename _CharT , typename _Traits >


int std::basic_istream< _CharT, _Traits >::sync (
void ) [inherited]
Synchronizing the stream buffer.

Returns

0 on success, -1 on failure

If rdbuf() is a null pointer, returns -1.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit and returns -1.
Otherwise, returns 0.

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount().

References std::ios_base::badbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::pubsync().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tellg()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::pos_type std::basic_istream< _CharT, _Traits >::tellg (
void ) [inherited]
Getting the current read position.

Generated by Doxygen
1234

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,in).

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount(). At variance with putback, unget and seekg, eofbit is not cleared first.

References std::ios_base::badbit, std::ios_base::cur, and std::ios_base::in.

tellp()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp () [inherited]
Getting the current write position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).
References std::ios_base::cur, std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::out, and std::basic_ios< _CharT, _Traits >::rdbuf()

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1235

unget()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::unget (
void ) [inherited]
Unextracting the previous character.

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sungetc(c).


If rdbuf() is null or if sungetc() fails, sets badbit in the error state.

Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::eofbit, and std::ios_base::goodbit.


Referenced by std::__detail::operator>>().

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

Generated by Doxygen
1236

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

write()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write (
const char_type ∗ __s,
streamsize __n) [inherited]
Character string insertion.

Parameters
_←- The array to insert.
_s
_←- Maximum number of characters to insert.
_n

Returns

∗this

Characters are copied from __s and inserted into the stream until one of the following happens:

• __n characters are inserted

• inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)

Note

This function is not overloaded on signed char and unsigned char.

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1237

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.242.6 Member Data Documentation

_M_gcount

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::_M_gcount [protected], [inherited]
The number of characters extracted in the previous unformatted function; see gcount().

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

Generated by Doxygen
1238

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),

Generated by Doxygen
5.242 std::basic_iostream< _CharT, _Traits > Class Template Reference 1239

std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

Generated by Doxygen
1240

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]


Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1241

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:
• iosfwd
• istream

5.243 std::basic_istream< _CharT, _Traits > Class Template Reference


#include <istream>
Inheritance diagram for std::basic_istream< _CharT, _Traits >:

std::basic_ifstream
< _CharT, _Traits >
std::basic_fstream
< _CharT, _Traits >
std::basic_ios< _CharT, std::basic_istream std::basic_iostream
std::ios_base
_Traits > < _CharT, _Traits > < _CharT, _Traits >
std::basic_stringstream
< _CharT, _Traits, _Alloc >
std::basic_istringstream
< _CharT, _Traits, _Alloc >

Classes

• class sentry

Generated by Doxygen
1242

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef basic_istream< _CharT, _Traits > __istream_type
• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef _Traits::int_type int_type
• typedef _Ios_Iostate iostate
• typedef _Traits::off_type off_type
• typedef _Ios_Openmode openmode
• typedef _Traits::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type

Public Member Functions

• basic_istream (__streambuf_type ∗__sb)


• virtual ∼basic_istream ()
• template<typename _ValueT >
basic_istream< _CharT, _Traits > & _M_extract (_ValueT &__v)
• const locale & _M_getloc () const
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• streamsize gcount () const
• basic_istream< char > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• basic_istream< wchar_t > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• locale getloc () const
• bool good () const
• basic_istream< char > & ignore (streamsize __n)
• basic_istream< wchar_t > & ignore (streamsize __n)
• basic_istream< char > & ignore (streamsize __n, int_type __delim)
• basic_istream< wchar_t > & ignore (streamsize __n, int_type __delim)
• locale imbue (const locale &__loc)
• long & iword (int __ix)

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1243

• char narrow (char_type __c, char __dfault) const


• __istream_type & operator>> (__streambuf_type ∗__sb)
• __istream_type & operator>> (void ∗&__p)
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• basic_streambuf< _CharT, _Traits > ∗ rdbuf () const
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __istream_type & operator>> (__istream_type &(∗__pf)(__istream_type &))


• __istream_type & operator>> (__ios_type &(∗__pf)(__ios_type &))
• __istream_type & operator>> (ios_base &(∗__pf)(ios_base &))

Extractors
All the operator>> functions (aka formatted input functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_istream::sentry with the second argument (noskipws) set to false.
This has several effects, concluding with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• __istream_type & operator>> (bool &__n)


• __istream_type & operator>> (short &__n)
• __istream_type & operator>> (unsigned short &__n)
• __istream_type & operator>> (int &__n)
• __istream_type & operator>> (unsigned int &__n)
• __istream_type & operator>> (long &__n)
• __istream_type & operator>> (unsigned long &__n)
• __istream_type & operator>> (long long &__n)
• __istream_type & operator>> (unsigned long long &__n)

• __istream_type & operator>> (float &__f)


• __istream_type & operator>> (double &__f)
• __istream_type & operator>> (long double &__f)

Unformatted Input Functions


All the unformatted input functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_istream::sentry with the second argument (noskipws) set to true. This has several effects, concluding
with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.

Generated by Doxygen
1244

The number of characters extracted is stored for later retrieval by gcount().


If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• int_type get ()
• __istream_type & get (char_type &__c)
• __istream_type & get (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & get (char_type ∗__s, streamsize __n)
• __istream_type & get (__streambuf_type &__sb, char_type __delim)
• __istream_type & get (__streambuf_type &__sb)
• __istream_type & getline (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & getline (char_type ∗__s, streamsize __n)
• __istream_type & ignore (streamsize __n, int_type __delim)
• __istream_type & ignore (streamsize __n)
• __istream_type & ignore ()
• int_type peek ()
• __istream_type & read (char_type ∗__s, streamsize __n)
• streamsize readsome (char_type ∗__s, streamsize __n)
• __istream_type & putback (char_type __c)
• __istream_type & unget ()
• int sync ()
• pos_type tellg ()
• __istream_type & seekg (pos_type)
• __istream_type & seekg (off_type, ios_base::seekdir)

• operator bool () const


• bool operator! () const

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1245

• static const openmode in


• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• basic_istream (basic_istream &&__rhs)


• basic_istream (const basic_istream &)=delete
• void _M_cache_locale (const locale &__loc)
• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• template<typename _ValueT >
__istream_type & _M_extract (_ValueT &__v)
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• basic_istream & operator= (basic_istream &&__rhs)
• basic_istream & operator= (const basic_istream &)=delete
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_istream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• streamsize _M_gcount
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]

Generated by Doxygen
1246

• const __num_get_type ∗ _M_num_get


• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

Friends

• class sentry

5.243.1 Detailed Description

template<typename _CharT, typename _Traits>


class std::basic_istream< _CharT, _Traits >

Template class basic_istream.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.

This is the base class for all input streams. It provides text formatting of all builtin types, and communicates with any
class derived from basic_streambuf to do the actual input.

5.243.2 Member Typedef Documentation

__num_put_type

template<typename _CharT , typename _Traits >


num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_put_type [inherited]
These are non-standard types.

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1247

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:
• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.243.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

Generated by Doxygen
1248

5.243.4 Constructor & Destructor Documentation

basic_istream()

template<typename _CharT , typename _Traits >


std::basic_istream< _CharT, _Traits >::basic_istream (
__streambuf_type ∗ __sb) [inline], [explicit]
Base constructor.
This ctor is almost never called by the user directly, rather from derived classes' initialization lists, which pass a pointer
to their own stream buffer.

∼basic_istream()
template<typename _CharT , typename _Traits >
virtual std::basic_istream< _CharT, _Traits >::∼basic_istream () [inline], [virtual]
Base destructor.
This does very little apart from providing a virtual base dtor.

5.243.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1249

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

Generated by Doxygen
1250

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{
std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.

Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1251

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.
Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

gcount()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::gcount () const [inline]
Character counting.
Returns

The number of characters extracted by the previous unformatted input function dispatched for this stream.

Generated by Doxygen
1252

get() [1/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::get (
void )
Simple extraction.
Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [2/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb) [inline]
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.

Returns

∗this
Returns get(__sb,widen('\n')).

get() [3/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb,
char_type __delim)
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.


__delim A "stop" character.

Returns

∗this
Characters are extracted and inserted into __sb until one of the following happens:

• the input sequence reaches EOF

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted)

• the next character equals __delim (in this case, the character is not extracted)

• an exception occurs (and in this case is caught)

If no characters are stored, failbit is set in the stream's error state.


References std::ios_base::goodbit.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1253

get() [4/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type & __c)
Simple extraction.

Parameters
_←- The character in which to store data.
_c

Returns

∗this

Tries to extract a character and store it in __c. If none are available, sets failbit and returns traits::eof().

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [5/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n) [inline]
Simple multiple-character extraction.

Parameters
_←- Pointer to an array.
_s
_←- Maximum number of characters to store in s.
_n

Returns

∗this

Returns get(__s,__n,widen('\n')).

get() [6/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n,
char_type __delim)
Simple multiple-character extraction.

Parameters
__s Pointer to an array.

Generated by Doxygen
1254

__n Maximum number of characters to store in __s.


__delim A "stop" character.

Returns

∗this

Characters are extracted and stored into __s until one of the following happens:

• __n-1 characters are stored

• the input sequence reaches EOF

• the next character equals __delim, in which case the character is not extracted

If no characters are stored, failbit is set in the stream's error state.


In any case, a null character is stored into the next location in the array.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

getline() [1/3]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n) [inline]
String extraction.

Parameters
_←- A character array in which to store the data.
_s
_←- Maximum number of characters to extract.
_n

Returns

∗this

Returns getline(__s,__n,widen('\n')).

getline() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n,
char_type __delim)
String extraction.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1255

Parameters
__s A character array in which to store the data.
__n Maximum number of characters to extract.
__delim A "stop" character.

Returns

∗this
Extracts and stores characters into __s until one of the following happens. Note that these criteria are required to be
tested in the order listed here, to allow an input line to exactly fill the __s array without setting failbit.

1. the input sequence reaches end-of-file, in which case eofbit is set in the stream error state

2. the next character equals __delim, in which case the character is extracted (and therefore counted in
gcount()) but not stored
3. __n-1 characters are stored, in which case failbit is set in the stream error state

If no characters are extracted, failbit is set. (An empty line of input should therefore not cause failbit to be set.)
In any case, a null character is stored in the next location in the array.
References std::ios_base::eofbit, std::ios_base::goodbit, std::basic_streambuf< _CharT, _Traits >::sbumpc(),
std::basic_streambuf< _CharT, _Traits >::sgetc(), and std::basic_streambuf< _CharT, _Traits >::snextc().

getline() [3/3]

basic_istream< char > & std::basic_istream< char >::getline (


char_type ∗ __s,
streamsize __n,
char_type __delim)
Explicit specialization declarations, defined in src/istream.cc.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.
Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

Generated by Doxygen
1256

ignore() [1/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
void )
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit.

ignore() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n)
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

ignore() [3/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n,
int_type __delim)
Discarding characters.

Parameters

__n Number of characters to discard.


__delim A "stop" character.

Returns

∗this

Extracts characters and throws them away until one of the following happens:

• if __n != std::numeric_limits<int>::max(), __n characters are extracted

• the input sequence reaches end-of-file

• the next character equals __delim (in this case, the character is extracted); note that this condition will never occur
if __delim equals traits::eof().

NB: Provide three overloads, instead of the single function (with defaults) mandated by the Standard: this leads to a
better performing implementation, while still conforming to the Standard.
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1257

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (

Generated by Doxygen
1258

char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1259

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.


Maps a character of char_type to a character of char, if possible.
Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator>>() [1/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__ios_type &(∗ __pf )(__ios_type &)) [inline]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [2/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__istream_type &(∗ __pf )(__istream_type &)) [inline]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [3/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
__streambuf_type ∗ __sb)
Extracting into another streambuf.

Generated by Doxygen
1260

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from this stream and inserted into the __sb streambuf until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted), or

• an exception occurs (and in this case is caught)

If the function inserts no characters, failbit is set.


References std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

operator>>() [4/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
bool & __n) [inline]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [5/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
double & __f) [inline]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1261

operator>>() [6/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
float & __f) [inline]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [7/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
int & __n)
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [8/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
ios_base &(∗ __pf )(ios_base &)) [inline]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [9/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long & __n) [inline]
Integer arithmetic extractors.

Generated by Doxygen
1262

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [10/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long double & __f) [inline]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [11/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long long & __n) [inline]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [12/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
short & __n)
Integer arithmetic extractors.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1263

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [13/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned int & __n) [inline]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [14/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long & __n) [inline]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [15/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long long & __n) [inline]
Integer arithmetic extractors.

Generated by Doxygen
1264

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [16/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned short & __n) [inline]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [17/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
void ∗& __p) [inline]
Basic arithmetic extractors.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

peek()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::peek (
void )
Looking ahead in the stream.
Returns

The next character, or eof().


If, after constructing the sentry object, good() is false, returns traits::eof(). Otherwise reads but does not
extract the next input character.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1265

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

putback()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::putback (
char_type __c)
Unextracting a single character.

Parameters
_←- The character to push back into the input stream.
_c

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sputbackc(c).


If rdbuf() is null or if sputbackc() fails, sets badbit in the error state.
Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sputbackc()

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Generated by Doxygen
1266

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf () const [inline],
[nodiscard], [inherited]
Accessing the underlying buffer.

Returns

The current stream buffer.

This does not change the state of the stream.


Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ostream< _CharT, _Traits >::flush(),
std::getline(), std::getline(), std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::s
std::basic_ostream< _CharT, _Traits >::tellp(), and std::ws().

rdbuf() [2/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1267

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.
Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

read()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::read (
char_type ∗ __s,
streamsize __n)
Extraction without delimiters.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Returns

∗this
If the stream state is good(), extracts characters and stores them into __s until one of the following happens:
• __n characters are stored

• the input sequence reaches end-of-file, in which case the error state is set to failbit|eofbit.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

readsome()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::readsome (
char_type ∗ __s,
streamsize __n)
Extraction until the buffer is exhausted, but no more.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Generated by Doxygen
1268

Returns

The number of characters extracted.

Extracts characters and stores them into __s depending on the number of characters remaining in the streambuf's buffer,
rdbuf()->in_avail(), called A here:
• if A == -1, sets eofbit and extracts no characters

• if A == 0, extracts no characters

• if A > 0, extracts min(A,n)

The goal is to empty the current buffer, and to not request any more from the external input sequence controlled by the
streambuf.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::min().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekg() [1/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
off_type __off,
ios_base::seekdir __dir)
Changing the current read position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(__off,__dir). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1269

seekg() [2/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
pos_type __pos)
Changing the current read position.

Parameters

__pos A file position object.

Returns

∗this
If fail() is not true, calls rdbuf()->pubseekpos(__pos). If that function fails, sets failbit.
Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

Generated by Doxygen
1270

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

sync()

template<typename _CharT , typename _Traits >


int std::basic_istream< _CharT, _Traits >::sync (
void )
Synchronizing the stream buffer.

Returns

0 on success, -1 on failure

If rdbuf() is a null pointer, returns -1.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit and returns -1.
Otherwise, returns 0.

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount().

References std::ios_base::badbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::pubsync().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1271

tellg()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::pos_type std::basic_istream< _CharT, _Traits >::tellg (
void )
Getting the current read position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,in).

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount(). At variance with putback, unget and seekg, eofbit is not cleared first.

References std::ios_base::badbit, std::ios_base::cur, and std::ios_base::in.

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

unget()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::unget (
void )
Unextracting the previous character.

Generated by Doxygen
1272

Returns

∗this
If rdbuf() is not null, calls rdbuf()->sungetc(c).
If rdbuf() is null or if sungetc() fails, sets badbit in the error state.
Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.
References std::ios_base::eofbit, and std::ios_base::goodbit.
Referenced by std::__detail::operator>>().

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.
Parameters
_←- The character to widen.
_c

Returns

The widened character.


Maps a character of char to a character of char_type.
Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The minimum field width to generate on output operations.


Minimum field width refers to the number of characters.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1273

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.243.6 Member Data Documentation

_M_gcount

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::_M_gcount [protected]
The number of characters extracted in the previous unformatted function; see gcount().

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

Generated by Doxygen
1274

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1275

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:

Generated by Doxygen
1276

std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]

Generated by Doxygen
5.243 std::basic_istream< _CharT, _Traits > Class Template Reference 1277

Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• iosfwd
• istream
• istream.tcc

Generated by Doxygen
1278

5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference


#include <sstream>
Inheritance diagram for std::basic_istringstream< _CharT, _Traits, _Alloc >:

std::ios_base

std::basic_ios< _CharT,
_Traits >

std::basic_istream
< _CharT, _Traits >

std::basic_istringstream
< _CharT, _Traits, _Alloc >

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef basic_istream< char_type, traits_type > __istream_type
• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef basic_string< _CharT, _Traits, _Alloc > __string_type
• typedef basic_stringbuf< _CharT, _Traits, _Alloc > __stringbuf_type
• typedef _Alloc allocator_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef traits_type::int_type int_type
• typedef _Ios_Iostate iostate
• typedef traits_type::off_type off_type
• typedef _Ios_Openmode openmode
• typedef traits_type::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1279

• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type

Public Member Functions

• basic_istringstream ()
• basic_istringstream (__string_type &&__str, ios_base::openmode __mode=ios_base::in)
• basic_istringstream (basic_istringstream &&__rhs)
• basic_istringstream (const __string_type &__str, ios_base::openmode __mode=ios_base::in)
• basic_istringstream (const basic_istringstream &)=delete
• template<typename _SAlloc >
basic_istringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, const allocator_type &__a)
• template<typename _SAlloc >
basic_istringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __mode,
const allocator_type &__a)
• template<typename _SAlloc >
basic_istringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __←-
mode=ios_base::in)
• basic_istringstream (ios_base::openmode __mode)
• basic_istringstream (ios_base::openmode __mode, const allocator_type &__a)
• ∼basic_istringstream ()
• template<typename _ValueT >
basic_istream< _CharT, _Traits > & _M_extract (_ValueT &__v)
• const locale & _M_getloc () const
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• streamsize gcount () const
• basic_istream< char > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• basic_istream< wchar_t > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• locale getloc () const
• bool good () const
• basic_istream< char > & ignore (streamsize __n)
• basic_istream< wchar_t > & ignore (streamsize __n)
• basic_istream< char > & ignore (streamsize __n, int_type __delim)
• basic_istream< wchar_t > & ignore (streamsize __n, int_type __delim)
• locale imbue (const locale &__loc)
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const
• basic_istringstream & operator= (basic_istringstream &&__rhs)
• basic_istringstream & operator= (const basic_istringstream &)=delete
• __istream_type & operator>> (__streambuf_type ∗__sb)
• __istream_type & operator>> (void ∗&__p)

Generated by Doxygen
1280

• streamsize precision () const


• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• __stringbuf_type ∗ rdbuf () const
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• __string_type str () &&
• __string_type str () const &
• void str (__string_type &&__s)
• void str (const __string_type &__s)
• template<__allocator_like _SAlloc>
basic_string< _CharT, _Traits, _SAlloc > str (const _SAlloc &__sa) const
• template<__allocator_like _SAlloc>
requires (!is_same_v<_SAlloc, _Alloc>)
void str (const basic_string< _CharT, _Traits, _SAlloc > &__s)
• void swap (basic_istringstream &__rhs)
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• basic_string_view< char_type, traits_type > view () const noexcept
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __istream_type & operator>> (__istream_type &(∗__pf)(__istream_type &))


• __istream_type & operator>> (__ios_type &(∗__pf)(__ios_type &))
• __istream_type & operator>> (ios_base &(∗__pf)(ios_base &))

Extractors
All the operator>> functions (aka formatted input functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_istream::sentry with the second argument (noskipws) set to false.
This has several effects, concluding with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• __istream_type & operator>> (bool &__n)


• __istream_type & operator>> (short &__n)
• __istream_type & operator>> (unsigned short &__n)
• __istream_type & operator>> (int &__n)
• __istream_type & operator>> (unsigned int &__n)
• __istream_type & operator>> (long &__n)
• __istream_type & operator>> (unsigned long &__n)
• __istream_type & operator>> (long long &__n)
• __istream_type & operator>> (unsigned long long &__n)

• __istream_type & operator>> (float &__f)

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1281

• __istream_type & operator>> (double &__f)


• __istream_type & operator>> (long double &__f)

Unformatted Input Functions


All the unformatted input functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_istream::sentry with the second argument (noskipws) set to true. This has several effects, concluding
with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
The number of characters extracted is stored for later retrieval by gcount().
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• int_type get ()
• __istream_type & get (char_type &__c)
• __istream_type & get (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & get (char_type ∗__s, streamsize __n)
• __istream_type & get (__streambuf_type &__sb, char_type __delim)
• __istream_type & get (__streambuf_type &__sb)
• __istream_type & getline (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & getline (char_type ∗__s, streamsize __n)
• __istream_type & ignore (streamsize __n, int_type __delim)
• __istream_type & ignore (streamsize __n)
• __istream_type & ignore ()
• int_type peek ()
• __istream_type & read (char_type ∗__s, streamsize __n)
• streamsize readsome (char_type ∗__s, streamsize __n)
• __istream_type & putback (char_type __c)
• __istream_type & unget ()
• int sync ()
• pos_type tellg ()
• __istream_type & seekg (pos_type)
• __istream_type & seekg (off_type, ios_base::seekdir)

• operator bool () const


• bool operator! () const

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur

Generated by Doxygen
1282

• static const fmtflags dec


• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• void _M_cache_locale (const locale &__loc)


• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• template<typename _ValueT >
__istream_type & _M_extract (_ValueT &__v)
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_istream &__rhs)

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1283

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• streamsize _M_gcount
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.244.1 Detailed Description

template<typename _CharT, typename _Traits, typename _Alloc>


class std::basic_istringstream< _CharT, _Traits, _Alloc >

Controlling input for std::string.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.
_Alloc Allocator type, defaults to allocator<_CharT>.

This class supports reading from objects of type std::basic_string, using the inherited functions from std::basic_istream.
To control the associated sequence, an instance of std::basic_stringbuf is used, which this page refers to as sb.

5.244.2 Member Typedef Documentation

__num_put_type

template<typename _CharT , typename _Traits >


num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_put_type [inherited]
These are non-standard types.

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Generated by Doxygen
1284

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1285

5.244.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.244.4 Constructor & Destructor Documentation

basic_istringstream() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_istringstream< _CharT, _Traits, _Alloc >::basic_istringstream () [inline]
Default constructor starts with an empty string buffer.
Initializes sb using in, and passes &sb to the base class initializer. Does not allocate any buffer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

basic_istringstream() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_istringstream< _CharT, _Traits, _Alloc >::basic_istringstream (
ios_base::openmode __mode) [inline], [explicit]
Starts with an empty string buffer.

Parameters

__mode Whether the buffer can read, or write, or both.

ios_base::in is automatically included in __mode.


Initializes sb using __mode|in, and passes &sb to the base class initializer. Does not allocate any buffer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

basic_istringstream() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_istringstream< _CharT, _Traits, _Alloc >::basic_istringstream (
const __string_type & __str,
ios_base::openmode __mode = ios_base::in) [inline], [explicit]
Starts with an existing string buffer.

Parameters

__str A string to copy as a starting buffer.


__mode Whether the buffer can read, or write, or both.

ios_base::in is automatically included in mode.


Initializes sb using str and mode|in, and passes &sb to the base class initializer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

∼basic_istringstream()
template<typename _CharT , typename _Traits , typename _Alloc >
std::basic_istringstream< _CharT, _Traits, _Alloc >::∼basic_istringstream () [inline]
The destructor does nothing.
The buffer is deallocated by the stringbuf object, not the formatting stream.

Generated by Doxygen
1286

5.244.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1287

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{

Generated by Doxygen
1288

std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.

Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1289

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.
Returns

The format control flags for both input and output.


Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),
std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.


This function overwrites all the format flags with __fmtfl.

gcount()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::gcount () const [inline], [inherited]
Character counting.
Returns

The number of characters extracted by the previous unformatted input function dispatched for this stream.

get() [1/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::get (
void ) [inherited]
Simple extraction.
Returns

A character, or eof().
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [2/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb) [inline], [inherited]
Extraction into another streambuf.

Generated by Doxygen
1290

Parameters

__sb A streambuf in which to store data.

Returns

∗this
Returns get(__sb,widen('\n')).

get() [3/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb,
char_type __delim) [inherited]
Extraction into another streambuf.
Parameters

__sb A streambuf in which to store data.


__delim A "stop" character.

Returns

∗this
Characters are extracted and inserted into __sb until one of the following happens:
• the input sequence reaches EOF

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted)

• the next character equals __delim (in this case, the character is not extracted)

• an exception occurs (and in this case is caught)


If no characters are stored, failbit is set in the stream's error state.
References std::ios_base::goodbit.

get() [4/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type & __c) [inherited]
Simple extraction.

Parameters
_←- The character in which to store data.
_c

Returns

∗this
Tries to extract a character and store it in __c. If none are available, sets failbit and returns traits::eof().
Note

This function is not overloaded on signed char and unsigned char.


References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1291

get() [5/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Simple multiple-character extraction.

Parameters
_←- Pointer to an array.
_s
_←- Maximum number of characters to store in s.
_n

Returns

∗this

Returns get(__s,__n,widen('\n')).

get() [6/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Simple multiple-character extraction.

Parameters
__s Pointer to an array.
__n Maximum number of characters to store in __s.
__delim A "stop" character.

Returns

∗this

Characters are extracted and stored into __s until one of the following happens:

• __n-1 characters are stored

• the input sequence reaches EOF

• the next character equals __delim, in which case the character is not extracted

If no characters are stored, failbit is set in the stream's error state.


In any case, a null character is stored into the next location in the array.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

Generated by Doxygen
1292

getline() [1/3]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
String extraction.

Parameters
_←- A character array in which to store the data.
_s
_←- Maximum number of characters to extract.
_n

Returns

∗this

Returns getline(__s,__n,widen('\n')).

getline() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
String extraction.

Parameters
__s A character array in which to store the data.
__n Maximum number of characters to extract.
__delim A "stop" character.

Returns

∗this

Extracts and stores characters into __s until one of the following happens. Note that these criteria are required to be
tested in the order listed here, to allow an input line to exactly fill the __s array without setting failbit.

1. the input sequence reaches end-of-file, in which case eofbit is set in the stream error state

2. the next character equals __delim, in which case the character is extracted (and therefore counted in
gcount()) but not stored

3. __n-1 characters are stored, in which case failbit is set in the stream error state

If no characters are extracted, failbit is set. (An empty line of input should therefore not cause failbit to be set.)
In any case, a null character is stored in the next location in the array.
References std::ios_base::eofbit, std::ios_base::goodbit, std::basic_streambuf< _CharT, _Traits >::sbumpc(),
std::basic_streambuf< _CharT, _Traits >::sgetc(), and std::basic_streambuf< _CharT, _Traits >::snextc().

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1293

getline() [3/3]

basic_istream< char > & std::basic_istream< char >::getline (


char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Explicit specialization declarations, defined in src/istream.cc.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

ignore() [1/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
void ) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit.

ignore() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n) [inherited]
Simple extraction.

Generated by Doxygen
1294

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

ignore() [3/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n,
int_type __delim) [inherited]
Discarding characters.

Parameters

__n Number of characters to discard.


__delim A "stop" character.

Returns

∗this

Extracts characters and throws them away until one of the following happens:

• if __n != std::numeric_limits<int>::max(), __n characters are extracted

• the input sequence reaches end-of-file

• the next character equals __delim (in this case, the character is extracted); note that this condition will never occur
if __delim equals traits::eof().

NB: Provide three overloads, instead of the single function (with defaults) mandated by the Standard: this leads to a
better performing implementation, while still conforming to the Standard.
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1295

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.

Maps a character of char_type to a character of char, if possible.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

Generated by Doxygen
1296

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator>>() [1/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [2/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__istream_type &(∗ __pf )(__istream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [3/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
__streambuf_type ∗ __sb) [inherited]
Extracting into another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from this stream and inserted into the __sb streambuf until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted), or

• an exception occurs (and in this case is caught)

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1297

If the function inserts no characters, failbit is set.


References std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

operator>>() [4/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
bool & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [5/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [6/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
float & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Generated by Doxygen
1298

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [7/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
int & __n) [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [8/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [9/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1299

operator>>() [10/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Generated by Doxygen
1300

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [11/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [12/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
short & __n) [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [13/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned int & __n) [inline], [inherited]
Integer arithmetic extractors.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1301

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [14/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [15/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [16/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned short & __n) [inline], [inherited]
Integer arithmetic extractors.

Generated by Doxygen
1302

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [17/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
void ∗& __p) [inline], [inherited]
Basic arithmetic extractors.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

peek()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::peek (
void ) [inherited]
Looking ahead in the stream.
Returns

The next character, or eof().


If, after constructing the sentry object, good() is false, returns traits::eof(). Otherwise reads but does not
extract the next input character.

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The precision to generate on certain output operations.


Be careful if you try to give a definition of precision here; see DR 189.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1303

Parameters
__prec The new precision value.

Returns

The previous value of precision().

putback()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::putback (
char_type __c) [inherited]
Unextracting a single character.

Parameters
_←- The character to push back into the input stream.
_c

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sputbackc(c).


If rdbuf() is null or if sputbackc() fails, sets badbit in the error state.

Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sputbackc()

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

Generated by Doxygen
1304

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

rdbuf() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >


__stringbuf_type ∗ std::basic_istringstream< _CharT, _Traits, _Alloc >::rdbuf () const [inline],
[nodiscard]
Accessing the underlying buffer.

Returns

The current basic_stringbuf buffer.

This hides both signatures of std::basic_ios::rdbuf().

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.
Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

read()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::read (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction without delimiters.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1305

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Returns

∗this
If the stream state is good(), extracts characters and stores them into __s until one of the following happens:
• __n characters are stored

• the input sequence reaches end-of-file, in which case the error state is set to failbit|eofbit.

Note

This function is not overloaded on signed char and unsigned char.


References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

readsome()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::readsome (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction until the buffer is exhausted, but no more.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Returns

The number of characters extracted.


Extracts characters and stores them into __s depending on the number of characters remaining in the streambuf's buffer,
rdbuf()->in_avail(), called A here:
• if A == -1, sets eofbit and extracts no characters

• if A == 0, extracts no characters

• if A > 0, extracts min(A,n)


The goal is to empty the current buffer, and to not request any more from the external input sequence controlled by the
streambuf.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::min().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Generated by Doxygen
1306

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekg() [1/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current read position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(__off,__dir). If that function fails, sets failbit.
Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

seekg() [2/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
pos_type __pos) [inherited]
Changing the current read position.

Parameters

__pos A file position object.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(__pos). If that function fails, sets failbit.
Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1307

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

Generated by Doxygen
1308

str() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >


__string_type std::basic_istringstream< _CharT, _Traits, _Alloc >::str () const & [inline],
[nodiscard]
Copying out the string buffer.

Returns

rdbuf()->str()

str() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_istringstream< _CharT, _Traits, _Alloc >::str (
const __string_type & __s) [inline]
Setting a new buffer.

Parameters
_←- The string to use as a new sequence.
_s

Calls rdbuf()->str(s).

sync()

template<typename _CharT , typename _Traits >


int std::basic_istream< _CharT, _Traits >::sync (
void ) [inherited]
Synchronizing the stream buffer.

Returns

0 on success, -1 on failure

If rdbuf() is a null pointer, returns -1.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit and returns -1.
Otherwise, returns 0.

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount().

References std::ios_base::badbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::pubsync().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1309

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tellg()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::pos_type std::basic_istream< _CharT, _Traits >::tellg (
void ) [inherited]
Getting the current read position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,in).

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount(). At variance with putback, unget and seekg, eofbit is not cleared first.

References std::ios_base::badbit, std::ios_base::cur, and std::ios_base::in.

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

Generated by Doxygen
1310

unget()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::unget (
void ) [inherited]
Unextracting the previous character.

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sungetc(c).


If rdbuf() is null or if sungetc() fails, sets badbit in the error state.

Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::eofbit, and std::ios_base::goodbit.


Referenced by std::__detail::operator>>().

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1311

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.244.6 Member Data Documentation

_M_gcount

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::_M_gcount [protected], [inherited]
The number of characters extracted in the previous unformatted function; see gcount().

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

Generated by Doxygen
1312

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1313

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]

Generated by Doxygen
1314

A mask of scientific|fixed. Useful for the 2-arg form of setf.


Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

Generated by Doxygen
5.244 std::basic_istringstream< _CharT, _Traits, _Alloc > Class Template Reference 1315

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]


Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

Generated by Doxygen
1316

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• iosfwd
• sstream

5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference


#include <fstream>
Inheritance diagram for std::basic_ofstream< _CharT, _Traits >:

std::ios_base

std::basic_ios< _CharT,
_Traits >

std::basic_ostream
< _CharT, _Traits >

std::basic_ofstream
< _CharT, _Traits >

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef basic_filebuf< char_type, traits_type > __filebuf_type
• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
• typedef basic_ostream< char_type, traits_type > __ostream_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1317

• typedef traits_type::int_type int_type


• typedef _Ios_Iostate iostate
• typedef traits_type::off_type off_type
• typedef _Ios_Openmode openmode
• typedef traits_type::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type

Public Member Functions

• basic_ofstream ()
• basic_ofstream (basic_ofstream &&__rhs)
• template<typename _Path , typename _Require = _If_fs_path<_Path>>
basic_ofstream (const _Path &__s, ios_base::openmode __mode=ios_base::out)
• basic_ofstream (const basic_ofstream &)=delete
• basic_ofstream (const char ∗__s, ios_base::openmode __mode=ios_base::out)
• basic_ofstream (const std::string &__s, ios_base::openmode __mode=ios_base::out)
• ∼basic_ofstream ()
• const locale & _M_getloc () const
• template<typename _ValueT >
basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v)
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• void close ()
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• __ostream_type & flush ()
• locale getloc () const
• bool good () const
• locale imbue (const locale &__loc)
• bool is_open ()
• bool is_open () const
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const
• template<typename _Path >
_If_fs_path< _Path, void > open (const _Path &__s, ios_base::openmode __mode=ios_base::out)
• void open (const char ∗__s, ios_base::openmode __mode=ios_base::out)
• void open (const std::string &__s, ios_base::openmode __mode=ios_base::out)
• __ostream_type & operator<< (__streambuf_type ∗__sb)
• __ostream_type & operator<< (const void ∗__p)
• __ostream_type & operator<< (nullptr_t)

Generated by Doxygen
1318

• basic_ofstream & operator= (basic_ofstream &&__rhs)


• basic_ofstream & operator= (const basic_ofstream &)=delete
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• __filebuf_type ∗ rdbuf () const
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• __ostream_type & seekp (off_type, ios_base::seekdir)
• __ostream_type & seekp (pos_type)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• void swap (basic_ofstream &__rhs)
• pos_type tellp ()
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __ostream_type & operator<< (__ostream_type &(∗__pf)(__ostream_type &))


• __ostream_type & operator<< (__ios_type &(∗__pf)(__ios_type &))
• __ostream_type & operator<< (ios_base &(∗__pf)(ios_base &))

Inserters
All the operator<< functions (aka formatted output functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_ostream::sentry. This can have several effects, concluding with
the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state without
causing an ios_base::failure to be thrown. The original exception will then be rethrown.

• __ostream_type & operator<< (long __n)


• __ostream_type & operator<< (unsigned long __n)
• __ostream_type & operator<< (bool __n)
• __ostream_type & operator<< (short __n)
• __ostream_type & operator<< (unsigned short __n)
• __ostream_type & operator<< (int __n)
• __ostream_type & operator<< (unsigned int __n)
• __ostream_type & operator<< (long long __n)
• __ostream_type & operator<< (unsigned long long __n)

• __ostream_type & operator<< (double __f)


• __ostream_type & operator<< (float __f)
• __ostream_type & operator<< (long double __f)

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1319

Unformatted Output Functions


All the unformatted output functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_ostream::sentry. This has several effects, concluding with the setting of a status flag; see the sentry
documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. If badbit is
on in the stream's exceptions mask, the exception will be rethrown without completing its actions.

• __ostream_type & put (char_type __c)


• __ostream_type & write (const char_type ∗__s, streamsize __n)

• operator bool () const


• bool operator! () const

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Generated by Doxygen
1320

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• void _M_cache_locale (const locale &__loc)


• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• template<typename _ValueT >
__ostream_type & _M_insert (_ValueT __v)
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_ostream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.245.1 Detailed Description

template<typename _CharT, typename _Traits = char_traits<_CharT>>


class std::basic_ofstream< _CharT, _Traits >

Controlling output for files.

Template Parameters

_CharT Type of character stream.

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1321

_Traits Traits for character type, defaults to char_traits<_CharT>.

This class supports reading from named files, using the inherited functions from std::basic_ostream. To control the
associated sequence, an instance of std::basic_filebuf is used, which this page refers to as sb.

5.245.2 Member Typedef Documentation

__num_get_type

template<typename _CharT , typename _Traits >


num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_get_type [inherited]
These are non-standard types.

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

Generated by Doxygen
1322

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:
• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.245.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.245.4 Constructor & Destructor Documentation

basic_ofstream() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_ofstream< _CharT, _Traits >::basic_ofstream () [inline]
Default constructor.
Initializes sb using its default constructor, and passes &sb to the base class initializer. Does not open any files (you
haven't given it a filename to open).

basic_ofstream() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_ofstream< _CharT, _Traits >::basic_ofstream (
const char ∗ __s,
ios_base::openmode __mode = ios_base::out) [inline], [explicit]
Create an output file stream.

Parameters

__s Null terminated string specifying the filename.


__mode Open file in specified mode (see std::ios_base).

ios_base::out is automatically included in __mode.

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1323

basic_ofstream() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


std::basic_ofstream< _CharT, _Traits >::basic_ofstream (
const std::string & __s,
ios_base::openmode __mode = ios_base::out) [inline], [explicit]
Create an output file stream.

Parameters

__s std::string specifying the filename.


__mode Open file in specified mode (see std::ios_base).

ios_base::out is automatically included in __mode.

basic_ofstream() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


template<typename _Path , typename _Require = _If_fs_path<_Path>>
std::basic_ofstream< _CharT, _Traits >::basic_ofstream (
const _Path & __s,
ios_base::openmode __mode = ios_base::out) [inline]
Create an output file stream.

Parameters

__s filesystem::path specifying the filename.


__mode Open file in specified mode (see std::ios_base).

ios_base::out is automatically included in __mode.

∼basic_ofstream()
template<typename _CharT , typename _Traits = char_traits<_CharT>>
std::basic_ofstream< _CharT, _Traits >::∼basic_ofstream () [inline]
The destructor does nothing.
The file is closed by the filebuf object, not the formatting stream.

5.245.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

Generated by Doxygen
1324

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

close()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_ofstream< _CharT, _Traits >::close () [inline]
Close the file.
Calls std::basic_filebuf::close(). If that function fails, failbit is set in the stream's error state.

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1325

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{
std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

Generated by Doxygen
1326

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.
Returns

True if either the badbit or the failbit is set.


Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.
Returns

The current fill character.


It defaults to a space (' ') in the current locale.
References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.


The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.
Returns

The format control flags for both input and output.


Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),
std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1327

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

flush()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush () [inherited]
Synchronizing the stream buffer.

Returns

∗this

If rdbuf() is a null pointer, changes nothing.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit.
References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

Generated by Doxygen
1328

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

is_open()

template<typename _CharT , typename _Traits = char_traits<_CharT>>


bool std::basic_ofstream< _CharT, _Traits >::is_open () [inline], [nodiscard]
Wrapper to test for an open file.

Returns

rdbuf()->is_open()

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1329

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.

Maps a character of char_type to a character of char, if possible.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

open() [1/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


template<typename _Path >
_If_fs_path< _Path, void > std::basic_ofstream< _CharT, _Traits >::open (
const _Path & __s,
ios_base::openmode __mode = ios_base::out) [inline]
Opens an external file.

Parameters

__s The name of the file, as a filesystem::path.


__mode The open mode flags.

Calls std::basic_filebuf::open(__s,__mode|out). If that function fails, failbit is set in the stream's error
state.

open() [2/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_ofstream< _CharT, _Traits >::open (
const char ∗ __s,
ios_base::openmode __mode = ios_base::out) [inline]
Opens an external file.

Generated by Doxygen
1330

Parameters

__s The name of the file.


__mode The open mode flags.

Calls std::basic_filebuf::open(__s,__mode|out). If that function fails, failbit is set in the stream's error
state.

open() [3/3]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


void std::basic_ofstream< _CharT, _Traits >::open (
const std::string & __s,
ios_base::openmode __mode = ios_base::out) [inline]
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Calls std::basic_filebuf::open(s,mode|out). If that function fails, failbit is set in the stream's error state.

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator<<() [1/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [2/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ostream_type &(∗ __pf )(__ostream_type &)) [inline], [inherited]

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1331

Interface for manipulators.


Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [3/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
__streambuf_type ∗ __sb) [inherited]
Extracting from another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from __sb and inserted into ∗this until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted),
or

• an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

operator<<() [4/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
bool __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [5/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
const void ∗ __p) [inline], [inherited]
Pointer arithmetic inserters.

Generated by Doxygen
1332

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [6/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [7/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
float __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1333

operator<<() [8/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
int __n) [inherited]
Integer arithmetic inserters.

Generated by Doxygen
1334

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [9/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [10/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [11/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1335

operator<<() [12/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [13/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
short __n) [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.
References std::ios_base::badbit, std::ios_base::goodbit, std::num_put< _CharT, _OutIter >::put(), std::basic_ios< _CharT, _Traits >::se
and std::use_facet().

operator<<() [14/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned int __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
1336

operator<<() [15/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [16/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [17/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned short __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1337

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

put()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put (
char_type __c) [inherited]
Simple insertion.

Parameters
_←- The character to insert.
_c

Returns

∗this

Tries to insert __c.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Generated by Doxygen
1338

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

rdbuf() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>>


__filebuf_type ∗ std::basic_ofstream< _CharT, _Traits >::rdbuf () const [inline], [nodiscard]
Accessing the underlying buffer.

Returns

The current basic_filebuf buffer.

This hides both signatures of std::basic_ios::rdbuf().

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1339

Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekp() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current write position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

seekp() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
pos_type __pos) [inherited]
Changing the current write position.

Parameters

__pos A file position object.

Generated by Doxygen
1340

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1341

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tellp()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp () [inherited]
Getting the current write position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).
References std::ios_base::cur, std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::out, and std::basic_ios< _CharT, _Traits >::rdbuf()

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

Generated by Doxygen
1342

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1343

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

write()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write (
const char_type ∗ __s,
streamsize __n) [inherited]
Character string insertion.

Parameters
_←- The array to insert.
_s
_←- Maximum number of characters to insert.
_n

Returns

∗this

Characters are copied from __s and inserted into the stream until one of the following happens:

• __n characters are inserted

• inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)

Note

This function is not overloaded on signed char and unsigned char.

Generated by Doxygen
1344

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.245.6 Member Data Documentation

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1345

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

Generated by Doxygen
1346

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _

Generated by Doxygen
5.245 std::basic_ofstream< _CharT, _Traits > Class Template Reference 1347

std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),


std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]


Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

Generated by Doxygen
1348

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• fstream
• iosfwd

5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference


#include <ostream.h>
Inheritance diagram for std::basic_ostream< _CharT, _Traits >:

std::basic_fstream
< _CharT, _Traits >
std::basic_iostream
< _CharT, _Traits >
std::basic_stringstream
< _CharT, _Traits, _Alloc >
std::basic_ios< _CharT, std::basic_ostream std::basic_ofstream
std::ios_base
_Traits > < _CharT, _Traits > < _CharT, _Traits >

std::basic_ostringstream
< _CharT, _Traits, _Alloc >

Classes

• class sentry

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1349

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
• typedef basic_ostream< _CharT, _Traits > __ostream_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef _Traits::int_type int_type
• typedef _Ios_Iostate iostate
• typedef _Traits::off_type off_type
• typedef _Ios_Openmode openmode
• typedef _Traits::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type

Public Member Functions

• basic_ostream (__streambuf_type ∗__sb)


• virtual ∼basic_ostream ()
• const locale & _M_getloc () const
• template<typename _ValueT >
basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v)
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• __ostream_type & flush ()
• locale getloc () const
• bool good () const
• locale imbue (const locale &__loc)
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const
• __ostream_type & operator<< (__streambuf_type ∗__sb)
• __ostream_type & operator<< (const void ∗__p)
• __ostream_type & operator<< (nullptr_t)
• streamsize precision () const
• streamsize precision (streamsize __prec)

Generated by Doxygen
1350

• void ∗& pword (int __ix)


• basic_streambuf< _CharT, _Traits > ∗ rdbuf () const
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• __ostream_type & seekp (off_type, ios_base::seekdir)
• __ostream_type & seekp (pos_type)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• pos_type tellp ()
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __ostream_type & operator<< (__ostream_type &(∗__pf)(__ostream_type &))


• __ostream_type & operator<< (__ios_type &(∗__pf)(__ios_type &))
• __ostream_type & operator<< (ios_base &(∗__pf)(ios_base &))
Inserters
All the operator<< functions (aka formatted output functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_ostream::sentry. This can have several effects, concluding with
the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state without
causing an ios_base::failure to be thrown. The original exception will then be rethrown.

• __ostream_type & operator<< (long __n)


• __ostream_type & operator<< (unsigned long __n)
• __ostream_type & operator<< (bool __n)
• __ostream_type & operator<< (short __n)
• __ostream_type & operator<< (unsigned short __n)
• __ostream_type & operator<< (int __n)
• __ostream_type & operator<< (unsigned int __n)
• __ostream_type & operator<< (long long __n)
• __ostream_type & operator<< (unsigned long long __n)

• __ostream_type & operator<< (double __f)


• __ostream_type & operator<< (float __f)
• __ostream_type & operator<< (long double __f)
Unformatted Output Functions
All the unformatted output functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_ostream::sentry. This has several effects, concluding with the setting of a status flag; see the sentry
documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. If badbit is
on in the stream's exceptions mask, the exception will be rethrown without completing its actions.

• __ostream_type & put (char_type __c)


• __ostream_type & write (const char_type ∗__s, streamsize __n)

• operator bool () const


• bool operator! () const

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1351

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• basic_ostream (basic_iostream< _CharT, _Traits > &)


• basic_ostream (basic_ostream &&__rhs)
• basic_ostream (const basic_ostream &)=delete
• void _M_cache_locale (const locale &__loc)
• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()

Generated by Doxygen
1352

• _Words & _M_grow_words (int __index, bool __iword)


• void _M_init () throw ()
• template<typename _ValueT >
__ostream_type & _M_insert (_ValueT __v)
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• basic_ostream & operator= (basic_ostream &&__rhs)
• basic_ostream & operator= (const basic_ostream &)=delete
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_ostream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

Friends

• class sentry

5.246.1 Detailed Description

template<typename _CharT, typename _Traits>


class std::basic_ostream< _CharT, _Traits >

Template class basic_ostream.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.

This is the base class for all output streams. It provides text formatting of all builtin types, and communicates with any
class derived from basic_streambuf to do the actual output.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1353

5.246.2 Member Typedef Documentation

__num_get_type

template<typename _CharT , typename _Traits >


num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_get_type [inherited]
These are non-standard types.

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:
• badbit

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:
• app

• ate

• binary

• in

• out

• trunc

Generated by Doxygen
1354

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.246.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.246.4 Constructor & Destructor Documentation

basic_ostream()

template<typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits >::basic_ostream (
__streambuf_type ∗ __sb) [inline], [explicit]
Base constructor.
This ctor is almost never called by the user directly, rather from derived classes' initialization lists, which pass a pointer
to their own stream buffer.
References std::basic_ios< _CharT, _Traits >::init().

∼basic_ostream()
template<typename _CharT , typename _Traits >
virtual std::basic_ostream< _CharT, _Traits >::∼basic_ostream () [inline], [virtual]
Base destructor.
This does very little apart from providing a virtual base dtor.

5.246.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1355

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Generated by Doxygen
1356

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{
std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1357

Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.

Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.

Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

Generated by Doxygen
1358

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

flush()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush ()
Synchronizing the stream buffer.

Returns

∗this

If rdbuf() is a null pointer, changes nothing.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit.
References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1359

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (

Generated by Doxygen
1360

char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1361

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.


Maps a character of char_type to a character of char, if possible.
Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator<<() [1/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ios_type &(∗ __pf )(__ios_type &)) [inline]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [2/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ostream_type &(∗ __pf )(__ostream_type &)) [inline]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [3/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
__streambuf_type ∗ __sb)
Extracting from another streambuf.

Generated by Doxygen
1362

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from __sb and inserted into ∗this until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted),
or

• an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

operator<<() [4/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
bool __n) [inline]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [5/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
const void ∗ __p) [inline]
Pointer arithmetic inserters.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1363

operator<<() [6/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
double __f) [inline]
Floating point arithmetic inserters.

Generated by Doxygen
1364

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [7/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
float __f) [inline]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [8/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
int __n)
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1365

operator<<() [9/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
ios_base &(∗ __pf )(ios_base &)) [inline]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [10/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long __n) [inline]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [11/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long double __f) [inline]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [12/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long long __n) [inline]
Integer arithmetic inserters.

Generated by Doxygen
1366

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [13/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
short __n)
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.
References std::ios_base::badbit, std::ios_base::goodbit, std::num_put< _CharT, _OutIter >::put(), std::basic_ios< _CharT, _Traits >::se
and std::use_facet().

operator<<() [14/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned int __n) [inline]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [15/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long __n) [inline]
Integer arithmetic inserters.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1367

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [16/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long long __n) [inline]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [17/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned short __n) [inline]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

Generated by Doxygen
1368

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

put()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put (
char_type __c)
Simple insertion.

Parameters
_←- The character to insert.
_c

Returns

∗this

Tries to insert __c.


Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1369

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf () const [inline],
[nodiscard], [inherited]
Accessing the underlying buffer.
Returns

The current stream buffer.


This does not change the state of the stream.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ostream< _CharT, _Traits >::flush(),
std::getline(), std::getline(), std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::s
std::basic_ostream< _CharT, _Traits >::tellp(), and std::ws().

rdbuf() [2/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.


Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.
Returns

A bit pattern (well, isn't everything?)


See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Generated by Doxygen
1370

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekp() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
off_type __off,
ios_base::seekdir __dir)
Changing the current write position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

seekp() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
pos_type __pos)
Changing the current write position.

Parameters

__pos A file position object.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1371

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Generated by Doxygen
1372

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tellp()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp ()
Getting the current write position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).
References std::ios_base::cur, std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::out, and std::basic_ios< _CharT, _Traits >::rdbuf()

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1373

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Generated by Doxygen
1374

Returns

The previous value of width().

write()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write (
const char_type ∗ __s,
streamsize __n)
Character string insertion.

Parameters
_←- The array to insert.
_s
_←- Maximum number of characters to insert.
_n

Returns

∗this

Characters are copied from __s and inserted into the stream until one of the following happens:

• __n characters are inserted

• inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)

Note

This function is not overloaded on signed char and unsigned char.

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.246.6 Member Data Documentation

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1375

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

Generated by Doxygen
1376

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]

Generated by Doxygen
5.246 std::basic_ostream< _CharT, _Traits > Class Template Reference 1377

A mask of scientific|fixed. Useful for the 2-arg form of setf.


Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

Generated by Doxygen
1378

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]


Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1379

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• iosfwd
• ostream.h
• ostream.tcc

5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference


#include <sstream>
Inheritance diagram for std::basic_ostringstream< _CharT, _Traits, _Alloc >:

std::ios_base

std::basic_ios< _CharT,
_Traits >

std::basic_ostream
< _CharT, _Traits >

std::basic_ostringstream
< _CharT, _Traits, _Alloc >

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
• typedef basic_ostream< char_type, traits_type > __ostream_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef basic_string< _CharT, _Traits, _Alloc > __string_type
• typedef basic_stringbuf< _CharT, _Traits, _Alloc > __stringbuf_type
• typedef _Alloc allocator_type
• typedef _CharT char_type

Generated by Doxygen
1380

• enum event { erase_event , imbue_event , copyfmt_event }


• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef traits_type::int_type int_type
• typedef _Ios_Iostate iostate
• typedef traits_type::off_type off_type
• typedef _Ios_Openmode openmode
• typedef traits_type::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type

Public Member Functions

• basic_ostringstream ()
• basic_ostringstream (__string_type &&__str, ios_base::openmode __mode=ios_base::out)
• basic_ostringstream (basic_ostringstream &&__rhs)
• basic_ostringstream (const __string_type &__str, ios_base::openmode __mode=ios_base::out)
• basic_ostringstream (const basic_ostringstream &)=delete
• template<typename _SAlloc >
basic_ostringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, const allocator_type &__a)
• template<typename _SAlloc >
basic_ostringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __mode,
const allocator_type &__a)
• template<typename _SAlloc >
basic_ostringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __←-
mode=ios_base::out)
• basic_ostringstream (ios_base::openmode __mode)
• basic_ostringstream (ios_base::openmode __mode, const allocator_type &__a)
• ∼basic_ostringstream ()
• const locale & _M_getloc () const
• template<typename _ValueT >
basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v)
• void _M_setstate (iostate __state)
• bool bad () const
• void clear (iostate __state=goodbit)
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• __ostream_type & flush ()
• locale getloc () const
• bool good () const
• locale imbue (const locale &__loc)
• long & iword (int __ix)

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1381

• char narrow (char_type __c, char __dfault) const


• __ostream_type & operator<< (__streambuf_type ∗__sb)
• __ostream_type & operator<< (const void ∗__p)
• __ostream_type & operator<< (nullptr_t)
• basic_ostringstream & operator= (basic_ostringstream &&__rhs)
• basic_ostringstream & operator= (const basic_ostringstream &)=delete
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• __stringbuf_type ∗ rdbuf () const
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• __ostream_type & seekp (off_type, ios_base::seekdir)
• __ostream_type & seekp (pos_type)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• __string_type str () &&
• __string_type str () const &
• void str (__string_type &&__s)
• void str (const __string_type &__s)
• template<__allocator_like _SAlloc>
basic_string< _CharT, _Traits, _SAlloc > str (const _SAlloc &__sa) const
• template<__allocator_like _SAlloc>
requires (!is_same_v<_SAlloc, _Alloc>)
void str (const basic_string< _CharT, _Traits, _SAlloc > &__s)
• void swap (basic_ostringstream &__rhs)
• pos_type tellp ()
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• basic_string_view< char_type, traits_type > view () const noexcept
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __ostream_type & operator<< (__ostream_type &(∗__pf)(__ostream_type &))


• __ostream_type & operator<< (__ios_type &(∗__pf)(__ios_type &))
• __ostream_type & operator<< (ios_base &(∗__pf)(ios_base &))

Inserters
All the operator<< functions (aka formatted output functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_ostream::sentry. This can have several effects, concluding with
the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state without
causing an ios_base::failure to be thrown. The original exception will then be rethrown.

• __ostream_type & operator<< (long __n)


• __ostream_type & operator<< (unsigned long __n)

Generated by Doxygen
1382

• __ostream_type & operator<< (bool __n)


• __ostream_type & operator<< (short __n)
• __ostream_type & operator<< (unsigned short __n)
• __ostream_type & operator<< (int __n)
• __ostream_type & operator<< (unsigned int __n)
• __ostream_type & operator<< (long long __n)
• __ostream_type & operator<< (unsigned long long __n)

• __ostream_type & operator<< (double __f)


• __ostream_type & operator<< (float __f)
• __ostream_type & operator<< (long double __f)

Unformatted Output Functions


All the unformatted output functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_ostream::sentry. This has several effects, concluding with the setting of a status flag; see the sentry
documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. If badbit is
on in the stream's exceptions mask, the exception will be rethrown without completing its actions.

• __ostream_type & put (char_type __c)


• __ostream_type & write (const char_type ∗__s, streamsize __n)

• operator bool () const


• bool operator! () const

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1383

• static const fmtflags internal


• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• void _M_cache_locale (const locale &__loc)


• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• template<typename _ValueT >
__ostream_type & _M_insert (_ValueT __v)
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_ostream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie

Generated by Doxygen
1384

• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.247.1 Detailed Description

template<typename _CharT, typename _Traits, typename _Alloc>


class std::basic_ostringstream< _CharT, _Traits, _Alloc >

Controlling output for std::string.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.
_Alloc Allocator type, defaults to allocator<_CharT>.

This class supports writing to objects of type std::basic_string, using the inherited functions from std::basic_ostream. To
control the associated sequence, an instance of std::basic_stringbuf is used, which this page refers to as sb.

5.247.2 Member Typedef Documentation

__num_get_type

template<typename _CharT , typename _Traits >


num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits >::__←-
num_get_type [inherited]
These are non-standard types.

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1385

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:
• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.247.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.247.4 Constructor & Destructor Documentation

basic_ostringstream() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_ostringstream< _CharT, _Traits, _Alloc >::basic_ostringstream () [inline]
Default constructor starts with an empty string buffer.
Initializes sb using mode|out, and passes &sb to the base class initializer. Does not allocate any buffer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

Generated by Doxygen
1386

basic_ostringstream() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_ostringstream< _CharT, _Traits, _Alloc >::basic_ostringstream (
ios_base::openmode __mode) [inline], [explicit]
Starts with an empty string buffer.

Parameters

__mode Whether the buffer can read, or write, or both.

ios_base::out is automatically included in mode.


Initializes sb using mode|out, and passes &sb to the base class initializer. Does not allocate any buffer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

basic_ostringstream() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_ostringstream< _CharT, _Traits, _Alloc >::basic_ostringstream (
const __string_type & __str,
ios_base::openmode __mode = ios_base::out) [inline], [explicit]
Starts with an existing string buffer.

Parameters

__str A string to copy as a starting buffer.


__mode Whether the buffer can read, or write, or both.

ios_base::out is automatically included in mode.


Initializes sb using str and mode|out, and passes &sb to the base class initializer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

∼basic_ostringstream()
template<typename _CharT , typename _Traits , typename _Alloc >
std::basic_ostringstream< _CharT, _Traits, _Alloc >::∼basic_ostringstream () [inline]
The destructor does nothing.
The buffer is deallocated by the stringbuf object, not the formatting stream.

5.247.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1387

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Generated by Doxygen
1388

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{
std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1389

Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.

Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.

Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

Generated by Doxygen
1390

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

flush()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush () [inherited]
Synchronizing the stream buffer.

Returns

∗this

If rdbuf() is a null pointer, changes nothing.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit.
References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1391

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (

Generated by Doxygen
1392

char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1393

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.


Maps a character of char_type to a character of char, if possible.
Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator<<() [1/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [2/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ostream_type &(∗ __pf )(__ostream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [3/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
__streambuf_type ∗ __sb) [inherited]
Extracting from another streambuf.

Generated by Doxygen
1394

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from __sb and inserted into ∗this until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted),
or

• an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

operator<<() [4/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
bool __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [5/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
const void ∗ __p) [inline], [inherited]
Pointer arithmetic inserters.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1395

operator<<() [6/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
double __f) [inline], [inherited]
Floating point arithmetic inserters.

Generated by Doxygen
1396

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [7/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
float __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [8/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
int __n) [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1397

operator<<() [9/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [10/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [11/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [12/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long long __n) [inline], [inherited]
Integer arithmetic inserters.

Generated by Doxygen
1398

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [13/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
short __n) [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.
References std::ios_base::badbit, std::ios_base::goodbit, std::num_put< _CharT, _OutIter >::put(), std::basic_ios< _CharT, _Traits >::se
and std::use_facet().

operator<<() [14/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned int __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [15/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long __n) [inline], [inherited]
Integer arithmetic inserters.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1399

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [16/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [17/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned short __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

Generated by Doxygen
1400

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

put()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put (
char_type __c) [inherited]
Simple insertion.

Parameters
_←- The character to insert.
_c

Returns

∗this

Tries to insert __c.


Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1401

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

rdbuf() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >


__stringbuf_type ∗ std::basic_ostringstream< _CharT, _Traits, _Alloc >::rdbuf () const [inline],
[nodiscard]
Accessing the underlying buffer.

Returns

The current basic_stringbuf buffer.

This hides both signatures of std::basic_ios::rdbuf().

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.
Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Generated by Doxygen
1402

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekp() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current write position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

seekp() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
pos_type __pos) [inherited]
Changing the current write position.

Parameters

__pos A file position object.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1403

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

str() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >


__string_type std::basic_ostringstream< _CharT, _Traits, _Alloc >::str () const & [inline],
[nodiscard]
Copying out the string buffer.

Generated by Doxygen
1404

Returns

rdbuf()->str()

str() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_ostringstream< _CharT, _Traits, _Alloc >::str (
const __string_type & __s) [inline]
Setting a new buffer.

Parameters
_←- The string to use as a new sequence.
_s

Calls rdbuf()->str(s).

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tellp()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp () [inherited]
Getting the current write position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).
References std::ios_base::cur, std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::out, and std::basic_ios< _CharT, _Traits >::rdbuf()

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1405

Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

Generated by Doxygen
1406

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

write()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write (
const char_type ∗ __s,
streamsize __n) [inherited]
Character string insertion.

Parameters
_←- The array to insert.
_s
_←- Maximum number of characters to insert.
_n

Returns

∗this

Characters are copied from __s and inserted into the stream until one of the following happens:

• __n characters are inserted

• inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)

Note

This function is not overloaded on signed char and unsigned char.

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1407

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.247.6 Member Data Documentation

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

Generated by Doxygen
1408

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

Generated by Doxygen
5.247 std::basic_ostringstream< _CharT, _Traits, _Alloc > Class Template Reference 1409

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _

Generated by Doxygen
1410

std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),


std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]


Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

Generated by Doxygen
5.248 std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference 1411

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• iosfwd
• sstream

5.248 std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference


#include <regex>

Public Types

• typedef regex_constants::syntax_option_type flag_type


• typedef traits_type::locale_type locale_type
• typedef traits_type::string_type string_type
• typedef _Rx_traits traits_type
• typedef _Ch_type value_type

Public Member Functions

• basic_regex () noexcept
• template<typename _FwdIter >
basic_regex (_FwdIter __first, _FwdIter __last, flag_type __f=ECMAScript)
• basic_regex (basic_regex &&__rhs) noexcept=default
• basic_regex (const _Ch_type ∗__p, flag_type __f=ECMAScript)
• basic_regex (const _Ch_type ∗__p, std::size_t __len, flag_type __f=ECMAScript)
• basic_regex (const basic_regex &__rhs)=default

Generated by Doxygen
1412

• template<typename _Ch_traits , typename _Ch_alloc >


basic_regex (const std::basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &__s, flag_type __f=ECMAScript)
• basic_regex (initializer_list< _Ch_type > __l, flag_type __f=ECMAScript)
• ∼basic_regex ()
• template<typename _InputIterator >
basic_regex & assign (_InputIterator __first, _InputIterator __last, flag_type __flags=ECMAScript)
• basic_regex & assign (basic_regex &&__rhs) noexcept
• basic_regex & assign (const _Ch_type ∗__p, flag_type __flags=ECMAScript)
• basic_regex & assign (const _Ch_type ∗__p, size_t __len, flag_type __flags=ECMAScript)
• basic_regex & assign (const basic_regex &__rhs) noexcept
• template<typename _Ch_traits , typename _Alloc >
basic_regex & assign (const basic_string< _Ch_type, _Ch_traits, _Alloc > &__s, flag_type __flags=ECMAScript)
• basic_regex & assign (initializer_list< _Ch_type > __l, flag_type __flags=ECMAScript)
• flag_type flags () const noexcept
• locale_type getloc () const noexcept
• locale_type imbue (locale_type __loc)
• unsigned int mark_count () const noexcept
• basic_regex & operator= (basic_regex &&)=default
• basic_regex & operator= (const _Ch_type ∗__p)
• basic_regex & operator= (const basic_regex &)=default
• template<typename _Ch_traits , typename _Alloc >
basic_regex & operator= (const basic_string< _Ch_type, _Ch_traits, _Alloc > &__s)
• basic_regex & operator= (initializer_list< _Ch_type > __l)
• void swap (basic_regex &__rhs) noexcept

Static Public Attributes

Constants
std [28.8.1](1)

• static constexpr flag_type icase


• static constexpr flag_type nosubs
• static constexpr flag_type optimize
• static constexpr flag_type collate
• static constexpr flag_type ECMAScript
• static constexpr flag_type basic
• static constexpr flag_type extended
• static constexpr flag_type awk
• static constexpr flag_type grep
• static constexpr flag_type egrep
• static constexpr flag_type multiline

Friends

• template<typename _Bp , typename _Ap , typename _Cp , typename _Rp >


bool __detail::__regex_algo_impl (_Bp, _Bp, match_results< _Bp, _Ap > &, const basic_regex< _Cp, _Rp >
&, regex_constants::match_flag_type, __detail::_RegexExecutorPolicy, bool)
• template<typename , typename , typename , bool >
class __detail::_Executor

Related Symbols

(Note that these are not member symbols.)


• template<typename _Ch_type , typename _Rx_traits >
void swap (basic_regex< _Ch_type, _Rx_traits > &__lhs, basic_regex< _Ch_type, _Rx_traits > &__rhs) noex-
cept

Generated by Doxygen
5.248 std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference 1413

5.248.1 Detailed Description

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>


class std::basic_regex< _Ch_type, _Rx_traits >

A regular expression.
Specializations of this class template represent regular expressions constructed from sequences of character type _←-
Ch_type. Use the std::regex typedef for std::basic_regex<char>.
A character sequence passed to the constructor will be parsed according to the chosen grammar, and used to create
a state machine representing the regular expression. The regex object can then be passed to algorithms such as
std::regex_match to match sequences of characters.
The syntax_option_type flag passed to the constructor selects from one of the supported regular expression
grammars. The default is ECMAScript and the others are basic, extended, awk, grep, and egrep, which are
variations on POSIX regular expressions.
Since

C++11

5.248.2 Constructor & Destructor Documentation

basic_regex() [1/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


std::basic_regex< _Ch_type, _Rx_traits >::basic_regex () [inline], [noexcept]
Constructs a basic regular expression that does not match any character sequence.

basic_regex() [2/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


std::basic_regex< _Ch_type, _Rx_traits >::basic_regex (
const _Ch_type ∗ __p,
flag_type __f = ECMAScript) [inline], [explicit]
Constructs a basic regular expression from the sequence [__p, __p + char_traits<_Ch_type>::length(__p)) interpreted
according to the flags in __f.

Parameters

_←- A pointer to the start of a C-style null-terminated string containing a regular expression.
_p
_←- Flags indicating the syntax rules and options.
_f

Exceptions

regex_error if __p is not a valid regular expression.

basic_regex() [3/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


std::basic_regex< _Ch_type, _Rx_traits >::basic_regex (
const _Ch_type ∗ __p,
std::size_t __len,
flag_type __f = ECMAScript) [inline]
Constructs a basic regular expression from the sequence [p, p + len) interpreted according to the flags in f.

Generated by Doxygen
1414

Parameters

__p A pointer to the start of a string containing a regular expression.


__len The length of the string containing the regular expression.
__f Flags indicating the syntax rules and options.

Exceptions

regex_error if __p is not a valid regular expression.

basic_regex() [4/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


std::basic_regex< _Ch_type, _Rx_traits >::basic_regex (
const basic_regex< _Ch_type, _Rx_traits > & __rhs) [default]
Copy-constructs a basic regular expression.

Parameters
__rhs A regex object.

basic_regex() [5/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


std::basic_regex< _Ch_type, _Rx_traits >::basic_regex (
basic_regex< _Ch_type, _Rx_traits > && __rhs) [default], [noexcept]
Move-constructs a basic regular expression.

Parameters
__rhs A regex object.

basic_regex() [6/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


template<typename _Ch_traits , typename _Ch_alloc >
std::basic_regex< _Ch_type, _Rx_traits >::basic_regex (
const std::basic_string< _Ch_type, _Ch_traits, _Ch_alloc > & __s,
flag_type __f = ECMAScript) [inline], [explicit]
Constructs a basic regular expression from the string s interpreted according to the flags in f.

Parameters
_←- A string containing a regular expression.
_s
_←- Flags indicating the syntax rules and options.
_f

Generated by Doxygen
5.248 std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference 1415

Exceptions

regex_error if __s is not a valid regular expression.

basic_regex() [7/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


template<typename _FwdIter >
std::basic_regex< _Ch_type, _Rx_traits >::basic_regex (
_FwdIter __first,
_FwdIter __last,
flag_type __f = ECMAScript) [inline]
Constructs a basic regular expression from the range [first, last) interpreted according to the flags in f.

Parameters

__first The start of a range containing a valid regular expression.


__last The end of a range containing a valid regular expression.
__f The format flags of the regular expression.

Exceptions

regex_error if [__first, __last) is not a valid regular expression.

References std::basic_regex< _Ch_type, _Rx_traits >::assign().

basic_regex() [8/8]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


std::basic_regex< _Ch_type, _Rx_traits >::basic_regex (
initializer_list< _Ch_type > __l,
flag_type __f = ECMAScript) [inline]
Constructs a basic regular expression from an initializer list.

Parameters
←- The initializer list.
_←-
←-
_←-
l
←- The format flags of the regular expression.
_←-
←-
_←-
f

Exceptions

regex_error if __l is not a valid regular expression.

Generated by Doxygen
1416

∼basic_regex()
template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>
std::basic_regex< _Ch_type, _Rx_traits >::∼basic_regex () [inline]
Destroys a basic regular expression.

5.248.3 Member Function Documentation

assign() [1/7]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


template<typename _InputIterator >
basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign (
_InputIterator __first,
_InputIterator __last,
flag_type __flags = ECMAScript) [inline]
Assigns a new regular expression to a regex object.

Parameters

__first The start of a range containing a valid regular expression.


__last The end of a range containing a valid regular expression.
__flags Syntax option flags.

Exceptions

regex_error if p does not contain a valid regular expression pattern interpreted according to __flags. If
regex_error is thrown, the object remains unchanged.

References std::basic_regex< _Ch_type, _Rx_traits >::assign().

assign() [2/7]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign (
basic_regex< _Ch_type, _Rx_traits > && __rhs) [inline], [noexcept]
Move-assigns one regular expression to another.

Parameters
__rhs Another regular expression object.

References std::move().

assign() [3/7]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign (
const _Ch_type ∗ __p,
flag_type __flags = ECMAScript) [inline]
Assigns a new regular expression to a regex object from a C-style null-terminated string containing a regular expression
pattern.

Generated by Doxygen
5.248 std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference 1417

Parameters

__p A pointer to a C-style null-terminated string containing a regular expression pattern.


__flags Syntax option flags.

Exceptions

regex_error if __p does not contain a valid regular expression pattern interpreted according to __flags. If
regex_error is thrown, ∗this remains unchanged.

assign() [4/7]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign (
const _Ch_type ∗ __p,
size_t __len,
flag_type __flags = ECMAScript) [inline]
Assigns a new regular expression to a regex object from a C-style string containing a regular expression pattern.

Parameters

__p A pointer to a C-style string containing a regular expression pattern.


__len The length of the regular expression pattern string.
__flags Syntax option flags.

Exceptions

regex_error if p does not contain a valid regular expression pattern interpreted according to __flags. If
regex_error is thrown, ∗this remains unchanged.

assign() [5/7]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign (
const basic_regex< _Ch_type, _Rx_traits > & __rhs) [inline], [noexcept]
Assigns one regular expression to another.

Parameters
__rhs Another regular expression object.

Referenced by std::basic_regex< _Ch_type, _Rx_traits >::basic_regex(), std::basic_regex< _Ch_type, _Rx_traits >::assign(),


std::basic_regex< _Ch_type, _Rx_traits >::operator=(), std::basic_regex< _Ch_type, _Rx_traits >::operator=(), and
std::basic_regex< _Ch_type, _Rx_traits >::operator=().

Generated by Doxygen
1418

assign() [6/7]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


template<typename _Ch_traits , typename _Alloc >
basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign (
const basic_string< _Ch_type, _Ch_traits, _Alloc > & __s,
flag_type __flags = ECMAScript) [inline]
Assigns a new regular expression to a regex object from a string containing a regular expression pattern.

Parameters
__s A string containing a regular expression pattern.
__flags Syntax option flags.

Exceptions

regex_error if __s does not contain a valid regular expression pattern interpreted according to __flags. If
regex_error is thrown, ∗this remains unchanged.

References std::basic_string< _CharT, _Traits, _Alloc >::data(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

assign() [7/7]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign (
initializer_list< _Ch_type > __l,
flag_type __flags = ECMAScript) [inline]
Assigns a new regular expression to a regex object.

Parameters
__l An initializer list representing a regular expression.
__flags Syntax option flags.

Exceptions

regex_error if __l does not contain a valid regular expression pattern interpreted according to __flags. If
regex_error is thrown, the object remains unchanged.

flags()

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


flag_type std::basic_regex< _Ch_type, _Rx_traits >::flags () const [inline], [noexcept]
Gets the flags used to construct the regular expression or in the last call to assign().

getloc()

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


locale_type std::basic_regex< _Ch_type, _Rx_traits >::getloc () const [inline], [noexcept]
Gets the locale currently imbued in the regular expression object.

Generated by Doxygen
5.248 std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference 1419

imbue()

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


locale_type std::basic_regex< _Ch_type, _Rx_traits >::imbue (
locale_type __loc) [inline]
Imbues the regular expression object with the given locale.

Parameters
__loc A locale.

mark_count()

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


unsigned int std::basic_regex< _Ch_type, _Rx_traits >::mark_count () const [inline], [noexcept]
Gets the number of marked subexpressions within the regular expression.

operator=() [1/5]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= (
basic_regex< _Ch_type, _Rx_traits > && ) [default]
Move-assigns one regular expression to another.

operator=() [2/5]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= (
const _Ch_type ∗ __p) [inline]
Replaces a regular expression with a new one constructed from a C-style null-terminated string.

Parameters

_←- A pointer to the start of a null-terminated C-style string containing a regular expression.
_p

References std::basic_regex< _Ch_type, _Rx_traits >::assign().

operator=() [3/5]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= (
const basic_regex< _Ch_type, _Rx_traits > & ) [default]
Assigns one regular expression to another.

operator=() [4/5]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


template<typename _Ch_traits , typename _Alloc >
basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= (
const basic_string< _Ch_type, _Ch_traits, _Alloc > & __s) [inline]
Replaces a regular expression with a new one constructed from a string.

Generated by Doxygen
1420

Parameters
_←- A pointer to a string containing a regular expression.
_s

References std::basic_regex< _Ch_type, _Rx_traits >::assign().

operator=() [5/5]

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= (
initializer_list< _Ch_type > __l) [inline]
Replaces a regular expression with a new one constructed from an initializer list.

Parameters
←- The initializer list.
_←-
←-
_←-
l

Exceptions

regex_error if __l is not a valid regular expression.

References std::basic_regex< _Ch_type, _Rx_traits >::assign().

swap()

template<typename _Ch_type , typename _Rx_traits = regex_traits<_Ch_type>>


void std::basic_regex< _Ch_type, _Rx_traits >::swap (
basic_regex< _Ch_type, _Rx_traits > & __rhs) [inline], [noexcept]
Swaps the contents of two regular expression objects.

Parameters
__rhs Another regular expression object.

The documentation for this class was generated from the following file:

• regex.h

5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference


#include <streambuf>

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1421

Inheritance diagram for std::basic_streambuf< _CharT, _Traits >:

__gnu_cxx::stdio_sync
_filebuf< _CharT, _Traits >

std::basic_filebuf __gnu_cxx::stdio_filebuf
< _CharT, _Traits > < _CharT, _Traits >
std::basic_streambuf
< _CharT, _Traits >
std::basic_stringbuf
< _CharT, _Traits, _Alloc >

std::wbuffer_convert
< _Codecvt, _Elem, _Tr >

Public Types

• typedef _CharT char_type


• typedef _Traits traits_type
• typedef traits_type::int_type int_type
• typedef traits_type::pos_type pos_type
• typedef traits_type::off_type off_type

• typedef basic_streambuf< char_type, traits_type > __streambuf_type

Public Member Functions

• virtual ∼basic_streambuf ()
• locale getloc () const
• streamsize in_avail ()
• locale pubimbue (const locale &__loc)
• int_type sbumpc ()
• int_type sgetc ()
• streamsize sgetn (char_type ∗__s, streamsize __n)
• int_type snextc ()
• int_type sputbackc (char_type __c)
• int_type sputc (char_type __c)
• streamsize sputn (const char_type ∗__s, streamsize __n)
• int_type sungetc ()

• basic_streambuf ∗ pubsetbuf (char_type ∗__s, streamsize __n)


• pos_type pubseekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
• pos_type pubseekpos (pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
• int pubsync ()

Generated by Doxygen
1422

Protected Member Functions

• basic_streambuf ()
• basic_streambuf (const basic_streambuf &)
• void __safe_gbump (streamsize __n)
• void __safe_pbump (streamsize __n)
• void gbump (int __n)
• virtual void imbue (const locale &__loc)
• basic_streambuf & operator= (const basic_streambuf &)
• virtual int_type overflow (int_type __c=traits_type::eof())
• virtual int_type pbackfail (int_type __c=traits_type::eof())
• void pbump (int __n)
• virtual pos_type seekoff (off_type, ios_base::seekdir, ios_base::openmode=ios_base::in|ios_base::out)
• virtual pos_type seekpos (pos_type, ios_base::openmode=ios_base::in|ios_base::out)
• virtual basic_streambuf< char_type, _Traits > ∗ setbuf (char_type ∗, streamsize)
• void setg (char_type ∗__gbeg, char_type ∗__gnext, char_type ∗__gend)
• void setp (char_type ∗__pbeg, char_type ∗__pend)
• virtual streamsize showmanyc ()
• void swap (basic_streambuf &__sb)
• virtual int sync ()
• virtual int_type uflow ()
• virtual int_type underflow ()
• virtual streamsize xsgetn (char_type ∗__s, streamsize __n)
• virtual streamsize xsputn (const char_type ∗__s, streamsize __n)

• char_type ∗ eback () const


• char_type ∗ gptr () const
• char_type ∗ egptr () const

• char_type ∗ pbase () const


• char_type ∗ pptr () const
• char_type ∗ epptr () const

Protected Attributes

• locale _M_buf_locale
• char_type ∗ _M_in_beg
• char_type ∗ _M_in_cur
• char_type ∗ _M_in_end
• char_type ∗ _M_out_beg
• char_type ∗ _M_out_cur
• char_type ∗ _M_out_end

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1423

Friends

• template<bool _IsMove, typename _CharT2 >


__gnu_cxx::__enable_if< __is_char< _CharT2 >::__value, _CharT2 ∗ >::__type __copy_move_a2
(istreambuf_iterator< _CharT2 >, istreambuf_iterator< _CharT2 >, _CharT2 ∗)
• streamsize __copy_streambufs_eof (basic_streambuf ∗__sbin, basic_streambuf ∗__sbout, bool &__ineof)
• void __istream_extract (istream &, char ∗, streamsize)
• template<typename _CharT2 , typename _Distance >
__gnu_cxx::__enable_if< __is_char< _CharT2 >::__value, void >::__type advance (istreambuf_iterator< _←-
CharT2 > &, _Distance)
• class basic_ios< char_type, traits_type >
• class basic_istream< char_type, traits_type >
• class basic_ostream< char_type, traits_type >
• template<typename _CharT2 >
__gnu_cxx::__enable_if< __is_char< _CharT2 >::__value, istreambuf_iterator< _CharT2 > >::__type find
(istreambuf_iterator< _CharT2 >, istreambuf_iterator< _CharT2 >, const _CharT2 &)
• template<typename _CharT2 , typename _Traits2 , typename _Alloc >
basic_istream< _CharT2, _Traits2 > & getline (basic_istream< _CharT2, _Traits2 > &, basic_string< _CharT2,
_Traits2, _Alloc > &, _CharT2)
• class istreambuf_iterator< char_type, traits_type >
• template<typename _CharT2 , typename _Traits2 , typename _Alloc >
basic_istream< _CharT2, _Traits2 > & operator>> (basic_istream< _CharT2, _Traits2 > &, basic_string<
_CharT2, _Traits2, _Alloc > &)
• class ostreambuf_iterator< char_type, traits_type >

5.249.1 Detailed Description

template<typename _CharT, typename _Traits>


class std::basic_streambuf< _CharT, _Traits >

The actual work of input and output (interface).

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.

This is a base class. Derived stream buffers each control a pair of character sequences: one for input, and one for
output.
Section [27.5.1] of the standard describes the requirements and behavior of stream buffer classes. That section (three
paragraphs) is reproduced here, for simplicity and accuracy.

1. Stream buffers can impose various constraints on the sequences they control. Some constraints are:

• The controlled input sequence can be not readable.


• The controlled output sequence can be not writable.
• The controlled sequences can be associated with the contents of other representations for character se-
quences, such as external files.
• The controlled sequences can support operations directly to or from associated sequences.
• The controlled sequences can impose limitations on how the program can read characters from a sequence,
write characters to a sequence, put characters back into an input sequence, or alter the stream position.

Generated by Doxygen
1424

2. Each sequence is characterized by three pointers which, if non-null, all point into the same charT array ob-
ject. The array object represents, at any moment, a (sub)sequence of characters from the sequence. Operations
performed on a sequence alter the values stored in these pointers, perform reads and writes directly to or from as-
sociated sequences, and alter the stream position and conversion state as needed to maintain this subsequence
relationship. The three pointers are:

• the beginning pointer, or lowest element address in the array (called xbeg here);
• the next pointer, or next element address that is a current candidate for reading or writing (called xnext here);
• the end pointer, or first element address beyond the end of the array (called xend here).

3. The following semantic constraints shall always apply for any set of three pointers for a sequence, using the
pointer names given immediately above:

• If xnext is not a null pointer, then xbeg and xend shall also be non-null pointers into the same charT array,
as described above; otherwise, xbeg and xend shall also be null.
• If xnext is not a null pointer and xnext < xend for an output sequence, then a write position is available. In
this case, ∗xnext shall be assignable as the next element to write (to put, or to store a character value, into
the sequence).
• If xnext is not a null pointer and xbeg < xnext for an input sequence, then a putback position is available. In
this case, xnext[-1] shall have a defined value and is the next (preceding) element to store a character that
is put back into the input sequence.
• If xnext is not a null pointer and xnext< xend for an input sequence, then a read position is available. In
this case, ∗xnext shall have a defined value and is the next element to read (to get, or to obtain a character
value, from the sequence).

5.249.2 Member Typedef Documentation

__streambuf_type

template<typename _CharT , typename _Traits >


basic_streambuf<char_type, traits_type> std::basic_streambuf< _CharT, _Traits >::__streambuf_←-
type
This is a non-standard type.

char_type

template<typename _CharT , typename _Traits >


_CharT std::basic_streambuf< _CharT, _Traits >::char_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

int_type

template<typename _CharT , typename _Traits >


traits_type::int_type std::basic_streambuf< _CharT, _Traits >::int_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

off_type

template<typename _CharT , typename _Traits >


traits_type::off_type std::basic_streambuf< _CharT, _Traits >::off_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1425

pos_type

template<typename _CharT , typename _Traits >


traits_type::pos_type std::basic_streambuf< _CharT, _Traits >::pos_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

traits_type

template<typename _CharT , typename _Traits >


_Traits std::basic_streambuf< _CharT, _Traits >::traits_type
These are standard types. They permit a standardized way of referring to names of (or names dependent on) the
template parameters, which are specific to the implementation.

5.249.3 Constructor & Destructor Documentation

∼basic_streambuf()
template<typename _CharT , typename _Traits >
virtual std::basic_streambuf< _CharT, _Traits >::∼basic_streambuf () [inline], [virtual]
Destructor deallocates no buffer space.

basic_streambuf()

template<typename _CharT , typename _Traits >


std::basic_streambuf< _CharT, _Traits >::basic_streambuf () [inline], [protected]
Base constructor.
Only called from derived constructors, and sets up all the buffer data to zero, including the pointers described in the
basic_streambuf class description. Note that, as a result,

• the class starts with no read nor write positions available,

• this is not an error

5.249.4 Member Function Documentation

eback()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::eback () const [inline], [protected]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

egptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::egptr () const [inline], [protected]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

Generated by Doxygen
1426

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

epptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::epptr () const [inline], [protected]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

gbump()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::gbump (
int __n) [inline], [protected]
Moving the read position.

Parameters
_←- The delta by which to move.
_n

This just advances the read position without returning any data.

getloc()

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::getloc () const [inline]
Locale access.
Returns

The current locale in effect.

If pubimbue(loc) has been called, then the most recent loc is returned. Otherwise the global locale in effect at the time
of construction is returned.

gptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::gptr () const [inline], [protected]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1427

imbue()

template<typename _CharT , typename _Traits >


virtual void std::basic_streambuf< _CharT, _Traits >::imbue (
const locale & __loc) [inline], [protected], [virtual]
Changes translations.

Parameters
__loc A new locale.

Translations done during I/O which depend on the current locale are changed by this call. The standard adds, Between
invocations of this function a class derived from streambuf can safely cache results of calls to locale functions and to
members of facets so obtained.
Note

Base class version does nothing.

Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, and std::basic_filebuf< char_type, traits_type >.

in_avail()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::in_avail () [inline]
Looking ahead into the stream.

Returns

The number of characters available.

If a read position is available, returns the number of characters available for reading before the buffer must be refilled.
Otherwise returns the derived showmanyc().

overflow()

template<typename _CharT , typename _Traits >


virtual int_type std::basic_streambuf< _CharT, _Traits >::overflow (
int_type __c = traits_type::eof()) [inline], [protected], [virtual]
Consumes data from the buffer; writes to the controlled sequence.

Parameters
_←- An additional character to consume.
_c

Returns

eof() to indicate failure, something else (usually __c, or not_eof())

Informally, this function is called when the output buffer is full (or does not exist, as buffering need not actually be done).
If a buffer exists, it is consumed, with some effect on the controlled sequence. (Typically, the buffer is written out to the
sequence verbatim.) In either case, the character c is also written out, if __c is not eof().
For a formal definition of this function, see a good text such as Langer & Kreft, or [27.5.2.4.5]/3-7.
A functioning output streambuf can be created by overriding only this function (no buffer area will be used).

Generated by Doxygen
1428

Note

Base class version does nothing, returns eof().

Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, e
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, std::basic_stringbuf< _CharT, _T
and std::wbuffer_convert< _Codecvt, _Elem, _Tr >.

pbackfail()

template<typename _CharT , typename _Traits >


virtual int_type std::basic_streambuf< _CharT, _Traits >::pbackfail (
int_type __c = traits_type::eof()) [inline], [protected], [virtual]
Tries to back up the input sequence.

Parameters
_←- The character to be inserted back into the sequence.
_c

Returns

eof() on failure, some other value on success

Postcondition

The constraints of gptr(), eback(), and pptr() are the same as for underflow().

Note

Base class version does nothing, returns eof().

Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, e
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, and std::basic_stringbuf< _CharT

pbase()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::pbase () const [inline], [protected]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

pbump()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::pbump (
int __n) [inline], [protected]
Moving the write position.

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1429

Parameters
_←- The delta by which to move.
_n

This just advances the write position without returning any data.

pptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::pptr () const [inline], [protected]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

pubimbue()

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::pubimbue (
const locale & __loc) [inline]
Entry point for imbue().

Parameters
__loc The new locale.

Returns

The previous locale.

Calls the derived imbue(__loc).

pubseekoff()

template<typename _CharT , typename _Traits >


pos_type std::basic_streambuf< _CharT, _Traits >::pubseekoff (
off_type __off,
ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline]
Alters the stream position.

Parameters

__off Offset.
__way Value for ios_base::seekdir.
__mode Value for ios_base::openmode.

Calls virtual seekoff function.

Generated by Doxygen
1430

pubseekpos()

template<typename _CharT , typename _Traits >


pos_type std::basic_streambuf< _CharT, _Traits >::pubseekpos (
pos_type __sp,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline]
Alters the stream position.

Parameters
__sp Position
__mode Value for ios_base::openmode.

Calls virtual seekpos function.

pubsetbuf()

template<typename _CharT , typename _Traits >


basic_streambuf ∗ std::basic_streambuf< _CharT, _Traits >::pubsetbuf (
char_type ∗ __s,
streamsize __n) [inline]
Entry points for derived buffer functions.
The public versions of pubfoo dispatch to the protected derived foo member functions, passing the arguments (if
any) and returning the result unchanged.

pubsync()

template<typename _CharT , typename _Traits >


int std::basic_streambuf< _CharT, _Traits >::pubsync () [inline]
Calls virtual sync function.
Referenced by std::basic_istream< _CharT, _Traits >::sync().

sbumpc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sbumpc () [inline]
Getting the next character.

Returns

The next character, or eof.

If the input read position is available, returns that character and increments the read pointer, otherwise calls and returns
uflow().
Referenced by std::basic_istream< _CharT, _Traits >::getline(), std::istreambuf_iterator< _CharT, _Traits >::operator++(),
and std::istreambuf_iterator< _CharT, _Traits >::operator++().

seekoff()

template<typename _CharT , typename _Traits >


virtual pos_type std::basic_streambuf< _CharT, _Traits >::seekoff (
off_type ,
ios_base::seekdir ,
ios_base::openmode = ios_base::in | ios_base::out) [inline], [protected], [virtual]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1431

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, and std::basic_stringbuf< _CharT

seekpos()

template<typename _CharT , typename _Traits >


virtual pos_type std::basic_streambuf< _CharT, _Traits >::seekpos (
pos_type ,
ios_base::openmode = ios_base::in | ios_base::out) [inline], [protected], [virtual]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, and std::basic_stringbuf< _CharT

setbuf()

template<typename _CharT , typename _Traits >


virtual basic_streambuf< char_type, _Traits > ∗ std::basic_streambuf< _CharT, _Traits >::setbuf
(
char_type ∗ ,
streamsize ) [inline], [protected], [virtual]
Manipulates the buffer.
Each derived class provides its own appropriate behavior. See the next-to-last paragraph of https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/streambufs.html#io.streambuf.buffering for more on
this function.
Note

Base class version does nothing, returns this.

Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, and std::basic_stringbuf< _CharT

setg()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::setg (
char_type ∗ __gbeg,
char_type ∗ __gnext,
char_type ∗ __gend) [inline], [protected]
Setting the three read area pointers.

Parameters
__gbeg A pointer.
__gnext A pointer.
__gend A pointer.

Generated by Doxygen
1432

Postcondition

__gbeg == eback(), __gnext == gptr(), and __gend == egptr()

setp()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::setp (
char_type ∗ __pbeg,
char_type ∗ __pend) [inline], [protected]
Setting the three write area pointers.

Parameters
__pbeg A pointer.
__pend A pointer.

Postcondition

__pbeg == pbase(), __pbeg == pptr(), and __pend == epptr()

sgetc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sgetc () [inline]
Getting the next character.

Returns

The next character, or eof.

If the input read position is available, returns that character, otherwise calls and returns underflow(). Does not
move the read position after fetching the character.
Referenced by std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >::ignore(), std::istreambuf_iterator< _CharT, _Trait
and std::istreambuf_iterator< _CharT, _Traits >::operator++().

sgetn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::sgetn (
char_type ∗ __s,
streamsize __n) [inline]
Entry point for xsgetn.

Parameters

_←- A buffer area.


_s
_←- A count.
_n

Returns xsgetn(__s,__n). The effect is to fill __s[0] through __s[__n-1] with characters from the input sequence, if
possible.

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1433

showmanyc()

template<typename _CharT , typename _Traits >


virtual streamsize std::basic_streambuf< _CharT, _Traits >::showmanyc () [inline], [protected],
[virtual]
Investigating the data available.

Returns

An estimate of the number of characters available in the input sequence, or -1.

If it returns a positive value, then successive calls to underflow() will not return traits::eof() until at least that
number of characters have been supplied. If showmanyc() returns -1, then calls to underflow() or uflow()
will fail. [27.5.2.4.3]/1

Note

Base class version does nothing, returns zero.


The standard adds that the intention is not only that the calls [to underflow or uflow] will not return eof() but that
they will return immediately.
The standard adds that the morphemes of showmanyc are es-how-many-see, not show-manic.

Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, and std::basic_stringbuf< _CharT

snextc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::snextc () [inline]
Getting the next character.

Returns

The next character, or eof.

Calls sbumpc(), and if that function returns traits::eof(), so does this function. Otherwise, sgetc().
Referenced by std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, char_traits< _CharT > >::ignore(),
std::basic_istream< _CharT, char_traits< _CharT > >::operator>>(), and std::basic_istream< _CharT, char_traits< _CharT > >::putba

sputbackc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sputbackc (
char_type __c) [inline]
Pushing characters back into the input stream.

Parameters
_←- The character to push back.
_c

Returns

The previous character, if possible.

Similar to sungetc(), but __c is pushed onto the stream instead of the previous character. If successful, the next character
fetched from the input stream will be __c.
Referenced by std::basic_istream< _CharT, _Traits >::putback().

Generated by Doxygen
1434

sputc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sputc (
char_type __c) [inline]
Entry point for all single-character output functions.

Parameters
_←- A character to output.
_c

Returns

__c, if possible.

One of two public output functions.


If a write position is available for the output sequence (i.e., the buffer is not full), stores __c in that position, increments
the position, and returns traits::to_int_type(__c). If a write position is not available, returns overflow(←-
__c).
Referenced by std::ostreambuf_iterator< _CharT, _Traits >::operator=().

sputn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::sputn (
const char_type ∗ __s,
streamsize __n) [inline]
Entry point for all single-character output functions.

Parameters

_←- A buffer read area.


_s
_←- A count.
_n

One of two public output functions.


Returns xsputn(__s,__n). The effect is to write __s[0] through __s[__n-1] to the output sequence, if possible.

sungetc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sungetc () [inline]
Moving backwards in the input stream.

Returns

The previous character, if possible.

If a putback position is available, this function decrements the input pointer and returns that character. Otherwise, calls
and returns pbackfail(). The effect is to unget the last character gotten.
Referenced by std::basic_istream< _CharT, char_traits< _CharT > >::sentry::sentry().

Generated by Doxygen
5.249 std::basic_streambuf< _CharT, _Traits > Class Template Reference 1435

sync()

template<typename _CharT , typename _Traits >


virtual int std::basic_streambuf< _CharT, _Traits >::sync () [inline], [protected], [virtual]
Synchronizes the buffer arrays with the controlled sequences.

Returns

-1 on failure.

Each derived class provides its own appropriate behavior, including the definition of failure.

Note

Base class version does nothing, returns zero.

Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, e
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, and std::wbuffer_convert< _Code

uflow()

template<typename _CharT , typename _Traits >


virtual int_type std::basic_streambuf< _CharT, _Traits >::uflow () [inline], [protected], [virtual]
Fetches more data from the controlled sequence.

Returns

The first character from the pending sequence.

Informally, this function does the same thing as underflow(), and in fact is required to call that function. It also
returns the new character, like underflow() does. However, this function also moves the read position forward by
one.
Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >.

underflow()

template<typename _CharT , typename _Traits >


virtual int_type std::basic_streambuf< _CharT, _Traits >::underflow () [inline], [protected],
[virtual]
Fetches more data from the controlled sequence.

Returns

The first character from the pending sequence.

Informally, this function is called when the input buffer is exhausted (or does not exist, as buffering need not actually be
done). If a buffer exists, it is refilled. In either case, the next available character is returned, or traits::eof() to
indicate a null pending sequence.
For a formal definition of the pending sequence, see a good text such as Langer & Kreft, or [27.5.2.4.3]/7-14.
A functioning input streambuf can be created by overriding only this function (no buffer area will be used). For an
example, see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html

Note

Base class version does nothing, returns eof().

Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, e
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, std::basic_stringbuf< _CharT, _T
and std::wbuffer_convert< _Codecvt, _Elem, _Tr >.

Generated by Doxygen
1436

xsgetn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::xsgetn (
char_type ∗ __s,
streamsize __n) [protected], [virtual]
Multiple character extraction.

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to assign.
_n

Returns

The number of characters assigned.

Fills __s[0] through __s[__n-1] with characters from the input sequence, as if by sbumpc(). Stops when either __n
characters have been copied, or when traits::eof() would be copied.
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, and std::basic_filebuf< char_type, traits_type >.
References std::min().

xsputn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::xsputn (
const char_type ∗ __s,
streamsize __n) [protected], [virtual]
Multiple character insertion.

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to write.
_n

Returns

The number of characters written.

Writes __s[0] through __s[__n-1] to the output sequence, as if by sputc(). Stops when either n characters have been
copied, or when sputc() would return traits::eof().
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, and std::basic_filebuf< char_type, traits_type >.
References std::min().

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1437

5.249.5 Member Data Documentation

_M_buf_locale

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::_M_buf_locale [protected]
Current locale setting.
Referenced by std::basic_filebuf< _CharT, _Traits >::basic_filebuf().

_M_in_beg

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_beg [protected]
Start of get area.

_M_in_cur

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_cur [protected]
Current read area.

_M_in_end

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_end [protected]
End of get area.

_M_out_beg

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_beg [protected]
Start of put area.

_M_out_cur

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_cur [protected]
Current put area.

_M_out_end

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_end [protected]
End of put area.
The documentation for this class was generated from the following files:

• iosfwd
• streambuf
• streambuf.tcc

5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template


Reference
#include <string>

Generated by Doxygen
1438

Inheritance diagram for __gnu_debug::basic_string< _CharT, _Traits, _Allocator >:

__gnu_debug::_Safe
_container< _SafeContainer,
_Alloc, _SafeBase, _IsCxx11Allocator
Aware > __gnu_debug::basic
_string< _CharT, _Traits,
_Allocator >
std::basic_string<
_CharT, _Traits, _Alloc >

Public Types

• typedef _Allocator allocator_type


• typedef __gnu_debug::_Safe_iterator< typename _Base::const_iterator, basic_string > const_iterator
• typedef _Base::const_pointer const_pointer
• typedef _Base::const_reference const_reference
• typedef std::reverse_iterator< const_iterator > const_reverse_iterator
• typedef _Base::difference_type difference_type
• typedef __gnu_debug::_Safe_iterator< typename _Base::iterator, basic_string > iterator
• typedef _Base::pointer pointer
• typedef _Base::reference reference
• typedef std::reverse_iterator< iterator > reverse_iterator
• typedef _Base::size_type size_type
• typedef _Traits traits_type
• typedef _Traits::char_type value_type

Public Member Functions

• basic_string (_Base &&__base) noexcept


• template<typename _InputIterator >
basic_string (_InputIterator __begin, _InputIterator __end, const _Allocator &__a=_Allocator())
• basic_string (basic_string &&)=default
• basic_string (basic_string &&__s, const _Allocator &__a) noexcept(std::is_nothrow_constructible< _Base,
_Base, const _Allocator & >::value)
• basic_string (const _Allocator &__a) noexcept
• basic_string (const _Base &__base)
• basic_string (const _CharT ∗__s, const _Allocator &__a=_Allocator())
• basic_string (const _CharT ∗__s, size_type __n, const _Allocator &__a=_Allocator())
• basic_string (const basic_string &)=default
• basic_string (const basic_string &__s, const _Allocator &__a)
• basic_string (const basic_string &__str, size_type __pos, size_type __n=_Base::npos, const _Allocator &__←-
a=_Allocator())
• basic_string (size_type __n, _CharT __c, const _Allocator &__a=_Allocator())
• basic_string (std::initializer_list< _CharT > __l, const _Allocator &__a=_Allocator())
• template<typename _Operation >
constexpr void __resize_and_overwrite (size_type __n, _Operation __op)

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1439

• template<typename _Operation >


void __resize_and_overwrite (size_type __n, _Operation __op)
• const _Base & _M_base () const noexcept
• _Base & _M_base () noexcept
• template<typename _InputIterator >
basic_string< _CharT, _Traits, _Alloc > & _M_replace_dispatch (iterator __i1, iterator __i2, _InputIterator __k1,
_InputIterator __k2, __false_type)
• template<typename _InIterator >
_CharT ∗ _S_construct (_InIterator __beg, _InIterator __end, const _Alloc &__a, forward_iterator_tag)
• template<typename _InputIterator >
basic_string & append (_InputIterator __first, _InputIterator __last)
• basic_string & append (const _CharT ∗__s)
• basic_string & append (const _CharT ∗__s, size_type __n)
• basic_string & append (const basic_string &__str)
• basic_string & append (const basic_string &__str, size_type __pos, size_type __n)
• basic_string & append (size_type __n, _CharT __c)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > append (const _Tp &__svt)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > append (const _Tp &__svt, size_type __pos, size_type __n=npos)
• constexpr basic_string & append (const basic_string &__str)
• constexpr basic_string & append (const basic_string &__str, size_type __pos, size_type __n=npos)
• constexpr basic_string & append (initializer_list< _CharT > __l)
• template<typename _InputIterator >
basic_string & assign (_InputIterator __first, _InputIterator __last)
• basic_string & assign (basic_string &&__x) noexcept(noexcept(std::declval< _Base & >().assign(std::move(_←-
_x))))
• basic_string & assign (const _CharT ∗__s)
• basic_string & assign (const _CharT ∗__s, size_type __n)
• basic_string & assign (const basic_string &__str, size_type __pos, size_type __n)
• basic_string & assign (const basic_string &__x)
• basic_string & assign (size_type __n, _CharT __c)
• basic_string & assign (std::initializer_list< _CharT > __l)
• constexpr basic_string & assign (basic_string &&__str) noexcept(_Alloc_traits::_S_nothrow_move())
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > assign (const _Tp &__svt)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > assign (const _Tp &__svt, size_type __pos, size_type __n=npos)
• constexpr basic_string & assign (const basic_string &__str)
• constexpr basic_string & assign (const basic_string &__str, size_type __pos, size_type __n=npos)
• constexpr reference at (size_type __n)
• constexpr const_reference at (size_type __n) const
• constexpr const_reference back () const noexcept
• constexpr reference back () noexcept
• iterator begin ()
• const_iterator begin () const noexcept
• const _CharT ∗ c_str () const noexcept
• constexpr size_type capacity () const noexcept
• const_iterator cbegin () const noexcept
• const_iterator cend () const noexcept
• void clear ()

Generated by Doxygen
1440

• constexpr int compare (const _CharT ∗__s) const noexcept


• template<typename _Tp >
constexpr _If_sv< _Tp, int > compare (const _Tp &__svt) const noexcept(is_same< _Tp, __sv_type >::value)
• constexpr int compare (const basic_string &__str) const
• template<typename _Tp >
constexpr _If_sv< _Tp, int > compare (size_type __pos, size_type __n, const _Tp &__svt) const noexcept(is_←-
same< _Tp, __sv_type >::value)
• constexpr int compare (size_type __pos, size_type __n, const basic_string &__str) const
• constexpr int compare (size_type __pos1, size_type __n1, const _CharT ∗__s) const
• constexpr int compare (size_type __pos1, size_type __n1, const _CharT ∗__s, size_type __n2) const
• template<typename _Tp >
constexpr _If_sv< _Tp, int > compare (size_type __pos1, size_type __n1, const _Tp &__svt, size_type __pos2,
size_type __n2=npos) const noexcept(is_same< _Tp, __sv_type >::value)
• constexpr int compare (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type
__n2=npos) const
• size_type copy (_CharT ∗__s, size_type __n, size_type __pos=0) const
• const_reverse_iterator crbegin () const noexcept
• const_reverse_iterator crend () const noexcept
• const _CharT ∗ data () const noexcept
• constexpr _CharT ∗ data () noexcept
• constexpr bool empty () const noexcept
• iterator end ()
• const_iterator end () const noexcept
• constexpr bool ends_with (_CharT __x) const noexcept
• bool ends_with (_CharT __x) const noexcept
• constexpr bool ends_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• bool ends_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• constexpr bool ends_with (const _CharT ∗__x) const noexcept
• bool ends_with (const _CharT ∗__x) const noexcept
• iterator erase (__const_iterator __first, __const_iterator __last)
• iterator erase (__const_iterator __position)
• basic_string & erase (size_type __pos=0, size_type __n=_Base::npos)
• constexpr iterator erase (__const_iterator __first, __const_iterator __last)
• constexpr iterator erase (__const_iterator __position)
• iterator erase (iterator __first, iterator __last)
• iterator erase (iterator __position)
• constexpr size_type find (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find (const _CharT ∗__s, size_type __pos=0) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp,
__sv_type >::value)
• constexpr size_type find (const basic_string &__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_first_not_of (const _CharT ∗__s, size_type __pos=0) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_first_not_of (const _Tp &__svt, size_type __pos=0) const noexcept(is←-
_same< _Tp, __sv_type >::value)
• constexpr size_type find_first_not_of (const basic_string &__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1441

• constexpr size_type find_first_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_first_of (const _CharT ∗__s, size_type __pos=0) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_first_of (const _Tp &__svt, size_type __pos=0) const noexcept(is_←-
same< _Tp, __sv_type >::value)
• constexpr size_type find_first_of (const basic_string &__str, size_type __pos=0) const noexcept
• constexpr size_type find_last_not_of (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type find_last_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_last_not_of (const _CharT ∗__s, size_type __pos=_Base::npos) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_last_not_of (const _Tp &__svt, size_type __pos=npos) const
noexcept(is_same< _Tp, __sv_type >::value)
• constexpr size_type find_last_not_of (const basic_string &__str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_last_of (const _CharT ∗__s, size_type __pos=_Base::npos) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_last_of (const _Tp &__svt, size_type __pos=npos) const noexcept(is←-
_same< _Tp, __sv_type >::value)
• constexpr size_type find_last_of (const basic_string &__str, size_type __pos=npos) const noexcept
• constexpr const_reference front () const noexcept
• constexpr reference front () noexcept
• constexpr allocator_type get_allocator () const noexcept
• iterator insert (__const_iterator __p, _CharT __c)
• template<typename _InputIterator >
iterator insert (__const_iterator __p, _InputIterator __first, _InputIterator __last)
• iterator insert (const_iterator __p, size_type __n, _CharT __c)
• iterator insert (const_iterator __p, std::initializer_list< _CharT > __l)
• basic_string & insert (size_type __pos, const _CharT ∗__s)
• basic_string & insert (size_type __pos, const _CharT ∗__s, size_type __n)
• basic_string & insert (size_type __pos, size_type __n, _CharT __c)
• basic_string & insert (size_type __pos1, const basic_string &__str)
• basic_string & insert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __n)
• constexpr iterator insert (__const_iterator __p, _CharT __c)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
constexpr iterator insert (const_iterator __p, _InputIterator __beg, _InputIterator __end)
• constexpr iterator insert (const_iterator __p, initializer_list< _CharT > __l)
• constexpr iterator insert (const_iterator __p, size_type __n, _CharT __c)
• iterator insert (iterator __p, _CharT __c)
• template<class _InputIterator >
void insert (iterator __p, _InputIterator __beg, _InputIterator __end)
• void insert (iterator __p, initializer_list< _CharT > __l)
• void insert (iterator __p, size_type __n, _CharT __c)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > insert (size_type __pos, const _Tp &__svt)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > insert (size_type __pos1, const _Tp &__svt, size_type __pos2, size_←-
type __n=npos)
• constexpr basic_string & insert (size_type __pos1, const basic_string &__str)
• constexpr basic_string & insert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __←-
n=npos)

Generated by Doxygen
1442

• constexpr size_type length () const noexcept


• constexpr size_type max_size () const noexcept
• constexpr operator __sv_type () const noexcept
• basic_string & operator+= (_CharT __c)
• basic_string & operator+= (const _CharT ∗__s)
• basic_string & operator+= (const basic_string &__str)
• basic_string & operator+= (std::initializer_list< _CharT > __l)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > operator+= (const _Tp &__svt)
• constexpr basic_string & operator+= (const basic_string &__str)
• basic_string & operator= (_CharT __c)
• basic_string & operator= (basic_string &&)=default
• basic_string & operator= (const _CharT ∗__s)
• basic_string & operator= (const basic_string &)=default
• basic_string & operator= (std::initializer_list< _CharT > __l)
• reference operator[ ] (size_type __pos)
• const_reference operator[ ] (size_type __pos) const noexcept
• void pop_back ()
• void push_back (_CharT __c)
• reverse_iterator rbegin ()
• const_reverse_iterator rbegin () const noexcept
• reverse_iterator rend ()
• const_reverse_iterator rend () const noexcept
• template<typename _InputIterator >
basic_string & replace (__const_iterator __i1, __const_iterator __i2, _InputIterator __j1, _InputIterator __j2)
• basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__s)
• basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__s, size_type __n)
• basic_string & replace (__const_iterator __i1, __const_iterator __i2, const basic_string &__str)
• basic_string & replace (__const_iterator __i1, __const_iterator __i2, size_type __n, _CharT __c)
• basic_string & replace (__const_iterator __i1, __const_iterator __i2, std::initializer_list< _CharT > __l)
• basic_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s)
• basic_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s, size_type __n2)
• basic_string & replace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
• basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str)
• basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_←-
type __n2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, _CharT ∗__k1, _CharT ∗__k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__k1, const _←-
CharT ∗__k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__s)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__s, size_type __n)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const basic_string &__str)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const_iterator __k1, const_iterator
__k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, iterator __k1, iterator __k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, size_type __n, _CharT __c)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
constexpr basic_string & replace (const_iterator __i1, const_iterator __i2, _InputIterator __k1, _InputIterator __k2)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > replace (const_iterator __i1, const_iterator __i2, const _Tp &__svt)
• constexpr basic_string & replace (const_iterator __i1, const_iterator __i2, initializer_list< _CharT > __l)

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1443

• basic_string & replace (iterator __i1, iterator __i2, _CharT ∗__k1, _CharT ∗__k2)
• template<class _InputIterator >
basic_string & replace (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2)
• basic_string & replace (iterator __i1, iterator __i2, const _CharT ∗__k1, const _CharT ∗__k2)
• basic_string & replace (iterator __i1, iterator __i2, const _CharT ∗__s)
• basic_string & replace (iterator __i1, iterator __i2, const _CharT ∗__s, size_type __n)
• basic_string & replace (iterator __i1, iterator __i2, const basic_string &__str)
• basic_string & replace (iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2)
• basic_string & replace (iterator __i1, iterator __i2, initializer_list< _CharT > __l)
• basic_string & replace (iterator __i1, iterator __i2, iterator __k1, iterator __k2)
• basic_string & replace (iterator __i1, iterator __i2, size_type __n, _CharT __c)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > replace (size_type __pos, size_type __n, const _Tp &__svt)
• constexpr basic_string & replace (size_type __pos, size_type __n, const basic_string &__str)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > replace (size_type __pos1, size_type __n1, const _Tp &__svt, size_type
__pos2, size_type __n2=npos)
• constexpr basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __←-
pos2, size_type __n2=npos)
• constexpr void reserve ()
• constexpr void reserve (size_type __res_arg)
• void resize (size_type __n)
• void resize (size_type __n, _CharT __c)
• constexpr size_type rfind (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type rfind (const _CharT ∗__s, size_type __pos, size_type __n) const
• constexpr size_type rfind (const _CharT ∗__s, size_type __pos=_Base::npos) const
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > rfind (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same<
_Tp, __sv_type >::value)
• constexpr size_type rfind (const basic_string &__str, size_type __pos=npos) const noexcept
• void shrink_to_fit () noexcept
• constexpr size_type size () const noexcept
• constexpr bool starts_with (_CharT __x) const noexcept
• bool starts_with (_CharT __x) const noexcept
• constexpr bool starts_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• bool starts_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• constexpr bool starts_with (const _CharT ∗__x) const noexcept
• bool starts_with (const _CharT ∗__x) const noexcept
• basic_string substr (size_type __pos=0, size_type __n=_Base::npos) const
• void swap (basic_string &__x) noexcept(/∗conditional ∗/)
• constexpr void swap (basic_string &__s) noexcept

Static Public Attributes

• static const size_type npos

Protected Member Functions

• constexpr void _M_swap (_Safe_container &__x) noexcept

Generated by Doxygen
1444

Friends

• template<typename _ItT , typename _SeqT , typename _CatT >


class ::__gnu_debug::_Safe_iterator

5.250.1 Detailed Description

template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Allocator = std←-


::allocator<_CharT>>
class __gnu_debug::basic_string< _CharT, _Traits, _Allocator >

Class std::basic_string with safety/checking/debug instrumentation.

5.250.2 Member Function Documentation

__resize_and_overwrite() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Operation >
void std::basic_string< _CharT, _Traits, _Alloc >::__resize_and_overwrite (
size_type __n,
_Operation __op) [constexpr], [inherited]
Non-standard version of resize_and_overwrite for C++11 and above.

__resize_and_overwrite() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Operation >
void std::basic_string< _CharT, _Traits, _Alloc >::__resize_and_overwrite (
size_type __n,
_Operation __op) [inherited]
Non-standard version of resize_and_overwrite for C++11 and above.

append() [1/5]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::append (
const _Tp & __svt) [inline], [constexpr], [inherited]
Append a string_view.

Parameters
__svt An object convertible to string_view to be appended.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1445

append() [2/5]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::append (
const _Tp & __svt,
size_type __pos,
size_type __n = npos) [inline], [constexpr], [inherited]
Append a range of characters from a string_view.

Parameters

__svt An object convertible to string_view to be appended from.


__pos The position in the string_view to append from.
__n The number of characters to append from the string_view.

Returns

Reference to this string.

append() [3/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr], [inherited]
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().


Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::append(),
std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::append(),
std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(),
std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(),
std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::operator>>(), and std::basic_string< _CharT, _Traits, _Alloc >::resize().

append() [4/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n = npos) [inline], [constexpr], [inherited]
Append a substring.

Generated by Doxygen
1446

Parameters
__str The string to append.
__pos Index of the first character of str to append.
__n The number of characters to append.

Returns

Reference to this string.

Exceptions

std::out_of_range if __pos is not a valid index.

This function appends __n characters from __str starting at __pos to this string. If __n is is larger than the number of
available characters in __str, the remainder of __str is appended.
References std::basic_string< _CharT, _Traits, _Alloc >::append().

append() [5/5]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
initializer_list< _CharT > __l) [inline], [constexpr], [inherited]
Append an initializer_list of characters.

Parameters

←- The initializer_list of characters to append.


_←-
←-
_←-
l

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

assign() [1/5]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [constexpr], [noexcept],
[inherited]
Set value to contents of another string.

Parameters

__str Source string to use.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1447

Returns

Reference to this string.

This function sets this string to the exact contents of __str. __str is a valid, but unspecified string.
References std::move().

assign() [2/5]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _Tp & __svt) [inline], [constexpr], [inherited]
Set value from a string_view.

Parameters
__svt The source object convertible to string_view.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

assign() [3/5]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _Tp & __svt,
size_type __pos,
size_type __n = npos) [inline], [constexpr], [inherited]
Set value from a range of characters in a string_view.

Parameters
__svt The source object convertible to string_view.
__pos The position in the string_view to assign from.
__n The number of characters to assign.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::size().

assign() [4/5]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr], [inherited]
Set value to contents of another string.

Generated by Doxygen
1448

Parameters

__str Source string to use.

Returns

Reference to this string.

Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(),
std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _
std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(),
std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(),
and std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow().

assign() [5/5]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n = npos) [inline], [constexpr], [inherited]
Set value to a substring of a string.

Parameters
__str The string to use.
__pos Index of the first character of str.
__n Number of characters to use.

Returns

Reference to this string.

Exceptions

std::out_of_range if pos is not a valid index.

This function sets this string to the substring of __str consisting of __n characters at __pos. If __n is is larger than the
number of available characters in __str, the remainder of __str is used.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

at() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::at (
size_type __n) [inline], [nodiscard], [constexpr]
Provides access to the data contained in the string.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1449

Parameters

_←- The index of the character to access.


_n

Returns

Read/write reference to the character.

Exceptions

std::out_of_range If n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails.

at() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::at (
size_type __n) const [inline], [nodiscard], [constexpr]
Provides access to the data contained in the string.

Parameters

_←- The index of the character to access.


_n

Returns

Read-only (const) reference to the character.

Exceptions

std::out_of_range If n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails.

back() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::back () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) reference to the data at the last element of the string.

back() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::back () [inline], [nodiscard], [constexpr],
[noexcept]
Returns a read/write reference to the data at the last element of the string.

Generated by Doxygen
1450

capacity()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::capacity () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns the total number of characters that the string can hold before needing to allocate more memory.

compare() [1/6]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (
const _Tp & __svt) const [inline], [nodiscard], [constexpr], [noexcept]
Compare to a string_view.

Parameters
__svt An object convertible to string_view to compare against.

Returns

Integer < 0, 0, or > 0.

compare() [2/6]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
const basic_string< _CharT, _Traits, _Allocator > & __str) const [inline], [nodiscard],
[constexpr]
Compare to a string.

Parameters

__str String to compare against.

Returns

Integer < 0, 0, or > 0.

Returns an integer < 0 if this string is ordered before __str, 0 if their values are equivalent, or > 0 if this string is ordered
after __str. Determines the effective length rlen of the strings to compare as the smallest of size() and str.size(). The
function then compares the two strings by calling traits::compare(data(), str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.

compare() [3/6]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1451

size_type __n,
const _Tp & __svt) const [inline], [nodiscard], [constexpr], [noexcept]
Compare to a string_view.

Generated by Doxygen
1452

Parameters

__pos A position in the string to start comparing from.


__n The number of characters to compare.
__svt An object convertible to string_view to compare against.

Returns

Integer < 0, 0, or > 0.

compare() [4/6]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n,
const basic_string< _CharT, _Traits, _Allocator > & __str) const [inline], [nodiscard],
[constexpr]
Compare substring to a string.

Parameters

__pos Index of first character of substring.


__n Number of characters in substring.
__str String to compare against.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n characters starting at __pos. Returns an integer < 0 if the substring
is ordered before __str, 0 if their values are equivalent, or > 0 if the substring is ordered after __str. Determines the
effective length rlen of the strings to compare as the smallest of the length of the substring and __str.size(). The function
then compares the two strings by calling traits::compare(substring.data(),str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.

compare() [5/6]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos1,
size_type __n1,
const _Tp & __svt,
size_type __pos2,
size_type __n2 = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Compare to a string_view.

Parameters

__pos1 A position in the string to start comparing from.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1453

Parameters

__n1 The number of characters to compare.


__svt An object convertible to string_view to compare against.
__pos2 A position in the string_view to start comparing from.
__n2 The number of characters to compare.

Returns

Integer < 0, 0, or > 0.

compare() [6/6]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos1,
size_type __n1,
const basic_string< _CharT, _Traits, _Allocator > & __str,
size_type __pos2,
size_type __n2 = npos) const [inline], [nodiscard], [constexpr]
Compare substring to a substring.

Parameters

__pos1 Index of first character of substring.


__n1 Number of characters in substring.
__str String to compare against.
__pos2 Index of first character of substring of str.
__n2 Number of characters in substring of str.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos1. Form the substring of __str from the
__n2 characters starting at __pos2. Returns an integer < 0 if this substring is ordered before the substring of __str,
0 if their values are equivalent, or > 0 if this substring is ordered after the substring of __str. Determines the effective
length rlen of the strings to compare as the smallest of the lengths of the substrings. The function then compares the
two strings by calling traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). If the result of the comparison is
nonzero returns it, otherwise the shorter one is ordered first.

data()

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
_CharT ∗ std::basic_string< _CharT, _Traits, _Alloc >::data () [inline], [nodiscard], [constexpr],
[noexcept], [inherited]
Return non-const pointer to contents.
This is a pointer to the character sequence held by the string. Modifying the characters in the sequence is allowed.

Generated by Doxygen
1454

empty()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
bool std::basic_string< _CharT, _Traits, _Alloc >::empty () const [inline], [nodiscard], [constexpr],
[noexcept]
Returns true if the string is empty. Equivalent to ∗this == "".

erase() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (
__const_iterator __first,
__const_iterator __last) [inline], [constexpr], [inherited]
Remove a range of characters.

Parameters

__first Iterator referencing the first character to remove.


__last Iterator referencing the end of the range.

Returns

Iterator referencing location of first after removal.


Removes the characters in the range [first,last) from this string. The value of the string doesn't change if an error is
thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

erase() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (
__const_iterator __position) [inline], [constexpr], [inherited]
Remove one character.
Parameters

__position Iterator referencing the character to remove.

Returns

iterator referencing same location after removal.


Removes the character at __position from this string. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

erase() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::iterator std::basic_string< _CharT, _Traits, _Alloc >←-
::erase (
iterator __first,
iterator __last) [inherited]
Remove a range of characters.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1455

Parameters

__first Iterator referencing the first character to remove.


__last Iterator referencing the end of the range.

Returns

Iterator referencing location of first after removal.

Removes the characters in the range [first,last) from this string. The value of the string doesn't change if an error is
thrown.

erase() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (
iterator __position) [inline], [inherited]
Remove one character.

Parameters

__position Iterator referencing the character to remove.

Returns

iterator referencing same location after removal.

Removes the character at __position from this string. The value of the string doesn't change if an error is thrown.

find() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find (
_CharT __c,
size_type __pos = 0) const [nodiscard], [constexpr], [noexcept]
Find position of a character.

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.

Generated by Doxygen
1456

find() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find (
const _Tp & __svt,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a string_view.

Parameters
__svt The object convertible to string_view to locate.
__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

find() [3/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find (
const basic_string< _CharT, _Traits, _Allocator > & __str,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a string.

Parameters

__str String to locate.


__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for value of __str within this string. If found, returns the index where it begins. If
not found, returns npos.

find_first_not_of() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_first_not_of (
_CharT __c,
size_type __pos = 0) const [nodiscard], [constexpr], [noexcept]
Find position of a different character.

Parameters

__c Character to avoid.


__pos Index of character to search from (default 0).

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1457

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character other than __c within this string. If found, returns the index where
it was found. If not found, returns npos.

find_first_not_of() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const _Tp & __svt,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character not in a string_view.

Parameters
__svt A object convertible to string_view containing characters to avoid.
__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

find_first_not_of() [3/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const basic_string< _CharT, _Traits, _Allocator > & __str,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character not in string.

Parameters

__str String containing characters to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in __str within this string. If found, returns the index
where it was found. If not found, returns npos.

find_first_of() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
_CharT __c,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character.

Generated by Doxygen
1458

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for the character __c within this string. If found, returns the index where it was
found. If not found, returns npos.
Note: equivalent to find(__c, __pos).

find_first_of() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const _Tp & __svt,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character of a string_view.

Parameters
__svt An object convertible to string_view containing characters to locate.
__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

find_first_of() [3/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const basic_string< _CharT, _Traits, _Allocator > & __str,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character of string.

Parameters

__str String containing characters to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1459

find_last_not_of() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_last_not_of (
_CharT __c,
size_type __pos = npos) const [nodiscard], [constexpr], [noexcept]
Find last position of a different character.

Parameters

__c Character to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character other than __c within this string. If found, returns the index
where it was found. If not found, returns npos.

find_last_not_of() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const _Tp & __svt,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character not in a string_view.

Parameters
__svt An object convertible to string_view containing characters to avoid.
__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

find_last_not_of() [3/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const basic_string< _CharT, _Traits, _Allocator > & __str,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character not in string.

Parameters

__str String containing characters to avoid.


__pos Index of character to search back from (default end).

Generated by Doxygen
1460

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in __str within this string. If found, returns the
index where it was found. If not found, returns npos.

find_last_of() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
_CharT __c,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character.

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
Note: equivalent to rfind(__c, __pos).

find_last_of() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const _Tp & __svt,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character of string.

Parameters
__svt An object convertible to string_view containing characters to locate.
__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

find_last_of() [3/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const basic_string< _CharT, _Traits, _Allocator > & __str,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character of string.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1461

Parameters

__str String containing characters to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.

front() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::front () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) reference to the data at the first element of the string.

front() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::front () [inline], [nodiscard], [constexpr],
[noexcept]
Returns a read/write reference to the data at the first element of the string.

get_allocator()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
allocator_type std::basic_string< _CharT, _Traits, _Alloc >::get_allocator () const [inline],
[nodiscard], [constexpr], [noexcept]
Return copy of allocator used to construct this string.

insert() [1/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
__const_iterator __p,
_CharT __c) [inline], [constexpr], [inherited]
Insert one character.

Parameters

_←- Iterator referencing position in string to insert at.


_p
_←- The character to insert.
_c

Returns

Iterator referencing newly inserted char.

Generated by Doxygen
1462

Exceptions

std::length_error If new length exceeds max_size().

Inserts character __c at position referenced by __p. If adding character causes the length to exceed max_size(),
length_error is thrown. If __p is beyond end of string, out_of_range is thrown. The value of the string doesn't change if
an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

insert() [2/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
const_iterator __p,
_InputIterator __beg,
_InputIterator __end) [inline], [constexpr], [inherited]
Insert a range of characters.

Parameters

__p Const_iterator referencing location in string to insert at.


__beg Start of range.
__end End of range.

Returns

Iterator referencing the first inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts characters in range [beg,end). If adding characters causes the length to exceed max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [3/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
const_iterator __p,
initializer_list< _CharT > __l) [inline], [constexpr], [inherited]
Insert an initializer_list of characters.

Parameters

_←- Iterator referencing location in string to insert at.


_p

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1463

_←- The initializer_list of characters to insert.


_l

Generated by Doxygen
1464

Exceptions

std::length_error If new length exceeds max_size().

References std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [4/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
const_iterator __p,
size_type __n,
_CharT __c) [inline], [constexpr], [inherited]
Insert multiple characters.

Parameters

_←- Const_iterator referencing location in string to insert at.


_p
_←- Number of characters to insert
_n
_←- The character to insert.
_c

Returns

Iterator referencing the first inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts __n copies of character __c starting at the position referenced by iterator __p. If adding characters causes the
length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::basic_string< _CharT, _Traits, _Alloc >::replace().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(),
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
and std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [5/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
_CharT __c) [inline], [inherited]
Insert one character.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1465

Parameters

_←- Iterator referencing position in string to insert at.


_p
_←- The character to insert.
_c

Returns

Iterator referencing newly inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts character __c at position referenced by __p. If adding character causes the length to exceed max_size(),
length_error is thrown. If __p is beyond end of string, out_of_range is thrown. The value of the string doesn't change if
an error is thrown.

insert() [6/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator >
void std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
_InputIterator __beg,
_InputIterator __end) [inline], [inherited]
Insert a range of characters.

Parameters

__p Iterator referencing location in string to insert at.


__beg Start of range.
__end End of range.

Exceptions

std::length_error If new length exceeds max_size().

Inserts characters in range [__beg,__end). If adding characters causes the length to exceed max_size(), length_error
is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [7/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
initializer_list< _CharT > __l) [inline], [inherited]
Insert an initializer_list of characters.

Generated by Doxygen
1466

Parameters

_←- Iterator referencing location in string to insert at.


_p
_←- The initializer_list of characters to insert.
_l

Exceptions

std::length_error If new length exceeds max_size().

References std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [8/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
size_type __n,
_CharT __c) [inline], [inherited]
Insert multiple characters.

Parameters

_←- Iterator referencing location in string to insert at.


_p
_←- Number of characters to insert
_n
_←- The character to insert.
_c

Exceptions

std::length_error If new length exceeds max_size().

Inserts __n copies of character __c starting at the position referenced by iterator __p. If adding characters causes the
length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [9/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
const _Tp & __svt) [inline], [constexpr], [inherited]
Insert a string_view.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1467

Parameters
__pos Position in string to insert at.
__svt The object convertible to string_view to insert.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [10/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const _Tp & __svt,
size_type __pos2,
size_type __n = npos) [inline], [constexpr], [inherited]
Insert a string_view.

Parameters
__pos1 Position in string to insert at.
__svt The object convertible to string_view to insert from.
__pos2 Start of characters in str to insert.
__n The number of characters to insert.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [11/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr], [inherited]
Insert value of a string.

Parameters
__pos1 Position in string to insert at.
__str The string to insert.

Returns

Reference to this string.

Generated by Doxygen
1468

Exceptions

std::length_error If new length exceeds max_size().

Inserts value of __str starting at __pos1. If adding characters causes the length to exceed max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [12/12]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n = npos) [inline], [constexpr], [inherited]
Insert a substring.

Parameters
__pos1 Position in string to insert at.
__str The string to insert.
__pos2 Start of characters in str to insert.
__n Number of characters to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If pos1 > size() or __pos2 > str.size().

Starting at pos1, insert __n character of __str beginning with __pos2. If adding characters causes the length to exceed
max_size(), length_error is thrown. If __pos1 is beyond the end of this string or __pos2 is beyond the end of __str,
out_of_range is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

length()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::length () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns the number of characters in the string, not including any null-termination.

max_size()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1469

size_type std::basic_string< _CharT, _Traits, _Alloc >::max_size () const [inline], [nodiscard],


[constexpr], [noexcept]
Returns the size() of the largest possible string.

operator __sv_type()

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::operator __sv_type () const [inline], [constexpr],
[noexcept], [inherited]
Convert to a string_view.

Returns

A string_view.

References std::basic_string< _CharT, _Traits, _Alloc >::data(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

operator+=() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
const _Tp & __svt) [inline], [constexpr], [inherited]
Append a string_view.

Parameters
__svt An object convertible to string_view to be appended.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

operator+=() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr], [inherited]
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

Generated by Doxygen
1470

replace() [1/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
const _CharT ∗ __s) [inline], [constexpr], [inherited]
Replace range of characters with C string.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the characters of __s are inserted. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [2/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
const _CharT ∗ __s,
size_type __n) [inline], [constexpr], [inherited]
Replace range of characters with C substring.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s
_←- Number of characters from s to insert.
_n

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1471

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the first __n characters of __s are inserted. If the length of
result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [3/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr], [inherited]
Replace range of characters with string.

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__str String value to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the value of __str is inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [4/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
size_type __n,
_CharT __c) [inline], [constexpr], [inherited]
Replace range of characters with multiple characters.

Generated by Doxygen
1472

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- Number of characters to insert.
_n
_←- Character to insert.
_c

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, __n copies of __c are inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

replace() [5/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
const_iterator __i1,
const_iterator __i2,
_InputIterator __k1,
_InputIterator __k2) [inline], [constexpr], [inherited]
Replace range of characters with range.

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__k1 Iterator referencing start of range to insert.
__k2 Iterator referencing end of range to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1473

replace() [6/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (
const_iterator __i1,
const_iterator __i2,
const _Tp & __svt) [inline], [constexpr], [inherited]
Replace range of characters with string_view.

Parameters

__i1 An iterator referencing the start position to replace at.


__i2 An iterator referencing the end position for the replace.
__svt The object convertible to string_view to insert from.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [7/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
const_iterator __i1,
const_iterator __i2,
initializer_list< _CharT > __l) [inline], [constexpr], [inherited]
Replace range of characters with initializer_list.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- The initializer_list of characters to insert.
_l

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
1474

replace() [8/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator >
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
_InputIterator __k1,
_InputIterator __k2) [inline], [inherited]
Replace range of characters with range.

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__k1 Iterator referencing start of range to insert.
__k2 Iterator referencing end of range to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [9/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
const _CharT ∗ __s) [inline], [inherited]
Replace range of characters with C string.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s

Returns

Reference to this string.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1475

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the characters of __s are inserted. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [10/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
const _CharT ∗ __s,
size_type __n) [inline], [inherited]
Replace range of characters with C substring.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s
_←- Number of characters from s to insert.
_n

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the first __n characters of __s are inserted. If the length of
result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [11/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [inherited]
Replace range of characters with string.

Generated by Doxygen
1476

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__str String value to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the value of __str is inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [12/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
initializer_list< _CharT > __l) [inline], [inherited]
Replace range of characters with initializer_list.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- The initializer_list of characters to insert.
_l

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1477

replace() [13/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
size_type __n,
_CharT __c) [inline], [inherited]
Replace range of characters with multiple characters.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- Number of characters to insert.
_n
_←- Character to insert.
_c

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, __n copies of __c are inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [14/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n,
const _Tp & __svt) [inline], [constexpr], [inherited]
Replace range of characters with string_view.

Parameters
__pos The position to replace at.
__n The number of characters to replace.
__svt The object convertible to string_view to insert.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
1478

replace() [15/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr], [inherited]
Replace characters with value from another string.

Parameters

__pos Index of first character to replace.


__n Number of characters to be replaced.
__str String to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If pos is beyond the end of this string.


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos,__pos+__n) from this string. In place, the value of __str is inserted. If
__pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::assign(),
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), and std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [16/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos1,
size_type __n1,
const _Tp & __svt,
size_type __pos2,
size_type __n2 = npos) [inline], [constexpr], [inherited]
Replace range of characters with string_view.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1479

Parameters
__pos1 The position to replace at.
__n1 The number of characters to replace.
__svt The object convertible to string_view to insert from.
__pos2 The position in the string_view to insert from.
__n2 The number of characters to insert.

Returns

Reference to this string.


References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [17/17]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos1,
size_type __n1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n2 = npos) [inline], [constexpr], [inherited]
Replace characters with value from another string.

Parameters

__pos1 Index of first character to replace.


__n1 Number of characters to be replaced.
__str String to insert.
__pos2 Index of first character of str to use.
__n2 Number of characters from str to use.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos1 > size() or __pos2 > __str.size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos1,__pos1 + n) from this string. In place, the value of __str is inserted. If
__pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

reserve() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::reserve () [constexpr]
Equivalent to shrink_to_fit().

Generated by Doxygen
1480

reserve() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::reserve (
size_type __res_arg) [constexpr]
Attempt to preallocate enough memory for specified number of characters.

Parameters

__res_arg Number of characters required.

Exceptions

std::length_error If __res_arg exceeds max_size().

This function attempts to reserve enough memory for the string to hold the specified number of characters. If the number
requested is more than max_size(), length_error is thrown.
The advantage of this function is that if optimal code is a necessity and the user can determine the string length that
will be required, the user can reserve the memory in advance, and thus prevent a possible reallocation of memory and
copying of string data.

rfind() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::rfind (
_CharT __c,
size_type __pos = npos) const [nodiscard], [constexpr], [noexcept]
Find last position of a character.

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.

rfind() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const _Tp & __svt,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a string_view.

Generated by Doxygen
5.250 __gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference 1481

Parameters
__svt The object convertible to string_view to locate.
__pos Index of character to search back from (default end).

Returns

Index of start of last occurrence.

rfind() [3/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const basic_string< _CharT, _Traits, _Allocator > & __str,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a string.

Parameters

__str String to locate.


__pos Index of character to search back from (default end).

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for value of __str within this string. If found, returns the index where it begins.
If not found, returns npos.

size()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::size () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns the number of characters in the string, not including any null-termination.

swap()

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_string< _CharT, _Traits, _Alloc >::swap (
basic_string< _CharT, _Traits, _Alloc > & __s) [constexpr], [noexcept], [inherited]
Swap contents with another string.

Parameters

_←- String to swap with.


_s

Exchanges the contents of this string with that of __s in constant time.
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), and std::basic_string< _CharT, _Traits, _Alloc >::operator=().

Generated by Doxygen
1482

5.250.3 Member Data Documentation

npos

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator =


std::allocator<_CharT>>
const basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _←-
Alloc >::npos [static]
Value returned by various member functions when they fail.
The documentation for this class was generated from the following file:

• debug/string

5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference


#include <string>
Inheritance diagram for std::basic_string< _CharT, _Traits, _Alloc >:

std::basic_string<
_CharT, _Traits, _Alloc >

__gnu_debug::basic
_string< _CharT, _Traits,
_Allocator >

Public Types

• typedef _Char_alloc_type allocator_type


• typedef _Alloc allocator_type
• typedef __gnu_cxx::__normal_iterator< const_pointer, basic_string > const_iterator
• typedef _Alloc_traits::const_pointer const_pointer
• typedef _CharT_alloc_traits::const_pointer const_pointer
• typedef _Alloc_traits::const_reference const_reference
• typedef const value_type & const_reference
• typedef std::reverse_iterator< const_iterator > const_reverse_iterator
• typedef _Alloc_traits::difference_type difference_type
• typedef _CharT_alloc_traits::difference_type difference_type
• typedef __gnu_cxx::__normal_iterator< pointer, basic_string > iterator
• typedef _Alloc_traits::pointer pointer
• typedef _CharT_alloc_traits::pointer pointer
• typedef _Alloc_traits::reference reference
• typedef value_type & reference
• typedef std::reverse_iterator< iterator > reverse_iterator

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1483

• typedef _Alloc_traits::size_type size_type


• typedef _CharT_alloc_traits::size_type size_type
• typedef _Traits traits_type
• typedef _Traits::char_type value_type

Public Member Functions

• basic_string () noexcept
• constexpr basic_string () noexcept(/∗conditional ∗/)
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
constexpr basic_string (_InputIterator __beg, _InputIterator __end, const _Alloc &__a=_Alloc())
• template<class _InputIterator >
basic_string (_InputIterator __beg, _InputIterator __end, const _Alloc &__a=_Alloc())
• constexpr basic_string (basic_string &&__str) noexcept
• basic_string (basic_string &&__str) noexcept
• basic_string (basic_string &&__str, const _Alloc &__a)
• constexpr basic_string (basic_string &&__str, const _Alloc &__a) noexcept(_Alloc_traits::_S_always_equal())
• basic_string (const _Alloc &__a)
• constexpr basic_string (const _Alloc &__a) noexcept
• template<typename = _RequireAllocator<_Alloc>>
constexpr basic_string (const _CharT ∗__s, const _Alloc &__a=_Alloc())
• template<typename = _RequireAllocator<_Alloc>>
basic_string (const _CharT ∗__s, const _Alloc &__a=_Alloc())
• constexpr basic_string (const _CharT ∗__s, size_type __n, const _Alloc &__a=_Alloc())
• basic_string (const _CharT ∗__s, size_type __n, const _Alloc &__a=_Alloc())
• template<typename _Tp , typename = _If_sv<_Tp, void>>
constexpr basic_string (const _Tp &__t, const _Alloc &__a=_Alloc())
• template<typename _Tp , typename = enable_if_t<is_convertible_v<const _Tp&, __sv_type>>>
constexpr basic_string (const _Tp &__t, size_type __pos, size_type __n, const _Alloc &__a=_Alloc())
• constexpr basic_string (const basic_string &__str)
• basic_string (const basic_string &__str)
• constexpr basic_string (const basic_string &__str, const _Alloc &__a)
• basic_string (const basic_string &__str, const _Alloc &__a)
• constexpr basic_string (const basic_string &__str, size_type __pos, const _Alloc &__a=_Alloc())
• basic_string (const basic_string &__str, size_type __pos, const _Alloc &__a=_Alloc())
• constexpr basic_string (const basic_string &__str, size_type __pos, size_type __n)
• basic_string (const basic_string &__str, size_type __pos, size_type __n)
• constexpr basic_string (const basic_string &__str, size_type __pos, size_type __n, const _Alloc &__a)
• basic_string (const basic_string &__str, size_type __pos, size_type __n, const _Alloc &__a)
• constexpr basic_string (initializer_list< _CharT > __l, const _Alloc &__a=_Alloc())
• basic_string (initializer_list< _CharT > __l, const _Alloc &__a=_Alloc())
• template<typename = _RequireAllocator<_Alloc>>
constexpr basic_string (size_type __n, _CharT __c, const _Alloc &__a=_Alloc())
• basic_string (size_type __n, _CharT __c, const _Alloc &__a=_Alloc())
• constexpr ∼basic_string ()
• ∼basic_string () noexcept
• template<typename _Operation >
constexpr void __resize_and_overwrite (size_type __n, _Operation __op)
• template<typename _Operation >
void __resize_and_overwrite (size_type __n, _Operation __op)

Generated by Doxygen
1484

• template<typename _InputIterator >


basic_string< _CharT, _Traits, _Alloc > & _M_replace_dispatch (iterator __i1, iterator __i2, _InputIterator __k1,
_InputIterator __k2, __false_type)
• template<typename _InIterator >
_CharT ∗ _S_construct (_InIterator __beg, _InIterator __end, const _Alloc &__a, forward_iterator_tag)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
constexpr basic_string & append (_InputIterator __first, _InputIterator __last)
• template<class _InputIterator >
basic_string & append (_InputIterator __first, _InputIterator __last)
• constexpr basic_string & append (const _CharT ∗__s)
• basic_string & append (const _CharT ∗__s)
• constexpr basic_string & append (const _CharT ∗__s, size_type __n)
• basic_string & append (const _CharT ∗__s, size_type __n)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > append (const _Tp &__svt)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > append (const _Tp &__svt, size_type __pos, size_type __n=npos)
• constexpr basic_string & append (const basic_string &__str)
• basic_string & append (const basic_string &__str)
• constexpr basic_string & append (const basic_string &__str, size_type __pos, size_type __n=npos)
• basic_string & append (const basic_string &__str, size_type __pos, size_type __n=npos)
• constexpr basic_string & append (initializer_list< _CharT > __l)
• basic_string & append (initializer_list< _CharT > __l)
• constexpr basic_string & append (size_type __n, _CharT __c)
• basic_string & append (size_type __n, _CharT __c)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
constexpr basic_string & assign (_InputIterator __first, _InputIterator __last)
• template<class _InputIterator >
basic_string & assign (_InputIterator __first, _InputIterator __last)
• constexpr basic_string & assign (basic_string &&__str) noexcept(_Alloc_traits::_S_nothrow_move())
• basic_string & assign (basic_string &&__str) noexcept(allocator_traits< _Alloc >::is_always_equal::value)
• constexpr basic_string & assign (const _CharT ∗__s)
• basic_string & assign (const _CharT ∗__s)
• constexpr basic_string & assign (const _CharT ∗__s, size_type __n)
• basic_string & assign (const _CharT ∗__s, size_type __n)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > assign (const _Tp &__svt)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > assign (const _Tp &__svt, size_type __pos, size_type __n=npos)
• constexpr basic_string & assign (const basic_string &__str)
• basic_string & assign (const basic_string &__str)
• constexpr basic_string & assign (const basic_string &__str, size_type __pos, size_type __n=npos)
• basic_string & assign (const basic_string &__str, size_type __pos, size_type __n=npos)
• constexpr basic_string & assign (initializer_list< _CharT > __l)
• basic_string & assign (initializer_list< _CharT > __l)
• constexpr basic_string & assign (size_type __n, _CharT __c)
• basic_string & assign (size_type __n, _CharT __c)
• constexpr reference at (size_type __n)
• reference at (size_type __n)
• constexpr const_reference at (size_type __n) const
• const_reference at (size_type __n) const

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1485

• reference back ()
• constexpr const_reference back () const noexcept
• const_reference back () const noexcept
• constexpr reference back () noexcept
• iterator begin ()
• constexpr const_iterator begin () const noexcept
• const_iterator begin () const noexcept
• constexpr iterator begin () noexcept
• constexpr const _CharT ∗ c_str () const noexcept
• const _CharT ∗ c_str () const noexcept
• constexpr size_type capacity () const noexcept
• size_type capacity () const noexcept
• constexpr const_iterator cbegin () const noexcept
• const_iterator cbegin () const noexcept
• constexpr const_iterator cend () const noexcept
• const_iterator cend () const noexcept
• constexpr void clear () noexcept
• void clear () noexcept
• constexpr int compare (const _CharT ∗__s) const noexcept
• int compare (const _CharT ∗__s) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, int > compare (const _Tp &__svt) const noexcept(is_same< _Tp, __sv_type >::value)
• constexpr int compare (const basic_string &__str) const
• int compare (const basic_string &__str) const
• template<typename _Tp >
constexpr _If_sv< _Tp, int > compare (size_type __pos, size_type __n, const _Tp &__svt) const
noexcept(is_same< _Tp, __sv_type >::value)
• constexpr int compare (size_type __pos, size_type __n, const basic_string &__str) const
• int compare (size_type __pos, size_type __n, const basic_string &__str) const
• constexpr int compare (size_type __pos, size_type __n1, const _CharT ∗__s) const
• int compare (size_type __pos, size_type __n1, const _CharT ∗__s) const
• constexpr int compare (size_type __pos, size_type __n1, const _CharT ∗__s, size_type __n2) const
• int compare (size_type __pos, size_type __n1, const _CharT ∗__s, size_type __n2) const
• template<typename _Tp >
constexpr _If_sv< _Tp, int > compare (size_type __pos1, size_type __n1, const _Tp &__svt, size_type __pos2,
size_type __n2=npos) const noexcept(is_same< _Tp, __sv_type >::value)
• constexpr int compare (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type
__n2=npos) const
• int compare (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __←-
n2=npos) const
• constexpr size_type copy (_CharT ∗__s, size_type __n, size_type __pos=0) const
• size_type copy (_CharT ∗__s, size_type __n, size_type __pos=0) const
• constexpr const_reverse_iterator crbegin () const noexcept
• const_reverse_iterator crbegin () const noexcept
• constexpr const_reverse_iterator crend () const noexcept
• const_reverse_iterator crend () const noexcept
• constexpr const _CharT ∗ data () const noexcept
• const _CharT ∗ data () const noexcept
• constexpr _CharT ∗ data () noexcept
• _CharT ∗ data () noexcept(false)
• constexpr bool empty () const noexcept

Generated by Doxygen
1486

• bool empty () const noexcept


• iterator end ()
• constexpr const_iterator end () const noexcept
• const_iterator end () const noexcept
• constexpr iterator end () noexcept
• constexpr bool ends_with (_CharT __x) const noexcept
• bool ends_with (_CharT __x) const noexcept
• constexpr bool ends_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• bool ends_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• constexpr bool ends_with (const _CharT ∗__x) const noexcept
• bool ends_with (const _CharT ∗__x) const noexcept
• constexpr iterator erase (__const_iterator __first, __const_iterator __last)
• constexpr iterator erase (__const_iterator __position)
• iterator erase (iterator __first, iterator __last)
• iterator erase (iterator __position)
• constexpr basic_string & erase (size_type __pos=0, size_type __n=npos)
• basic_string & erase (size_type __pos=0, size_type __n=npos)
• constexpr size_type find (_CharT __c, size_type __pos=0) const noexcept
• size_type find (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• size_type find (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find (const _CharT ∗__s, size_type __pos=0) const noexcept
• size_type find (const _CharT ∗__s, size_type __pos=0) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp,
__sv_type >::value)
• constexpr size_type find (const basic_string &__str, size_type __pos=0) const noexcept
• size_type find (const basic_string &__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept
• size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• size_type find_first_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_first_not_of (const _CharT ∗__s, size_type __pos=0) const noexcept
• size_type find_first_not_of (const _CharT ∗__s, size_type __pos=0) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_first_not_of (const _Tp &__svt, size_type __pos=0) const
noexcept(is_same< _Tp, __sv_type >::value)
• constexpr size_type find_first_not_of (const basic_string &__str, size_type __pos=0) const noexcept
• size_type find_first_not_of (const basic_string &__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept
• size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• size_type find_first_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_first_of (const _CharT ∗__s, size_type __pos=0) const noexcept
• size_type find_first_of (const _CharT ∗__s, size_type __pos=0) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_first_of (const _Tp &__svt, size_type __pos=0) const noexcept(is_same<
_Tp, __sv_type >::value)
• constexpr size_type find_first_of (const basic_string &__str, size_type __pos=0) const noexcept
• size_type find_first_of (const basic_string &__str, size_type __pos=0) const noexcept
• constexpr size_type find_last_not_of (_CharT __c, size_type __pos=npos) const noexcept

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1487

• size_type find_last_not_of (_CharT __c, size_type __pos=npos) const noexcept


• constexpr size_type find_last_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• size_type find_last_not_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_last_not_of (const _CharT ∗__s, size_type __pos=npos) const noexcept
• size_type find_last_not_of (const _CharT ∗__s, size_type __pos=npos) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_last_not_of (const _Tp &__svt, size_type __pos=npos) const
noexcept(is_same< _Tp, __sv_type >::value)
• constexpr size_type find_last_not_of (const basic_string &__str, size_type __pos=npos) const noexcept
• size_type find_last_not_of (const basic_string &__str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (_CharT __c, size_type __pos=npos) const noexcept
• size_type find_last_of (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• size_type find_last_of (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_last_of (const _CharT ∗__s, size_type __pos=npos) const noexcept
• size_type find_last_of (const _CharT ∗__s, size_type __pos=npos) const noexcept
• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > find_last_of (const _Tp &__svt, size_type __pos=npos) const
noexcept(is_same< _Tp, __sv_type >::value)
• constexpr size_type find_last_of (const basic_string &__str, size_type __pos=npos) const noexcept
• size_type find_last_of (const basic_string &__str, size_type __pos=npos) const noexcept
• reference front ()
• constexpr const_reference front () const noexcept
• const_reference front () const noexcept
• constexpr reference front () noexcept
• constexpr allocator_type get_allocator () const noexcept
• allocator_type get_allocator () const noexcept
• constexpr iterator insert (__const_iterator __p, _CharT __c)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
constexpr iterator insert (const_iterator __p, _InputIterator __beg, _InputIterator __end)
• constexpr iterator insert (const_iterator __p, initializer_list< _CharT > __l)
• constexpr iterator insert (const_iterator __p, size_type __n, _CharT __c)
• iterator insert (iterator __p, _CharT __c)
• template<class _InputIterator >
void insert (iterator __p, _InputIterator __beg, _InputIterator __end)
• void insert (iterator __p, initializer_list< _CharT > __l)
• void insert (iterator __p, size_type __n, _CharT __c)
• constexpr basic_string & insert (size_type __pos, const _CharT ∗__s)
• basic_string & insert (size_type __pos, const _CharT ∗__s)
• constexpr basic_string & insert (size_type __pos, const _CharT ∗__s, size_type __n)
• basic_string & insert (size_type __pos, const _CharT ∗__s, size_type __n)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > insert (size_type __pos, const _Tp &__svt)
• constexpr basic_string & insert (size_type __pos, size_type __n, _CharT __c)
• basic_string & insert (size_type __pos, size_type __n, _CharT __c)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > insert (size_type __pos1, const _Tp &__svt, size_type __pos2, size_←-
type __n=npos)
• constexpr basic_string & insert (size_type __pos1, const basic_string &__str)
• basic_string & insert (size_type __pos1, const basic_string &__str)

Generated by Doxygen
1488

• constexpr basic_string & insert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __←-
n=npos)
• basic_string & insert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __n=npos)
• constexpr size_type length () const noexcept
• size_type length () const noexcept
• constexpr size_type max_size () const noexcept
• size_type max_size () const noexcept
• constexpr operator __sv_type () const noexcept
• constexpr basic_string & operator+= (_CharT __c)
• basic_string & operator+= (_CharT __c)
• constexpr basic_string & operator+= (const _CharT ∗__s)
• basic_string & operator+= (const _CharT ∗__s)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > operator+= (const _Tp &__svt)
• constexpr basic_string & operator+= (const basic_string &__str)
• basic_string & operator+= (const basic_string &__str)
• constexpr basic_string & operator+= (initializer_list< _CharT > __l)
• basic_string & operator+= (initializer_list< _CharT > __l)
• constexpr basic_string & operator= (_CharT __c)
• basic_string & operator= (_CharT __c)
• basic_string & operator= (basic_string &&__str) noexcept(/∗conditional ∗/)
• constexpr basic_string & operator= (basic_string &&__str) noexcept(_Alloc_traits::_S_nothrow_move())
• constexpr basic_string & operator= (const _CharT ∗__s)
• basic_string & operator= (const _CharT ∗__s)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > operator= (const _Tp &__svt)
• constexpr basic_string & operator= (const basic_string &__str)
• basic_string & operator= (const basic_string &__str)
• constexpr basic_string & operator= (initializer_list< _CharT > __l)
• basic_string & operator= (initializer_list< _CharT > __l)
• constexpr reference operator[ ] (size_type __pos)
• reference operator[ ] (size_type __pos)
• constexpr const_reference operator[ ] (size_type __pos) const noexcept
• const_reference operator[ ] (size_type __pos) const noexcept
• void pop_back ()
• constexpr void pop_back () noexcept
• constexpr void push_back (_CharT __c)
• void push_back (_CharT __c)
• reverse_iterator rbegin ()
• constexpr const_reverse_iterator rbegin () const noexcept
• const_reverse_iterator rbegin () const noexcept
• constexpr reverse_iterator rbegin () noexcept
• reverse_iterator rend ()
• constexpr const_reverse_iterator rend () const noexcept
• const_reverse_iterator rend () const noexcept
• constexpr reverse_iterator rend () noexcept
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, _CharT ∗__k1, _CharT ∗__k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__k1, const _←-
CharT ∗__k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__s)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT ∗__s, size_type __n)

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1489

• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const basic_string &__str)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, const_iterator __k1, const_iterator
__k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, iterator __k1, iterator __k2)
• constexpr basic_string & replace (__const_iterator __i1, __const_iterator __i2, size_type __n, _CharT __c)
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
constexpr basic_string & replace (const_iterator __i1, const_iterator __i2, _InputIterator __k1, _InputIterator __k2)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > replace (const_iterator __i1, const_iterator __i2, const _Tp &__svt)
• constexpr basic_string & replace (const_iterator __i1, const_iterator __i2, initializer_list< _CharT > __l)
• basic_string & replace (iterator __i1, iterator __i2, _CharT ∗__k1, _CharT ∗__k2)
• template<class _InputIterator >
basic_string & replace (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2)
• basic_string & replace (iterator __i1, iterator __i2, const _CharT ∗__k1, const _CharT ∗__k2)
• basic_string & replace (iterator __i1, iterator __i2, const _CharT ∗__s)
• basic_string & replace (iterator __i1, iterator __i2, const _CharT ∗__s, size_type __n)
• basic_string & replace (iterator __i1, iterator __i2, const basic_string &__str)
• basic_string & replace (iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2)
• basic_string & replace (iterator __i1, iterator __i2, initializer_list< _CharT > __l)
• basic_string & replace (iterator __i1, iterator __i2, iterator __k1, iterator __k2)
• basic_string & replace (iterator __i1, iterator __i2, size_type __n, _CharT __c)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > replace (size_type __pos, size_type __n, const _Tp &__svt)
• constexpr basic_string & replace (size_type __pos, size_type __n, const basic_string &__str)
• basic_string & replace (size_type __pos, size_type __n, const basic_string &__str)
• constexpr basic_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s)
• basic_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s)
• constexpr basic_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s, size_type __n2)
• basic_string & replace (size_type __pos, size_type __n1, const _CharT ∗__s, size_type __n2)
• constexpr basic_string & replace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
• basic_string & replace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
• template<typename _Tp >
constexpr _If_sv< _Tp, basic_string & > replace (size_type __pos1, size_type __n1, const _Tp &__svt, size_type
__pos2, size_type __n2=npos)
• constexpr basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __←-
pos2, size_type __n2=npos)
• basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type
__n2=npos)
• constexpr void reserve ()
• void reserve ()
• constexpr void reserve (size_type __res_arg)
• void reserve (size_type __res_arg)
• constexpr void resize (size_type __n)
• void resize (size_type __n)
• constexpr void resize (size_type __n, _CharT __c)
• void resize (size_type __n, _CharT __c)
• constexpr size_type rfind (_CharT __c, size_type __pos=npos) const noexcept
• size_type rfind (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type rfind (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• size_type rfind (const _CharT ∗__s, size_type __pos, size_type __n) const noexcept
• constexpr size_type rfind (const _CharT ∗__s, size_type __pos=npos) const

Generated by Doxygen
1490

• size_type rfind (const _CharT ∗__s, size_type __pos=npos) const noexcept


• template<typename _Tp >
constexpr _If_sv< _Tp, size_type > rfind (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same<
_Tp, __sv_type >::value)
• constexpr size_type rfind (const basic_string &__str, size_type __pos=npos) const noexcept
• size_type rfind (const basic_string &__str, size_type __pos=npos) const noexcept
• constexpr void shrink_to_fit () noexcept
• void shrink_to_fit () noexcept
• constexpr size_type size () const noexcept
• size_type size () const noexcept
• constexpr bool starts_with (_CharT __x) const noexcept
• bool starts_with (_CharT __x) const noexcept
• constexpr bool starts_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• bool starts_with (basic_string_view< _CharT, _Traits > __x) const noexcept
• constexpr bool starts_with (const _CharT ∗__x) const noexcept
• bool starts_with (const _CharT ∗__x) const noexcept
• constexpr basic_string substr (size_type __pos=0, size_type __n=npos) const
• basic_string substr (size_type __pos=0, size_type __n=npos) const
• constexpr void swap (basic_string &__s) noexcept
• void swap (basic_string &__s) noexcept(/∗conditional ∗/)

Static Public Attributes

• static const size_type npos

Protected Types

• typedef const_iterator __const_iterator


• typedef iterator __const_iterator

Friends

• template<typename , typename , typename >


class basic_stringbuf

5.251.1 Detailed Description

template<typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_Char←-


T>>
class std::basic_string< _CharT, _Traits, _Alloc >

Managing sequences of characters and character-like objects.


Since

C++98

Template Parameters

_CharT Type of character


_Traits Traits for character type, defaults to char_traits<_CharT>.
_Alloc Allocator type, defaults to allocator<_CharT>.

Meets the requirements of a


container, a reversible container, and a sequence. Of the
optional sequence requirements, only push_back, at, and array access are supported.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1491

Since

C++98

Template Parameters

_CharT Type of character


_Traits Traits for character type, defaults to char_traits<_CharT>.
_Alloc Allocator type, defaults to allocator<_CharT>.

Meets the requirements of a


container, a reversible container, and a sequence. Of the
optional sequence requirements, only push_back, at, and array access are supported.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

Documentation? What's that? Nathan Myers [email protected].


A string looks like this:
[_Rep]
_M_length
[basic_string<char_type>] _M_capacity
_M_dataplus _M_refcount
_M_p ----------------> unnamed array of char_type
Where the _M_p points to the first character in the string, and you cast it to a pointer-to-_Rep and subtract 1 to get a
pointer to the header.
This approach has the enormous advantage that a string object requires only one allocation. All the ugliness is confined
within a single pair of inline functions, which each compile to a single add instruction: _Rep::_M_data(), and string←-
::_M_rep(); and the allocation function which gets a block of raw bytes and with room enough and constructs a _Rep
object at the front.
The reason you want _M_data pointing to the character array and not the _Rep is so that the debugger can see the
string contents. (Probably we should add a non-inline member to get the _Rep for the debugger to use, so users can
check the actual string length.)
Note that the _Rep object is a POD so that you can have a static empty string _Rep object already constructed before
static constructors have run. The reference-count encoding is chosen so that a 0 indicates one reference, so you never
try to destroy the empty-string _Rep object.
All but the last paragraph is considered pretty conventional for a Copy-On-Write C++ string implementation.

5.251.2 Constructor & Destructor Documentation

basic_string() [1/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string () [inline], [constexpr], [noexcept]
Default constructor creates an empty string.
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(),
and std::basic_string< _CharT, _Traits, _Alloc >::substr().

basic_string() [2/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _Alloc & __a) [inline], [explicit], [constexpr], [noexcept]
Construct an empty string using allocator a.

Generated by Doxygen
1492

basic_string() [3/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Construct string with copy of value of __str.

Parameters

__str Source string.

basic_string() [4/26]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
const _Alloc & __a = _Alloc()) [inline], [constexpr]
Construct string as copy of a substring.

Parameters

__str Source string.


__pos Index of first character to copy from.
__a Allocator to use.

References std::basic_string< _CharT, _Traits, _Alloc >::npos.

basic_string() [5/26]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n) [inline], [constexpr]
Construct string as copy of a substring.

Parameters

__str Source string.


__pos Index of first character to copy from.
__n Number of characters to copy.

basic_string() [6/26]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n,
const _Alloc & __a) [inline], [constexpr]

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1493

Construct string as copy of a substring.

Generated by Doxygen
1494

Parameters

__str Source string.


__pos Index of first character to copy from.
__n Number of characters to copy.
__a Allocator to use.

basic_string() [7/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _CharT ∗ __s,
size_type __n,
const _Alloc & __a = _Alloc()) [inline], [constexpr]
Construct string initialized by a character array.

Parameters

_←- Source character array.


_s
_←- Number of characters to copy.
_n
_←- Allocator to use (default is default allocator).
_a

NB: __s must have at least __n characters, '\0' has no special meaning.

basic_string() [8/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename = _RequireAllocator<_Alloc>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _CharT ∗ __s,
const _Alloc & __a = _Alloc()) [inline], [constexpr]
Construct string as copy of a C string.

Parameters

_←- Source C string.


_s
_←- Allocator to use (default is default allocator).
_a

basic_string() [9/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename = _RequireAllocator<_Alloc>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1495

size_type __n,
_CharT __c,
const _Alloc & __a = _Alloc()) [inline], [constexpr]
Construct string as multiple characters.

Parameters

_←- Number of characters.


_n
_←- Character to use.
_c
_←- Allocator to use (default is default allocator).
_a

basic_string() [10/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [constexpr], [noexcept]
Move construct string.

Parameters

__str Source string.

The newly-created string contains the exact contents of __str. __str is a valid, but unspecified string.

basic_string() [11/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
initializer_list< _CharT > __l,
const _Alloc & __a = _Alloc()) [inline], [constexpr]
Construct string from an initializer list.

Parameters

_←- std::initializer_list of characters.


_l
_←- Allocator to use (default is default allocator).
_a

basic_string() [12/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
_InputIterator __beg,

Generated by Doxygen
1496

_InputIterator __end,
const _Alloc & __a = _Alloc()) [inline], [constexpr]
Construct string as copy of a range.

Parameters

__beg Start of range.


__end End of range.
__a Allocator to use (default is default allocator).

References std::__iterator_category().

basic_string() [13/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp , typename = enable_if_t<is_convertible_v<const _Tp&, __sv_type>>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _Tp & __t,
size_type __pos,
size_type __n,
const _Alloc & __a = _Alloc()) [inline], [constexpr]
Construct string from a substring of a string_view.

Parameters

__t Source object convertible to string view.


__pos The index of the first character to copy from __t.
__n The number of characters to copy from __t.
__a Allocator to use.

basic_string() [14/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp , typename = _If_sv<_Tp, void>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _Tp & __t,
const _Alloc & __a = _Alloc()) [inline], [explicit], [constexpr]
Construct string from a string_view.

Parameters

_←- Source object convertible to string view.


_t
_←- Allocator to use (default is default allocator).
_a

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1497

∼basic_string() [1/2]
template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-
_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::∼basic_string () [inline], [constexpr]
Destroy the string instance.

basic_string() [15/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string () [inline], [noexcept]
Default constructor creates an empty string.

basic_string() [16/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _Alloc & __a) [inline], [explicit]
Construct an empty string using allocator a.

basic_string() [17/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Construct string with copy of value of str.

Parameters

__str Source string.

basic_string() [18/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
const _Alloc & __a = _Alloc())
Construct string as copy of a substring.

Parameters

__str Source string.


__pos Index of first character to copy from.
__a Allocator to use.

Generated by Doxygen
1498

basic_string() [19/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n)
Construct string as copy of a substring.

Parameters

__str Source string.


__pos Index of first character to copy from.
__n Number of characters to copy.

basic_string() [20/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n,
const _Alloc & __a)
Construct string as copy of a substring.

Parameters

__str Source string.


__pos Index of first character to copy from.
__n Number of characters to copy.
__a Allocator to use.

basic_string() [21/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _CharT ∗ __s,
size_type __n,
const _Alloc & __a = _Alloc()) [inline]
Construct string initialized by a character array.

Parameters

_←- Source character array.


_s
_←- Number of characters to copy.
_n
_←- Allocator to use (default is default allocator).
_a

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1499

NB: __s must have at least __n characters, '\0' has no special meaning.

basic_string() [22/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename = _RequireAllocator<_Alloc>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
const _CharT ∗ __s,
const _Alloc & __a = _Alloc()) [inline]
Construct string as copy of a C string.

Parameters

_←- Source C string.


_s
_←- Allocator to use (default is default allocator).
_a

basic_string() [23/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
size_type __n,
_CharT __c,
const _Alloc & __a = _Alloc()) [inline]
Construct string as multiple characters.

Parameters

_←- Number of characters.


_n
_←- Character to use.
_c
_←- Allocator to use (default is default allocator).
_a

basic_string() [24/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [noexcept]
Move construct string.

Parameters

__str Source string.

The newly-created string contains the exact contents of __str. __str is a valid, but unspecified string.

Generated by Doxygen
1500

basic_string() [25/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
initializer_list< _CharT > __l,
const _Alloc & __a = _Alloc()) [inline]
Construct string from an initializer list.

Parameters

_←- std::initializer_list of characters.


_l
_←- Allocator to use (default is default allocator).
_a

basic_string() [26/26]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator >
std::basic_string< _CharT, _Traits, _Alloc >::basic_string (
_InputIterator __beg,
_InputIterator __end,
const _Alloc & __a = _Alloc()) [inline]
Construct string as copy of a range.

Parameters

__beg Start of range.


__end End of range.
__a Allocator to use (default is default allocator).

∼basic_string() [2/2]
template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-
_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::∼basic_string () [inline], [noexcept]
Destroy the string instance.
References std::basic_string< _CharT, _Traits, _Alloc >::get_allocator().

5.251.3 Member Function Documentation

__resize_and_overwrite() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Operation >
void std::basic_string< _CharT, _Traits, _Alloc >::__resize_and_overwrite (
size_type __n,
_Operation __op) [constexpr]
Non-standard version of resize_and_overwrite for C++11 and above.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1501

__resize_and_overwrite() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Operation >
void std::basic_string< _CharT, _Traits, _Alloc >::__resize_and_overwrite (
size_type __n,
_Operation __op)
Non-standard version of resize_and_overwrite for C++11 and above.

append() [1/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
_InputIterator __first,
_InputIterator __last) [inline], [constexpr]
Append a range of characters.

Parameters

__first Iterator referencing the first character to append.


__last Iterator marking the end of the range.

Returns

Reference to this string.

Appends characters in the range [__first,__last) to this string.


References std::basic_string< _CharT, _Traits, _Alloc >::end(), and std::basic_string< _CharT, _Traits, _Alloc >::replace().

append() [2/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator >
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
_InputIterator __first,
_InputIterator __last) [inline]
Append a range of characters.

Parameters

__first Iterator referencing the first character to append.


__last Iterator marking the end of the range.

Returns

Reference to this string.

Appends characters in the range [__first,__last) to this string.


References std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
1502

append() [3/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
const _CharT ∗ __s) [inline], [constexpr]
Append a C string.

Parameters

_←- The C string to append.


_s

Returns

Reference to this string.

append() [4/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
const _CharT ∗ __s) [inline]
Append a C string.

Parameters

_←- The C string to append.


_s

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

append() [5/16]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (
const _CharT ∗ __s,
size_type __n) [inline], [constexpr]
Append a C substring.

Parameters

_←- The C string to append.


_s
_←- The number of characters to append.
_n

Returns

Reference to this string.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1503

append() [6/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
const _CharT ∗ __s,
size_type __n)
Append a C substring.

Parameters

_←- The C string to append.


_s
_←- The number of characters to append.
_n

Returns

Reference to this string.

append() [7/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::append (
const _Tp & __svt) [inline], [constexpr]
Append a string_view.

Parameters
__svt An object convertible to string_view to be appended.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

append() [8/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::append (
const _Tp & __svt,
size_type __pos,
size_type __n = npos) [inline], [constexpr]
Append a range of characters from a string_view.

Parameters

__svt An object convertible to string_view to be appended from.


__pos The position in the string_view to append from.
__n The number of characters to append from the string_view.

Generated by Doxygen
1504

Returns

Reference to this string.

append() [9/16]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().


Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::append(),
std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::append(),
std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(),
std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(),
std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::operator>>(), and std::basic_string< _CharT, _Traits, _Alloc >::resize().

append() [10/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
const basic_string< _CharT, _Traits, _Alloc > & __str)
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

append() [11/16]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n = npos) [inline], [constexpr]
Append a substring.

Parameters
__str The string to append.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1505

__pos Index of the first character of str to append.


__n The number of characters to append.

Returns

Reference to this string.

Exceptions

std::out_of_range if __pos is not a valid index.

This function appends __n characters from __str starting at __pos to this string. If __n is is larger than the number of
available characters in __str, the remainder of __str is appended.
References std::basic_string< _CharT, _Traits, _Alloc >::append().

append() [12/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n = npos)
Append a substring.

Parameters
__str The string to append.
__pos Index of the first character of str to append.
__n The number of characters to append.

Returns

Reference to this string.

Exceptions

std::out_of_range if __pos is not a valid index.

This function appends __n characters from __str starting at __pos to this string. If __n is is larger than the number of
available characters in __str, the remainder of __str is appended.

append() [13/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
initializer_list< _CharT > __l) [inline], [constexpr]
Append an initializer_list of characters.

Generated by Doxygen
1506

Parameters

←- The initializer_list of characters to append.


_←-
←-
_←-
l

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

append() [14/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
initializer_list< _CharT > __l) [inline]
Append an initializer_list of characters.

Parameters

←- The initializer_list of characters to append.


_←-
←-
_←-
l

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

append() [15/16]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (
size_type __n,
_CharT __c) [inline], [constexpr]
Append multiple characters.

Parameters

_←- The number of characters to append.


_n
_←- The character to use.
_c

Returns

Reference to this string.

Appends __n copies of __c to this string.


References std::basic_string< _CharT, _Traits, _Alloc >::size().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1507

append() [16/16]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (
size_type __n,
_CharT __c)
Append multiple characters.

Parameters

_←- The number of characters to append.


_n
_←- The character to use.
_c

Returns

Reference to this string.

Appends __n copies of __c to this string.

assign() [1/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
_InputIterator __first,
_InputIterator __last) [inline], [constexpr]
Set value to a range of characters.

Parameters

__first Iterator referencing the first character to append.


__last Iterator marking the end of the range.

Returns

Reference to this string.

Sets value of string to characters in the range [__first,__last).


References std::basic_string< _CharT, _Traits, _Alloc >::basic_string(), std::basic_string< _CharT, _Traits, _Alloc >::get_allocator(),
std::basic_string< _CharT, _Traits, _Alloc >::size(), and std::to_address().

assign() [2/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator >
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
_InputIterator __first,
_InputIterator __last) [inline]
Set value to a range of characters.

Generated by Doxygen
1508

Parameters

__first Iterator referencing the first character to append.


__last Iterator marking the end of the range.

Returns

Reference to this string.


Sets value of string to characters in the range [__first,__last).
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

assign() [3/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [constexpr], [noexcept]
Set value to contents of another string.

Parameters

__str Source string to use.

Returns

Reference to this string.


This function sets this string to the exact contents of __str. __str is a valid, but unspecified string.
References std::move().

assign() [4/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [noexcept]
Set value to contents of another string.

Parameters

__str Source string to use.

Returns

Reference to this string.


This function sets this string to the exact contents of __str. __str is a valid, but unspecified string.
References std::basic_string< _CharT, _Traits, _Alloc >::swap().

assign() [5/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _CharT ∗ __s) [inline], [constexpr]
Set value to contents of a C string.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1509

Parameters

_←- The C string to use.


_s

Returns

Reference to this string.

This function sets the value of this string to the value of __s. The data is copied, so there is no dependence on __s once
the function returns.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

assign() [6/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _CharT ∗ __s) [inline]
Set value to contents of a C string.

Parameters

_←- The C string to use.


_s

Returns

Reference to this string.

This function sets the value of this string to the value of __s. The data is copied, so there is no dependence on __s once
the function returns.
References std::basic_string< _CharT, _Traits, _Alloc >::assign().

assign() [7/18]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _CharT ∗ __s,
size_type __n) [inline], [constexpr]
Set value to a C substring.

Parameters

_←- The C string to use.


_s
_←- Number of characters to use.
_n

Returns

Reference to this string.

This function sets the value of this string to the first __n characters of __s. If __n is is larger than the number of available
characters in __s, the remainder of __s is used.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

Generated by Doxygen
1510

assign() [8/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _CharT ∗ __s,
size_type __n)
Set value to a C substring.

Parameters

_←- The C string to use.


_s
_←- Number of characters to use.
_n

Returns

Reference to this string.

This function sets the value of this string to the first __n characters of __s. If __n is is larger than the number of available
characters in __s, the remainder of __s is used.

assign() [9/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _Tp & __svt) [inline], [constexpr]
Set value from a string_view.

Parameters
__svt The source object convertible to string_view.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

assign() [10/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::assign (
const _Tp & __svt,
size_type __pos,
size_type __n = npos) [inline], [constexpr]
Set value from a range of characters in a string_view.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1511

Parameters
__svt The source object convertible to string_view.
__pos The position in the string_view to assign from.
__n The number of characters to assign.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::size().

assign() [11/18]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Set value to contents of another string.

Parameters

__str Source string to use.

Returns

Reference to this string.

Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(),
std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _
std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(),
std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(),
and std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow().

assign() [12/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const basic_string< _CharT, _Traits, _Alloc > & __str)
Set value to contents of another string.

Parameters

__str Source string to use.

Returns

Reference to this string.

Generated by Doxygen
1512

assign() [13/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n = npos) [inline], [constexpr]
Set value to a substring of a string.

Parameters
__str The string to use.
__pos Index of the first character of str.
__n Number of characters to use.

Returns

Reference to this string.

Exceptions

std::out_of_range if pos is not a valid index.

This function sets this string to the substring of __str consisting of __n characters at __pos. If __n is is larger than the
number of available characters in __str, the remainder of __str is used.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

assign() [14/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos,
size_type __n = npos) [inline]
Set value to a substring of a string.

Parameters
__str The string to use.
__pos Index of the first character of str.
__n Number of characters to use.

Returns

Reference to this string.

Exceptions

std::out_of_range if pos is not a valid index.

This function sets this string to the substring of __str consisting of __n characters at __pos. If __n is is larger than the
number of available characters in __str, the remainder of __str is used.
References std::basic_string< _CharT, _Traits, _Alloc >::assign().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1513

assign() [15/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
initializer_list< _CharT > __l) [inline], [constexpr]
Set value to an initializer_list of characters.

Parameters

←- The initializer_list of characters to assign.


_←-
←-
_←-
l

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::basic_string(), std::basic_string< _CharT, _Traits, _Alloc >::capacity(),
and std::basic_string< _CharT, _Traits, _Alloc >::get_allocator().

assign() [16/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
initializer_list< _CharT > __l) [inline]
Set value to an initializer_list of characters.

Parameters

←- The initializer_list of characters to assign.


_←-
←-
_←-
l

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

assign() [17/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
size_type __n,
_CharT __c) [inline], [constexpr]
Set value to multiple characters.

Generated by Doxygen
1514

Parameters

_←- Length of the resulting string.


_n
_←- The character to use.
_c

Returns

Reference to this string.

This function sets the value of this string to __n copies of character __c.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

assign() [18/18]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (
size_type __n,
_CharT __c) [inline]
Set value to multiple characters.

Parameters

_←- Length of the resulting string.


_n
_←- The character to use.
_c

Returns

Reference to this string.

This function sets the value of this string to __n copies of character __c.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

at() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::at (
size_type __n) [inline], [nodiscard], [constexpr]
Provides access to the data contained in the string.

Parameters

_←- The index of the character to access.


_n

Returns

Read/write reference to the character.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1515

Exceptions

std::out_of_range If n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

at() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::at (
size_type __n) [inline]
Provides access to the data contained in the string.

Parameters

_←- The index of the character to access.


_n

Returns

Read/write reference to the character.

Exceptions

std::out_of_range If n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails. Success results in unsharing the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

at() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::at (
size_type __n) const [inline], [nodiscard], [constexpr]
Provides access to the data contained in the string.

Parameters

_←- The index of the character to access.


_n

Returns

Read-only (const) reference to the character.

Generated by Doxygen
1516

Exceptions

std::out_of_range If n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

at() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::at (
size_type __n) const [inline]
Provides access to the data contained in the string.

Parameters

_←- The index of the character to access.


_n

Returns

Read-only (const) reference to the character.

Exceptions

std::out_of_range If n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the string. The
function throws out_of_range if the check fails.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

back() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::back () [inline]
Returns a read/write reference to the data at the last element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), std::basic_string< _CharT, _Traits, _Alloc >::operator[ ](),
and std::basic_string< _CharT, _Traits, _Alloc >::size().

back() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::back () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) reference to the data at the last element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), std::basic_string< _CharT, _Traits, _Alloc >::operator[ ](),
and std::basic_string< _CharT, _Traits, _Alloc >::size().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1517

back() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::back () const [inline], [noexcept]
Returns a read-only (constant) reference to the data at the last element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), std::basic_string< _CharT, _Traits, _Alloc >::operator[ ](),
and std::basic_string< _CharT, _Traits, _Alloc >::size().

back() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::back () [inline], [nodiscard], [constexpr],
[noexcept]
Returns a read/write reference to the data at the last element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), std::basic_string< _CharT, _Traits, _Alloc >::operator[ ](),
and std::basic_string< _CharT, _Traits, _Alloc >::size().

begin() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::begin () [inline]
Returns a read/write iterator that points to the first character in the string. Unshares the string.

begin() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::begin () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) iterator that points to the first character in the string.

begin() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::begin () const [inline], [noexcept]
Returns a read-only (constant) iterator that points to the first character in the string.

begin() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::begin () [inline], [nodiscard], [constexpr],
[noexcept]
Returns a read/write iterator that points to the first character in the string.
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::crend(), std::basic_string< _CharT, _Traits, _Alloc >::erase(),
std::basic_string< _CharT, _Traits, _Alloc >::erase(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::regex_match(), std::regex_match(), std::regex_replace(),
std::regex_replace(), std::regex_search(), std::basic_string< _CharT, _Traits, _Alloc >::rend(), std::basic_string< _CharT, _Traits, _Alloc >
std::basic_string< _CharT, _Traits, _Alloc >::rend(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _
std::basic_string< _CharT, _Traits, _Alloc >::replace(), and std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
1518

c_str() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const _CharT ∗ std::basic_string< _CharT, _Traits, _Alloc >::c_str () const [inline], [nodiscard],
[constexpr], [noexcept]
Return const pointer to null-terminated contents.
This is a handle to internal data. Do not modify or dire things may happen.
Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >
std::num_get< _CharT, _InIter >::do_get(), std::regex_replace(), std::regex_traits< typename >::transform_primary(),
and std::experimental::filesystem::v1::filesystem_error::what().

c_str() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const _CharT ∗ std::basic_string< _CharT, _Traits, _Alloc >::c_str () const [inline], [noexcept]
Return const pointer to null-terminated contents.
This is a handle to internal data. Do not modify or dire things may happen.

capacity() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::capacity () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns the total number of characters that the string can hold before needing to allocate more memory.
References std::basic_string< _CharT, _Traits, _Alloc >::max_size().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::push_back(),
and std::basic_string< _CharT, _Traits, _Alloc >::reserve().

capacity() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::capacity () const [inline], [noexcept]
Returns the total number of characters that the string can hold before needing to allocate more memory.

cbegin() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::cbegin () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) iterator that points to the first character in the string.

cbegin() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::cbegin () const [inline], [noexcept]
Returns a read-only (constant) iterator that points to the first character in the string.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1519

cend() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::cend () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) iterator that points one past the last character in the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

cend() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::cend () const [inline], [noexcept]
Returns a read-only (constant) iterator that points one past the last character in the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

clear() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::clear () [inline], [constexpr], [noexcept]
Erases the string, making it empty.

clear() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::clear () [inline], [noexcept]
Erases the string, making it empty.
References std::basic_string< _CharT, _Traits, _Alloc >::get_allocator().

compare() [1/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
const _CharT ∗ __s) const [inline], [nodiscard], [constexpr], [noexcept]
Compare to a C string.

Parameters

_←- C string to compare against.


_s

Returns

Integer < 0, 0, or > 0.

Returns an integer < 0 if this string is ordered before __s, 0 if their values are equivalent, or > 0 if this string is ordered
after __s. Determines the effective length rlen of the strings to compare as the smallest of size() and the length of a
string constructed from __s. The function then compares the two strings by calling traits::compare(data(),s,rlen). If the
result of the comparison is nonzero returns it, otherwise the shorter one is ordered first.
References std::min(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

Generated by Doxygen
1520

compare() [2/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
const _CharT ∗ __s) const [inline], [noexcept]
Compare to a C string.

Parameters

_←- C string to compare against.


_s

Returns

Integer < 0, 0, or > 0.

Returns an integer < 0 if this string is ordered before __s, 0 if their values are equivalent, or > 0 if this string is ordered
after __s. Determines the effective length rlen of the strings to compare as the smallest of size() and the length of a
string constructed from __s. The function then compares the two strings by calling traits::compare(data(),s,rlen). If the
result of the comparison is nonzero returns it, otherwise the shorter one is ordered first.
References std::min(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

compare() [3/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (
const _Tp & __svt) const [inline], [nodiscard], [constexpr], [noexcept]
Compare to a string_view.

Parameters
__svt An object convertible to string_view to compare against.

Returns

Integer < 0, 0, or > 0.

References std::min(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

compare() [4/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
const basic_string< _CharT, _Traits, _Alloc > & __str) const [inline], [nodiscard],
[constexpr]
Compare to a string.

Parameters

__str String to compare against.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1521

Returns

Integer < 0, 0, or > 0.

Returns an integer < 0 if this string is ordered before __str, 0 if their values are equivalent, or > 0 if this string is ordered
after __str. Determines the effective length rlen of the strings to compare as the smallest of size() and str.size(). The
function then compares the two strings by calling traits::compare(data(), str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.
References std::min(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

compare() [5/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
const basic_string< _CharT, _Traits, _Alloc > & __str) const [inline]
Compare to a string.

Parameters

__str String to compare against.

Returns

Integer < 0, 0, or > 0.

Returns an integer < 0 if this string is ordered before __str, 0 if their values are equivalent, or > 0 if this string is ordered
after __str. Determines the effective length rlen of the strings to compare as the smallest of size() and str.size(). The
function then compares the two strings by calling traits::compare(data(), str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.
References std::min(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

compare() [6/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n,
const _Tp & __svt) const [inline], [nodiscard], [constexpr], [noexcept]
Compare to a string_view.

Parameters

__pos A position in the string to start comparing from.


__n The number of characters to compare.
__svt An object convertible to string_view to compare against.

Returns

Integer < 0, 0, or > 0.

Generated by Doxygen
1522

compare() [7/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n,
const basic_string< _CharT, _Traits, _Alloc > & __str) const [inline], [nodiscard],
[constexpr]
Compare substring to a string.

Parameters

__pos Index of first character of substring.


__n Number of characters in substring.
__str String to compare against.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n characters starting at __pos. Returns an integer < 0 if the substring
is ordered before __str, 0 if their values are equivalent, or > 0 if the substring is ordered after __str. Determines the
effective length rlen of the strings to compare as the smallest of the length of the substring and __str.size(). The function
then compares the two strings by calling traits::compare(substring.data(),str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

compare() [8/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n,
const basic_string< _CharT, _Traits, _Alloc > & __str) const [inline]
Compare substring to a string.

Parameters

__pos Index of first character of substring.


__n Number of characters in substring.
__str String to compare against.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n characters starting at __pos. Returns an integer < 0 if the substring
is ordered before __str, 0 if their values are equivalent, or > 0 if the substring is ordered after __str. Determines the
effective length rlen of the strings to compare as the smallest of the length of the substring and __str.size(). The function
then compares the two strings by calling traits::compare(substring.data(),str.data(),rlen). If the result of the comparison
is nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1523

compare() [9/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n1,
const _CharT ∗ __s) const [inline], [nodiscard], [constexpr]
Compare substring to a C string.

Parameters

__pos Index of first character of substring.


__n1 Number of characters in substring.
__s C string to compare against.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at pos. Returns an integer < 0 if the substring is
ordered before __s, 0 if their values are equivalent, or > 0 if the substring is ordered after __s. Determines the effective
length rlen of the strings to compare as the smallest of the length of the substring and the length of a string constructed
from __s. The function then compares the two string by calling traits::compare(substring.data(),__s,rlen). If the result of
the comparison is nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

compare() [10/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n1,
const _CharT ∗ __s) const [inline]
Compare substring to a C string.

Parameters

__pos Index of first character of substring.


__n1 Number of characters in substring.
__s C string to compare against.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at pos. Returns an integer < 0 if the substring is
ordered before __s, 0 if their values are equivalent, or > 0 if the substring is ordered after __s. Determines the effective
length rlen of the strings to compare as the smallest of the length of the substring and the length of a string constructed
from __s. The function then compares the two string by calling traits::compare(substring.data(),__s,rlen). If the result of
the comparison is nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

Generated by Doxygen
1524

compare() [11/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n1,
const _CharT ∗ __s,
size_type __n2) const [inline], [nodiscard], [constexpr]
Compare substring against a character array.

Parameters

__pos Index of first character of substring.


__n1 Number of characters in substring.
__s character array to compare against.
__n2 Number of characters of s.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos. Form a string from the first __n2 characters
of __s. Returns an integer < 0 if this substring is ordered before the string from __s, 0 if their values are equivalent, or
> 0 if this substring is ordered after the string from __s. Determines the effective length rlen of the strings to compare
as the smallest of the length of the substring and __n2. The function then compares the two strings by calling traits←-
::compare(substring.data(),s,rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is
ordered first.
NB: s must have at least n2 characters, '\0' has no special meaning.
References std::min().

compare() [12/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos,
size_type __n1,
const _CharT ∗ __s,
size_type __n2) const [inline]
Compare substring against a character array.

Parameters

__pos Index of first character of substring.


__n1 Number of characters in substring.
__s character array to compare against.
__n2 Number of characters of s.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1525

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos. Form a string from the first __n2 characters
of __s. Returns an integer < 0 if this substring is ordered before the string from __s, 0 if their values are equivalent, or
> 0 if this substring is ordered after the string from __s. Determines the effective length rlen of the strings to compare
as the smallest of the length of the substring and __n2. The function then compares the two strings by calling traits←-
::compare(substring.data(),s,rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is
ordered first.
NB: s must have at least n2 characters, '\0' has no special meaning.
References std::min().

compare() [13/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos1,
size_type __n1,
const _Tp & __svt,
size_type __pos2,
size_type __n2 = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Compare to a string_view.

Parameters

__pos1 A position in the string to start comparing from.


__n1 The number of characters to compare.
__svt An object convertible to string_view to compare against.
__pos2 A position in the string_view to start comparing from.
__n2 The number of characters to compare.

Returns

Integer < 0, 0, or > 0.

compare() [14/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos1,
size_type __n1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n2 = npos) const [inline], [nodiscard], [constexpr]
Compare substring to a substring.

Parameters

__pos1 Index of first character of substring.


__n1 Number of characters in substring.

Generated by Doxygen
1526

Parameters

__str String to compare against.


__pos2 Index of first character of substring of str.
__n2 Number of characters in substring of str.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos1. Form the substring of __str from the
__n2 characters starting at __pos2. Returns an integer < 0 if this substring is ordered before the substring of __str,
0 if their values are equivalent, or > 0 if this substring is ordered after the substring of __str. Determines the effective
length rlen of the strings to compare as the smallest of the lengths of the substrings. The function then compares the
two strings by calling traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). If the result of the comparison is
nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

compare() [15/15]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
int std::basic_string< _CharT, _Traits, _Alloc >::compare (
size_type __pos1,
size_type __n1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n2 = npos) const [inline]
Compare substring to a substring.

Parameters

__pos1 Index of first character of substring.


__n1 Number of characters in substring.
__str String to compare against.
__pos2 Index of first character of substring of str.
__n2 Number of characters in substring of str.

Returns

Integer < 0, 0, or > 0.

Form the substring of this string from the __n1 characters starting at __pos1. Form the substring of __str from the
__n2 characters starting at __pos2. Returns an integer < 0 if this substring is ordered before the substring of __str,
0 if their values are equivalent, or > 0 if this substring is ordered after the substring of __str. Determines the effective
length rlen of the strings to compare as the smallest of the lengths of the substrings. The function then compares the
two strings by calling traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). If the result of the comparison is
nonzero returns it, otherwise the shorter one is ordered first.
References std::min().

copy() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1527

>::copy (
_CharT ∗ __s,
size_type __n,
size_type __pos = 0) const [constexpr]
Copy substring into C string.

Parameters

__s C string to copy value into.


__n Number of characters to copy.
__pos Index of first character to copy.

Returns

Number of characters actually copied

Exceptions

std::out_of_range If __pos > size().

Copies up to __n characters starting at __pos into the C string __s. If __pos is greater than size(), out_of_range is
thrown.

copy() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::copy (
_CharT ∗ __s,
size_type __n,
size_type __pos = 0) const
Copy substring into C string.

Parameters

__s C string to copy value into.


__n Number of characters to copy.
__pos Index of first character to copy.

Returns

Number of characters actually copied

Exceptions

std::out_of_range If __pos > size().

Copies up to __n characters starting at __pos into the C string __s. If __pos is greater than size(), out_of_range is
thrown.

Generated by Doxygen
1528

crbegin() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::crbegin () const [inline],
[nodiscard], [constexpr], [noexcept]
Returns a read-only (constant) reverse iterator that points to the last character in the string. Iteration is done in reverse
element order.
References std::basic_string< _CharT, _Traits, _Alloc >::end().

crbegin() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::crbegin () const [inline],
[noexcept]
Returns a read-only (constant) reverse iterator that points to the last character in the string. Iteration is done in reverse
element order.
References std::basic_string< _CharT, _Traits, _Alloc >::end().

crend() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::crend () const [inline],
[nodiscard], [constexpr], [noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first character in the string. Iteration is done
in reverse element order.
References std::basic_string< _CharT, _Traits, _Alloc >::begin().

crend() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::crend () const [inline],
[noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first character in the string. Iteration is done
in reverse element order.
References std::basic_string< _CharT, _Traits, _Alloc >::begin().

data() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const _CharT ∗ std::basic_string< _CharT, _Traits, _Alloc >::data () const [inline], [nodiscard],
[constexpr], [noexcept]
Return const pointer to contents.
This is a pointer to internal data. It is undefined to modify the contents through the returned pointer. To get a pointer
that allows modifying the contents use &str[0] instead, (or in C++17 the non-const str.data() overload).
Referenced by std::basic_regex< _Ch_type, _Rx_traits >::assign(), std::match_results< _Bi_iter, _Alloc >::format(),
std::wstring_convert< _Codecvt, _Elem, _Wide_alloc, _Byte_alloc >::from_bytes(), std::basic_string< _CharT, _Traits, _Alloc >::operato
std::wstring_convert< _Codecvt, _Elem, _Wide_alloc, _Byte_alloc >::to_bytes(), and std::regex_traits< typename >::transform().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1529

data() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const _CharT ∗ std::basic_string< _CharT, _Traits, _Alloc >::data () const [inline], [noexcept]
Return const pointer to contents.
This is a pointer to internal data. It is undefined to modify the contents through the returned pointer. To get a pointer
that allows modifying the contents use &str[0] instead, (or in C++17 the non-const str.data() overload).

data() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
_CharT ∗ std::basic_string< _CharT, _Traits, _Alloc >::data () [inline], [nodiscard], [constexpr],
[noexcept]
Return non-const pointer to contents.
This is a pointer to the character sequence held by the string. Modifying the characters in the sequence is allowed.

data() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
_CharT ∗ std::basic_string< _CharT, _Traits, _Alloc >::data () [inline]
Return non-const pointer to contents.
This is a pointer to the character sequence held by the string. Modifying the characters in the sequence is allowed.
The standard requires this function to be noexcept but for the Copy-On-Write string implementation it can throw. This
function allows modifying the string contents directly, which means we must copy-on-write to unshare it, which requires
allocating memory.

empty() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
bool std::basic_string< _CharT, _Traits, _Alloc >::empty () const [inline], [nodiscard], [constexpr],
[noexcept]
Returns true if the string is empty. Equivalent to ∗this == "".
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::back(), std::basic_string< _CharT, _Traits, _Alloc >::back(),
std::basic_string< _CharT, _Traits, _Alloc >::back(), std::basic_string< _CharT, _Traits, _Alloc >::front(), std::basic_string< _CharT, _Tra
std::basic_string< _CharT, _Traits, _Alloc >::front(), std::tr2::operator>>(), std::basic_string< _CharT, _Traits, _Alloc >::pop_back(),
and std::basic_string< _CharT, _Traits, _Alloc >::pop_back().

empty() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
bool std::basic_string< _CharT, _Traits, _Alloc >::empty () const [inline], [nodiscard], [noexcept]
Returns true if the string is empty. Equivalent to ∗this == "".
References std::basic_string< _CharT, _Traits, _Alloc >::size().

end() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::end () [inline]
Returns a read/write iterator that points one past the last character in the string. Unshares the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

Generated by Doxygen
1530

end() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::end () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) iterator that points one past the last character in the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

end() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_iterator std::basic_string< _CharT, _Traits, _Alloc >::end () const [inline], [noexcept]
Returns a read-only (constant) iterator that points one past the last character in the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

end() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::end () [inline], [nodiscard], [constexpr],
[noexcept]
Returns a read/write iterator that points one past the last character in the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::crbegin(),
std::basic_string< _CharT, _Traits, _Alloc >::erase(), std::basic_string< _CharT, _Traits, _Alloc >::erase(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::rbegin(), std::basic_string< _CharT, _Traits, _Alloc >::rbegin(), std::regex_match(),
std::regex_match(), std::regex_replace(), std::regex_replace(), std::regex_search(), std::basic_string< _CharT, _Traits, _Alloc >::replace()
std::basic_string< _CharT, _Traits, _Alloc >::replace(), and std::basic_string< _CharT, _Traits, _Alloc >::replace().

erase() [1/6]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (
__const_iterator __first,
__const_iterator __last) [inline], [constexpr]
Remove a range of characters.

Parameters

__first Iterator referencing the first character to remove.


__last Iterator referencing the end of the range.

Returns

Iterator referencing location of first after removal.

Removes the characters in the range [first,last) from this string. The value of the string doesn't change if an error is
thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1531

erase() [2/6]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (
__const_iterator __position) [inline], [constexpr]
Remove one character.

Parameters

__position Iterator referencing the character to remove.

Returns

iterator referencing same location after removal.

Removes the character at __position from this string. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

erase() [3/6]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::iterator std::basic_string< _CharT, _Traits, _Alloc >←-
::erase (
iterator __first,
iterator __last)
Remove a range of characters.

Parameters

__first Iterator referencing the first character to remove.


__last Iterator referencing the end of the range.

Returns

Iterator referencing location of first after removal.

Removes the characters in the range [first,last) from this string. The value of the string doesn't change if an error is
thrown.

erase() [4/6]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (
iterator __position) [inline]
Remove one character.

Parameters

__position Iterator referencing the character to remove.

Returns

iterator referencing same location after removal.

Removes the character at __position from this string. The value of the string doesn't change if an error is thrown.

Generated by Doxygen
1532

erase() [5/6]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::erase (
size_type __pos = 0,
size_type __n = npos) [inline], [constexpr]
Remove characters.

Parameters

__pos Index of first character to remove (default 0).


__n Number of characters to remove (default remainder).

Returns

Reference to this string.

Exceptions

std::out_of_range If pos is beyond the end of this string.

Removes __n characters from this string starting at __pos. The length of the string is reduced by __n. If there are < __n
characters to remove, the remainder of the string is truncated. If __p is beyond end of string, out_of_range is thrown.
The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::npos.
Referenced by std::getline(), std::operator>>(), std::basic_string< _CharT, _Traits, _Alloc >::pop_back(), and
std::basic_string< _CharT, _Traits, _Alloc >::resize().

erase() [6/6]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::erase (
size_type __pos = 0,
size_type __n = npos) [inline]
Remove characters.

Parameters

__pos Index of first character to remove (default 0).


__n Number of characters to remove (default remainder).

Returns

Reference to this string.

Exceptions

std::out_of_range If pos is beyond the end of this string.

Removes __n characters from this string starting at __pos. The length of the string is reduced by __n. If there are < __n
characters to remove, the remainder of the string is truncated. If __p is beyond end of string, out_of_range is thrown.
The value of the string doesn't change if an error is thrown.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1533

find() [1/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find (
_CharT __c,
size_type __pos = 0) const [nodiscard], [constexpr], [noexcept]
Find position of a character.

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
References std::size().

find() [2/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find (
_CharT __c,
size_type __pos = 0) const [noexcept]
Find position of a character.

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find().

find() [3/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [nodiscard], [constexpr], [noexcept]
Find position of a C substring.

Generated by Doxygen
1534

Parameters

__s C string to locate.


__pos Index of character to search from.
__n Number of characters from s to search for.

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for the first __n characters in __s within this string. If found, returns the index
where it begins. If not found, returns npos.
References std::data(), and std::size().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find(), std::basic_string< _CharT, _Traits, _Alloc >::find(),
std::basic_string< _CharT, _Traits, _Alloc >::find(), std::basic_string< _CharT, _Traits, _Alloc >::find(), and std::basic_string< _CharT, _T

find() [4/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [noexcept]
Find position of a C substring.

Parameters

__s C string to locate.


__pos Index of character to search from.
__n Number of characters from s to search for.

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for the first __n characters in __s within this string. If found, returns the index
where it begins. If not found, returns npos.

find() [5/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find (
const _CharT ∗ __s,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a C string.

Parameters

__s C string to locate.


__pos Index of character to search from (default 0).

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1535

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for the value of __s within this string. If found, returns the index where it begins.
If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find().

find() [6/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find (
const _CharT ∗ __s,
size_type __pos = 0) const [inline], [noexcept]
Find position of a C string.

Parameters

__s C string to locate.


__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for the value of __s within this string. If found, returns the index where it begins.
If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find().

find() [7/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find (
const _Tp & __svt,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a string_view.

Parameters
__svt The object convertible to string_view to locate.
__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

References std::basic_string< _CharT, _Traits, _Alloc >::find().

Generated by Doxygen
1536

find() [8/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a string.

Parameters

__str String to locate.


__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for value of __str within this string. If found, returns the index where it begins. If
not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find().

find() [9/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = 0) const [inline], [noexcept]
Find position of a string.

Parameters

__str String to locate.


__pos Index of character to search from (default 0).

Returns

Index of start of first occurrence.

Starting from __pos, searches forward for value of __str within this string. If found, returns the index where it begins. If
not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find().

find_first_not_of() [1/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_first_not_of (
_CharT __c,
size_type __pos = 0) const [nodiscard], [constexpr], [noexcept]
Find position of a different character.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1537

Parameters

__c Character to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character other than __c within this string. If found, returns the index where
it was found. If not found, returns npos.
References std::size().

find_first_not_of() [2/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
_CharT __c,
size_type __pos = 0) const [noexcept]
Find position of a different character.

Parameters

__c Character to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character other than __c within this string. If found, returns the index where
it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of().

find_first_not_of() [3/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_first_not_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [nodiscard], [constexpr], [noexcept]
Find position of a character not in C substring.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search from.
__n Number of characters from __s to consider.

Generated by Doxygen
1538

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in the first __n characters of __s within this string.
If found, returns the index where it was found. If not found, returns npos.
References std::size().

find_first_not_of() [4/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [noexcept]
Find position of a character not in C substring.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search from.
__n Number of characters from __s to consider.

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in the first __n characters of __s within this string.
If found, returns the index where it was found. If not found, returns npos.

find_first_not_of() [5/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const _CharT ∗ __s,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character not in C string.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1539

find_first_not_of() [6/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const _CharT ∗ __s,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character not in C string.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of().

find_first_not_of() [7/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const _Tp & __svt,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character not in a string_view.

Parameters
__svt A object convertible to string_view containing characters to avoid.
__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

References std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of().

find_first_not_of() [8/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character not in string.

Parameters

__str String containing characters to avoid.

Generated by Doxygen
1540

__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_no
std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), and std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of().

find_first_not_of() [9/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character not in string.

Parameters

__str String containing characters to avoid.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for a character not contained in __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of().

find_first_of() [1/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
_CharT __c,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character.

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for the character __c within this string. If found, returns the index where it was
found. If not found, returns npos.
Note: equivalent to find(__c, __pos).
References std::basic_string< _CharT, _Traits, _Alloc >::find().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1541

find_first_of() [2/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
_CharT __c,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character.

Parameters

__c Character to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for the character __c within this string. If found, returns the index where it was
found. If not found, returns npos.
Note: equivalent to find(__c, __pos).
References std::basic_string< _CharT, _Traits, _Alloc >::find().

find_first_of() [3/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_first_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [nodiscard], [constexpr], [noexcept]
Find position of a character of C substring.

Parameters

__s String containing characters to locate.


__pos Index of character to search from.
__n Number of characters from s to search for.

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the first __n characters of __s within this string. If found, returns the
index where it was found. If not found, returns npos.
References std::size().

find_first_of() [4/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [noexcept]
Find position of a character of C substring.

Generated by Doxygen
1542

Parameters

__s String containing characters to locate.


__pos Index of character to search from.
__n Number of characters from s to search for.

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the first __n characters of __s within this string. If found, returns the
index where it was found. If not found, returns npos.

find_first_of() [5/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const _CharT ∗ __s,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character of C string.

Parameters

__s String containing characters to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the characters of __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_of().

find_first_of() [6/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const _CharT ∗ __s,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character of C string.

Parameters

__s String containing characters to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the characters of __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_of().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1543

find_first_of() [7/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const _Tp & __svt,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character of a string_view.

Parameters
__svt An object convertible to string_view containing characters to locate.
__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

References std::basic_string< _CharT, _Traits, _Alloc >::find_first_of().

find_first_of() [8/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = 0) const [inline], [nodiscard], [constexpr], [noexcept]
Find position of a character of string.

Parameters

__str String containing characters to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_of().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_first_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_of(),
and std::basic_string< _CharT, _Traits, _Alloc >::find_first_of().

find_first_of() [9/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = 0) const [inline], [noexcept]
Find position of a character of string.

Generated by Doxygen
1544

Parameters

__str String containing characters to locate.


__pos Index of character to search from (default 0).

Returns

Index of first occurrence.

Starting from __pos, searches forward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_first_of().

find_last_not_of() [1/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_last_not_of (
_CharT __c,
size_type __pos = npos) const [nodiscard], [constexpr], [noexcept]
Find last position of a different character.

Parameters

__c Character to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character other than __c within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::size().

find_last_not_of() [2/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
_CharT __c,
size_type __pos = npos) const [noexcept]
Find last position of a different character.

Parameters

__c Character to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character other than __c within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1545

find_last_not_of() [3/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_last_not_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [nodiscard], [constexpr], [noexcept]
Find last position of a character not in C substring.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search back from.
__n Number of characters from s to consider.

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in the first __n characters of __s within this string.
If found, returns the index where it was found. If not found, returns npos.
References std::size().

find_last_not_of() [4/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [noexcept]
Find last position of a character not in C substring.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search back from.
__n Number of characters from s to consider.

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in the first __n characters of __s within this string.
If found, returns the index where it was found. If not found, returns npos.

find_last_not_of() [5/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const _CharT ∗ __s,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character not in C string.

Generated by Doxygen
1546

Parameters

__s C string containing characters to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in __s within this string. If found, returns the
index where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of().

find_last_not_of() [6/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const _CharT ∗ __s,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character not in C string.

Parameters

__s C string containing characters to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in __s within this string. If found, returns the
index where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of().

find_last_not_of() [7/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const _Tp & __svt,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character not in a string_view.

Parameters
__svt An object convertible to string_view containing characters to avoid.
__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

References std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1547

find_last_not_of() [8/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character not in string.

Parameters

__str String containing characters to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in __str within this string. If found, returns the
index where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_last_not
std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), and std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of().

find_last_not_of() [9/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character not in string.

Parameters

__str String containing characters to avoid.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for a character not contained in __str within this string. If found, returns the
index where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of().

find_last_of() [1/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
_CharT __c,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character.

Generated by Doxygen
1548

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
Note: equivalent to rfind(__c, __pos).
References std::basic_string< _CharT, _Traits, _Alloc >::rfind().

find_last_of() [2/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
_CharT __c,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character.

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
Note: equivalent to rfind(__c, __pos).
References std::basic_string< _CharT, _Traits, _Alloc >::rfind().

find_last_of() [3/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::find_last_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [nodiscard], [constexpr], [noexcept]
Find last position of a character of C substring.

Parameters

__s C string containing characters to locate.


__pos Index of character to search back from.
__n Number of characters from s to search for.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1549

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the first __n characters of __s within this string. If found, returns the
index where it was found. If not found, returns npos.
References std::size().

find_last_of() [4/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [noexcept]
Find last position of a character of C substring.

Parameters

__s C string containing characters to locate.


__pos Index of character to search back from.
__n Number of characters from s to search for.

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the first __n characters of __s within this string. If found, returns the
index where it was found. If not found, returns npos.

find_last_of() [5/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const _CharT ∗ __s,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character of C string.

Parameters

__s C string containing characters to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the characters of __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_of().

Generated by Doxygen
1550

find_last_of() [6/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const _CharT ∗ __s,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character of C string.

Parameters

__s C string containing characters to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the characters of __s within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_of().

find_last_of() [7/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const _Tp & __svt,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character of string.

Parameters
__svt An object convertible to string_view containing characters to locate.
__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

References std::basic_string< _CharT, _Traits, _Alloc >::find_last_of().

find_last_of() [8/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a character of string.

Parameters

__str String containing characters to locate.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1551

__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_of().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(),
and std::basic_string< _CharT, _Traits, _Alloc >::find_last_of().

find_last_of() [9/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a character of string.

Parameters

__str String containing characters to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for one of the characters of __str within this string. If found, returns the index
where it was found. If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::find_last_of().

front() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::front () [inline]
Returns a read/write reference to the data at the first element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and std::basic_string< _CharT, _Traits, _Alloc >::operator[ ]().

front() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::front () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read-only (constant) reference to the data at the first element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and std::basic_string< _CharT, _Traits, _Alloc >::operator[ ]().

Generated by Doxygen
1552

front() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::front () const [inline], [noexcept]
Returns a read-only (constant) reference to the data at the first element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and std::basic_string< _CharT, _Traits, _Alloc >::operator[ ]().

front() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::front () [inline], [nodiscard], [constexpr],
[noexcept]
Returns a read/write reference to the data at the first element of the string.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and std::basic_string< _CharT, _Traits, _Alloc >::operator[ ]().

get_allocator() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
allocator_type std::basic_string< _CharT, _Traits, _Alloc >::get_allocator () const [inline],
[nodiscard], [constexpr], [noexcept]
Return copy of allocator used to construct this string.
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::∼basic_string(), std::basic_string< _CharT, _Traits, _Alloc >::assign(),
std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::clear(), and
std::basic_string< _CharT, _Traits, _Alloc >::reserve().

get_allocator() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
allocator_type std::basic_string< _CharT, _Traits, _Alloc >::get_allocator () const [inline],
[noexcept]
Return copy of allocator used to construct this string.

insert() [1/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
__const_iterator __p,
_CharT __c) [inline], [constexpr]
Insert one character.
Parameters

_←- Iterator referencing position in string to insert at.


_p
_←- The character to insert.
_c

Returns

Iterator referencing newly inserted char.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1553

Exceptions

std::length_error If new length exceeds max_size().

Inserts character __c at position referenced by __p. If adding character causes the length to exceed max_size(),
length_error is thrown. If __p is beyond end of string, out_of_range is thrown. The value of the string doesn't change if
an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

insert() [2/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
const_iterator __p,
_InputIterator __beg,
_InputIterator __end) [inline], [constexpr]
Insert a range of characters.

Parameters

__p Const_iterator referencing location in string to insert at.


__beg Start of range.
__end End of range.

Returns

Iterator referencing the first inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts characters in range [beg,end). If adding characters causes the length to exceed max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [3/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
const_iterator __p,
initializer_list< _CharT > __l) [inline], [constexpr]
Insert an initializer_list of characters.

Parameters

_←- Iterator referencing location in string to insert at.


_p

Generated by Doxygen
1554

_←- The initializer_list of characters to insert.


_l

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1555

Exceptions

std::length_error If new length exceeds max_size().

References std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [4/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
const_iterator __p,
size_type __n,
_CharT __c) [inline], [constexpr]
Insert multiple characters.

Parameters

_←- Const_iterator referencing location in string to insert at.


_p
_←- Number of characters to insert
_n
_←- The character to insert.
_c

Returns

Iterator referencing the first inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts __n copies of character __c starting at the position referenced by iterator __p. If adding characters causes the
length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::basic_string< _CharT, _Traits, _Alloc >::replace().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(),
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
and std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [5/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
_CharT __c) [inline]
Insert one character.

Generated by Doxygen
1556

Parameters

_←- Iterator referencing position in string to insert at.


_p
_←- The character to insert.
_c

Returns

Iterator referencing newly inserted char.

Exceptions

std::length_error If new length exceeds max_size().

Inserts character __c at position referenced by __p. If adding character causes the length to exceed max_size(),
length_error is thrown. If __p is beyond end of string, out_of_range is thrown. The value of the string doesn't change if
an error is thrown.

insert() [6/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator >
void std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
_InputIterator __beg,
_InputIterator __end) [inline]
Insert a range of characters.

Parameters

__p Iterator referencing location in string to insert at.


__beg Start of range.
__end End of range.

Exceptions

std::length_error If new length exceeds max_size().

Inserts characters in range [__beg,__end). If adding characters causes the length to exceed max_size(), length_error
is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [7/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
initializer_list< _CharT > __l) [inline]
Insert an initializer_list of characters.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1557

Parameters

_←- Iterator referencing location in string to insert at.


_p
_←- The initializer_list of characters to insert.
_l

Exceptions

std::length_error If new length exceeds max_size().

References std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [8/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::insert (
iterator __p,
size_type __n,
_CharT __c) [inline]
Insert multiple characters.

Parameters

_←- Iterator referencing location in string to insert at.


_p
_←- Number of characters to insert
_n
_←- The character to insert.
_c

Exceptions

std::length_error If new length exceeds max_size().

Inserts __n copies of character __c starting at the position referenced by iterator __p. If adding characters causes the
length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [9/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
const _CharT ∗ __s) [inline], [constexpr]
Insert a C string.

Generated by Doxygen
1558

Parameters
__pos Position in string to insert at.
__s The C string to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If pos is beyond the end of this string.

Inserts the first n characters of __s starting at __pos. If adding characters causes the length to exceed max_size(),
length_error is thrown. If __pos is beyond end(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [10/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
const _CharT ∗ __s) [inline]
Insert a C string.

Parameters
__pos Position in string to insert at.
__s The C string to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If pos is beyond the end of this string.

Inserts the first n characters of __s starting at __pos. If adding characters causes the length to exceed max_size(),
length_error is thrown. If __pos is beyond end(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::insert().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1559

insert() [11/20]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
const _CharT ∗ __s,
size_type __n) [inline], [constexpr]
Insert a C substring.

Parameters
__pos Position in string to insert at.
__s The C string to insert.
__n The number of characters to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If __pos is beyond the end of this string.

Inserts the first __n characters of __s starting at __pos. If adding characters causes the length to exceed max_size(),
length_error is thrown. If __pos is beyond end(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [12/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
const _CharT ∗ __s,
size_type __n)
Insert a C substring.

Parameters
__pos Position in string to insert at.
__s The C string to insert.
__n The number of characters to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Generated by Doxygen
1560

std::out_of_range If __pos is beyond the end of this string.

Inserts the first __n characters of __s starting at __pos. If adding characters causes the length to exceed max_size(),
length_error is thrown. If __pos is beyond end(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.

insert() [13/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
const _Tp & __svt) [inline], [constexpr]
Insert a string_view.

Parameters
__pos Position in string to insert at.
__svt The object convertible to string_view to insert.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [14/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
size_type __n,
_CharT __c) [inline], [constexpr]
Insert multiple characters.

Parameters
__pos Index in string to insert at.
__n Number of characters to insert
__c The character to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If __pos is beyond the end of this string.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1561

Inserts __n copies of character __c starting at index __pos. If adding characters causes the length to exceed max_←-
size(), length_error is thrown. If __pos > length(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.

insert() [15/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos,
size_type __n,
_CharT __c) [inline]
Insert multiple characters.

Parameters
__pos Index in string to insert at.
__n Number of characters to insert
__c The character to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If __pos is beyond the end of this string.

Inserts __n copies of character __c starting at index __pos. If adding characters causes the length to exceed max_←-
size(), length_error is thrown. If __pos > length(), out_of_range is thrown. The value of the string doesn't change if an
error is thrown.

insert() [16/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const _Tp & __svt,
size_type __pos2,
size_type __n = npos) [inline], [constexpr]
Insert a string_view.

Parameters
__pos1 Position in string to insert at.
__svt The object convertible to string_view to insert from.
__pos2 Start of characters in str to insert.

Generated by Doxygen
1562

__n The number of characters to insert.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [17/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Insert value of a string.

Parameters
__pos1 Position in string to insert at.
__str The string to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Inserts value of __str starting at __pos1. If adding characters causes the length to exceed max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [18/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Insert value of a string.

Parameters
__pos1 Position in string to insert at.
__str The string to insert.

Returns

Reference to this string.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1563

Exceptions

std::length_error If new length exceeds max_size().

Inserts value of __str starting at __pos1. If adding characters causes the length to exceed max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::insert().

insert() [19/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n = npos) [inline], [constexpr]
Insert a substring.

Parameters
__pos1 Position in string to insert at.
__str The string to insert.
__pos2 Start of characters in str to insert.
__n Number of characters to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If pos1 > size() or __pos2 > str.size().

Starting at pos1, insert __n character of __str beginning with __pos2. If adding characters causes the length to exceed
max_size(), length_error is thrown. If __pos1 is beyond the end of this string or __pos2 is beyond the end of __str,
out_of_range is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

insert() [20/20]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (
size_type __pos1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n = npos) [inline]
Insert a substring.

Generated by Doxygen
1564

Parameters
__pos1 Position in string to insert at.
__str The string to insert.
__pos2 Start of characters in str to insert.
__n Number of characters to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().


std::out_of_range If pos1 > size() or __pos2 > str.size().

Starting at pos1, insert __n character of __str beginning with __pos2. If adding characters causes the length to exceed
max_size(), length_error is thrown. If __pos1 is beyond the end of this string or __pos2 is beyond the end of __str,
out_of_range is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::insert().

length() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::length () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns the number of characters in the string, not including any null-termination.
References std::basic_string< _CharT, _Traits, _Alloc >::size().
Referenced by std::regex_traits< typename >::length(), std::regex_replace(), and std::basic_string< _CharT, _Traits, _Alloc >::reserve().

length() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::length () const [inline], [noexcept]
Returns the number of characters in the string, not including any null-termination.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

max_size() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::max_size () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns the size() of the largest possible string.
References std::allocator_traits< _Alloc >::max_size(), and std::min().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::capacity(), std::getline(), std::operator>>(), and
std::basic_string< _CharT, _Traits, _Alloc >::size().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1565

max_size() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::max_size () const [inline], [noexcept]
Returns the size() of the largest possible string.

operator __sv_type()

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
std::basic_string< _CharT, _Traits, _Alloc >::operator __sv_type () const [inline], [constexpr],
[noexcept]
Convert to a string_view.
Returns

A string_view.

References std::basic_string< _CharT, _Traits, _Alloc >::data(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

operator+=() [1/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
_CharT __c) [inline], [constexpr]
Append a character.

Parameters
_←- The character to append.
_c

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::push_back().

operator+=() [2/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
_CharT __c) [inline]
Append a character.

Parameters
_←- The character to append.
_c

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::push_back().

Generated by Doxygen
1566

operator+=() [3/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
const _CharT ∗ __s) [inline], [constexpr]
Append a C string.

Parameters

_←- The C string to append.


_s

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

operator+=() [4/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
const _CharT ∗ __s) [inline]
Append a C string.

Parameters

_←- The C string to append.


_s

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

operator+=() [5/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
const _Tp & __svt) [inline], [constexpr]
Append a string_view.

Parameters
__svt An object convertible to string_view to be appended.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1567

operator+=() [6/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

operator+=() [7/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Append a string to this string.

Parameters
__str The string to append.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

operator+=() [8/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
initializer_list< _CharT > __l) [inline], [constexpr]
Append an initializer_list of characters.

Parameters

←- The initializer_list of characters to be appended.


_←-
←-
_←-
l

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

Generated by Doxygen
1568

operator+=() [9/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (
initializer_list< _CharT > __l) [inline]
Append an initializer_list of characters.

Parameters

←- The initializer_list of characters to be appended.


_←-
←-
_←-
l

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::append().

operator=() [1/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
_CharT __c) [inline], [constexpr]
Set value to string of length 1.

Parameters

_←- Source character.


_c

Assigning to a character makes this string length 1 and (∗this)[0] == c.


References std::basic_string< _CharT, _Traits, _Alloc >::assign().

operator=() [2/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
_CharT __c) [inline]
Set value to string of length 1.

Parameters

_←- Source character.


_c

Assigning to a character makes this string length 1 and (∗this)[0] == c.


References std::basic_string< _CharT, _Traits, _Alloc >::assign().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1569

operator=() [3/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [noexcept]
Move assign the value of str to this string.

Parameters

__str Source string.

The contents of str are moved into this string (without copying). str is a valid, but unspecified string.
References std::basic_string< _CharT, _Traits, _Alloc >::swap().

operator=() [4/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [constexpr], [noexcept]
Move assign the value of str to this string.

Parameters

__str Source string.

The contents of str are moved into this string (without copying). str is a valid, but unspecified string.
References std::__addressof().

operator=() [5/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
const _CharT ∗ __s) [inline], [constexpr]
Copy contents of s into this string.

Parameters

_←- Source null-terminated string.


_s

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

operator=() [6/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
const _CharT ∗ __s) [inline]
Copy contents of s into this string.

Generated by Doxygen
1570

Parameters

_←- Source null-terminated string.


_s

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

operator=() [7/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::operator= (
const _Tp & __svt) [inline], [constexpr]
Set value to string constructed from a string_view.

Parameters
__svt An object convertible to string_view.

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

operator=() [8/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Assign the value of str to this string.

Parameters

__str Source string.

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

operator=() [9/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Assign the value of str to this string.

Parameters

__str Source string.

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1571

operator=() [10/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
initializer_list< _CharT > __l) [inline], [constexpr]
Set value to string constructed from initializer list.

Parameters
←- std::initializer_list.
_←-
←-
_←-
l

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

operator=() [11/11]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator= (
initializer_list< _CharT > __l) [inline]
Set value to string constructed from initializer list.

Parameters
←- std::initializer_list.
_←-
←-
_←-
l

References std::basic_string< _CharT, _Traits, _Alloc >::assign().

operator[]() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::operator[ ] (
size_type __pos) [inline], [nodiscard], [constexpr]
Subscript access to the data contained in the string.

Parameters

__pos The index of the character to access.

Returns

Read/write reference to the character.

This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().)
References std::basic_string< _CharT, _Traits, _Alloc >::size().

Generated by Doxygen
1572

operator[]() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::operator[ ] (
size_type __pos) [inline]
Subscript access to the data contained in the string.

Parameters

__pos The index of the character to access.

Returns

Read/write reference to the character.

This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().) Unshares the string.
References std::basic_string< _CharT, _Traits, _Alloc >::size().

operator[]() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::operator[ ] (
size_type __pos) const [inline], [nodiscard], [constexpr], [noexcept]
Subscript access to the data contained in the string.

Parameters

__pos The index of the character to access.

Returns

Read-only (constant) reference to the character.

This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().)
References std::basic_string< _CharT, _Traits, _Alloc >::size().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::back(), std::basic_string< _CharT, _Traits, _Alloc >::back(),
std::basic_string< _CharT, _Traits, _Alloc >::back(), std::basic_string< _CharT, _Traits, _Alloc >::front(), std::basic_string< _CharT, _Tra
and std::basic_string< _CharT, _Traits, _Alloc >::front().

operator[]() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::operator[ ] (
size_type __pos) const [inline], [noexcept]
Subscript access to the data contained in the string.

Parameters

__pos The index of the character to access.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1573

Returns

Read-only (constant) reference to the character.

This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().)
References std::basic_string< _CharT, _Traits, _Alloc >::size().

pop_back() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::pop_back () [inline]
Remove the last character.
The string must be non-empty.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), std::basic_string< _CharT, _Traits, _Alloc >::erase(),
and std::basic_string< _CharT, _Traits, _Alloc >::size().

pop_back() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::pop_back () [inline], [constexpr], [noexcept]
Remove the last character.
The string must be non-empty.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

push_back() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::push_back (
_CharT __c) [inline], [constexpr]
Append a single character.

Parameters

_←- Character to append.


_c

References std::basic_string< _CharT, _Traits, _Alloc >::capacity(), and std::basic_string< _CharT, _Traits, _Alloc >::size().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::tr2::operator>>(), and std::basic_stringbuf< _CharT, _Trai

push_back() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::push_back (
_CharT __c) [inline]
Append a single character.

Parameters

_←- Character to append.


_c

Generated by Doxygen
1574

References std::basic_string< _CharT, _Traits, _Alloc >::capacity(), std::basic_string< _CharT, _Traits, _Alloc >::reserve(),
and std::basic_string< _CharT, _Traits, _Alloc >::size().

rbegin() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rbegin () [inline]
Returns a read/write reverse iterator that points to the last character in the string. Iteration is done in reverse element
order. Unshares the string.
References std::basic_string< _CharT, _Traits, _Alloc >::end().

rbegin() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rbegin () const [inline],
[nodiscard], [constexpr], [noexcept]
Returns a read-only (constant) reverse iterator that points to the last character in the string. Iteration is done in reverse
element order.
References std::basic_string< _CharT, _Traits, _Alloc >::end().

rbegin() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rbegin () const [inline],
[noexcept]
Returns a read-only (constant) reverse iterator that points to the last character in the string. Iteration is done in reverse
element order.
References std::basic_string< _CharT, _Traits, _Alloc >::end().

rbegin() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rbegin () [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read/write reverse iterator that points to the last character in the string. Iteration is done in reverse element
order.
References std::basic_string< _CharT, _Traits, _Alloc >::end().

rend() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rend () [inline]
Returns a read/write reverse iterator that points to one before the first character in the string. Iteration is done in reverse
element order. Unshares the string.
References std::basic_string< _CharT, _Traits, _Alloc >::begin().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1575

rend() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rend () const [inline],
[nodiscard], [constexpr], [noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first character in the string. Iteration is done
in reverse element order.
References std::basic_string< _CharT, _Traits, _Alloc >::begin().

rend() [3/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
const_reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rend () const [inline],
[noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first character in the string. Iteration is done
in reverse element order.
References std::basic_string< _CharT, _Traits, _Alloc >::begin().

rend() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
reverse_iterator std::basic_string< _CharT, _Traits, _Alloc >::rend () [inline], [nodiscard],
[constexpr], [noexcept]
Returns a read/write reverse iterator that points to one before the first character in the string. Iteration is done in reverse
element order.
References std::basic_string< _CharT, _Traits, _Alloc >::begin().

replace() [1/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
const _CharT ∗ __s) [inline], [constexpr]
Replace range of characters with C string.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s

Returns

Reference to this string.

Generated by Doxygen
1576

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the characters of __s are inserted. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [2/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
const _CharT ∗ __s,
size_type __n) [inline], [constexpr]
Replace range of characters with C substring.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s
_←- Number of characters from s to insert.
_n

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the first __n characters of __s are inserted. If the length of
result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::end(),
and std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [3/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Replace range of characters with string.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1577

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__str String value to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the value of __str is inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [4/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
__const_iterator __i1,
__const_iterator __i2,
size_type __n,
_CharT __c) [inline], [constexpr]
Replace range of characters with multiple characters.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- Number of characters to insert.
_n
_←- Character to insert.
_c

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, __n copies of __c are inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

Generated by Doxygen
1578

replace() [5/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
const_iterator __i1,
const_iterator __i2,
_InputIterator __k1,
_InputIterator __k2) [inline], [constexpr]
Replace range of characters with range.

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__k1 Iterator referencing start of range to insert.
__k2 Iterator referencing end of range to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::end().

replace() [6/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (
const_iterator __i1,
const_iterator __i2,
const _Tp & __svt) [inline], [constexpr]
Replace range of characters with string_view.

Parameters

__i1 An iterator referencing the start position to replace at.


__i2 An iterator referencing the end position for the replace.
__svt The object convertible to string_view to insert from.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::begin(), and std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1579

replace() [7/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
const_iterator __i1,
const_iterator __i2,
initializer_list< _CharT > __l) [inline], [constexpr]
Replace range of characters with initializer_list.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- The initializer_list of characters to insert.
_l

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [8/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<class _InputIterator >
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
_InputIterator __k1,
_InputIterator __k2) [inline]
Replace range of characters with range.

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__k1 Iterator referencing start of range to insert.
__k2 Iterator referencing end of range to insert.

Returns

Reference to this string.

Generated by Doxygen
1580

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [9/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
const _CharT ∗ __s) [inline]
Replace range of characters with C string.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- C string value to insert.
_s

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the characters of __s are inserted. If the length of result
exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [10/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
const _CharT ∗ __s,
size_type __n) [inline]
Replace range of characters with C substring.

Parameters

_←- Iterator referencing start of range to replace.


_i1

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1581

Parameters

_←- Iterator referencing end of range to replace.


_i2
_←- C string value to insert.
_s
_←- Number of characters from s to insert.
_n

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the first __n characters of __s are inserted. If the length of
result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [11/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Replace range of characters with string.

Parameters

__i1 Iterator referencing start of range to replace.


__i2 Iterator referencing end of range to replace.
__str String value to insert.

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, the value of __str is inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
1582

replace() [12/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
initializer_list< _CharT > __l) [inline]
Replace range of characters with initializer_list.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- The initializer_list of characters to insert.
_l

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length
of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [13/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
iterator __i1,
iterator __i2,
size_type __n,
_CharT __c) [inline]
Replace range of characters with multiple characters.

Parameters

_←- Iterator referencing start of range to replace.


_i1
_←- Iterator referencing end of range to replace.
_i2
_←- Number of characters to insert.
_n
_←- Character to insert.
_c

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1583

Returns

Reference to this string.

Exceptions

std::length_error If new length exceeds max_size().

Removes the characters in the range [__i1,__i2). In place, __n copies of __c are inserted. If the length of result exceeds
max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [14/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n,
const _Tp & __svt) [inline], [constexpr]
Replace range of characters with string_view.

Parameters
__pos The position to replace at.
__n The number of characters to replace.
__svt The object convertible to string_view to insert.

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [15/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [constexpr]
Replace characters with value from another string.

Parameters

__pos Index of first character to replace.


__n Number of characters to be replaced.
__str String to insert.

Returns

Reference to this string.

Generated by Doxygen
1584

Exceptions

std::out_of_range If pos is beyond the end of this string.


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos,__pos+__n) from this string. In place, the value of __str is inserted. If
__pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::assign(),
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _T
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(),
std::basic_string< _CharT, _Traits, _Alloc >::replace(), and std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [16/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n,
const basic_string< _CharT, _Traits, _Alloc > & __str) [inline]
Replace characters with value from another string.

Parameters

__pos Index of first character to replace.


__n Number of characters to be replaced.
__str String to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If pos is beyond the end of this string.


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos,__pos+__n) from this string. In place, the value of __str is inserted. If
__pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1585

replace() [17/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n1,
const _CharT ∗ __s) [inline], [constexpr]
Replace characters with value of a C string.

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__s C string to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If pos > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos,__pos + __n1) from this string. In place, the characters of __s are inserted.
If __pos is beyond end of string, out_of_range is thrown. If the length of result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [18/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n1,
const _CharT ∗ __s) [inline]
Replace characters with value of a C string.

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__s C string to insert.

Returns

Reference to this string.

Generated by Doxygen
1586

Exceptions

std::out_of_range If pos > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos,__pos + __n1) from this string. In place, the characters of __s are inserted.
If __pos is beyond end of string, out_of_range is thrown. If the length of result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [19/25]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::replace
(
size_type __pos,
size_type __n1,
const _CharT ∗ __s,
size_type __n2) [inline], [constexpr]
Replace characters with value of a C substring.

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__s C string to insert.
__n2 Number of characters from s to use.

Returns

Reference to this string.

Exceptions

std::out_of_range If pos1 > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos,__pos + __n1) from this string. In place, the first __n2 characters of __s
are inserted, or all of __s if __n2 is too large. If __pos is beyond end of string, out_of_range is thrown. If the length of
result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [20/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n1,
const _CharT ∗ __s,
size_type __n2)
Replace characters with value of a C substring.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1587

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__s C string to insert.
__n2 Number of characters from s to use.

Returns

Reference to this string.

Exceptions

std::out_of_range If pos1 > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos,__pos + __n1) from this string. In place, the first __n2 characters of __s
are inserted, or all of __s if __n2 is too large. If __pos is beyond end of string, out_of_range is thrown. If the length of
result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown.

replace() [21/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n1,
size_type __n2,
_CharT __c) [inline], [constexpr]
Replace characters with multiple characters.

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__n2 Number of characters to insert.
__c Character to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [pos,pos + n1) from this string. In place, __n2 copies of __c are inserted. If __pos
is beyond end of string, out_of_range is thrown. If the length of result exceeds max_size(), length_error is thrown. The
value of the string doesn't change if an error is thrown.

Generated by Doxygen
1588

replace() [22/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos,
size_type __n1,
size_type __n2,
_CharT __c) [inline]
Replace characters with multiple characters.

Parameters

__pos Index of first character to replace.


__n1 Number of characters to be replaced.
__n2 Number of characters to insert.
__c Character to insert.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos > size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [pos,pos + n1) from this string. In place, __n2 copies of __c are inserted. If __pos
is beyond end of string, out_of_range is thrown. If the length of result exceeds max_size(), length_error is thrown. The
value of the string doesn't change if an error is thrown.

replace() [23/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos1,
size_type __n1,
const _Tp & __svt,
size_type __pos2,
size_type __n2 = npos) [inline], [constexpr]
Replace range of characters with string_view.

Parameters
__pos1 The position to replace at.
__n1 The number of characters to replace.
__svt The object convertible to string_view to insert from.
__pos2 The position in the string_view to insert from.
__n2 The number of characters to insert.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1589

Returns

Reference to this string.

References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [24/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos1,
size_type __n1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n2 = npos) [inline], [constexpr]
Replace characters with value from another string.

Parameters

__pos1 Index of first character to replace.


__n1 Number of characters to be replaced.
__str String to insert.
__pos2 Index of first character of str to use.
__n2 Number of characters from str to use.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos1 > size() or __pos2 > __str.size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos1,__pos1 + n) from this string. In place, the value of __str is inserted. If
__pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

replace() [25/25]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (
size_type __pos1,
size_type __n1,
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos2,
size_type __n2 = npos) [inline]
Replace characters with value from another string.

Generated by Doxygen
1590

Parameters

__pos1 Index of first character to replace.


__n1 Number of characters to be replaced.
__str String to insert.
__pos2 Index of first character of str to use.
__n2 Number of characters from str to use.

Returns

Reference to this string.

Exceptions

std::out_of_range If __pos1 > size() or __pos2 > __str.size().


std::length_error If new length exceeds max_size().

Removes the characters in the range [__pos1,__pos1 + n) from this string. In place, the value of __str is inserted. If
__pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is
thrown. The value of the string doesn't change if an error is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::replace().

reserve() [1/4]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_string< _CharT, _Traits, _Alloc >::reserve () [constexpr]
Equivalent to shrink_to_fit().
References std::basic_string< _CharT, _Traits, _Alloc >::capacity(), std::basic_string< _CharT, _Traits, _Alloc >::get_allocator(),
and std::basic_string< _CharT, _Traits, _Alloc >::length().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::push_back(), and std::basic_string< _CharT, _Traits, _Alloc >::shrink_to_fit()

reserve() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::reserve ()
Equivalent to shrink_to_fit().

reserve() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_string< _CharT, _Traits, _Alloc >::reserve (
size_type __res_arg) [constexpr]
Attempt to preallocate enough memory for specified number of characters.

Parameters

__res_arg Number of characters required.

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1591

Exceptions

std::length_error If __res_arg exceeds max_size().

This function attempts to reserve enough memory for the string to hold the specified number of characters. If the number
requested is more than max_size(), length_error is thrown.
The advantage of this function is that if optimal code is a necessity and the user can determine the string length that
will be required, the user can reserve the memory in advance, and thus prevent a possible reallocation of memory and
copying of string data.
References std::size().
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::tr2::operator>>(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow().

reserve() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::reserve (
size_type __res_arg)
Attempt to preallocate enough memory for specified number of characters.

Parameters

__res_arg Number of characters required.

Exceptions

std::length_error If __res_arg exceeds max_size().

This function attempts to reserve enough memory for the string to hold the specified number of characters. If the number
requested is more than max_size(), length_error is thrown.
The advantage of this function is that if optimal code is a necessity and the user can determine the string length that
will be required, the user can reserve the memory in advance, and thus prevent a possible reallocation of memory and
copying of string data.

resize() [1/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::resize (
size_type __n) [inline], [constexpr]
Resizes the string to the specified number of characters.

Parameters

_←- Number of characters the string should contain.


_n

This function will resize the string to the specified length. If the new size is smaller than the string's current size the
string is truncated, otherwise the string is extended and new characters are default-constructed. For basic types such
as char, this means setting them to 0.
References std::basic_string< _CharT, _Traits, _Alloc >::resize().

Generated by Doxygen
1592

resize() [2/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::resize (
size_type __n) [inline]
Resizes the string to the specified number of characters.

Parameters

_←- Number of characters the string should contain.


_n

This function will resize the string to the specified length. If the new size is smaller than the string's current size the
string is truncated, otherwise the string is extended and new characters are default-constructed. For basic types such
as char, this means setting them to 0.
References std::basic_string< _CharT, _Traits, _Alloc >::resize().

resize() [3/4]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_string< _CharT, _Traits, _Alloc >::resize (
size_type __n,
_CharT __c) [constexpr]
Resizes the string to the specified number of characters.

Parameters

_←- Number of characters the string should contain.


_n
_←- Character to fill any new elements.
_c

This function will resize the string to the specified number of characters. If the number is smaller than the string's current
size the string is truncated, otherwise the string is extended and new elements are set to __c.
References std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::erase(),
and std::basic_string< _CharT, _Traits, _Alloc >::size().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::resize().

resize() [4/4]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::resize (
size_type __n,
_CharT __c)
Resizes the string to the specified number of characters.

Parameters

_←- Number of characters the string should contain.


_n
_←- Character to fill any new elements.
_c

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1593

This function will resize the string to the specified number of characters. If the number is smaller than the string's current
size the string is truncated, otherwise the string is extended and new elements are set to __c.

rfind() [1/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::rfind (
_CharT __c,
size_type __pos = npos) const [nodiscard], [constexpr], [noexcept]
Find last position of a character.

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
References std::size().

rfind() [2/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (
_CharT __c,
size_type __pos = npos) const [noexcept]
Find last position of a character.

Parameters

__c Character to locate.


__pos Index of character to search back from (default end).

Returns

Index of last occurrence.

Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not
found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::rfind().

rfind() [3/9]

template<typename _CharT , typename _Traits , typename _Alloc >


basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc
>::rfind (

Generated by Doxygen
1594

const _CharT ∗ __s,


size_type __pos,
size_type __n) const [nodiscard], [constexpr], [noexcept]
Find last position of a C substring.

Parameters

__s C string to locate.


__pos Index of character to search back from.
__n Number of characters from s to search for.

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for the first __n characters in __s within this string. If found, returns the index
where it begins. If not found, returns npos.
References std::min(), and std::size().

rfind() [4/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const _CharT ∗ __s,
size_type __pos,
size_type __n) const [noexcept]
Find last position of a C substring.

Parameters

__s C string to locate.


__pos Index of character to search back from.
__n Number of characters from s to search for.

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for the first __n characters in __s within this string. If found, returns the index
where it begins. If not found, returns npos.

rfind() [5/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const _CharT ∗ __s,
size_type __pos = npos) const [inline], [nodiscard], [constexpr]
Find last position of a C string.

Parameters

__s C string to locate.


__pos Index of character to start search at (default end).

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1595

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for the value of __s within this string. If found, returns the index where it begins.
If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::rfind().

rfind() [6/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const _CharT ∗ __s,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a C string.

Parameters

__s C string to locate.


__pos Index of character to start search at (default end).

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for the value of __s within this string. If found, returns the index where it begins.
If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::rfind().

rfind() [7/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
template<typename _Tp >
_If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const _Tp & __svt,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a string_view.

Parameters
__svt The object convertible to string_view to locate.
__pos Index of character to search back from (default end).

Returns

Index of start of last occurrence.

References std::basic_string< _CharT, _Traits, _Alloc >::rfind().

Generated by Doxygen
1596

rfind() [8/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = npos) const [inline], [nodiscard], [constexpr], [noexcept]
Find last position of a string.

Parameters

__str String to locate.


__pos Index of character to search back from (default end).

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for value of __str within this string. If found, returns the index where it begins.
If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::rfind().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(), std::basic_string< _CharT, _Traits, _Alloc >::rfind(),
std::basic_string< _CharT, _Traits, _Alloc >::rfind(), std::basic_string< _CharT, _Traits, _Alloc >::rfind(), std::basic_string< _CharT, _Tra
and std::basic_string< _CharT, _Traits, _Alloc >::rfind().

rfind() [9/9]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (
const basic_string< _CharT, _Traits, _Alloc > & __str,
size_type __pos = npos) const [inline], [noexcept]
Find last position of a string.

Parameters

__str String to locate.


__pos Index of character to search back from (default end).

Returns

Index of start of last occurrence.

Starting from __pos, searches backward for value of __str within this string. If found, returns the index where it begins.
If not found, returns npos.
References std::basic_string< _CharT, _Traits, _Alloc >::rfind().

shrink_to_fit() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::shrink_to_fit () [inline], [constexpr], [noexcept]
A non-binding request to reduce capacity() to size().
References std::basic_string< _CharT, _Traits, _Alloc >::reserve().

Generated by Doxygen
5.251 std::basic_string< _CharT, _Traits, _Alloc > Class Template Reference 1597

shrink_to_fit() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::shrink_to_fit () [inline], [noexcept]
A non-binding request to reduce capacity() to size().
References std::basic_string< _CharT, _Traits, _Alloc >::reserve().

size() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::size () const [inline], [nodiscard],
[constexpr], [noexcept]
Returns the number of characters in the string, not including any null-termination.
References std::basic_string< _CharT, _Traits, _Alloc >::max_size().
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_regex< _Ch_type, _Rx_traits >::assign(),
std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _
std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _
std::basic_string< _CharT, _Traits, _Alloc >::at(), std::basic_string< _CharT, _Traits, _Alloc >::at(), std::basic_string< _CharT, _Traits, _A
std::basic_string< _CharT, _Traits, _Alloc >::back(), std::basic_string< _CharT, _Traits, _Alloc >::back(), std::basic_string< _CharT, _Tra
std::basic_string< _CharT, _Traits, _Alloc >::compare(), std::basic_string< _CharT, _Traits, _Alloc >::compare(),
std::basic_string< _CharT, _Traits, _Alloc >::compare(), std::basic_string< _CharT, _Traits, _Alloc >::empty(),
std::basic_string< _CharT, _Traits, _Alloc >::end(), std::basic_string< _CharT, _Traits, _Alloc >::end(), std::basic_string< _CharT, _Traits
std::match_results< _Bi_iter, _Alloc >::format(), std::wstring_convert< _Codecvt, _Elem, _Wide_alloc, _Byte_alloc >::from_bytes(),
std::basic_string< _CharT, _Traits, _Alloc >::length(), std::basic_string< _CharT, _Traits, _Alloc >::operator __sv_type(),
std::tr2::operator>>(), std::basic_string< _CharT, _Traits, _Alloc >::operator[ ](), std::basic_string< _CharT, _Traits, _Alloc >::operator[ ]
std::basic_string< _CharT, _Traits, _Alloc >::pop_back(), std::basic_string< _CharT, _Traits, _Alloc >::pop_back(),
std::basic_string< _CharT, _Traits, _Alloc >::push_back(), std::basic_string< _CharT, _Traits, _Alloc >::resize(),
std::wstring_convert< _Codecvt, _Elem, _Wide_alloc, _Byte_alloc >::to_bytes(), std::regex_traits< typename >::transform(),
and std::regex_traits< typename >::transform_primary().

size() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::size () const [inline], [noexcept]
Returns the number of characters in the string, not including any null-termination.

substr() [1/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string std::basic_string< _CharT, _Traits, _Alloc >::substr (
size_type __pos = 0,
size_type __n = npos) const [inline], [nodiscard], [constexpr]
Get a substring.

Parameters

__pos Index of first character (default 0).


__n Number of characters in substring (default remainder).

Generated by Doxygen
1598

Returns

The new string.

Exceptions

std::out_of_range If __pos > size().

Construct and return a new string using the __n characters starting at __pos. If the string is too short, use the remainder
of the characters. If __pos is beyond the end of the string, out_of_range is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::basic_string().

substr() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
basic_string std::basic_string< _CharT, _Traits, _Alloc >::substr (
size_type __pos = 0,
size_type __n = npos) const [inline]
Get a substring.

Parameters

__pos Index of first character (default 0).


__n Number of characters in substring (default remainder).

Returns

The new string.

Exceptions

std::out_of_range If __pos > size().

Construct and return a new string using the __n characters starting at __pos. If the string is too short, use the remainder
of the characters. If __pos is beyond the end of the string, out_of_range is thrown.
References std::basic_string< _CharT, _Traits, _Alloc >::basic_string().

swap() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_string< _CharT, _Traits, _Alloc >::swap (
basic_string< _CharT, _Traits, _Alloc > & __s) [constexpr], [noexcept]
Swap contents with another string.

Parameters

_←- String to swap with.


_s

Exchanges the contents of this string with that of __s in constant time.
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), and std::basic_string< _CharT, _Traits, _Alloc >::operator=().

Generated by Doxygen
5.252 std::basic_string_view< _CharT, _Traits > Class Template Reference 1599

swap() [2/2]

template<typename _CharT , typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<←-


_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::swap (
basic_string< _CharT, _Traits, _Alloc > & __s) [noexcept]
Swap contents with another string.

Parameters

_←- String to swap with.


_s

Exchanges the contents of this string with that of __s in constant time.

5.251.4 Member Data Documentation

npos

template<typename _CharT , typename _Traits , typename _Alloc >


const basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _←-
Alloc >::npos [static]
Value returned by various member functions when they fail.
Referenced by std::basic_string< _CharT, _Traits, _Alloc >::basic_string(), and std::basic_string< _CharT, _Traits, _Alloc >::erase().
The documentation for this class was generated from the following files:

• basic_string.h
• cow_string.h
• stringfwd.h
• basic_string.tcc

5.252 std::basic_string_view< _CharT, _Traits > Class Template Reference


#include <>>

Public Types

• using const_iterator
• using const_pointer
• using const_reference
• using const_reverse_iterator
• using difference_type
• using iterator
• using pointer
• using reference
• using reverse_iterator
• using size_type
• using traits_type
• using value_type

Generated by Doxygen
1600

Public Member Functions

• constexpr basic_string_view (const _CharT ∗__str) noexcept


• constexpr basic_string_view (const _CharT ∗__str, size_type __len) noexcept
• constexpr basic_string_view (const basic_string_view &) noexcept=default
• constexpr const_reference at (size_type __pos) const
• constexpr const_reference back () const noexcept
• constexpr const_iterator begin () const noexcept
• constexpr const_iterator cbegin () const noexcept
• constexpr const_iterator cend () const noexcept
• constexpr int compare (basic_string_view __str) const noexcept
• constexpr int compare (const _CharT ∗__str) const noexcept
• constexpr int compare (size_type __pos1, size_type __n1, basic_string_view __str) const
• constexpr int compare (size_type __pos1, size_type __n1, basic_string_view __str, size_type __pos2, size_type
__n2) const
• constexpr int compare (size_type __pos1, size_type __n1, const _CharT ∗__str) const
• constexpr int compare (size_type __pos1, size_type __n1, const _CharT ∗__str, size_type __n2) const noex-
cept(false)
• constexpr size_type copy (_CharT ∗__str, size_type __n, size_type __pos=0) const
• constexpr const_reverse_iterator crbegin () const noexcept
• constexpr const_reverse_iterator crend () const noexcept
• constexpr const_pointer data () const noexcept
• constexpr bool empty () const noexcept
• constexpr const_iterator end () const noexcept
• constexpr size_type find (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find (basic_string_view __str, size_type __pos=0) const noexcept
• constexpr size_type find (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type find (const _CharT ∗__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (basic_string_view __str, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_first_not_of (const _CharT ∗__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (basic_string_view __str, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_first_of (const _CharT ∗__str, size_type __pos=0) const noexcept
• constexpr size_type find_last_not_of (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type find_last_not_of (basic_string_view __str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_not_of (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_last_not_of (const _CharT ∗__str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (basic_string_view __str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type find_last_of (const _CharT ∗__str, size_type __pos=npos) const noexcept
• constexpr const_reference front () const noexcept
• constexpr size_type length () const noexcept
• constexpr size_type max_size () const noexcept
• constexpr basic_string_view & operator= (const basic_string_view &) noexcept=default
• constexpr const_reference operator[ ] (size_type __pos) const noexcept
• constexpr const_reverse_iterator rbegin () const noexcept
• constexpr void remove_prefix (size_type __n) noexcept

Generated by Doxygen
5.253 std::experimental::fundamentals_v1::basic_string_view< _CharT, _Traits > Class Template Reference
1601

• constexpr void remove_suffix (size_type __n) noexcept


• constexpr const_reverse_iterator rend () const noexcept
• constexpr size_type rfind (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type rfind (basic_string_view __str, size_type __pos=npos) const noexcept
• constexpr size_type rfind (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type rfind (const _CharT ∗__str, size_type __pos=npos) const noexcept
• constexpr size_type size () const noexcept
• constexpr basic_string_view substr (size_type __pos=0, size_type __n=npos) const noexcept(false)
• constexpr void swap (basic_string_view &__sv) noexcept

Static Public Attributes

• static constexpr size_type npos

5.252.1 Detailed Description

template<typename _CharT, typename _Traits = std::char_traits<_CharT>>


class std::basic_string_view< _CharT, _Traits >

A non-owning reference to a string.

Template Parameters

_CharT Type of character


_Traits Traits for character type, defaults to char_traits<_CharT>.

A basic_string_view looks like this:


_CharT* _M_str
size_t _M_len
The documentation for this class was generated from the following files:

• string_view
• bits/string_view.tcc

5.253 std::experimental::fundamentals_v1::basic_string_view< _CharT, _Traits > Class


Template Reference
#include <>>

Public Types

• using const_iterator
• using const_pointer
• using const_reference
• using const_reverse_iterator
• using difference_type
• using iterator
• using pointer
• using reference
• using reverse_iterator
• using size_type
• using traits_type
• using value_type

Generated by Doxygen
1602

Public Member Functions

• constexpr basic_string_view (const _CharT ∗__str)


• constexpr basic_string_view (const _CharT ∗__str, size_type __len)
• template<typename _Allocator >
basic_string_view (const basic_string< _CharT, _Traits, _Allocator > &__str) noexcept
• constexpr basic_string_view (const basic_string_view &) noexcept=default
• constexpr const _CharT & at (size_type __pos) const
• constexpr const _CharT & back () const
• constexpr const_iterator begin () const noexcept
• constexpr const_iterator cbegin () const noexcept
• constexpr const_iterator cend () const noexcept
• constexpr int compare (basic_string_view __str) const noexcept
• constexpr int compare (const _CharT ∗__str) const noexcept
• constexpr int compare (size_type __pos1, size_type __n1, basic_string_view __str) const
• constexpr int compare (size_type __pos1, size_type __n1, basic_string_view __str, size_type __pos2, size_type
__n2) const
• constexpr int compare (size_type __pos1, size_type __n1, const _CharT ∗__str) const
• constexpr int compare (size_type __pos1, size_type __n1, const _CharT ∗__str, size_type __n2) const
• size_type copy (_CharT ∗__str, size_type __n, size_type __pos=0) const
• const_reverse_iterator crbegin () const noexcept
• const_reverse_iterator crend () const noexcept
• constexpr const _CharT ∗ data () const noexcept
• constexpr bool empty () const noexcept
• constexpr const_iterator end () const noexcept
• constexpr size_type find (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find (basic_string_view __str, size_type __pos=0) const noexcept
• constexpr size_type find (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type find (const _CharT ∗__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (basic_string_view __str, size_type __pos=0) const noexcept
• constexpr size_type find_first_not_of (const _CharT ∗__str, size_type __pos, size_type __n) const
• constexpr size_type find_first_not_of (const _CharT ∗__str, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (basic_string_view __str, size_type __pos=0) const noexcept
• constexpr size_type find_first_of (const _CharT ∗__str, size_type __pos, size_type __n) const
• constexpr size_type find_first_of (const _CharT ∗__str, size_type __pos=0) const noexcept
• constexpr size_type find_last_not_of (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type find_last_not_of (basic_string_view __str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_not_of (const _CharT ∗__str, size_type __pos, size_type __n) const
• constexpr size_type find_last_not_of (const _CharT ∗__str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (basic_string_view __str, size_type __pos=npos) const noexcept
• constexpr size_type find_last_of (const _CharT ∗__str, size_type __pos, size_type __n) const
• constexpr size_type find_last_of (const _CharT ∗__str, size_type __pos=npos) const noexcept
• constexpr const _CharT & front () const
• constexpr size_type length () const noexcept
• constexpr size_type max_size () const noexcept
• template<typename _Allocator >
operator basic_string< _CharT, _Traits, _Allocator > () const
• basic_string_view & operator= (const basic_string_view &) noexcept=default

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1603

• constexpr const _CharT & operator[ ] (size_type __pos) const


• const_reverse_iterator rbegin () const noexcept
• constexpr void remove_prefix (size_type __n)
• constexpr void remove_suffix (size_type __n)
• const_reverse_iterator rend () const noexcept
• constexpr size_type rfind (_CharT __c, size_type __pos=npos) const noexcept
• constexpr size_type rfind (basic_string_view __str, size_type __pos=npos) const noexcept
• constexpr size_type rfind (const _CharT ∗__str, size_type __pos, size_type __n) const noexcept
• constexpr size_type rfind (const _CharT ∗__str, size_type __pos=npos) const noexcept
• constexpr size_type size () const noexcept
• constexpr basic_string_view substr (size_type __pos=0, size_type __n=npos) const
• constexpr void swap (basic_string_view &__sv) noexcept
• template<typename _Allocator = std::allocator<_CharT>>
basic_string< _CharT, _Traits, _Allocator > to_string (const _Allocator &__alloc=_Allocator()) const

Static Public Attributes

• static constexpr size_type npos

5.253.1 Detailed Description

template<typename _CharT, typename _Traits = std::char_traits<_CharT>>


class std::experimental::fundamentals_v1::basic_string_view< _CharT, _Traits >

A non-owning reference to a string.

Template Parameters

_CharT Type of character


_Traits Traits for character type, defaults to char_traits<_CharT>.

A basic_string_view looks like this:


_CharT* _M_str
size_t _M_len
The documentation for this class was generated from the following files:

• experimental/string_view
• experimental/bits/string_view.tcc

5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference


#include <sstream>

Generated by Doxygen
1604

Inheritance diagram for std::basic_stringbuf< _CharT, _Traits, _Alloc >:

std::basic_streambuf
< _CharT, _Traits >

std::basic_stringbuf
< _CharT, _Traits, _Alloc >

Public Types

• typedef __string_type::size_type __size_type


• typedef basic_streambuf< char_type, traits_type > __streambuf_type
• typedef basic_string< char_type, _Traits, _Alloc > __string_type
• typedef _Alloc allocator_type
• typedef _CharT char_type
• typedef traits_type::int_type int_type
• typedef traits_type::off_type off_type
• typedef traits_type::pos_type pos_type
• typedef _Traits traits_type

Public Member Functions

• basic_stringbuf ()
• basic_stringbuf (__string_type &&__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
• basic_stringbuf (basic_stringbuf &&__rhs)
• basic_stringbuf (basic_stringbuf &&__rhs, const allocator_type &__a)
• basic_stringbuf (const __string_type &__str, ios_base::openmode __mode=ios_base::in|ios_base::out)
• basic_stringbuf (const allocator_type &__a)
• template<typename _SAlloc >
basic_stringbuf (const basic_string< _CharT, _Traits, _SAlloc > &__s, const allocator_type &__a)
• template<typename _SAlloc >
basic_stringbuf (const basic_string< _CharT, _Traits, _SAlloc > &__s, ios_base::openmode __mode, const
allocator_type &__a)
• template<typename _SAlloc >
basic_stringbuf (const basic_string< _CharT, _Traits, _SAlloc > &__s, ios_base::openmode __←-
mode=ios_base::in|ios_base::out)
• basic_stringbuf (const basic_stringbuf &)=delete
• basic_stringbuf (ios_base::openmode __mode)
• basic_stringbuf (ios_base::openmode __mode, const allocator_type &__a)
• allocator_type get_allocator () const noexcept
• locale getloc () const
• streamsize in_avail ()

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1605

• basic_stringbuf & operator= (basic_stringbuf &&__rhs)


• basic_stringbuf & operator= (const basic_stringbuf &)=delete
• locale pubimbue (const locale &__loc)
• int_type sbumpc ()
• int_type sgetc ()
• streamsize sgetn (char_type ∗__s, streamsize __n)
• int_type snextc ()
• int_type sputbackc (char_type __c)
• int_type sputc (char_type __c)
• streamsize sputn (const char_type ∗__s, streamsize __n)
• __string_type str () &&
• __string_type str () const &
• void str (__string_type &&__s)
• void str (const __string_type &__s)
• template<__allocator_like _SAlloc>
basic_string< _CharT, _Traits, _SAlloc > str (const _SAlloc &__sa) const
• template<__allocator_like _SAlloc>
requires (!is_same_v<_SAlloc, _Alloc>)
void str (const basic_string< _CharT, _Traits, _SAlloc > &__s)
• int_type sungetc ()
• void swap (basic_stringbuf &__rhs) noexcept(_Noexcept_swap::value)
• basic_string_view< char_type, traits_type > view () const noexcept

• basic_streambuf ∗ pubsetbuf (char_type ∗__s, streamsize __n)


• pos_type pubseekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
• pos_type pubseekpos (pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
• int pubsync ()

Protected Member Functions

• void __safe_gbump (streamsize __n)


• void __safe_pbump (streamsize __n)
• void _M_pbump (char_type ∗__pbeg, char_type ∗__pend, off_type __off)
• void _M_stringbuf_init (ios_base::openmode __mode)
• void _M_sync (char_type ∗__base, __size_type __i, __size_type __o)
• void _M_update_egptr ()
• void gbump (int __n)
• virtual void imbue (const locale &__loc)
• virtual int_type overflow (int_type __c=traits_type::eof())
• virtual int_type pbackfail (int_type __c=traits_type::eof())
• void pbump (int __n)
• virtual pos_type seekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
• virtual pos_type seekpos (pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
• virtual __streambuf_type ∗ setbuf (char_type ∗__s, streamsize __n)
• void setg (char_type ∗__gbeg, char_type ∗__gnext, char_type ∗__gend)
• void setp (char_type ∗__pbeg, char_type ∗__pend)
• virtual streamsize showmanyc ()
• void swap (basic_streambuf &__sb)
• virtual int sync ()
• virtual int_type uflow ()
• virtual int_type underflow ()

Generated by Doxygen
1606

• virtual streamsize xsgetn (char_type ∗__s, streamsize __n)


• virtual streamsize xsputn (const char_type ∗__s, streamsize __n)

• char_type ∗ eback () const


• char_type ∗ gptr () const
• char_type ∗ egptr () const

• char_type ∗ pbase () const


• char_type ∗ pptr () const
• char_type ∗ epptr () const

Protected Attributes

• locale _M_buf_locale
• char_type ∗ _M_in_beg
• char_type ∗ _M_in_cur
• char_type ∗ _M_in_end
• ios_base::openmode _M_mode
• char_type ∗ _M_out_beg
• char_type ∗ _M_out_cur
• char_type ∗ _M_out_end
• __string_type _M_string

5.254.1 Detailed Description

template<typename _CharT, typename _Traits, typename _Alloc>


class std::basic_stringbuf< _CharT, _Traits, _Alloc >

The actual work of input and output (for std::string).

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.
_Alloc Allocator type, defaults to allocator<_CharT>.

This class associates either or both of its input and output sequences with a sequence of characters, which can be
initialized from, or made available as, a std::basic_string. (Paraphrased from [27.7.1]/1.)
For this class, open modes (of type ios_base::openmode) have in set if the input sequence can be read, and
out set if the output sequence can be written.

5.254.2 Constructor & Destructor Documentation

basic_stringbuf() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_stringbuf< _CharT, _Traits, _Alloc >::basic_stringbuf () [inline]
Starts with an empty string buffer.
The default constructor initializes the parent class using its own default ctor.

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1607

basic_stringbuf() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_stringbuf< _CharT, _Traits, _Alloc >::basic_stringbuf (
ios_base::openmode __mode) [inline], [explicit]
Starts with an empty string buffer.

Parameters

__mode Whether the buffer can read, or write, or both.

The default constructor initializes the parent class using its own default ctor.

basic_stringbuf() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_stringbuf< _CharT, _Traits, _Alloc >::basic_stringbuf (
const __string_type & __str,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [explicit]
Starts with an existing string buffer.

Parameters

__str A string to copy as a starting buffer.


__mode Whether the buffer can read, or write, or both.

This constructor initializes the parent class using its own default ctor.

5.254.3 Member Function Documentation

eback()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::eback () const [inline], [protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

egptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::egptr () const [inline], [protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

Generated by Doxygen
1608

epptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::epptr () const [inline], [protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.
• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

gbump()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::gbump (
int __n) [inline], [protected], [inherited]
Moving the read position.

Parameters
_←- The delta by which to move.
_n

This just advances the read position without returning any data.

getloc()

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::getloc () const [inline], [inherited]
Locale access.
Returns

The current locale in effect.


If pubimbue(loc) has been called, then the most recent loc is returned. Otherwise the global locale in effect at the time
of construction is returned.

gptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::gptr () const [inline], [protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.
• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

imbue()

template<typename _CharT , typename _Traits >


virtual void std::basic_streambuf< _CharT, _Traits >::imbue (
const locale & __loc) [inline], [protected], [virtual], [inherited]
Changes translations.

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1609

Parameters
__loc A new locale.

Translations done during I/O which depend on the current locale are changed by this call. The standard adds, Between
invocations of this function a class derived from streambuf can safely cache results of calls to locale functions and to
members of facets so obtained.
Note

Base class version does nothing.

Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, and std::basic_filebuf< char_type, traits_type >.

in_avail()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::in_avail () [inline], [inherited]
Looking ahead into the stream.

Returns

The number of characters available.

If a read position is available, returns the number of characters available for reading before the buffer must be refilled.
Otherwise returns the derived showmanyc().

overflow()

template<class _CharT , class _Traits , class _Alloc >


basic_stringbuf< _CharT, _Traits, _Alloc >::int_type std::basic_stringbuf< _CharT, _Traits, _←-
Alloc >::overflow (
int_type __c = traits_type::eof()) [protected], [virtual]
Consumes data from the buffer; writes to the controlled sequence.

Parameters
_←- An additional character to consume.
_c

Returns

eof() to indicate failure, something else (usually __c, or not_eof())

Informally, this function is called when the output buffer is full (or does not exist, as buffering need not actually be done).
If a buffer exists, it is consumed, with some effect on the controlled sequence. (Typically, the buffer is written out to the
sequence verbatim.) In either case, the character c is also written out, if __c is not eof().
For a formal definition of this function, see a good text such as Langer & Kreft, or [27.5.2.4.5]/3-7.
A functioning output streambuf can be created by overriding only this function (no buffer area will be used).

Note

Base class version does nothing, returns eof().

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::ios_base::in, std::max(), std::min(), std::ios_base::out,
std::basic_string< _CharT, _Traits, _Alloc >::push_back(), and std::basic_string< _CharT, _Traits, _Alloc >::reserve().

Generated by Doxygen
1610

pbackfail()

template<class _CharT , class _Traits , class _Alloc >


basic_stringbuf< _CharT, _Traits, _Alloc >::int_type std::basic_stringbuf< _CharT, _Traits, _←-
Alloc >::pbackfail (
int_type __c = traits_type::eof()) [protected], [virtual]
Tries to back up the input sequence.

Parameters
_←- The character to be inserted back into the sequence.
_c

Returns

eof() on failure, some other value on success

Postcondition

The constraints of gptr(), eback(), and pptr() are the same as for underflow().

Note

Base class version does nothing, returns eof().

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::out.

pbase()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::pbase () const [inline], [protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

pbump()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::pbump (
int __n) [inline], [protected], [inherited]
Moving the write position.

Parameters
_←- The delta by which to move.
_n

This just advances the write position without returning any data.

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1611

pptr()

template<typename _CharT , typename _Traits >


char_type ∗ std::basic_streambuf< _CharT, _Traits >::pptr () const [inline], [protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

pubimbue()

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::pubimbue (
const locale & __loc) [inline], [inherited]
Entry point for imbue().

Parameters
__loc The new locale.

Returns

The previous locale.

Calls the derived imbue(__loc).

pubseekoff()

template<typename _CharT , typename _Traits >


pos_type std::basic_streambuf< _CharT, _Traits >::pubseekoff (
off_type __off,
ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [inherited]
Alters the stream position.

Parameters

__off Offset.
__way Value for ios_base::seekdir.
__mode Value for ios_base::openmode.

Calls virtual seekoff function.

pubseekpos()

template<typename _CharT , typename _Traits >


pos_type std::basic_streambuf< _CharT, _Traits >::pubseekpos (
pos_type __sp,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [inherited]
Alters the stream position.

Generated by Doxygen
1612

Parameters
__sp Position
__mode Value for ios_base::openmode.

Calls virtual seekpos function.

pubsetbuf()

template<typename _CharT , typename _Traits >


basic_streambuf ∗ std::basic_streambuf< _CharT, _Traits >::pubsetbuf (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry points for derived buffer functions.
The public versions of pubfoo dispatch to the protected derived foo member functions, passing the arguments (if
any) and returning the result unchanged.

pubsync()

template<typename _CharT , typename _Traits >


int std::basic_streambuf< _CharT, _Traits >::pubsync () [inline], [inherited]
Calls virtual sync function.
Referenced by std::basic_istream< _CharT, _Traits >::sync().

sbumpc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sbumpc () [inline], [inherited]
Getting the next character.

Returns

The next character, or eof.

If the input read position is available, returns that character and increments the read pointer, otherwise calls and returns
uflow().
Referenced by std::basic_istream< _CharT, _Traits >::getline(), std::istreambuf_iterator< _CharT, _Traits >::operator++(),
and std::istreambuf_iterator< _CharT, _Traits >::operator++().

seekoff()

template<class _CharT , class _Traits , class _Alloc >


basic_stringbuf< _CharT, _Traits, _Alloc >::pos_type std::basic_stringbuf< _CharT, _Traits, _←-
Alloc >::seekoff (
off_type ,
ios_base::seekdir ,
ios_base::openmode = ios_base::in | ios_base::out) [protected], [virtual]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::cur, std::ios_base::end, std::ios_base::in, and std::ios_base::out.

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1613

seekpos()

template<class _CharT , class _Traits , class _Alloc >


basic_stringbuf< _CharT, _Traits, _Alloc >::pos_type std::basic_stringbuf< _CharT, _Traits, _←-
Alloc >::seekpos (
pos_type ,
ios_base::openmode = ios_base::in | ios_base::out) [protected], [virtual]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::in, and std::ios_base::out.

setbuf()

template<typename _CharT , typename _Traits , typename _Alloc >


virtual __streambuf_type ∗ std::basic_stringbuf< _CharT, _Traits, _Alloc >::setbuf (
char_type ∗ __s,
streamsize __n) [inline], [protected], [virtual]
Manipulates the buffer.

Parameters

_←- Pointer to a buffer area.


_s
_←- Size of __s.
_n

Returns

this

If no buffer has already been created, and both __s and __n are non-zero, then __s is used as a buffer; see
https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html#io.streambuf.←-
buffering for more.
Reimplemented from std::basic_streambuf< _CharT, _Traits >.

setg()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::setg (
char_type ∗ __gbeg,
char_type ∗ __gnext,
char_type ∗ __gend) [inline], [protected], [inherited]
Setting the three read area pointers.

Parameters
__gbeg A pointer.
__gnext A pointer.
__gend A pointer.

Generated by Doxygen
1614

Postcondition

__gbeg == eback(), __gnext == gptr(), and __gend == egptr()

setp()

template<typename _CharT , typename _Traits >


void std::basic_streambuf< _CharT, _Traits >::setp (
char_type ∗ __pbeg,
char_type ∗ __pend) [inline], [protected], [inherited]
Setting the three write area pointers.

Parameters
__pbeg A pointer.
__pend A pointer.

Postcondition

__pbeg == pbase(), __pbeg == pptr(), and __pend == epptr()

sgetc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sgetc () [inline], [inherited]
Getting the next character.

Returns

The next character, or eof.

If the input read position is available, returns that character, otherwise calls and returns underflow(). Does not
move the read position after fetching the character.
Referenced by std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >::ignore(), std::istreambuf_iterator< _CharT, _Trait
and std::istreambuf_iterator< _CharT, _Traits >::operator++().

sgetn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::sgetn (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry point for xsgetn.

Parameters

_←- A buffer area.


_s
_←- A count.
_n

Returns xsgetn(__s,__n). The effect is to fill __s[0] through __s[__n-1] with characters from the input sequence, if
possible.

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1615

showmanyc()

template<typename _CharT , typename _Traits , typename _Alloc >


virtual streamsize std::basic_stringbuf< _CharT, _Traits, _Alloc >::showmanyc () [inline], [protected],
[virtual]
Investigating the data available.

Returns

An estimate of the number of characters available in the input sequence, or -1.

If it returns a positive value, then successive calls to underflow() will not return traits::eof() until at least that
number of characters have been supplied. If showmanyc() returns -1, then calls to underflow() or uflow()
will fail. [27.5.2.4.3]/1

Note

Base class version does nothing, returns zero.


The standard adds that the intention is not only that the calls [to underflow or uflow] will not return eof() but that
they will return immediately.
The standard adds that the morphemes of showmanyc are es-how-many-see, not show-manic.

Reimplemented from std::basic_streambuf< _CharT, _Traits >.

snextc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::snextc () [inline], [inherited]
Getting the next character.

Returns

The next character, or eof.

Calls sbumpc(), and if that function returns traits::eof(), so does this function. Otherwise, sgetc().
Referenced by std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, char_traits< _CharT > >::ignore(),
std::basic_istream< _CharT, char_traits< _CharT > >::operator>>(), and std::basic_istream< _CharT, char_traits< _CharT > >::putba

sputbackc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sputbackc (
char_type __c) [inline], [inherited]
Pushing characters back into the input stream.

Parameters
_←- The character to push back.
_c

Returns

The previous character, if possible.

Similar to sungetc(), but __c is pushed onto the stream instead of the previous character. If successful, the next character
fetched from the input stream will be __c.
Referenced by std::basic_istream< _CharT, _Traits >::putback().

Generated by Doxygen
1616

sputc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sputc (
char_type __c) [inline], [inherited]
Entry point for all single-character output functions.

Parameters
_←- A character to output.
_c

Returns

__c, if possible.

One of two public output functions.


If a write position is available for the output sequence (i.e., the buffer is not full), stores __c in that position, increments
the position, and returns traits::to_int_type(__c). If a write position is not available, returns overflow(←-
__c).
Referenced by std::ostreambuf_iterator< _CharT, _Traits >::operator=().

sputn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::sputn (
const char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry point for all single-character output functions.

Parameters

_←- A buffer read area.


_s
_←- A count.
_n

One of two public output functions.


Returns xsputn(__s,__n). The effect is to write __s[0] through __s[__n-1] to the output sequence, if possible.

str() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >


__string_type std::basic_stringbuf< _CharT, _Traits, _Alloc >::str () const & [inline], [nodiscard]
Copying out the string buffer.

Returns

A copy of one of the underlying sequences.

If the buffer is only created in input mode, the underlying character sequence is equal to the input sequence; otherwise,
it is equal to the output sequence. [27.7.1.2]/1

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1617

str() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_stringbuf< _CharT, _Traits, _Alloc >::str (
const __string_type & __s) [inline]
Setting a new buffer.

Generated by Doxygen
1618

Parameters
_←- The string to use as a new sequence.
_s

Deallocates any previous stored sequence, then copies s to use as a new one.

sungetc()

template<typename _CharT , typename _Traits >


int_type std::basic_streambuf< _CharT, _Traits >::sungetc () [inline], [inherited]
Moving backwards in the input stream.

Returns

The previous character, if possible.

If a putback position is available, this function decrements the input pointer and returns that character. Otherwise, calls
and returns pbackfail(). The effect is to unget the last character gotten.
Referenced by std::basic_istream< _CharT, char_traits< _CharT > >::sentry::sentry().

sync()

template<typename _CharT , typename _Traits >


virtual int std::basic_streambuf< _CharT, _Traits >::sync () [inline], [protected], [virtual],
[inherited]
Synchronizes the buffer arrays with the controlled sequences.

Returns

-1 on failure.

Each derived class provides its own appropriate behavior, including the definition of failure.

Note

Base class version does nothing, returns zero.

Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, e
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, std::basic_filebuf< char_type, traits_type >, and std::wbuffer_convert< _Code

uflow()

template<typename _CharT , typename _Traits >


virtual int_type std::basic_streambuf< _CharT, _Traits >::uflow () [inline], [protected], [virtual],
[inherited]
Fetches more data from the controlled sequence.

Returns

The first character from the pending sequence.

Informally, this function does the same thing as underflow(), and in fact is required to call that function. It also
returns the new character, like underflow() does. However, this function also moves the read position forward by
one.
Reimplemented in __gnu_cxx::stdio_sync_filebuf< _CharT, _Traits >.

Generated by Doxygen
5.254 std::basic_stringbuf< _CharT, _Traits, _Alloc > Class Template Reference 1619

underflow()

template<class _CharT , class _Traits , class _Alloc >


basic_stringbuf< _CharT, _Traits, _Alloc >::int_type std::basic_stringbuf< _CharT, _Traits, _←-
Alloc >::underflow () [protected], [virtual]
Fetches more data from the controlled sequence.
Returns

The first character from the pending sequence.

Informally, this function is called when the input buffer is exhausted (or does not exist, as buffering need not actually be
done). If a buffer exists, it is refilled. In either case, the next available character is returned, or traits::eof() to
indicate a null pending sequence.
For a formal definition of the pending sequence, see a good text such as Langer & Kreft, or [27.5.2.4.3]/7-14.
A functioning input streambuf can be created by overriding only this function (no buffer area will be used). For an
example, see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html
Note

Base class version does nothing, returns eof().

Reimplemented from std::basic_streambuf< _CharT, _Traits >.


References std::ios_base::in.

xsgetn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::xsgetn (
char_type ∗ __s,
streamsize __n) [protected], [virtual], [inherited]
Multiple character extraction.

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to assign.
_n

Returns

The number of characters assigned.

Fills __s[0] through __s[__n-1] with characters from the input sequence, as if by sbumpc(). Stops when either __n
characters have been copied, or when traits::eof() would be copied.
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, and std::basic_filebuf< char_type, traits_type >.
References std::min().

xsputn()

template<typename _CharT , typename _Traits >


streamsize std::basic_streambuf< _CharT, _Traits >::xsputn (
const char_type ∗ __s,
streamsize __n) [protected], [virtual], [inherited]
Multiple character insertion.

Generated by Doxygen
1620

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to write.
_n

Returns

The number of characters written.

Writes __s[0] through __s[__n-1] to the output sequence, as if by sputc(). Stops when either n characters have been
copied, or when sputc() would return traits::eof().
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented in std::basic_filebuf< _CharT, _Traits >, std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >,
std::basic_filebuf< _CharT, std::char_traits< _CharT > >, and std::basic_filebuf< char_type, traits_type >.
References std::min().

5.254.4 Member Data Documentation

_M_buf_locale

template<typename _CharT , typename _Traits >


locale std::basic_streambuf< _CharT, _Traits >::_M_buf_locale [protected], [inherited]
Current locale setting.
Referenced by std::basic_filebuf< _CharT, _Traits >::basic_filebuf().

_M_in_beg

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_beg [protected], [inherited]
Start of get area.

_M_in_cur

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_cur [protected], [inherited]
Current read area.

_M_in_end

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_in_end [protected], [inherited]
End of get area.

_M_mode

template<typename _CharT , typename _Traits , typename _Alloc >


ios_base::openmode std::basic_stringbuf< _CharT, _Traits, _Alloc >::_M_mode [protected]
Place to stash in || out || in | out settings for current stringbuf.

_M_out_beg

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_beg [protected], [inherited]
Start of put area.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1621

_M_out_cur

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_cur [protected], [inherited]
Current put area.

_M_out_end

template<typename _CharT , typename _Traits >


char_type∗ std::basic_streambuf< _CharT, _Traits >::_M_out_end [protected], [inherited]
End of put area.
The documentation for this class was generated from the following files:

• iosfwd
• sstream
• sstream.tcc

5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference


#include <sstream>
Inheritance diagram for std::basic_stringstream< _CharT, _Traits, _Alloc >:

std::ios_base

std::basic_ios< _CharT,
_Traits >

std::basic_istream std::basic_ostream
< _CharT, _Traits > < _CharT, _Traits >

std::basic_iostream
< _CharT, _Traits >

std::basic_stringstream
< _CharT, _Traits, _Alloc >

Generated by Doxygen
1622

Public Types

• typedef ctype< _CharT > __ctype_type


• typedef ctype< _CharT > __ctype_type
• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef basic_ios< _CharT, _Traits > __ios_type
• typedef basic_iostream< char_type, traits_type > __iostream_type
• typedef basic_istream< _CharT, _Traits > __istream_type
• typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type
• typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
• typedef basic_ostream< _CharT, _Traits > __ostream_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef basic_streambuf< _CharT, _Traits > __streambuf_type
• typedef basic_string< _CharT, _Traits, _Alloc > __string_type
• typedef basic_stringbuf< _CharT, _Traits, _Alloc > __stringbuf_type
• typedef _Alloc allocator_type
• typedef _CharT char_type
• enum event { erase_event , imbue_event , copyfmt_event }
• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)
• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
• typedef traits_type::int_type int_type
• typedef _Ios_Iostate iostate
• typedef traits_type::off_type off_type
• typedef _Ios_Openmode openmode
• typedef traits_type::pos_type pos_type
• typedef _Ios_Seekdir seekdir
• typedef _Traits traits_type

Public Member Functions

• basic_stringstream ()
• basic_stringstream (__string_type &&__str, ios_base::openmode __mode=ios_base::in|ios_base::out)
• basic_stringstream (basic_stringstream &&__rhs)
• basic_stringstream (const __string_type &__str, ios_base::openmode __m=ios_base::out|ios_base::in)
• template<typename _SAlloc >
basic_stringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, const allocator_type &__a)
• template<typename _SAlloc >
basic_stringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __mode,
const allocator_type &__a)
• template<typename _SAlloc >
basic_stringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __←-
mode=ios_base::in|ios_base::out)
• basic_stringstream (const basic_stringstream &)=delete
• basic_stringstream (ios_base::openmode __m)
• basic_stringstream (ios_base::openmode __mode, const allocator_type &__a)
• ∼basic_stringstream ()
• template<typename _ValueT >
basic_istream< _CharT, _Traits > & _M_extract (_ValueT &__v)
• const locale & _M_getloc () const
• template<typename _ValueT >
basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v)
• void _M_setstate (iostate __state)

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1623

• bool bad () const


• void clear (iostate __state=goodbit)
• basic_ios & copyfmt (const basic_ios &__rhs)
• bool eof () const
• iostate exceptions () const
• void exceptions (iostate __except)
• bool fail () const
• char_type fill () const
• char_type fill (char_type __ch)
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• __ostream_type & flush ()
• streamsize gcount () const
• basic_istream< char > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• basic_istream< wchar_t > & getline (char_type ∗__s, streamsize __n, char_type __delim)
• locale getloc () const
• bool good () const
• basic_istream< char > & ignore (streamsize __n)
• basic_istream< wchar_t > & ignore (streamsize __n)
• basic_istream< char > & ignore (streamsize __n, int_type __delim)
• basic_istream< wchar_t > & ignore (streamsize __n, int_type __delim)
• locale imbue (const locale &__loc)
• long & iword (int __ix)
• char narrow (char_type __c, char __dfault) const
• __ostream_type & operator<< (__streambuf_type ∗__sb)
• __ostream_type & operator<< (const void ∗__p)
• __ostream_type & operator<< (nullptr_t)
• basic_stringstream & operator= (basic_stringstream &&__rhs)
• basic_stringstream & operator= (const basic_stringstream &)=delete
• __istream_type & operator>> (__streambuf_type ∗__sb)
• __istream_type & operator>> (void ∗&__p)
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• basic_streambuf< _CharT, _Traits > ∗ rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• __stringbuf_type ∗ rdbuf () const
• iostate rdstate () const
• void register_callback (event_callback __fn, int __index)
• __ostream_type & seekp (off_type, ios_base::seekdir)
• __ostream_type & seekp (pos_type)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void setstate (iostate __state)
• __string_type str () &&
• __string_type str () const &
• void str (__string_type &&__s)
• void str (const __string_type &__s)
• template<__allocator_like _SAlloc>
basic_string< _CharT, _Traits, _SAlloc > str (const _SAlloc &__sa) const

Generated by Doxygen
1624

• template<__allocator_like _SAlloc>
requires (!is_same_v<_SAlloc, _Alloc>)
void str (const basic_string< _CharT, _Traits, _SAlloc > &__s)
• void swap (basic_stringstream &__rhs)
• pos_type tellp ()
• basic_ostream< _CharT, _Traits > ∗ tie () const
• basic_ostream< _CharT, _Traits > ∗ tie (basic_ostream< _CharT, _Traits > ∗__tiestr)
• void unsetf (fmtflags __mask)
• basic_string_view< char_type, traits_type > view () const noexcept
• char_type widen (char __c) const
• streamsize width () const
• streamsize width (streamsize __wide)

• __istream_type & operator>> (__istream_type &(∗__pf)(__istream_type &))


• __istream_type & operator>> (__ios_type &(∗__pf)(__ios_type &))
• __istream_type & operator>> (ios_base &(∗__pf)(ios_base &))

Extractors
All the operator>> functions (aka formatted input functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_istream::sentry with the second argument (noskipws) set to false.
This has several effects, concluding with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• __istream_type & operator>> (bool &__n)


• __istream_type & operator>> (short &__n)
• __istream_type & operator>> (unsigned short &__n)
• __istream_type & operator>> (int &__n)
• __istream_type & operator>> (unsigned int &__n)
• __istream_type & operator>> (long &__n)
• __istream_type & operator>> (unsigned long &__n)
• __istream_type & operator>> (long long &__n)
• __istream_type & operator>> (unsigned long long &__n)

• __istream_type & operator>> (float &__f)


• __istream_type & operator>> (double &__f)
• __istream_type & operator>> (long double &__f)

Unformatted Input Functions


All the unformatted input functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_istream::sentry with the second argument (noskipws) set to true. This has several effects, concluding
with the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument.
The number of characters extracted is stored for later retrieval by gcount().
If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without
causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions
mask.

• int_type get ()
• __istream_type & get (char_type &__c)

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1625

• __istream_type & get (char_type ∗__s, streamsize __n, char_type __delim)


• __istream_type & get (char_type ∗__s, streamsize __n)
• __istream_type & get (__streambuf_type &__sb, char_type __delim)
• __istream_type & get (__streambuf_type &__sb)
• __istream_type & getline (char_type ∗__s, streamsize __n, char_type __delim)
• __istream_type & getline (char_type ∗__s, streamsize __n)
• __istream_type & ignore (streamsize __n, int_type __delim)
• __istream_type & ignore (streamsize __n)
• __istream_type & ignore ()
• int_type peek ()
• __istream_type & read (char_type ∗__s, streamsize __n)
• streamsize readsome (char_type ∗__s, streamsize __n)
• __istream_type & putback (char_type __c)
• __istream_type & unget ()
• int sync ()
• pos_type tellg ()
• __istream_type & seekg (pos_type)
• __istream_type & seekg (off_type, ios_base::seekdir)

• operator bool () const


• bool operator! () const

• __ostream_type & operator<< (__ostream_type &(∗__pf)(__ostream_type &))


• __ostream_type & operator<< (__ios_type &(∗__pf)(__ios_type &))
• __ostream_type & operator<< (ios_base &(∗__pf)(ios_base &))
Inserters
All the operator<< functions (aka formatted output functions) have some common behavior. Each starts by
constructing a temporary object of type std::basic_ostream::sentry. This can have several effects, concluding with
the setting of a status flag; see the sentry documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state without
causing an ios_base::failure to be thrown. The original exception will then be rethrown.

• __ostream_type & operator<< (long __n)


• __ostream_type & operator<< (unsigned long __n)
• __ostream_type & operator<< (bool __n)
• __ostream_type & operator<< (short __n)
• __ostream_type & operator<< (unsigned short __n)
• __ostream_type & operator<< (int __n)
• __ostream_type & operator<< (unsigned int __n)
• __ostream_type & operator<< (long long __n)
• __ostream_type & operator<< (unsigned long long __n)

• __ostream_type & operator<< (double __f)


• __ostream_type & operator<< (float __f)
• __ostream_type & operator<< (long double __f)
Unformatted Output Functions
All the unformatted output functions have some common behavior. Each starts by constructing a temporary object of
type std::basic_ostream::sentry. This has several effects, concluding with the setting of a status flag; see the sentry
documentation for more.
If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.
If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. If badbit is
on in the stream's exceptions mask, the exception will be rethrown without completing its actions.

• __ostream_type & put (char_type __c)


• __ostream_type & write (const char_type ∗__s, streamsize __n)

Generated by Doxygen
1626

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in
• static const fmtflags internal
• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• void _M_cache_locale (const locale &__loc)


• void _M_call_callbacks (event __ev) throw ()
• void _M_dispose_callbacks (void) throw ()
• template<typename _ValueT >
__istream_type & _M_extract (_ValueT &__v)
• _Words & _M_grow_words (int __index, bool __iword)

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1627

• void _M_init () throw ()


• template<typename _ValueT >
__ostream_type & _M_insert (_ValueT __v)
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept
• void init (basic_streambuf< _CharT, _Traits > ∗__sb)
• void move (basic_ios &&__rhs)
• void move (basic_ios &__rhs)
• void set_rdbuf (basic_streambuf< _CharT, _Traits > ∗__sb)
• void swap (basic_ios &__rhs) noexcept
• void swap (basic_iostream &__rhs)
• void swap (basic_istream &__rhs)
• void swap (basic_ostream &__rhs)

Protected Attributes

• _Callback_list ∗ _M_callbacks
• const __ctype_type ∗ _M_ctype
• iostate _M_exception
• char_type _M_fill
• bool _M_fill_init
• fmtflags _M_flags
• streamsize _M_gcount
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• const __num_get_type ∗ _M_num_get
• const __num_put_type ∗ _M_num_put
• streamsize _M_precision
• basic_streambuf< _CharT, _Traits > ∗ _M_streambuf
• iostate _M_streambuf_state
• basic_ostream< _CharT, _Traits > ∗ _M_tie
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.255.1 Detailed Description

template<typename _CharT, typename _Traits, typename _Alloc>


class std::basic_stringstream< _CharT, _Traits, _Alloc >

Controlling input and output for std::string.

Template Parameters

_CharT Type of character stream.


_Traits Traits for character type, defaults to char_traits<_CharT>.
_Alloc Allocator type, defaults to allocator<_CharT>.

This class supports reading from and writing to objects of type std::basic_string, using the inherited functions from std←-
::basic_iostream. To control the associated sequence, an instance of std::basic_stringbuf is used, which this page refers
to as sb.

Generated by Doxygen
1628

5.255.2 Member Typedef Documentation

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i) [inherited]


The type of an event callback function.

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate [inherited]


This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode [inherited]


This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1629

seekdir

_Ios_Seekdir std::ios_base::seekdir [inherited]


This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

5.255.3 Member Enumeration Documentation

event

enum std::ios_base::event [inherited]


The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.255.4 Constructor & Destructor Documentation

basic_stringstream() [1/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_stringstream< _CharT, _Traits, _Alloc >::basic_stringstream () [inline]
Default constructor starts with an empty string buffer.
Initializes sb using the mode in|out, and passes &sb to the base class initializer. Does not allocate any buffer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

basic_stringstream() [2/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_stringstream< _CharT, _Traits, _Alloc >::basic_stringstream (
ios_base::openmode __m) [inline], [explicit]
Starts with an empty string buffer.

Parameters

_←- Whether the buffer can read, or write, or both.


_m

Initializes sb using the mode from __m, and passes &sb to the base class initializer. Does not allocate any buffer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

basic_stringstream() [3/3]

template<typename _CharT , typename _Traits , typename _Alloc >


std::basic_stringstream< _CharT, _Traits, _Alloc >::basic_stringstream (
const __string_type & __str,
ios_base::openmode __m = ios_base::out | ios_base::in) [inline], [explicit]
Starts with an existing string buffer.

Parameters

__str A string to copy as a starting buffer.

Generated by Doxygen
1630

__m Whether the buffer can read, or write, or both.

Initializes sb using __str and __m, and passes &sb to the base class initializer.
That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

∼basic_stringstream()
template<typename _CharT , typename _Traits , typename _Alloc >
std::basic_stringstream< _CharT, _Traits, _Alloc >::∼basic_stringstream () [inline]
The destructor does nothing.
The buffer is deallocated by the stringbuf object, not the formatting stream.

5.255.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline], [inherited]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

bad()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::bad () const [inline], [nodiscard], [inherited]
Fast error checking.
Returns

True if the badbit is set.

Note that other iostate flags may also be set.


References std::ios_base::badbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

clear()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::clear (
iostate __state = goodbit) [inherited]
[Re]sets the error state.

Parameters

__state The new state flag(s) to set.

See std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument.
Referenced by std::basic_ios< _CharT, _Traits >::exceptions(), std::__detail::operator>>(), and std::basic_ios< _CharT, _Traits >::setsta

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1631

copyfmt()

template<typename _CharT , typename _Traits >


basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (
const basic_ios< _CharT, _Traits > & __rhs) [inherited]
Copies fields of __rhs into this.

Parameters

__rhs The source values for the copies.

Returns

Reference to this object.

All fields of __rhs are copied into this object except that rdbuf() and rdstate() remain unchanged. All values in the pword
and iword arrays are copied. Before copying, each callback is invoked with erase_event. After copying, each (new)
callback is invoked with copyfmt_event. The final step is to copy exceptions().
References std::__addressof(), std::basic_ios< _CharT, _Traits >::exceptions(), std::basic_ios< _CharT, _Traits >::fill(),
std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), std::basic_ios< _CharT, _Traits >::tie(),
std::tie(), and std::ios_base::width().

eof()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::eof () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if the eofbit is set.

Note that other iostate flags may also be set.


References std::ios_base::eofbit, and std::basic_ios< _CharT, _Traits >::rdstate().

exceptions() [1/2]

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::exceptions () const [inline], [nodiscard], [inherited]
Throwing exceptions on errors.

Returns

The current exceptions mask.

This changes nothing in the stream. See the one-argument version of exceptions(iostate) for the meaning of the return
value.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

exceptions() [2/2]

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::exceptions (
iostate __except) [inline], [inherited]
Throwing exceptions on errors.

Generated by Doxygen
1632

Parameters
__except The new exceptions mask.

By default, error flags are set silently. You can set an exceptions mask for each stream; if a bit in the mask becomes set
in the error flags, then an exception of type std::ios_base::failure is thrown.
If the error flag is already set when the exceptions mask is added, the exception is immediately thrown. Try running the
following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{
std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

std::ifstream f ("/etc/motd");

std::cerr « "Setting badbit\n";


f.setstate (std::ios_base::badbit);

std::cerr « "Setting exception mask\n";


f.exceptions (std::ios_base::badbit);
}
References std::basic_ios< _CharT, _Traits >::clear().

fail()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::fail () const [inline], [nodiscard], [inherited]
Fast error checking.
Returns

True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice. Note that other iostate flags may also be set.
References std::ios_base::badbit, std::ios_base::failbit, and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ios< _CharT, _Traits >::operator bool(), std::basic_ios< _CharT, _Traits >::operator!(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >
and std::regex_traits< typename >::value().

fill() [1/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill () const [inline], [nodiscard], [inherited]
Retrieves the empty character.
Returns

The current fill character.

It defaults to a space (' ') in the current locale.


References std::basic_ios< _CharT, _Traits >::widen().
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt().

fill() [2/2]

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::fill (
char_type __ch) [inline], [inherited]
Sets a new empty character.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1633

Parameters
__ch The new character.

Returns

The previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are
actually used, and Q<P. It defaults to a space (' ') in the current locale.

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard], [inherited]


Access to format flags.

Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags all at once.

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

flush()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush () [inherited]
Synchronizing the stream buffer.

Returns

∗this

If rdbuf() is a null pointer, changes nothing.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit.
References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

Generated by Doxygen
1634

gcount()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::gcount () const [inline], [inherited]
Character counting.

Returns

The number of characters extracted by the previous unformatted input function dispatched for this stream.

get() [1/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::get (
void ) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [2/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb) [inline], [inherited]
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.

Returns

∗this

Returns get(__sb,widen('\n')).

get() [3/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
__streambuf_type & __sb,
char_type __delim) [inherited]
Extraction into another streambuf.

Parameters

__sb A streambuf in which to store data.


__delim A "stop" character.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1635

Returns

∗this
Characters are extracted and inserted into __sb until one of the following happens:

• the input sequence reaches EOF

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted)

• the next character equals __delim (in this case, the character is not extracted)

• an exception occurs (and in this case is caught)

If no characters are stored, failbit is set in the stream's error state.


References std::ios_base::goodbit.

get() [4/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type & __c) [inherited]
Simple extraction.

Parameters
_←- The character in which to store data.
_c

Returns

∗this
Tries to extract a character and store it in __c. If none are available, sets failbit and returns traits::eof().
Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

get() [5/6]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
Simple multiple-character extraction.

Parameters
_←- Pointer to an array.
_s
_←- Maximum number of characters to store in s.
_n

Returns

∗this
Returns get(__s,__n,widen('\n')).

Generated by Doxygen
1636

get() [6/6]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Simple multiple-character extraction.

Parameters
__s Pointer to an array.
__n Maximum number of characters to store in __s.
__delim A "stop" character.

Returns

∗this

Characters are extracted and stored into __s until one of the following happens:

• __n-1 characters are stored

• the input sequence reaches EOF

• the next character equals __delim, in which case the character is not extracted

If no characters are stored, failbit is set in the stream's error state.


In any case, a null character is stored into the next location in the array.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

getline() [1/3]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n) [inline], [inherited]
String extraction.

Parameters
_←- A character array in which to store the data.
_s
_←- Maximum number of characters to extract.
_n

Returns

∗this

Returns getline(__s,__n,widen('\n')).

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1637

getline() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::getline (
char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
String extraction.

Parameters
__s A character array in which to store the data.
__n Maximum number of characters to extract.
__delim A "stop" character.

Returns

∗this

Extracts and stores characters into __s until one of the following happens. Note that these criteria are required to be
tested in the order listed here, to allow an input line to exactly fill the __s array without setting failbit.

1. the input sequence reaches end-of-file, in which case eofbit is set in the stream error state

2. the next character equals __delim, in which case the character is extracted (and therefore counted in
gcount()) but not stored

3. __n-1 characters are stored, in which case failbit is set in the stream error state

If no characters are extracted, failbit is set. (An empty line of input should therefore not cause failbit to be set.)
In any case, a null character is stored in the next location in the array.
References std::ios_base::eofbit, std::ios_base::goodbit, std::basic_streambuf< _CharT, _Traits >::sbumpc(),
std::basic_streambuf< _CharT, _Traits >::sgetc(), and std::basic_streambuf< _CharT, _Traits >::snextc().

getline() [3/3]

basic_istream< char > & std::basic_istream< char >::getline (


char_type ∗ __s,
streamsize __n,
char_type __delim) [inherited]
Explicit specialization declarations, defined in src/istream.cc.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard], [inherited]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

Generated by Doxygen
1638

good()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::good () const [inline], [nodiscard], [inherited]
Fast error checking.

Returns

True if no error flags are set.

A wrapper around rdstate.


References std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(),
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), and std::__detail::operator>>().

ignore() [1/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
void ) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit.

ignore() [2/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n) [inherited]
Simple extraction.

Returns

A character, or eof().

Tries to extract a character. If none are available, sets failbit and returns traits::eof().
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

ignore() [3/3]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore (
streamsize __n,
int_type __delim) [inherited]
Discarding characters.

Parameters

__n Number of characters to discard.


__delim A "stop" character.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1639

Returns

∗this
Extracts characters and throws them away until one of the following happens:
• if __n != std::numeric_limits<int>::max(), __n characters are extracted

• the input sequence reaches end-of-file

• the next character equals __delim (in this case, the character is extracted); note that this condition will never occur
if __delim equals traits::eof().
NB: Provide three overloads, instead of the single function (with defaults) mandated by the Standard: this leads to a
better performing implementation, while still conforming to the Standard.
References std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sgetc().

imbue()

template<typename _CharT , typename _Traits >


locale std::basic_ios< _CharT, _Traits >::imbue (
const locale & __loc) [inherited]
Moves to a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's
pubimbue(loc).
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
References std::ios_base::imbue().
Referenced by std::chrono::operator<<().

init()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::init (
basic_streambuf< _CharT, _Traits > ∗ __sb) [protected], [inherited]
All setup is performed here.
This is called from the public constructor. It is not virtual and cannot be redefined.
Referenced by std::basic_ios< _CharT, _Traits >::basic_ios(), and std::basic_ostream< _CharT, _Traits >::basic_ostream().

iword()

long & std::ios_base::iword (


int __ix) [inline], [inherited]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Generated by Doxygen
1640

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

narrow()

template<typename _CharT , typename _Traits >


char std::basic_ios< _CharT, _Traits >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Squeezes characters.

Parameters
__c The character to narrow.
__dfault The character to narrow.

Returns

The narrowed character.

Maps a character of char_type to a character of char, if possible.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html

operator bool()

template<typename _CharT , typename _Traits >


std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard],
[inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator"!()

template<typename _CharT , typename _Traits >


bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]
The quick-and-easy status check.
This allows you to write constructs such as if (!a_stream) ... and while (a_stream) ...
References std::basic_ios< _CharT, _Traits >::fail().

operator<<() [1/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1641

operator<<() [2/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
__ostream_type &(∗ __pf )(__ostream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [3/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
__streambuf_type ∗ __sb) [inherited]
Extracting from another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from __sb and inserted into ∗this until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted),
or

• an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

operator<<() [4/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
bool __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [5/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
const void ∗ __p) [inline], [inherited]
Pointer arithmetic inserters.

Generated by Doxygen
1642

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [6/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [7/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
float __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1643

operator<<() [8/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
int __n) [inherited]
Integer arithmetic inserters.

Generated by Doxygen
1644

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [9/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For
more information, see the iomanip header.

operator<<() [10/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [11/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long double __f) [inline], [inherited]
Floating point arithmetic inserters.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1645

operator<<() [12/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [13/17]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (
short __n) [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.
References std::ios_base::badbit, std::ios_base::goodbit, std::num_put< _CharT, _OutIter >::put(), std::basic_ios< _CharT, _Traits >::se
and std::use_facet().

operator<<() [14/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned int __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
1646

operator<<() [15/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [16/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned long long __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

operator<<() [17/17]

template<typename _CharT , typename _Traits >


__ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (
unsigned short __n) [inline], [inherited]
Integer arithmetic inserters.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1647

operator>>() [1/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__ios_type &(∗ __pf )(__ios_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [2/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
__istream_type &(∗ __pf )(__istream_type &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [3/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
__streambuf_type ∗ __sb) [inherited]
Extracting into another streambuf.

Parameters

__sb A pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the
same error handling behavior.
If __sb is NULL, the stream will set failbit in its error state.
Characters are extracted from this stream and inserted into the __sb streambuf until one of the following occurs:

• the input stream reaches end-of-file,

• insertion into the output buffer fails (in this case, the character that would have been inserted is not extracted), or

• an exception occurs (and in this case is caught)

If the function inserts no characters, failbit is set.


References std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

operator>>() [4/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
bool & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
1648

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [5/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [6/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
float & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [7/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
int & __n) [inherited]
Integer arithmetic extractors.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1649

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [8/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
ios_base &(∗ __pf )(ios_base &)) [inline], [inherited]
Interface for manipulators.
Manipulators such as std::ws and std::dec use these functions in constructs like std::cin >> std::ws.
For more information, see the iomanip header.

operator>>() [9/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [10/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long double & __f) [inline], [inherited]
Floating point arithmetic extractors.

Parameters

←- A variable of builtin floating point type.


_←-
←-
_←-
f

Generated by Doxygen
1650

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [11/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [12/17]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> (
short & __n) [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.
References std::ios_base::badbit, std::ios_base::failbit, std::num_get< _CharT, _InIter >::get(), std::ios_base::goodbit,
and std::use_facet().

operator>>() [13/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned int & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1651

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [14/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [15/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned long long & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

operator>>() [16/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
unsigned short & __n) [inline], [inherited]
Integer arithmetic extractors.

Parameters

_←- A variable of builtin integral type.


_n

Returns

∗this if successful
These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

Generated by Doxygen
1652

operator>>() [17/17]

template<typename _CharT , typename _Traits >


__istream_type & std::basic_istream< _CharT, _Traits >::operator>> (
void ∗& __p) [inline], [inherited]
Basic arithmetic extractors.

Parameters

_←- A variable of pointer type.


_p

Returns

∗this if successful

These functions use the stream's current locale (specifically, the num_get facet) to parse the input data.

peek()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::peek (
void ) [inherited]
Looking ahead in the stream.

Returns

The next character, or eof().

If, after constructing the sentry object, good() is false, returns traits::eof(). Otherwise reads but does not
extract the next input character.

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]


Flags access.

Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

precision() [2/2]

streamsize std::ios_base::precision (
streamsize __prec) [inline], [inherited]
Changing flags.

Parameters
__prec The new precision value.

Returns

The previous value of precision().

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1653

put()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put (
char_type __c) [inherited]
Simple insertion.

Parameters
_←- The character to insert.
_c

Returns

∗this

Tries to insert __c.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >

putback()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::putback (
char_type __c) [inherited]
Unextracting a single character.

Parameters
_←- The character to push back into the input stream.
_c

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sputbackc(c).


If rdbuf() is null or if sputbackc() fails, sets badbit in the error state.

Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::sputbackc()

pword()

void ∗& std::ios_base::pword (


int __ix) [inline], [inherited]
Access to void pointer array.

Generated by Doxygen
1654

Parameters
_←- Index into the array.
_ix

Returns

A reference to a void∗ associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as
required to hold the supplied index. All pointers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

rdbuf() [1/2]

template<typename _CharT , typename _Traits >


basic_streambuf< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::rdbuf (
basic_streambuf< _CharT, _Traits > ∗ __sb) [inherited]
Changing the underlying buffer.

Parameters

__sb The new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state.
Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is
hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a
result, you must use explicit qualifications to access this function via any derived class. For example:
std::fstream foo; // or some other derived type
std::streambuf* p = .....;

foo.ios::rdbuf(p); // ios == basic_ios<char>

rdbuf() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >


__stringbuf_type ∗ std::basic_stringstream< _CharT, _Traits, _Alloc >::rdbuf () const [inline],
[nodiscard]
Accessing the underlying buffer.

Returns

The current basic_stringbuf buffer.

This hides both signatures of std::basic_ios::rdbuf().

rdstate()

template<typename _CharT , typename _Traits >


iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited]
Returns the error state of the stream buffer.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1655

Returns

A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().
Referenced by std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_ios< _CharT, _Traits >::fail(
std::basic_ios< _CharT, _Traits >::good(), and std::basic_ios< _CharT, _Traits >::setstate().

read()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::read (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction without delimiters.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Returns

∗this

If the stream state is good(), extracts characters and stores them into __s until one of the following happens:

• __n characters are stored

• the input sequence reaches end-of-file, in which case the error state is set to failbit|eofbit.

Note

This function is not overloaded on signed char and unsigned char.

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, and std::ios_base::goodbit.

readsome()

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::readsome (
char_type ∗ __s,
streamsize __n) [inherited]
Extraction until the buffer is exhausted, but no more.

Parameters
_←- A character array.
_s
_←- Maximum number of characters to store.
_n

Generated by Doxygen
1656

Returns

The number of characters extracted.

Extracts characters and stores them into __s depending on the number of characters remaining in the streambuf's buffer,
rdbuf()->in_avail(), called A here:
• if A == -1, sets eofbit and extracts no characters

• if A == 0, extracts no characters

• if A > 0, extracts min(A,n)

The goal is to empty the current buffer, and to not request any more from the external input sequence controlled by the
streambuf.
References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::goodbit, and std::min().

register_callback()

void std::ios_base::register_callback (
event_callback __fn,
int __index) [inherited]
Add the callback __fn with parameter __index.

Parameters

__fn The function to add.


__index The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple
copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

seekg() [1/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current read position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(__off,__dir). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1657

seekg() [2/2]

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg (
pos_type __pos) [inherited]
Changing the current read position.

Parameters

__pos A file position object.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(__pos). If that function fails, sets failbit.

Note

This function first clears eofbit. It does not count the number of characters extracted, if any, and therefore does not
affect the next call to gcount().

References std::ios_base::badbit, std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::ios_base::in.

seekp() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
off_type __off,
ios_base::seekdir __dir) [inherited]
Changing the current write position.

Parameters

__off A file offset object.


__dir The direction in which to seek.

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

seekp() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (
pos_type __pos) [inherited]
Changing the current write position.

Parameters

__pos A file position object.

Generated by Doxygen
1658

Returns

∗this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.
References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(),
and std::basic_ios< _CharT, _Traits >::setstate().

setf() [1/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.

Returns

The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.
Referenced by std::__detail::operator>>().

setf() [2/2]

fmtflags std::ios_base::setf (
fmtflags __fmtfl,
fmtflags __mask) [inline], [inherited]
Setting new format flags.

Parameters

__fmtfl Additional flags to set.


__mask The flags mask for fmtfl.

Returns

The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base←-
::adjustfield.

setstate()

template<typename _CharT , typename _Traits >


void std::basic_ios< _CharT, _Traits >::setstate (
iostate __state) [inline], [inherited]
Sets additional flags in the error state.

Parameters

__state The additional state flag(s) to set.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1659

See std::ios_base::iostate for the possible bit values.


References std::basic_ios< _CharT, _Traits >::clear(), and std::basic_ios< _CharT, _Traits >::rdstate().
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(),
std::basic_ostream< _CharT, _Traits >::flush(), std::getline(), std::getline(), std::basic_ostream< _CharT, _Traits >::operator<<(),
std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::ws().

str() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >


__string_type std::basic_stringstream< _CharT, _Traits, _Alloc >::str () const & [inline], [nodiscard]
Copying out the string buffer.

Returns

rdbuf()->str()

str() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >


void std::basic_stringstream< _CharT, _Traits, _Alloc >::str (
const __string_type & __s) [inline]
Setting a new buffer.

Parameters
_←- The string to use as a new sequence.
_s

Calls rdbuf()->str(s).

sync()

template<typename _CharT , typename _Traits >


int std::basic_istream< _CharT, _Traits >::sync (
void ) [inherited]
Synchronizing the stream buffer.

Returns

0 on success, -1 on failure

If rdbuf() is a null pointer, returns -1.


Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit and returns -1.
Otherwise, returns 0.

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount().

References std::ios_base::badbit, std::ios_base::goodbit, and std::basic_streambuf< _CharT, _Traits >::pubsync().

Generated by Doxygen
1660

sync_with_stdio()

static bool std::ios_base::sync_with_stdio (


bool __sync = true) [static], [inherited]
Interaction with the standard C I/O objects.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1661

Parameters
__sync Whether to synchronize or not.

Returns

True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the stan-
dard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.←-
org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

tellg()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits >::pos_type std::basic_istream< _CharT, _Traits >::tellg (
void ) [inherited]
Getting the current read position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,in).

Note

This function does not count the number of characters extracted, if any, and therefore does not affect the next call
to gcount(). At variance with putback, unget and seekg, eofbit is not cleared first.

References std::ios_base::badbit, std::ios_base::cur, and std::ios_base::in.

tellp()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp () [inherited]
Getting the current write position.

Returns

A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).
References std::ios_base::cur, std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::out, and std::basic_ios< _CharT, _Traits >::rdbuf()

tie() [1/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie () const [inline],
[nodiscard], [inherited]
Fetches the current tied stream.
Returns

A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream
is first flushed. For example, std::cin is tied to std::cout.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::basic_ios< _CharT, _Traits >::copyfmt().

Generated by Doxygen
1662

tie() [2/2]

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > ∗ std::basic_ios< _CharT, _Traits >::tie (
basic_ostream< _CharT, _Traits > ∗ __tiestr) [inline], [inherited]
Ties this stream to an output stream.

Parameters
__tiestr The output stream.

Returns

The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

unget()

template<typename _CharT , typename _Traits >


basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::unget (
void ) [inherited]
Unextracting the previous character.

Returns

∗this

If rdbuf() is not null, calls rdbuf()->sungetc(c).


If rdbuf() is null or if sungetc() fails, sets badbit in the error state.
Note

This function first clears eofbit. Since no characters are extracted, the next call to gcount() will return 0, as
required by DR 60.

References std::ios_base::eofbit, and std::ios_base::goodbit.


Referenced by std::__detail::operator>>().

unsetf()

void std::ios_base::unsetf (
fmtflags __mask) [inline], [inherited]
Clearing format flags.

Parameters

__mask The flags to unset.

This function clears __mask in the format flags.

widen()

template<typename _CharT , typename _Traits >


char_type std::basic_ios< _CharT, _Traits >::widen (
char __c) const [inline], [inherited]
Widens characters.

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1663

Parameters
_←- The character to widen.
_c

Returns

The widened character.

Maps a character of char to a character of char_type.


Returns the result of
std::use_facet<ctype<char_type> >(getloc()).widen(c)
Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.←-
html
Referenced by std::basic_ios< _CharT, _Traits >::fill(), std::getline(), std::getline(), and std::tr2::operator>>().

width() [1/2]

streamsize std::ios_base::width () const [inline], [nodiscard], [inherited]


Flags access.
Returns

The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.


Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(),
and std::operator>>().

width() [2/2]

streamsize std::ios_base::width (
streamsize __wide) [inline], [inherited]
Changing flags.

Parameters
__wide The new width value.

Returns

The previous value of width().

write()

template<typename _CharT , typename _Traits >


basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write (
const char_type ∗ __s,
streamsize __n) [inherited]
Character string insertion.

Parameters
_←- The array to insert.
_s
_←- Maximum number of characters to insert.
_n

Generated by Doxygen
1664

Returns

∗this

Characters are copied from __s and inserted into the stream until one of the following happens:

• __n characters are inserted

• inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)

Note

This function is not overloaded on signed char and unsigned char.

xalloc()

static int std::ios_base::xalloc () throw ( ) [static], [inherited]


Access to unique indices.

Returns

An integer different from all previous calls.

This function returns a unique integer every time it is called. It can be used for any purpose, but is primarily intended to
be a unique index for the iword and pword functions. The expectation is that an application calls xalloc in order to obtain
an index in the iword and pword arrays that can be used without fear of conflict.
The implementation maintains a static variable that is incremented and returned on each invocation. xalloc is guaranteed
to return an index that is safe to use in the iword and pword arrays.

5.255.6 Member Data Documentation

_M_gcount

template<typename _CharT , typename _Traits >


streamsize std::basic_istream< _CharT, _Traits >::_M_gcount [protected], [inherited]
The number of characters extracted in the previous unformatted function; see gcount().

adjustfield

const fmtflags std::ios_base::adjustfield [static], [inherited]


A mask of left|right|internal. Useful for the 2-arg form of setf.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

app

const openmode std::ios_base::app [static], [inherited]


Seek to end before each write.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

ate

const openmode std::ios_base::ate [static], [inherited]


Open and seek to end immediately after opening.
Referenced by std::basic_filebuf< _CharT, _Traits >::open().

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1665

badbit

const iostate std::ios_base::badbit [static], [inherited]


Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file).
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_istream< _CharT, char_traits< _CharT > >::sentry::se
std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::bad(), std::basic_ios< _CharT, _Traits >::fa
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _Char
std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(),
std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), and std::ws().

basefield

const fmtflags std::ios_base::basefield [static], [inherited]


A mask of dec|oct|hex. Useful for the 2-arg form of setf.
Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::hex(), and std::oct().

beg

const seekdir std::ios_base::beg [static], [inherited]


Request a seek relative to the beginning of the stream.
Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

binary

const openmode std::ios_base::binary [static], [inherited]


Perform input and output in binary mode (as opposed to text mode). This is probably not what you think it
is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.←-
filestreams.binary.
Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

boolalpha

const fmtflags std::ios_base::boolalpha [static], [inherited]


Insert/extract bool in alphabetic rather than numeric format.
Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
and std::noboolalpha().

cur

const seekdir std::ios_base::cur [static], [inherited]


Request a seek relative to the current position within the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(),
std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits,
std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

dec

const fmtflags std::ios_base::dec [static], [inherited]


Converts integer input or generates integer output in decimal base.
Referenced by std::dec().

Generated by Doxygen
1666

end

const seekdir std::ios_base::end [static], [inherited]


Request a seek relative to the current end of the sequence.
Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

eofbit

const iostate std::ios_base::eofbit [static], [inherited]


Indicates that an input operation reached the end of an input sequence.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >:
std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::eof(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::getline(),
std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::putback(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _Cha
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

failbit

const iostate std::ios_base::failbit [static], [inherited]


Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate
the desired characters.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ios< _CharT, _Traits >::fail(), std::basic_istream< _CharT, _Traits >::get(),
std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::operator>>
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::se
std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

fixed

const fmtflags std::ios_base::fixed [static], [inherited]


Generate floating-point output in fixed-point notation.
Referenced by std::fixed(), and std::hexfloat().

floatfield

const fmtflags std::ios_base::floatfield [static], [inherited]


A mask of scientific|fixed. Useful for the 2-arg form of setf.
Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

goodbit

const iostate std::ios_base::goodbit [static], [inherited]


Indicates all is well.
Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(),
std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::d
std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(),
std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(
std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(),
std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >:

Generated by Doxygen
5.255 std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference 1667

std::basic_istream< _CharT, _Traits >::ignore(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Tr
std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(),
std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::r
std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits
std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::sync(),
std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

hex

const fmtflags std::ios_base::hex [static], [inherited]


Converts integer input or generates integer output in hexadecimal base.
Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and
std::hex().

in

const openmode std::ios_base::in [static], [inherited]


Open for input. Default for ifstream and fstream.
Referenced by std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(),
std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_stringbuf< _CharT, _Traits, _
std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), std::basic_filebuf< _CharT, _Traits >::showmanyc(),
std::basic_istream< _CharT, _Traits >::tellg(), std::basic_filebuf< _CharT, _Traits >::underflow(), std::basic_stringbuf< _CharT, _Traits, _
and std::basic_filebuf< _CharT, _Traits >::xsgetn().

internal

const fmtflags std::ios_base::internal [static], [inherited]


Adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is
designated.
Referenced by std::internal().

left

const fmtflags std::ios_base::left [static], [inherited]


Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
Referenced by std::num_put< _CharT, _OutIter >::do_put(), and std::left().

oct

const fmtflags std::ios_base::oct [static], [inherited]


Converts integer input or generates integer output in octal base.
Referenced by std::oct().

out

const openmode std::ios_base::out [static], [inherited]


Open for output. Default for ofstream and fstream.
Referenced by std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow(),
std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(),
std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_stringbuf< _CharT, _Traits,
std::basic_ostream< _CharT, _Traits >::tellp(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

right

const fmtflags std::ios_base::right [static], [inherited]

Generated by Doxygen
1668

Adds fill characters on the left (initial positions) of certain generated output. (I.e., the thing you print is flush right.)
Referenced by std::right().

scientific

const fmtflags std::ios_base::scientific [static], [inherited]


Generates floating-point output in scientific notation.
Referenced by std::hexfloat(), and std::scientific().

showbase

const fmtflags std::ios_base::showbase [static], [inherited]


Generates a prefix indicating the numeric base of generated integer output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::noshowbase(), and std::showbase().

showpoint

const fmtflags std::ios_base::showpoint [static], [inherited]


Generates a decimal-point character unconditionally in generated floating-point output.
Referenced by std::noshowpoint(), and std::showpoint().

showpos

const fmtflags std::ios_base::showpos [static], [inherited]


Generates a + sign in non-negative generated numeric output.
Referenced by std::noshowpos(), and std::showpos().

skipws

const fmtflags std::ios_base::skipws [static], [inherited]


Skips leading white space before certain input operations.
Referenced by std::noskipws(), std::__detail::operator>>(), and std::skipws().

trunc

const openmode std::ios_base::trunc [static], [inherited]


Truncate an existing stream when opening. Default for ofstream.

unitbuf

const fmtflags std::ios_base::unitbuf [static], [inherited]


Flushes output after each output operation.
Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::nounitbuf(), and std::unitbuf().

uppercase

const fmtflags std::ios_base::uppercase [static], [inherited]


Replaces certain lowercase letters with their uppercase equivalents in generated output.
Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::nouppercase(), and std::uppercase().
The documentation for this class was generated from the following files:

• iosfwd
• sstream

Generated by Doxygen
5.256 std::bernoulli_distribution Class Reference 1669

5.256 std::bernoulli_distribution Class Reference


#include <random>

Classes

• struct param_type

Public Types

• typedef bool result_type

Public Member Functions

• bernoulli_distribution ()
• bernoulli_distribution (const param_type &__p)
• bernoulli_distribution (double __p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• double p () const
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Friends

• bool operator== (const bernoulli_distribution &__d1, const bernoulli_distribution &__d2)

5.256.1 Detailed Description

A Bernoulli random number distribution.


Generates a sequence of true and false values with likelihood p that true will come up and (1 − p) that false will appear.

Since

C++11

5.256.2 Member Typedef Documentation

result_type

bool std::bernoulli_distribution::result_type
The type of the range of the distribution.

Generated by Doxygen
1670

5.256.3 Constructor & Destructor Documentation

bernoulli_distribution() [1/2]

std::bernoulli_distribution::bernoulli_distribution () [inline]
Constructs a Bernoulli distribution with likelihood 0.5.

bernoulli_distribution() [2/2]

std::bernoulli_distribution::bernoulli_distribution (
double __p) [inline], [explicit]
Constructs a Bernoulli distribution with likelihood p.

Parameters

_←- [IN] The likelihood of a true result being returned. Must be in the interval [0, 1].
_p

5.256.4 Member Function Documentation

max()

result_type std::bernoulli_distribution::max () const [inline]


Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

min()

result_type std::bernoulli_distribution::min () const [inline]


Returns the greatest lower bound value of the distribution.
References std::numeric_limits< _Tp >::min().

operator()()

template<typename _UniformRandomNumberGenerator >


result_type std::bernoulli_distribution::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References operator()().
Referenced by operator()().

p()

double std::bernoulli_distribution::p () const [inline]


Returns the p parameter of the distribution.

param() [1/2]

param_type std::bernoulli_distribution::param () const [inline]


Returns the parameter set of the distribution.
Referenced by std::operator>>().

Generated by Doxygen
5.257 std::bidirectional_iterator_tag Struct Reference 1671

param() [2/2]

void std::bernoulli_distribution::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

void std::bernoulli_distribution::reset () [inline]


Resets the distribution state.
Does nothing for a Bernoulli distribution.

5.256.5 Friends And Related Symbol Documentation

operator==

bool operator== (
const bernoulli_distribution & __d1,
const bernoulli_distribution & __d2) [friend]
Return true if two Bernoulli distributions have the same parameters.
The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.257 std::bidirectional_iterator_tag Struct Reference


#include <stl_iterator_base_types.h>

Generated by Doxygen
1672

Inheritance diagram for std::bidirectional_iterator_tag:

std::input_iterator_tag

std::forward_iterator_tag

std::bidirectional
_iterator_tag

std::random_access
_iterator_tag

std::contiguous_iterator_tag

5.257.1 Detailed Description

Bidirectional iterators support a superset of forward iterator operations.


The documentation for this struct was generated from the following file:

• stl_iterator_base_types.h

5.258 __gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer,


Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > Class
Template Reference
#include <point_iterators.hpp>
Inheritance diagram for __gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_←-

Generated by Doxygen
5.258 __gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer,
Reference, Const_Reference, Is_Forward_Iterator, _Alloc > Class Template Reference 1673

Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc >:

__gnu_pbds::detail __gnu_pbds::detail
::bin_search_tree_const ::bin_search_tree_it
_it_< Node_Pointer, Value _< Node_Pointer, Value
_Type, Pointer, Const_Pointer, _Type, Pointer, Const_Pointer,
Reference, Const_Reference, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > Is_Forward_Iterator, _Alloc >

Public Types

• typedef Const_Pointer const_pointer


• typedef Const_Reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef std::bidirectional_iterator_tag iterator_category
• typedef Pointer pointer
• typedef Reference reference
• typedef Value_Type value_type

Public Member Functions

• bin_search_tree_const_it_ (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_←-


Pointer, Reference, Const_Reference, !Is_Forward_Iterator, _Alloc > &other)
• bin_search_tree_const_it_ (const Node_Pointer p_nd=0)
• bool operator!= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) const
• bool operator!= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, Is_Forward_Iterator, _Alloc > &other) const
• const_reference operator∗ () const
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > & operator++ ()
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > operator++ (int)
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > & operator-- ()
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > operator-- (int)
• const_pointer operator-> () const
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > & operator= (const bin_search_tree_const_it_< Node_Pointer, Value_Type,
Pointer, Const_Pointer, Reference, Const_Reference, !Is_Forward_Iterator, _Alloc > &other)
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > & operator= (const bin_search_tree_const_it_< Node_Pointer, Value_Type,
Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > &other)
• bool operator== (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) const
• bool operator== (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, Is_Forward_Iterator, _Alloc > &other) const

Generated by Doxygen
1674

Public Attributes

• Node_Pointer m_p_nd

Protected Member Functions

• void dec (false_type)


• void dec (true_type)
• void inc (false_type)
• void inc (true_type)

5.258.1 Detailed Description

template<typename Node_Pointer, typename Value_Type, typename Pointer, typename Const_Pointer, type-


name Reference, typename Const_Reference, bool Is_Forward_Iterator, typename _Alloc>
class __gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Ref-
erence, Const_Reference, Is_Forward_Iterator, _Alloc >

Const iterator.
The documentation for this class was generated from the following file:

• point_iterators.hpp

5.259 __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator,


Iterator, _Alloc > Class Template Reference
#include <node_iterators.hpp>
Inheritance diagram for __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc
>:

__gnu_pbds::detail __gnu_pbds::detail
::bin_search_tree_const ::bin_search_tree_node
_node_it_< Node, Const _it_< Node, Const_Iterator,
_Iterator, Iterator, _Alloc > Iterator, _Alloc >

Public Types

• typedef Const_Iterator const_reference


• typedef trivial_iterator_difference_type difference_type
• typedef trivial_iterator_tag iterator_category
• typedef rebind_traits< _Alloc, metadata_type >::const_reference metadata_const_reference
• typedef Node::metadata_type metadata_type
• typedef Const_Iterator reference
• typedef Const_Iterator value_type

Generated by Doxygen
5.259 __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > Class
Template Reference 1675

Public Member Functions

• bin_search_tree_const_node_it_ (const node_pointer p_nd=0)


• bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > get_l_child () const
• metadata_const_reference get_metadata () const
• bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > get_r_child () const
• bool operator!= (const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &other) const
• const_reference operator∗ () const
• bool operator== (const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &other) const

Public Attributes

• node_pointer m_p_nd

5.259.1 Detailed Description

template<typename Node, class Const_Iterator, class Iterator, typename _Alloc>


class __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc >

Const node iterator.

5.259.2 Member Typedef Documentation

const_reference

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Const_Iterator __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator,
_Alloc >::const_reference
Iterator's __const reference type.

difference_type

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


trivial_iterator_difference_type __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const←-
_Iterator, Iterator, _Alloc >::difference_type
Difference type.

iterator_category

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


trivial_iterator_tag __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator,
Iterator, _Alloc >::iterator_category
Category.

metadata_const_reference

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


rebind_traits<_Alloc,metadata_type>::const_reference __gnu_pbds::detail::bin_search_tree_const_node_it_<
Node, Const_Iterator, Iterator, _Alloc >::metadata_const_reference
Const metadata reference type.

metadata_type

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Node::metadata_type __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator,
Iterator, _Alloc >::metadata_type
Metadata type.

Generated by Doxygen
1676

reference

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Const_Iterator __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator,
_Alloc >::reference
Iterator's reference type.

value_type

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Const_Iterator __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator,
_Alloc >::value_type
Iterator's value type.

5.259.3 Member Function Documentation

get_l_child()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > __gnu_pbds::detail::bin_search_tree_cons
Node, Const_Iterator, Iterator, _Alloc >::get_l_child () const [inline]
Returns the __const node iterator associated with the left node.

get_metadata()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


metadata_const_reference __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator,
Iterator, _Alloc >::get_metadata () const [inline]
Metadata access.

get_r_child()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > __gnu_pbds::detail::bin_search_tree_cons
Node, Const_Iterator, Iterator, _Alloc >::get_r_child () const [inline]
Returns the __const node iterator associated with the right node.

operator"!=()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bool __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc
>::operator!= (
const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &
other) const [inline]
Compares (negatively) to a different iterator object.

operator∗()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


const_reference __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator,
_Alloc >::operator∗ () const [inline]
Access.

Generated by Doxygen
5.260 __gnu_pbds::detail::bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer,
Reference, Const_Reference, Is_Forward_Iterator, _Alloc > Class Template Reference 1677

operator==()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bool __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc
>::operator== (
const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &
other) const [inline]
Compares to a different iterator object.
The documentation for this class was generated from the following file:

• bin_search_tree_/node_iterators.hpp

5.260 __gnu_pbds::detail::bin_search_tree_it_< Node_Pointer, Value_Type, Pointer,


Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > Class
Template Reference
#include <point_iterators.hpp>
Inheritance diagram for __gnu_pbds::detail::bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer,
Reference, Const_Reference, Is_Forward_Iterator, _Alloc >:

__gnu_pbds::detail __gnu_pbds::detail
::bin_search_tree_const ::bin_search_tree_it
_it_< Node_Pointer, Value _< Node_Pointer, Value
_Type, Pointer, Const_Pointer, _Type, Pointer, Const_Pointer,
Reference, Const_Reference, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc > Is_Forward_Iterator, _Alloc >

Public Types

• typedef Const_Pointer const_pointer


• typedef Const_Reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef std::bidirectional_iterator_tag iterator_category
• typedef Pointer pointer
• typedef Reference reference
• typedef Value_Type value_type

Public Member Functions

• bin_search_tree_it_ (const bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-


ence, Const_Reference, !Is_Forward_Iterator, _Alloc > &other)
• bin_search_tree_it_ (const Node_Pointer p_nd=0)
• bool operator!= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) const
• bool operator!= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, Is_Forward_Iterator, _Alloc > &other) const
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc >::reference operator∗ () const

Generated by Doxygen
1678

• bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_←-


Forward_Iterator, _Alloc > & operator++ ()
• bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_←-
Forward_Iterator, _Alloc > operator++ (int)
• bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_←-
Forward_Iterator, _Alloc > & operator-- ()
• bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_←-
Forward_Iterator, _Alloc > operator-- (int)
• bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc >::pointer operator-> () const
• bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_←-
Forward_Iterator, _Alloc > & operator= (const bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const←-
_Pointer, Reference, Const_Reference, !Is_Forward_Iterator, _Alloc > &other)
• bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_←-
Forward_Iterator, _Alloc > & operator= (const bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const←-
_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > &other)
• bool operator== (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) const
• bool operator== (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Refer-
ence, Const_Reference, Is_Forward_Iterator, _Alloc > &other) const

Public Attributes

• Node_Pointer m_p_nd

Protected Types

• typedef bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_←-


Reference, Is_Forward_Iterator, _Alloc > base_it_type

Protected Member Functions

• void dec (false_type)


• void dec (true_type)
• void inc (false_type)
• void inc (true_type)

5.260.1 Detailed Description

template<typename Node_Pointer, typename Value_Type, typename Pointer, typename Const_Pointer, type-


name Reference, typename Const_Reference, bool Is_Forward_Iterator, typename _Alloc>
class __gnu_pbds::detail::bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference,
Const_Reference, Is_Forward_Iterator, _Alloc >

Iterator.
The documentation for this class was generated from the following file:

• point_iterators.hpp

5.261 __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator,


_Alloc > Class Template Reference
#include <node_iterators.hpp>

Generated by Doxygen
5.261 __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc > Class
Template Reference 1679

Inheritance diagram for __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc >:

__gnu_pbds::detail __gnu_pbds::detail
::bin_search_tree_const ::bin_search_tree_node
_node_it_< Node, Const _it_< Node, Const_Iterator,
_Iterator, Iterator, _Alloc > Iterator, _Alloc >

Public Types

• typedef Iterator const_reference


• typedef trivial_iterator_difference_type difference_type
• typedef trivial_iterator_tag iterator_category
• typedef rebind_traits< _Alloc, metadata_type >::const_reference metadata_const_reference
• typedef Node::metadata_type metadata_type
• typedef Iterator reference
• typedef Iterator value_type

Public Member Functions

• bin_search_tree_node_it_ (const node_pointer p_nd=0)


• bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc > get_l_child () const
• metadata_const_reference get_metadata () const
• bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc > get_r_child () const
• bool operator!= (const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &other) const
• Iterator operator∗ () const
• bool operator== (const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &other) const

Public Attributes

• node_pointer m_p_nd

5.261.1 Detailed Description

template<typename Node, class Const_Iterator, class Iterator, typename _Alloc>


class __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc >

Node iterator.

5.261.2 Member Typedef Documentation

const_reference

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Iterator __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc >←-
::const_reference
Iterator's __const reference type.

Generated by Doxygen
1680

difference_type

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


trivial_iterator_difference_type __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const←-
_Iterator, Iterator, _Alloc >::difference_type [inherited]
Difference type.

iterator_category

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


trivial_iterator_tag __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator,
Iterator, _Alloc >::iterator_category [inherited]
Category.

metadata_const_reference

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


rebind_traits<_Alloc,metadata_type>::const_reference __gnu_pbds::detail::bin_search_tree_const_node_it_<
Node, Const_Iterator, Iterator, _Alloc >::metadata_const_reference [inherited]
Const metadata reference type.

metadata_type

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Node::metadata_type __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator,
Iterator, _Alloc >::metadata_type [inherited]
Metadata type.

reference

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Iterator __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc >←-
::reference
Iterator's reference type.

value_type

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Iterator __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc >←-
::value_type
Iterator's value type.

5.261.3 Member Function Documentation

get_l_child()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc > __gnu_pbds::detail::bin_search_tree_node_it_<
Node, Const_Iterator, Iterator, _Alloc >::get_l_child () const [inline]
Returns the node iterator associated with the left node.

get_metadata()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


metadata_const_reference __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator,
Iterator, _Alloc >::get_metadata () const [inline], [inherited]

Generated by Doxygen
5.262 __gnu_pbds::detail::bin_search_tree_traits< Key, Mapped, Cmp_Fn, Node_Update, Node, _Alloc >
Struct Template Reference 1681

Metadata access.

get_r_child()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc > __gnu_pbds::detail::bin_search_tree_node_it_<
Node, Const_Iterator, Iterator, _Alloc >::get_r_child () const [inline]
Returns the node iterator associated with the right node.

operator"!=()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bool __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc
>::operator!= (
const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &
other) const [inline], [inherited]
Compares (negatively) to a different iterator object.

operator∗()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


Iterator __gnu_pbds::detail::bin_search_tree_node_it_< Node, Const_Iterator, Iterator, _Alloc >←-
::operator∗ () const [inline]
Access.

operator==()

template<typename Node , class Const_Iterator , class Iterator , typename _Alloc >


bool __gnu_pbds::detail::bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc
>::operator== (
const bin_search_tree_const_node_it_< Node, Const_Iterator, Iterator, _Alloc > &
other) const [inline], [inherited]
Compares to a different iterator object.
The documentation for this class was generated from the following file:

• bin_search_tree_/node_iterators.hpp

5.262 __gnu_pbds::detail::bin_search_tree_traits< Key, Mapped, Cmp_Fn, Node_Update,


Node, _Alloc > Struct Template Reference
#include <traits.hpp>

Public Types

• typedef bin_search_tree_const_it_< typename node_alloc_traits::pointer, typename type_traits::value_type,


typename type_traits::pointer, typename type_traits::const_pointer, typename type_traits::reference, typename
type_traits::const_reference, false, _Alloc > const_reverse_iterator
• typedef Node node
• typedef bin_search_tree_const_node_it_< Node, point_const_iterator, point_iterator, _Alloc > node_const_iterator
• typedef bin_search_tree_node_it_< Node, point_const_iterator, point_iterator, _Alloc > node_iterator
• typedef Node_Update< node_const_iterator, node_iterator, Cmp_Fn, _Alloc > node_update
• typedef __gnu_pbds::null_node_update< node_const_iterator, node_iterator, Cmp_Fn, _Alloc > ∗ null_node←-
_update_pointer

Generated by Doxygen
1682

• typedef bin_search_tree_const_it_< typename node_alloc_traits::pointer, typename type_traits::value_type,


typename type_traits::pointer, typename type_traits::const_pointer, typename type_traits::reference, typename
type_traits::const_reference, true, _Alloc > point_const_iterator
• typedef bin_search_tree_it_< typename node_alloc_traits::pointer, typename type_traits::value_type, typename
type_traits::pointer, typename type_traits::const_pointer, typename type_traits::reference, typename type_traits←-
::const_reference, true, _Alloc > point_iterator
• typedef bin_search_tree_it_< typename node_alloc_traits::pointer, typename type_traits::value_type, typename
type_traits::pointer, typename type_traits::const_pointer, typename type_traits::reference, typename type_traits←-
::const_reference, false, _Alloc > reverse_iterator

5.262.1 Detailed Description

template<typename Key, typename Mapped, class Cmp_Fn, template< typename Node_CItr, class Node_Itr,
class _Cmp_Fn, typename _Alloc > class Node_Update, class Node, typename _Alloc>
struct __gnu_pbds::detail::bin_search_tree_traits< Key, Mapped, Cmp_Fn, Node_Update, Node, _Alloc >

Binary search tree traits, primary template.

5.262.2 Member Typedef Documentation

node_const_iterator

template<typename Key , typename Mapped , class Cmp_Fn , template< typename Node_CItr, class
Node_Itr, class _Cmp_Fn, typename _Alloc > class Node_Update, class Node , typename _Alloc >
bin_search_tree_const_node_it_< Node, point_const_iterator, point_iterator, _Alloc> __gnu_pbds::detail::bin_searc
Key, Mapped, Cmp_Fn, Node_Update, Node, _Alloc >::node_const_iterator
This is an iterator to an iterator: it iterates over nodes, and de-referencing it returns one of the tree's iterators.
The documentation for this struct was generated from the following file:

• bin_search_tree_/traits.hpp

5.263 __gnu_pbds::detail::bin_search_tree_traits< Key, null_type, Cmp_Fn, Node_Update,


Node, _Alloc > Struct Template Reference
#include <traits.hpp>

Public Types

• typedef bin_search_tree_const_it_< typename node_alloc_traits::pointer, typename type_traits::value_type,


typename type_traits::pointer, typename type_traits::const_pointer, typename type_traits::reference, typename
type_traits::const_reference, false, _Alloc > const_reverse_iterator
• typedef Node node
• typedef bin_search_tree_const_node_it_< Node, point_const_iterator, point_iterator, _Alloc > node_const_iterator
• typedef node_const_iterator node_iterator
• typedef Node_Update< node_const_iterator, node_iterator, Cmp_Fn, _Alloc > node_update
• typedef __gnu_pbds::null_node_update< node_const_iterator, node_iterator, Cmp_Fn, _Alloc > ∗ null_node←-
_update_pointer
• typedef bin_search_tree_const_it_< typename node_alloc_traits::pointer, typename type_traits::value_type,
typename type_traits::pointer, typename type_traits::const_pointer, typename type_traits::reference, typename
type_traits::const_reference, true, _Alloc > point_const_iterator
• typedef point_const_iterator point_iterator
• typedef const_reverse_iterator reverse_iterator

Generated by Doxygen
5.264 __gnu_cxx::binary_compose< _Operation1, _Operation2, _Operation3 > Class Template Reference
1683

5.263.1 Detailed Description

template<typename Key, class Cmp_Fn, template< typename Node_CItr, class Node_Itr, class _Cmp_Fn, type-
name _Alloc > class Node_Update, class Node, typename _Alloc>
struct __gnu_pbds::detail::bin_search_tree_traits< Key, null_type, Cmp_Fn, Node_Update, Node, _Alloc >

Specialization.

5.263.2 Member Typedef Documentation

node_const_iterator

template<typename Key , class Cmp_Fn , template< typename Node_CItr, class Node_Itr, class _Cmp←-
_Fn, typename _Alloc > class Node_Update, class Node , typename _Alloc >
bin_search_tree_const_node_it_< Node, point_const_iterator, point_iterator, _Alloc> __gnu_pbds::detail::bin_searc
Key, null_type, Cmp_Fn, Node_Update, Node, _Alloc >::node_const_iterator
This is an iterator to an iterator: it iterates over nodes, and de-referencing it returns one of the tree's iterators.
The documentation for this struct was generated from the following file:

• bin_search_tree_/traits.hpp

5.264 __gnu_cxx::binary_compose< _Operation1, _Operation2, _Operation3 > Class


Template Reference
#include <functional>
Inheritance diagram for __gnu_cxx::binary_compose< _Operation1, _Operation2, _Operation3 >:

std::unary_function
< _Operation2::argument
_type, _Operation1::result_type >

__gnu_cxx::binary_compose
< _Operation1, _Operation2,
_Operation3 >

Public Types

• typedef _Operation2::argument_type argument_type


• typedef _Operation1::result_type result_type

Public Member Functions

• binary_compose (const _Operation1 &__x, const _Operation2 &__y, const _Operation3 &__z)
• _Operation1::result_type operator() (const typename _Operation2::argument_type &__x) const

Generated by Doxygen
1684

Protected Attributes

• _Operation1 _M_fn1
• _Operation2 _M_fn2
• _Operation3 _M_fn3

5.264.1 Detailed Description

template<class _Operation1, class _Operation2, class _Operation3>


class __gnu_cxx::binary_compose< _Operation1, _Operation2, _Operation3 >

An SGI extension .

5.264.2 Member Typedef Documentation

argument_type

_Operation2::argument_type std::unary_function< _Operation2::argument_type, _Operation1::result_←-


type >::argument_type [inherited]
argument_type is the type of the argument

result_type

_Operation1::result_type std::unary_function< _Operation2::argument_type, _Operation1::result_←-


type >::result_type [inherited]
result_type is the return type
The documentation for this class was generated from the following file:

• ext/functional

5.265 std::binary_function< _Arg1, _Arg2, _Result > Struct Template Reference


#include <stl_function.h>
Inheritance diagram for std::binary_function< _Arg1, _Arg2, _Result >:

__gnu_parallel::_Multiplies
< _Tp1, _Tp2, _Result >

std::binary_function __gnu_parallel::_Plus
< _Arg1, _Arg2, _Result > < _Tp1, _Tp2, _Result >

std::pointer_to_binary
_function< _Arg1, _Arg2,
_Result >

Generated by Doxygen
5.266 __gnu_pbds::detail::binary_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference 1685

Public Types

• typedef _Arg1 first_argument_type


• typedef _Result result_type
• typedef _Arg2 second_argument_type

5.265.1 Detailed Description

template<typename _Arg1, typename _Arg2, typename _Result>


struct std::binary_function< _Arg1, _Arg2, _Result >

Helper for defining adaptable binary function objects.

Deprecated Deprecated in C++11, no longer in the standard since C++17.

5.265.2 Member Typedef Documentation

first_argument_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Arg1 std::binary_function< _Arg1, _Arg2, _Result >::first_argument_type
first_argument_type is the type of the first argument

result_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Result std::binary_function< _Arg1, _Arg2, _Result >::result_type
result_type is the return type

second_argument_type

template<typename _Arg1 , typename _Arg2 , typename _Result >


_Arg2 std::binary_function< _Arg1, _Arg2, _Result >::second_argument_type
second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

• stl_function.h

5.266 __gnu_pbds::detail::binary_heap< Value_Type, Cmp_Fn, _Alloc > Class Template


Reference
#include <binary_heap_.hpp>

Generated by Doxygen
1686

Inheritance diagram for __gnu_pbds::detail::binary_heap< Value_Type, Cmp_Fn, _Alloc >:

__gnu_pbds::detail
::resize_policy< _Alloc
::size_type >

__gnu_pbds::detail
::binary_heap< Value
_Type, Cmp_Fn, _Alloc >

Public Types

• typedef _Alloc allocator_type


• typedef Cmp_Fn cmp_fn
• typedef cond_dealtor< value_type, _Alloc > cond_dealtor_t
• typedef binary_heap_const_iterator_< value_type, entry, simple_value, _Alloc > const_iterator
• typedef __rebind_v::const_pointer const_pointer
• typedef __rebind_v::const_reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef __conditional_type< simple_value, value_type, pointer >::__type entry
• typedef rebind_traits< _Alloc, entry >::allocator_type entry_allocator
• typedef entry_cmp< Value_Type, Cmp_Fn, _Alloc, is_simple< Value_Type >::value >::type entry_cmp
• typedef rebind_traits< _Alloc, entry >::pointer entry_pointer
• typedef const_iterator iterator
• typedef binary_heap_point_const_iterator_< value_type, entry, simple_value, _Alloc > point_const_iterator
• typedef point_const_iterator point_iterator
• typedef __rebind_v::pointer pointer
• typedef __rebind_v::reference reference
• typedef __gnu_pbds::detail::resize_policy< typename _Alloc::size_type > resize_policy
• typedef _Alloc::size_type size_type
• typedef Value_Type value_type

Public Member Functions

• binary_heap (const binary_heap &)


• binary_heap (const cmp_fn &)
• iterator begin ()
• const_iterator begin () const
• void clear ()
• bool empty () const
• iterator end ()

Generated by Doxygen
5.266 __gnu_pbds::detail::binary_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference 1687

• const_iterator end () const


• void erase (point_iterator)
• void erase_at (entry_pointer, size_type, false_type)
• void erase_at (entry_pointer, size_type, true_type)
• template<typename Pred >
size_type erase_if (Pred)
• Cmp_Fn & get_cmp_fn ()
• const Cmp_Fn & get_cmp_fn () const
• size_type get_new_size_for_arbitrary (size_type) const
• size_type get_new_size_for_grow () const
• size_type get_new_size_for_shrink () const
• bool grow_needed (size_type) const
• void join (binary_heap &)
• size_type max_size () const
• void modify (point_iterator, const_reference)
• void notify_arbitrary (size_type)
• void notify_grow_resize ()
• void notify_shrink_resize ()
• void pop ()
• point_iterator push (const_reference)
• bool resize_needed_for_grow (size_type) const
• bool resize_needed_for_shrink (size_type) const
• bool shrink_needed (size_type) const
• size_type size () const
• template<typename Pred >
void split (Pred, binary_heap &)
• void swap (binary_heap &)
• void swap (resize_policy< _Alloc::size_type > &)
• const_reference top () const

Static Public Attributes

• static const _Alloc::size_type min_size

Protected Member Functions

• template<typename It >
void copy_from_range (It, It)

5.266.1 Detailed Description

template<typename Value_Type, typename Cmp_Fn, typename _Alloc>


class __gnu_pbds::detail::binary_heap< Value_Type, Cmp_Fn, _Alloc >

Binary heaps composed of resize and compare policies.


Based on CLRS.
The documentation for this class was generated from the following file:

• binary_heap_.hpp

Generated by Doxygen
1688

5.267 __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple,


_Alloc > Class Template Reference
#include <const_iterator.hpp>
Inheritance diagram for __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc >:

__gnu_pbds::detail
__gnu_pbds::detail
::binary_heap_point
::binary_heap_const
_const_iterator_< Value
_iterator_< Value_Type,
_Type, Entry, Simple,
Entry, Simple, _Alloc >
_Alloc >

Public Types

• typedef base_type::const_pointer const_pointer


• typedef base_type::const_reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef std::forward_iterator_tag iterator_category
• typedef base_type::pointer pointer
• typedef base_type::reference reference
• typedef base_type::value_type value_type

Public Member Functions

• binary_heap_const_iterator_ ()
• binary_heap_const_iterator_ (const binary_heap_const_iterator_ &other)
• binary_heap_const_iterator_ (entry_pointer p_e)
• bool operator!= (const binary_heap_const_iterator_ &other) const
• bool operator!= (const binary_heap_point_const_iterator_ &other) const
• const_reference operator∗ () const
• binary_heap_const_iterator_ & operator++ ()
• binary_heap_const_iterator_ operator++ (int)
• const_pointer operator-> () const
• bool operator== (const binary_heap_const_iterator_ &other) const
• bool operator== (const binary_heap_point_const_iterator_ &other) const

Public Attributes

• entry_pointer m_p_e

5.267.1 Detailed Description

template<typename Value_Type, typename Entry, bool Simple, typename _Alloc>


class __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc >

Const point-type iterator.

Generated by Doxygen
5.267 __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc > Class
Template Reference 1689

5.267.2 Member Typedef Documentation

const_pointer

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


base_type::const_pointer __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry,
Simple, _Alloc >::const_pointer
Iterator's const pointer type.

const_reference

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


base_type::const_reference __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry,
Simple, _Alloc >::const_reference
Iterator's const reference type.

difference_type

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


_Alloc::difference_type __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple,
_Alloc >::difference_type
Difference type.

iterator_category

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


std::forward_iterator_tag __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry,
Simple, _Alloc >::iterator_category
Category.

pointer

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


base_type::pointer __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _←-
Alloc >::pointer
Iterator's pointer type.

reference

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


base_type::reference __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple,
_Alloc >::reference
Iterator's reference type.

value_type

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


base_type::value_type __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple,
_Alloc >::value_type
Iterator's value type.

5.267.3 Constructor & Destructor Documentation

binary_heap_const_iterator_() [1/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >

Generated by Doxygen
1690

__gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc >::binary_←-


heap_const_iterator_ () [inline]
Default constructor.

binary_heap_const_iterator_() [2/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


__gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc >::binary_←-
heap_const_iterator_ (
const binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)
[inline]
Copy constructor.

5.267.4 Member Function Documentation

operator"!=() [1/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


bool __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc >::operator!=
(
const binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)
const [inline]
Compares content (negatively) to a different iterator object.

operator"!=() [2/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


bool __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc >←-
::operator!= (
const binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)
const [inline], [inherited]
Compares content (negatively) to a different iterator object.

operator∗()

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


const_reference __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple,
_Alloc >::operator∗ () const [inline], [inherited]
Access.

operator->()

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


const_pointer __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, ←-
_Alloc >::operator-> () const [inline], [inherited]
Access.

operator==() [1/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


bool __gnu_pbds::detail::binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc >::operator==
(
const binary_heap_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)
const [inline]
Compares content to a different iterator object.

Generated by Doxygen
5.268 __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > Class
Template Reference 1691

operator==() [2/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


bool __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc >←-
::operator== (
const binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)
const [inline], [inherited]
Compares content to a different iterator object.
The documentation for this class was generated from the following file:
• binary_heap_/const_iterator.hpp

5.268 __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry,


Simple, _Alloc > Class Template Reference
#include <point_const_iterator.hpp>
Inheritance diagram for __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc
>:

__gnu_pbds::detail
__gnu_pbds::detail
::binary_heap_point
::binary_heap_const
_const_iterator_< Value
_iterator_< Value_Type,
_Type, Entry, Simple,
Entry, Simple, _Alloc >
_Alloc >

Public Types

• typedef rebind_traits< _Alloc, value_type >::const_pointer const_pointer


• typedef rebind_traits< _Alloc, value_type >::const_reference const_reference
• typedef trivial_iterator_difference_type difference_type
• typedef trivial_iterator_tag iterator_category
• typedef rebind_traits< _Alloc, value_type >::pointer pointer
• typedef rebind_traits< _Alloc, value_type >::reference reference
• typedef Value_Type value_type

Public Member Functions

• binary_heap_point_const_iterator_ ()
• binary_heap_point_const_iterator_ (const binary_heap_point_const_iterator_ &other)
• binary_heap_point_const_iterator_ (entry_pointer p_e)
• bool operator!= (const binary_heap_point_const_iterator_ &other) const
• const_reference operator∗ () const
• const_pointer operator-> () const
• bool operator== (const binary_heap_point_const_iterator_ &other) const

Public Attributes

• entry_pointer m_p_e

Generated by Doxygen
1692

Protected Types

• typedef rebind_traits< _Alloc, Entry >::pointer entry_pointer

5.268.1 Detailed Description

template<typename Value_Type, typename Entry, bool Simple, typename _Alloc>


class __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc >

Const point-type iterator.

5.268.2 Member Typedef Documentation

const_pointer

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


rebind_traits<_Alloc,value_type>::const_pointer __gnu_pbds::detail::binary_heap_point_const_iterator_<
Value_Type, Entry, Simple, _Alloc >::const_pointer
Iterator's const pointer type.

const_reference

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


rebind_traits<_Alloc,value_type>::const_reference __gnu_pbds::detail::binary_heap_point_const_iterator_<
Value_Type, Entry, Simple, _Alloc >::const_reference
Iterator's const reference type.

difference_type

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


trivial_iterator_difference_type __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_←-
Type, Entry, Simple, _Alloc >::difference_type
Difference type.

iterator_category

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


trivial_iterator_tag __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry,
Simple, _Alloc >::iterator_category
Category.

pointer

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


rebind_traits<_Alloc,value_type>::pointer __gnu_pbds::detail::binary_heap_point_const_iterator_<
Value_Type, Entry, Simple, _Alloc >::pointer
Iterator's pointer type.

reference

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


rebind_traits<_Alloc,value_type>::reference __gnu_pbds::detail::binary_heap_point_const_iterator_<
Value_Type, Entry, Simple, _Alloc >::reference
Iterator's reference type.

Generated by Doxygen
5.268 __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > Class
Template Reference 1693

value_type

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


Value_Type __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _←-
Alloc >::value_type
Iterator's value type.

5.268.3 Constructor & Destructor Documentation

binary_heap_point_const_iterator_() [1/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


__gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc >←-
::binary_heap_point_const_iterator_ () [inline]
Default constructor.

binary_heap_point_const_iterator_() [2/2]

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


__gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc >←-
::binary_heap_point_const_iterator_ (
const binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)
[inline]
Copy constructor.

5.268.4 Member Function Documentation

operator"!=()

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


bool __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc >←-
::operator!= (
const binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)
const [inline]
Compares content (negatively) to a different iterator object.

operator∗()

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


const_reference __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple,
_Alloc >::operator∗ () const [inline]
Access.

operator->()

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


const_pointer __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, ←-
_Alloc >::operator-> () const [inline]
Access.

operator==()

template<typename Value_Type , typename Entry , bool Simple, typename _Alloc >


bool __gnu_pbds::detail::binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc >←-
::operator== (

Generated by Doxygen
1694

const binary_heap_point_const_iterator_< Value_Type, Entry, Simple, _Alloc > & other)


const [inline]
Compares content to a different iterator object.
The documentation for this class was generated from the following file:

• binary_heap_/point_const_iterator.hpp

5.269 __gnu_pbds::binary_heap_tag Struct Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::binary_heap_tag:

__gnu_pbds::container_tag

__gnu_pbds::priority
_queue_tag

__gnu_pbds::binary
_heap_tag

5.269.1 Detailed Description

Binary-heap (array-based).
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.270 std::binary_negate< _Predicate > Class Template Reference


#include <stl_function.h>

Generated by Doxygen
5.270 std::binary_negate< _Predicate > Class Template Reference 1695

Inheritance diagram for std::binary_negate< _Predicate >:

std::binary_function
< _Predicate::first_argument std::binary_negate
_type, _Predicate::second < _Predicate >
_argument_type, bool >

Public Types

• typedef _Predicate::first_argument_type first_argument_type


• typedef bool result_type
• typedef _Predicate::second_argument_type second_argument_type

Public Member Functions

• constexpr binary_negate (const _Predicate &__x)


• constexpr bool operator() (const typename _Predicate::first_argument_type &__x, const typename _Predicate←-
::second_argument_type &__y) const

Protected Attributes

• _Predicate _M_pred

5.270.1 Detailed Description

template<typename _Predicate>
class std::binary_negate< _Predicate >

One of the negation functors.

5.270.2 Member Typedef Documentation

first_argument_type

_Predicate::first_argument_type std::binary_function< _Predicate::first_argument_type, _Predicate←-


::second_argument_type, bool >::first_argument_type [inherited]
first_argument_type is the type of the first argument

result_type

bool std::binary_function< _Predicate::first_argument_type, _Predicate::second_argument_type,


bool >::result_type [inherited]
result_type is the return type

Generated by Doxygen
1696

second_argument_type

_Predicate::second_argument_type std::binary_function< _Predicate::first_argument_type, _Predicate←-


::second_argument_type, bool >::second_argument_type [inherited]
second_argument_type is the type of the second argument
The documentation for this class was generated from the following file:

• stl_function.h

5.271 std::binder1st< _Operation > Class Template Reference


#include <binders.h>
Inheritance diagram for std::binder1st< _Operation >:

std::unary_function
< _Operation::second
_argument_type, _Operation
::result_type >

std::binder1st< _Operation >

Public Types

• typedef _Operation::second_argument_type argument_type


• typedef _Operation::result_type result_type

Public Member Functions

• binder1st (const _Operation &__x, const typename _Operation::first_argument_type &__y)


• _Operation::result_type operator() (const typename _Operation::second_argument_type &__x) const
• _Operation::result_type operator() (typename _Operation::second_argument_type &__x) const

Protected Attributes

• _Operation op
• _Operation::first_argument_type value

5.271.1 Detailed Description

template<typename _Operation>
class std::binder1st< _Operation >

One of the binder functors.

Generated by Doxygen
5.272 std::binder2nd< _Operation > Class Template Reference 1697

5.271.2 Member Typedef Documentation

argument_type

_Operation::second_argument_type std::unary_function< _Operation::second_argument_type, _Operation←-


::result_type >::argument_type [inherited]
argument_type is the type of the argument

result_type

_Operation::result_type std::unary_function< _Operation::second_argument_type, _Operation::result←-


_type >::result_type [inherited]
result_type is the return type
The documentation for this class was generated from the following file:

• binders.h

5.272 std::binder2nd< _Operation > Class Template Reference


#include <binders.h>
Inheritance diagram for std::binder2nd< _Operation >:

std::unary_function
< _Operation::first
_argument_type, _Operation
::result_type >

std::binder2nd< _Operation >

Public Types

• typedef _Operation::first_argument_type argument_type


• typedef _Operation::result_type result_type

Public Member Functions

• binder2nd (const _Operation &__x, const typename _Operation::second_argument_type &__y)


• _Operation::result_type operator() (const typename _Operation::first_argument_type &__x) const
• _Operation::result_type operator() (typename _Operation::first_argument_type &__x) const

Protected Attributes

• _Operation op
• _Operation::second_argument_type value

Generated by Doxygen
1698

5.272.1 Detailed Description

template<typename _Operation>
class std::binder2nd< _Operation >

One of the binder functors.

5.272.2 Member Typedef Documentation

argument_type

_Operation::first_argument_type std::unary_function< _Operation::first_argument_type, _Operation←-


::result_type >::argument_type [inherited]
argument_type is the type of the argument

result_type

_Operation::result_type std::unary_function< _Operation::first_argument_type, _Operation::result←-


_type >::result_type [inherited]
result_type is the return type
The documentation for this class was generated from the following file:

• binders.h

5.273 std::binomial_distribution< _IntType > Class Template Reference


#include <random>

Classes

• struct param_type

Public Types

• typedef _IntType result_type

Public Member Functions

• binomial_distribution (_IntType __t, double __p=0.5)


• binomial_distribution (const param_type &__p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)

Generated by Doxygen
5.273 std::binomial_distribution< _IntType > Class Template Reference 1699

• template<typename _UniformRandomNumberGenerator >


binomial_distribution< _IntType >::result_type operator() (_UniformRandomNumberGenerator &__urng, const
param_type &__param)
• double p () const
• param_type param () const
• void param (const param_type &__param)
• void reset ()
• _IntType t () const

Friends

• template<typename _IntType1 , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::binomial_distribution< _IntType1 > &__x)
• bool operator== (const binomial_distribution &__d1, const binomial_distribution &__d2)
• template<typename _IntType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::binomial_distribution< _IntType1 > &__x)

5.273.1 Detailed Description

template<typename _IntType = int>


class std::binomial_distribution< _IntType >

A discrete binomial random number distribution.


t

The formula for the binomial probability density function is p(i|t, p) = i pi (1 − p)t−i where t and p are the parameters
of the distribution.
Since

C++11

5.273.2 Member Typedef Documentation

result_type

template<typename _IntType = int>


_IntType std::binomial_distribution< _IntType >::result_type
The type of the range of the distribution.

5.273.3 Member Function Documentation

max()

template<typename _IntType = int>


result_type std::binomial_distribution< _IntType >::max () const [inline]
Returns the least upper bound value of the distribution.

min()

template<typename _IntType = int>


result_type std::binomial_distribution< _IntType >::min () const [inline]
Returns the greatest lower bound value of the distribution.

Generated by Doxygen
1700

operator()() [1/2]

template<typename _IntType = int>


template<typename _UniformRandomNumberGenerator >
result_type std::binomial_distribution< _IntType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References std::binomial_distribution< _IntType >::operator()().
Referenced by std::binomial_distribution< _IntType >::operator()().

operator()() [2/2]

template<typename _IntType = int>


template<typename _UniformRandomNumberGenerator >
binomial_distribution< _IntType >::result_type std::binomial_distribution< _IntType >::operator()
(
_UniformRandomNumberGenerator & __urng,
const param_type & __param)
A rejection algorithm when t ∗ p >= 8 and a simple waiting time method - the second in the referenced book - otherwise.
NB: The former is available only if _GLIBCXX_USE_C99_MATH_FUNCS is defined.
Reference: Devroye, L. Non-Uniform Random Variates Generation. Springer-Verlag, New York, 1986, Ch. X, Sect. 4 (+
Errata!).
References std::abs(), std::numeric_limits< _Tp >::epsilon(), std::log(), and std::numeric_limits< _Tp >::max().

p()

template<typename _IntType = int>


double std::binomial_distribution< _IntType >::p () const [inline]
Returns the distribution p parameter.

param() [1/2]

template<typename _IntType = int>


param_type std::binomial_distribution< _IntType >::param () const [inline]
Returns the parameter set of the distribution.

param() [2/2]

template<typename _IntType = int>


void std::binomial_distribution< _IntType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

template<typename _IntType = int>


void std::binomial_distribution< _IntType >::reset () [inline]
Resets the distribution state.
References std::normal_distribution< _RealType >::reset().

Generated by Doxygen
5.273 std::binomial_distribution< _IntType > Class Template Reference 1701

t()

template<typename _IntType = int>


_IntType std::binomial_distribution< _IntType >::t () const [inline]
Returns the distribution t parameter.

5.273.4 Friends And Related Symbol Documentation

operator<<

template<typename _IntType = int>


template<typename _IntType1 , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::binomial_distribution< _IntType1 > & __x) [friend]
Inserts a binomial_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A binomial_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

operator==

template<typename _IntType = int>


bool operator== (
const binomial_distribution< _IntType > & __d1,
const binomial_distribution< _IntType > & __d2) [friend]
Return true if two binomial distributions have the same parameters and the sequences that would be generated are
equal.

operator>>

template<typename _IntType = int>


template<typename _IntType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::binomial_distribution< _IntType1 > & __x) [friend]
Extracts a binomial_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A binomial_distribution random number generator engine.
_x

Generated by Doxygen
1702

Returns

The input stream with __x extracted or in an error state.

The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.274 __gnu_pbds::detail::binomial_heap< Value_Type, Cmp_Fn, _Alloc > Class Template


Reference
#include <binomial_heap_.hpp>
Inheritance diagram for __gnu_pbds::detail::binomial_heap< Value_Type, Cmp_Fn, _Alloc >:

__gnu_pbds::detail __gnu_pbds::detail
__gnu_pbds::detail
::left_child_next_sibling ::binomial_heap_base
::binomial_heap< Value
_heap< Value_Type, Cmp_Fn, < Value_Type, Cmp_Fn,
_Type, Cmp_Fn, _Alloc >
_Alloc::size_type, _Alloc > _Alloc >

Public Types

• typedef base_type::allocator_type allocator_type


• typedef base_type::cmp_fn cmp_fn
• typedef base_type::const_iterator const_iterator
• typedef base_type::const_pointer const_pointer
• typedef base_type::const_reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef base_type::iterator iterator
• typedef base_type::point_const_iterator point_const_iterator
• typedef base_type::point_iterator point_iterator
• typedef base_type::pointer pointer
• typedef base_type::reference reference
• typedef _Alloc::size_type size_type
• typedef Value_Type value_type

Public Member Functions

• binomial_heap (const binomial_heap &)


• binomial_heap (const Cmp_Fn &)
• iterator begin ()
• const_iterator begin () const
• void clear ()
• bool empty () const
• iterator end ()
• const_iterator end () const
• void erase (point_iterator)
• template<typename Pred >
size_type erase_if (Pred)
• Cmp_Fn & get_cmp_fn ()

Generated by Doxygen
5.274 __gnu_pbds::detail::binomial_heap< Value_Type, Cmp_Fn, _Alloc > Class Template Reference 1703

• const Cmp_Fn & get_cmp_fn () const


• void join (binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &)
• size_type max_size () const
• void modify (point_iterator, const_reference)
• void pop ()
• point_iterator push (const_reference)
• size_type size () const
• template<typename Pred >
void split (Pred, binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &)
• void swap (left_child_next_sibling_heap< Value_Type, Cmp_Fn, _Alloc::size_type, _Alloc > &)
• const_reference top () const

Protected Types

• typedef base_type::node node


• typedef alloc_traits::allocator_type node_allocator
• typedef _Alloc::size_type node_metadata
• typedef std::pair< node_pointer, node_pointer > node_pointer_pair

Protected Member Functions

• void actual_erase_node (node_pointer)


• void bubble_to_top (node_pointer)
• void clear_imp (node_pointer)
• template<typename It >
void copy_from_range (It, It)
• void find_max ()
• node_pointer get_new_node_for_insert (const_reference)
• node_pointer prune (Pred)
• void swap (binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &)
• void swap_with_parent (node_pointer, node_pointer)
• void to_linked_list ()
• void value_swap (left_child_next_sibling_heap &)

Static Protected Member Functions

• static void make_child_of (node_pointer, node_pointer)


• static node_pointer parent (node_pointer)

Protected Attributes

• node_pointer m_p_max
• node_pointer m_p_root
• size_type m_size

5.274.1 Detailed Description

template<typename Value_Type, typename Cmp_Fn, typename _Alloc>


class __gnu_pbds::detail::binomial_heap< Value_Type, Cmp_Fn, _Alloc >

Binomial heap.
The documentation for this class was generated from the following file:

• binomial_heap_.hpp

Generated by Doxygen
1704

5.275 __gnu_pbds::detail::binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > Class


Template Reference
#include <binomial_heap_base_.hpp>
Inheritance diagram for __gnu_pbds::detail::binomial_heap_base< Value_Type, Cmp_Fn, _Alloc >:

__gnu_pbds::detail
::binomial_heap< Value
__gnu_pbds::detail __gnu_pbds::detail _Type, Cmp_Fn, _Alloc >
::left_child_next_sibling ::binomial_heap_base
_heap< Value_Type, Cmp_Fn, < Value_Type, Cmp_Fn,
_Alloc::size_type, _Alloc > _Alloc > __gnu_pbds::detail
::rc_binomial_heap<
Value_Type, Cmp_Fn,
_Alloc >

Public Types

• typedef _Alloc allocator_type


• typedef Cmp_Fn cmp_fn
• typedef base_type::const_iterator const_iterator
• typedef __rebind_v::const_pointer const_pointer
• typedef __rebind_v::const_reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef base_type::iterator iterator
• typedef base_type::point_const_iterator point_const_iterator
• typedef base_type::point_iterator point_iterator
• typedef __rebind_v::pointer pointer
• typedef __rebind_v::reference reference
• typedef _Alloc::size_type size_type
• typedef Value_Type value_type

Public Member Functions

• iterator begin ()
• const_iterator begin () const
• void clear ()
• bool empty () const
• iterator end ()
• const_iterator end () const
• void erase (point_iterator)
• template<typename Pred >
size_type erase_if (Pred)
• Cmp_Fn & get_cmp_fn ()
• const Cmp_Fn & get_cmp_fn () const
• void join (binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &)
• size_type max_size () const
• void modify (point_iterator, const_reference)
• void pop ()
• point_iterator push (const_reference)

Generated by Doxygen
5.275 __gnu_pbds::detail::binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > Class Template Reference
1705

• size_type size () const


• template<typename Pred >
void split (Pred, binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &)
• void swap (left_child_next_sibling_heap< Value_Type, Cmp_Fn, _Alloc::size_type, _Alloc > &)
• const_reference top () const

Protected Types

• typedef base_type::node node


• typedef alloc_traits::allocator_type node_allocator
• typedef base_type::node_const_pointer node_const_pointer
• typedef _Alloc::size_type node_metadata
• typedef base_type::node_pointer node_pointer
• typedef std::pair< node_pointer, node_pointer > node_pointer_pair

Protected Member Functions

• binomial_heap_base (const binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &)


• binomial_heap_base (const Cmp_Fn &)
• void actual_erase_node (node_pointer)
• void bubble_to_top (node_pointer)
• void clear_imp (node_pointer)
• template<typename It >
void copy_from_range (It, It)
• void find_max ()
• node_pointer get_new_node_for_insert (const_reference)
• node_pointer prune (Pred)
• void swap (binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &)
• void swap_with_parent (node_pointer, node_pointer)
• void to_linked_list ()
• void value_swap (left_child_next_sibling_heap &)

Static Protected Member Functions

• static void make_child_of (node_pointer, node_pointer)


• static node_pointer parent (node_pointer)

Protected Attributes

• node_pointer m_p_max
• node_pointer m_p_root
• size_type m_size

5.275.1 Detailed Description

template<typename Value_Type, typename Cmp_Fn, typename _Alloc>


class __gnu_pbds::detail::binomial_heap_base< Value_Type, Cmp_Fn, _Alloc >

Base class for binomial heap.


The documentation for this class was generated from the following files:

• binomial_heap_base_.hpp
• rc_binomial_heap_.hpp

Generated by Doxygen
1706

5.276 __gnu_pbds::binomial_heap_tag Struct Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::binomial_heap_tag:

__gnu_pbds::container_tag

__gnu_pbds::priority
_queue_tag

__gnu_pbds::binomial
_heap_tag

5.276.1 Detailed Description

Binomial-heap.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.277 __gnu_cxx::bitmap_allocator< _Tp > Class Template Reference


#include <bitmap_allocator.h>
Inheritance diagram for __gnu_cxx::bitmap_allocator< _Tp >:

__gnu_cxx::free_list

__gnu_cxx::bitmap_allocator
< _Tp >

Generated by Doxygen
5.277 __gnu_cxx::bitmap_allocator< _Tp > Class Template Reference 1707

Public Types

• typedef free_list::__mutex_type __mutex_type


• typedef const _Tp ∗ const_pointer
• typedef const _Tp & const_reference
• typedef std::ptrdiff_t difference_type
• typedef _Tp ∗ pointer
• typedef std::true_type propagate_on_container_move_assignment
• typedef _Tp & reference
• typedef std::size_t size_type
• typedef _Tp value_type

Public Member Functions

• bitmap_allocator (const bitmap_allocator &) noexcept


• template<typename _Tp1 >
bitmap_allocator (const bitmap_allocator< _Tp1 > &) noexcept
• pointer _M_allocate_single_object ()
• void _M_deallocate_single_object (pointer __p) throw ()
• const_pointer address (const_reference __r) const noexcept
• pointer address (reference __r) const noexcept
• pointer allocate (size_type __n)
• pointer allocate (size_type __n, typename bitmap_allocator< void >::const_pointer)
• template<typename _Up , typename... _Args>
void construct (_Up ∗__p, _Args &&... __args)
• void deallocate (pointer __p, size_type __n) throw ()
• template<typename _Up >
void destroy (_Up ∗__p)
• size_type max_size () const noexcept

5.277.1 Detailed Description

template<typename _Tp>
class __gnu_cxx::bitmap_allocator< _Tp >

Bitmap Allocator, primary template.

5.277.2 Member Function Documentation

_M_allocate_single_object()

template<typename _Tp >


pointer __gnu_cxx::bitmap_allocator< _Tp >::_M_allocate_single_object () [inline]
Allocates memory for a single object of size sizeof(_Tp).

Exceptions

std::bad_alloc. If memory cannot be allocated.

Complexity: Worst case complexity is O(N), but that is hardly ever hit. If and when this particular case is encountered,
the next few cases are guaranteed to have a worst case complexity of O(1)! That's why this function performs very well
on average. You can consider this function to have a complexity referred to commonly as: Amortized Constant time.
References __gnu_cxx::__detail::__bit_allocate(), __gnu_cxx::__detail::__num_bitmaps(), and __gnu_cxx::_Bit_scan_forward().

Generated by Doxygen
1708

_M_deallocate_single_object()

template<typename _Tp >


void __gnu_cxx::bitmap_allocator< _Tp >::_M_deallocate_single_object (
pointer __p) throw ( ) [inline]
Deallocates memory that belongs to a single object of size sizeof(_Tp).
Complexity: O(lg(N)), but the worst case is not hit often! This is because containers usually deallocate memory close to
each other and this case is handled in O(1) time by the deallocate function.
References __gnu_cxx::__detail::__bit_free(), __gnu_cxx::__detail::__num_bitmaps(), and __gnu_cxx::free_list::_M_insert().
The documentation for this class was generated from the following file:

• bitmap_allocator.h

5.278 std::__debug::bitset< _Nb > Class Template Reference


#include <bitset>

Public Types

• typedef _Base::reference reference

Public Member Functions

• constexpr bitset (const _Base &__x)


• template<typename _CharT >
constexpr bitset (const _CharT ∗__str, typename std::basic_string< _CharT >::size_type __n=std::basic_string<
_CharT >::npos, _CharT __zero=_CharT('0'), _CharT __one=_CharT('1'))
• template<class _CharT , class _Traits , class _Alloc >
constexpr bitset (const std::basic_string< _CharT, _Traits, _Alloc > &__str, typename std::basic_string< _←-
CharT, _Traits, _Alloc >::size_type __pos, typename std::basic_string< _CharT, _Traits, _Alloc >::size_type __n,
_CharT __zero, _CharT __one=_CharT('1'))
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr bitset (const std::basic_string< _CharT, _Traits, _Alloc > &__str, typename std::basic_string< _←-
CharT, _Traits, _Alloc >::size_type __pos=0, typename std::basic_string< _CharT, _Traits, _Alloc >::size_type
__n=(std::basic_string< _CharT, _Traits, _Alloc >::npos))
• constexpr bitset (unsigned long long __val) noexcept
• constexpr const _Base & _M_base () const noexcept
• constexpr _Base & _M_base () noexcept
• constexpr bitset< _Nb > & flip () noexcept
• constexpr bitset< _Nb > & flip (size_t __pos)
• constexpr bitset< _Nb > & operator&= (const bitset< _Nb > &__rhs) noexcept
• constexpr bitset< _Nb > operator<< (size_t __pos) const noexcept
• constexpr bitset< _Nb > & operator<<= (size_t __pos) noexcept
• constexpr bool operator== (const bitset< _Nb > &__rhs) const noexcept
• constexpr bitset< _Nb > operator>> (size_t __pos) const noexcept
• constexpr bitset< _Nb > & operator>>= (size_t __pos) noexcept
• constexpr reference operator[ ] (size_t __pos)
• constexpr bool operator[ ] (size_t __pos) const
• constexpr bitset< _Nb > & operator∧ = (const bitset< _Nb > &__rhs) noexcept
• constexpr bitset< _Nb > & operator|= (const bitset< _Nb > &__rhs) noexcept
• constexpr bitset< _Nb > operator∼ () const noexcept
• constexpr bitset< _Nb > & reset () noexcept
• constexpr bitset< _Nb > & reset (size_t __pos)
• constexpr bitset< _Nb > & set () noexcept

Generated by Doxygen
5.279 std::bitset< _Nb > Class Template Reference 1709

• constexpr bitset< _Nb > & set (size_t __pos, bool __val=true)
• template<typename _CharT , typename _Traits , typename _Alloc >
constexpr std::basic_string< _CharT, _Traits, _Alloc > to_string () const
• template<typename _CharT , typename _Traits >
constexpr std::basic_string< _CharT, _Traits, std::allocator< _CharT > > to_string () const
• template<typename _CharT >
constexpr std::basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > to_string () const
• constexpr std::basic_string< char, std::char_traits< char >, std::allocator< char > > to_string () const
• template<class _CharT , class _Traits , class _Alloc >
constexpr std::basic_string< _CharT, _Traits, _Alloc > to_string (_CharT __zero, _CharT __one=_CharT('1'))
const
• template<class _CharT , class _Traits >
constexpr std::basic_string< _CharT, _Traits, std::allocator< _CharT > > to_string (_CharT __zero, _CharT
__one=_CharT('1')) const
• template<class _CharT >
constexpr std::basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > to_string (_←-
CharT __zero, _CharT __one=_CharT('1')) const
• constexpr std::basic_string< char, std::char_traits< char >, std::allocator< char > > to_string (char __zero,
char __one='1') const

5.278.1 Detailed Description

template<size_t _Nb>
class std::__debug::bitset< _Nb >

Class std::bitset with additional safety/checking/debug instrumentation.


The documentation for this class was generated from the following file:

• debug/bitset

5.279 std::bitset< _Nb > Class Template Reference


#include <bitset>
Inheritance diagram for std::bitset< _Nb >:

std::_Base_bitset<
((_Nb)/(__CHAR_BIT_
_ *__SIZEOF_LONG__)+
std::bitset< _Nb >
((_Nb) %(__CHAR_BIT__
*__SIZEOF_LONG__)==0
? 0 :1))>

Classes

• class reference

Generated by Doxygen
1710

Public Member Functions

• constexpr bitset () noexcept


• template<typename _CharT >
constexpr bitset (const _CharT ∗__str, typename __bitset::__string< _CharT >::size_type __n=__bitset::__string<
_CharT >::npos, _CharT __zero=_CharT('0'), _CharT __one=_CharT('1'))
• template<class _CharT , class _Traits , class _Alloc >
constexpr bitset (const std::basic_string< _CharT, _Traits, _Alloc > &__s, size_t __position, size_t __n)
• template<class _CharT , class _Traits , class _Alloc >
constexpr bitset (const std::basic_string< _CharT, _Traits, _Alloc > &__s, size_t __position, size_t __n, _CharT
__zero, _CharT __one=_CharT('1'))
• template<class _CharT , class _Traits , class _Alloc >
constexpr bitset (const std::basic_string< _CharT, _Traits, _Alloc > &__s, size_t __position=0)
• constexpr bitset (unsigned long long __val) noexcept
• constexpr size_t _Find_first () const noexcept
• constexpr size_t _Find_next (size_t __prev) const noexcept
• constexpr bool all () const noexcept
• constexpr bool any () const noexcept
• constexpr size_t count () const noexcept
• constexpr bitset< _Nb > & flip () noexcept
• constexpr bitset< _Nb > & flip (size_t __position)
• constexpr bool none () const noexcept
• constexpr bitset< _Nb > operator∼ () const noexcept
• constexpr bitset< _Nb > & reset () noexcept
• constexpr bitset< _Nb > & reset (size_t __position)
• constexpr bitset< _Nb > & set () noexcept
• constexpr bitset< _Nb > & set (size_t __position, bool __val=true)
• constexpr size_t size () const noexcept
• constexpr bool test (size_t __position) const
• template<class _CharT , class _Traits , class _Alloc >
constexpr std::basic_string< _CharT, _Traits, _Alloc > to_string () const
• template<class _CharT , class _Traits >
constexpr std::basic_string< _CharT, _Traits, std::allocator< _CharT > > to_string () const
• template<class _CharT >
constexpr std::basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > to_string () const
• constexpr std::basic_string< char, std::char_traits< char >, std::allocator< char > > to_string () const
• template<class _CharT , class _Traits , class _Alloc >
constexpr std::basic_string< _CharT, _Traits, _Alloc > to_string (_CharT __zero, _CharT __one=_CharT('1'))
const
• template<class _CharT , class _Traits >
constexpr std::basic_string< _CharT, _Traits, std::allocator< _CharT > > to_string (_CharT __zero, _CharT
__one=_CharT('1')) const
• template<class _CharT >
constexpr std::basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > to_string (_←-
CharT __zero, _CharT __one=_CharT('1')) const
• constexpr std::basic_string< char, std::char_traits< char >, std::allocator< char > > to_string (char __zero,
char __one='1') const
• constexpr unsigned long long to_ullong () const
• constexpr unsigned long to_ulong () const

• constexpr bitset< _Nb > & operator&= (const bitset< _Nb > &__rhs) noexcept
• constexpr bitset< _Nb > & operator|= (const bitset< _Nb > &__rhs) noexcept

Generated by Doxygen
5.279 std::bitset< _Nb > Class Template Reference 1711

• constexpr bitset< _Nb > & operator∧ = (const bitset< _Nb > &__rhs) noexcept

• constexpr bitset< _Nb > & operator<<= (size_t __position) noexcept


• constexpr bitset< _Nb > & operator>>= (size_t __position) noexcept

• constexpr bitset< _Nb > & _Unchecked_set (size_t __pos) noexcept


• constexpr bitset< _Nb > & _Unchecked_set (size_t __pos, int __val) noexcept
• constexpr bitset< _Nb > & _Unchecked_reset (size_t __pos) noexcept
• constexpr bitset< _Nb > & _Unchecked_flip (size_t __pos) noexcept
• constexpr bool _Unchecked_test (size_t __pos) const noexcept

• constexpr reference operator[ ] (size_t __position)


• constexpr bool operator[ ] (size_t __position) const

• constexpr bool operator== (const bitset< _Nb > &__rhs) const noexcept

• constexpr bitset< _Nb > operator<< (size_t __position) const noexcept


• constexpr bitset< _Nb > operator>> (size_t __position) const noexcept

Friends

• template<class _CharT , class _Traits , size_t _Nb2>


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &, const bitset<
_Nb2 > &)
• template<class _CharT , class _Traits , size_t _Nb2>
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &, bitset< _Nb2
> &)
• class reference
• struct std::hash< bitset >

5.279.1 Detailed Description

template<size_t _Nb>
class std::bitset< _Nb >

The bitset class represents a fixed-size sequence of bits.


(Note that bitset does not meet the formal requirements of a container. Mainly, it lacks iterators.)
The template argument, Nb, may be any non-negative number, specifying the number of bits (e.g., "0", "12",
"1024∗1024").
In the general unoptimized case, storage is allocated in word-sized blocks. Let B be the number of bits in a word, then
(Nb+(B-1))/B words will be used for storage. B - NbB bits are unused. (They are the high-order bits in the highest word.)
It is a class invariant that those unused bits are always zero.
If you think of bitset as a simple array of bits, be aware that your mental picture is reversed: a bitset behaves the same
way as bits in integers do, with the bit at index 0 in the least significant / right-hand position, and the bit at index Nb-1 in
the most significant / left-hand position. Thus, unlike other containers, a bitset's index counts from right to left, to put it
very loosely.

Generated by Doxygen
1712

This behavior is preserved when translating to and from strings. For example, the first line of the following program
probably prints b('a') is 0001100001 on a modern ASCII system.
#include <bitset>
#include <iostream>
#include <sstream>

using namespace std;

int main()
{
long a = ’a’;
bitset<10> b(a);

cout « "b(’a’) is " « b « endl;

ostringstream s;
s « b;
string str = s.str();
cout « "index 3 in the string is " « str[3] « " but\n"
« "index 3 in the bitset is " « b[3] « endl;
}
Also see: https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_containers.html for
a description of extensions.
Most of the actual code isn't contained in bitset<> itself, but in the base class _Base_bitset. The base class works with
whole words, not with individual bits. This allows us to specialize _Base_bitset for the important special case where the
bitset is only a single word.
Extra confusion can result due to the fact that the storage for _Base_bitset is a regular array, and is indexed as such.
This is carefully encapsulated.

5.279.2 Constructor & Destructor Documentation

bitset() [1/5]

template<size_t _Nb>
std::bitset< _Nb >::bitset () [inline], [constexpr], [noexcept]
All bits set to zero.

bitset() [2/5]

template<size_t _Nb>
std::bitset< _Nb >::bitset (
unsigned long long __val) [inline], [constexpr], [noexcept]
Initial bits bitwise-copied from a single word (others set to zero).

bitset() [3/5]

template<size_t _Nb>
template<class _CharT , class _Traits , class _Alloc >
std::bitset< _Nb >::bitset (
const std::basic_string< _CharT, _Traits, _Alloc > & __s,
size_t __position = 0) [inline], [explicit], [constexpr]
Use a subset of a string.

Parameters

__s A string of 0 and 1 characters.


__position Index of the first character in __s to use; defaults to zero.

Generated by Doxygen
5.279 std::bitset< _Nb > Class Template Reference 1713

Exceptions

std::out_of_range If pos is bigger the size of __s.


std::invalid_argument If a character appears in the string which is neither 0 nor 1.

bitset() [4/5]

template<size_t _Nb>
template<class _CharT , class _Traits , class _Alloc >
std::bitset< _Nb >::bitset (
const std::basic_string< _CharT, _Traits, _Alloc > & __s,
size_t __position,
size_t __n) [inline], [constexpr]
Use a subset of a string.

Parameters

__s A string of 0 and 1 characters.


__position Index of the first character in __s to use.
__n The number of characters to copy.

Exceptions

std::out_of_range If __position is bigger the size of __s.


std::invalid_argument If a character appears in the string which is neither 0 nor 1.

bitset() [5/5]

template<size_t _Nb>
template<typename _CharT >
std::bitset< _Nb >::bitset (
const _CharT ∗ __str,
typename __bitset< _Nb >::__string< _CharT >::size_type __n = __bitset< _Nb >::__←-
string<_CharT>::npos,
_CharT __zero = _CharT('0'),
_CharT __one = _CharT('1')) [inline], [explicit], [constexpr]
Construct from a character array.

Parameters

__str An array of characters zero and one.


__n The number of characters to use.
__zero The character corresponding to the value 0.
__one The character corresponding to the value 1.

Exceptions

std::invalid_argument If a character appears in the string which is neither __zero nor __one.

Generated by Doxygen
1714

5.279.3 Member Function Documentation

all()

template<size_t _Nb>
bool std::bitset< _Nb >::all () const [inline], [constexpr], [noexcept]
Tests whether all the bits are on.
Returns

True if all the bits are set.

any()

template<size_t _Nb>
bool std::bitset< _Nb >::any () const [inline], [constexpr], [noexcept]
Tests whether any of the bits are on.

Returns

True if at least one bit is set.

count()

template<size_t _Nb>
size_t std::bitset< _Nb >::count () const [inline], [constexpr], [noexcept]
Returns the number of bits which are set.

flip() [1/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::flip () [inline], [constexpr], [noexcept]
Toggles every bit to its opposite value.

flip() [2/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::flip (
size_t __position) [inline], [constexpr]
Toggles a given bit to its opposite value.

Parameters

__position The index of the bit.

Exceptions

std::out_of_range If pos is bigger the size of the set.

Generated by Doxygen
5.279 std::bitset< _Nb > Class Template Reference 1715

none()

template<size_t _Nb>
bool std::bitset< _Nb >::none () const [inline], [constexpr], [noexcept]
Tests whether any of the bits are on.
Returns

True if none of the bits are set.

operator&=()

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::operator&= (
const bitset< _Nb > & __rhs) [inline], [constexpr], [noexcept]
Operations on bitsets.

Parameters
__rhs A same-sized bitset.

These should be self-explanatory.

operator<<()

template<size_t _Nb>
bitset< _Nb > std::bitset< _Nb >::operator<< (
size_t __position) const [inline], [constexpr], [noexcept]
Self-explanatory.

operator<<=()

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::operator<<= (
size_t __position) [inline], [constexpr], [noexcept]
Operations on bitsets.

Parameters

__position The number of places to shift.

These should be self-explanatory.

operator==()

template<size_t _Nb>
bool std::bitset< _Nb >::operator== (
const bitset< _Nb > & __rhs) const [inline], [constexpr], [noexcept]
These comparisons for equality/inequality are, well, bitwise.

operator>>()

template<size_t _Nb>
bitset< _Nb > std::bitset< _Nb >::operator>> (
size_t __position) const [inline], [constexpr], [noexcept]
Self-explanatory.

Generated by Doxygen
1716

operator>>=()

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::operator>>= (
size_t __position) [inline], [constexpr], [noexcept]
Operations on bitsets.

Parameters

__position The number of places to shift.

These should be self-explanatory.

operator[]() [1/2]

template<size_t _Nb>
reference std::bitset< _Nb >::operator[ ] (
size_t __position) [inline], [constexpr]
Array-indexing support.

Parameters
__position Index into the bitset.

Returns

A bool for a const bitset. For non-const bitsets, an instance of the reference proxy class.

Note

These operators do no range checking and throw no exceptions, as required by DR 11 to the standard.

_GLIBCXX_RESOLVE_LIB_DEFECTS Note that this implementation already resolves DR 11 (items 1 and 2), but does
not do the range-checking required by that DR's resolution. -pme The DR has since been changed: range-checking is
a precondition (users' responsibility), and these functions must not throw. -pme

operator[]() [2/2]

template<size_t _Nb>
bool std::bitset< _Nb >::operator[ ] (
size_t __position) const [inline], [constexpr]
Array-indexing support.

Parameters
__position Index into the bitset.

Returns

A bool for a const bitset. For non-const bitsets, an instance of the reference proxy class.

Note

These operators do no range checking and throw no exceptions, as required by DR 11 to the standard.

_GLIBCXX_RESOLVE_LIB_DEFECTS Note that this implementation already resolves DR 11 (items 1 and 2), but does
not do the range-checking required by that DR's resolution. -pme The DR has since been changed: range-checking is
a precondition (users' responsibility), and these functions must not throw. -pme

Generated by Doxygen
5.279 std::bitset< _Nb > Class Template Reference 1717

operator∧ =()

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::operator∧ = (
const bitset< _Nb > & __rhs) [inline], [constexpr], [noexcept]
Operations on bitsets.

Parameters
__rhs A same-sized bitset.

These should be self-explanatory.

operator"|=()

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::operator|= (
const bitset< _Nb > & __rhs) [inline], [constexpr], [noexcept]
Operations on bitsets.

Parameters
__rhs A same-sized bitset.

These should be self-explanatory.

operator∼()

template<size_t _Nb>
bitset< _Nb > std::bitset< _Nb >::operator∼ () const [inline], [constexpr], [noexcept]
See the no-argument flip().

reset() [1/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::reset () [inline], [constexpr], [noexcept]
Sets every bit to false.

reset() [2/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::reset (
size_t __position) [inline], [constexpr]
Sets a given bit to false.

Parameters

__position The index of the bit.

Exceptions

std::out_of_range If pos is bigger the size of the set.

Same as writing set(pos,false).

Generated by Doxygen
1718

set() [1/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::set () [inline], [constexpr], [noexcept]
Sets every bit to true.

set() [2/2]

template<size_t _Nb>
bitset< _Nb > & std::bitset< _Nb >::set (
size_t __position,
bool __val = true) [inline], [constexpr]
Sets a given bit to a particular value.

Parameters

__position The index of the bit.


__val Either true or false, defaults to true.

Exceptions

std::out_of_range If pos is bigger the size of the set.

size()

template<size_t _Nb>
size_t std::bitset< _Nb >::size () const [inline], [constexpr], [noexcept]
Returns the total number of bits.

test()

template<size_t _Nb>
bool std::bitset< _Nb >::test (
size_t __position) const [inline], [constexpr]
Tests the value of a bit.

Parameters

__position The index of a bit.

Returns

The value at pos.

Exceptions

std::out_of_range If pos is bigger the size of the set.

Generated by Doxygen
5.280 std::tr2::bool_set Class Reference 1719

to_string()

template<size_t _Nb>
template<class _CharT , class _Traits , class _Alloc >
std::basic_string< _CharT, _Traits, _Alloc > std::bitset< _Nb >::to_string () const [inline],
[constexpr]
Returns a character interpretation of the bitset.

Returns

The string equivalent of the bits.

Note the ordering of the bits: decreasing character positions correspond to increasing bit positions (see the main class
notes for an example).

to_ulong()

template<size_t _Nb>
unsigned long std::bitset< _Nb >::to_ulong () const [inline], [constexpr]
Returns a numerical interpretation of the bitset.

Returns

The integral equivalent of the bits.

Exceptions

std::overflow_error If there are too many bits to be represented in an unsigned long.

The documentation for this class was generated from the following file:

• bitset

5.280 std::tr2::bool_set Class Reference


#include <bool_set>

Public Member Functions

• constexpr bool_set ()
• constexpr bool_set (bool __t)
• bool contains (bool_set __b) const
• bool equals (bool_set __b) const
• bool is_emptyset () const
• bool is_indeterminate () const
• bool is_singleton () const
• operator bool () const

Static Public Member Functions

• static bool_set emptyset ()


• static bool_set indeterminate ()

Generated by Doxygen
1720

Friends

• bool_set operator! (bool_set __b)


• bool_set operator& (bool_set __s, bool_set __t)
• template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &__out, bool_set __b)
• bool_set operator== (bool_set __s, bool_set __t)
• template<typename CharT , typename Traits >
std::basic_istream< CharT, Traits > & operator>> (std::basic_istream< CharT, Traits > &__in, bool_set &__b)
• bool_set operator∧ (bool_set __s, bool_set __t)
• bool_set operator| (bool_set __s, bool_set __t)

5.280.1 Detailed Description

bool_set
See N2136, Bool_set: multi-valued logic by Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion.
The implicit conversion to bool is slippery! I may use the new explicit conversion. This has been specialized in the lan-
guage so that in contexts requiring a bool the conversion happens implicitly. Thus most objections should be eliminated.

5.280.2 Constructor & Destructor Documentation

bool_set() [1/2]

std::tr2::bool_set::bool_set () [inline], [constexpr]


Default constructor.

bool_set() [2/2]

std::tr2::bool_set::bool_set (
bool __t) [inline], [constexpr]
Constructor from bool.

5.280.3 Member Function Documentation

equals()

bool std::tr2::bool_set::equals (
bool_set __b) const [inline]
Return true if states are equal.

is_emptyset()

bool std::tr2::bool_set::is_emptyset () const [inline]


Return true if this is empty.

is_indeterminate()

bool std::tr2::bool_set::is_indeterminate () const [inline]


Return true if this is indeterminate.

is_singleton()

bool std::tr2::bool_set::is_singleton () const [inline]


Return true if this is false or true (normal boolean).

Generated by Doxygen
5.281 __gnu_pbds::detail::branch_policy< Node_CItr, Node_Itr, _Alloc > Struct Template Reference 1721

operator bool()

std::tr2::bool_set::operator bool () const [inline]


Conversion to bool.
The documentation for this class was generated from the following files:

• bool_set
• bool_set.tcc

5.281 __gnu_pbds::detail::branch_policy< Node_CItr, Node_Itr, _Alloc > Struct Template


Reference
#include <branch_policy.hpp>
Inheritance diagram for __gnu_pbds::detail::branch_policy< Node_CItr, Node_Itr, _Alloc >:

__gnu_pbds::trie_order
_statistics_node_update
< Node_CItr, Node_Itr,
__gnu_pbds::detail _ATraits, _Alloc >
::trie_policy_base<
Node_CItr, Node_Itr,
_ATraits, _Alloc > __gnu_pbds::trie_prefix
__gnu_pbds::detail
_search_node_update< Node
::branch_policy< Node
_CItr, Node_Itr, _ATraits,
_CItr, Node_Itr, _Alloc >
__gnu_pbds::tree_order _Alloc >
_statistics_node_update
< Node_CItr, Node_Itr, Cmp
_Fn, _Alloc >

Protected Types

• typedef rebind_v::const_pointer const_pointer


• typedef rebind_v::const_reference const_reference
• typedef Node_Itr::value_type it_type
• typedef rebind_k::const_reference key_const_reference
• typedef value_type::first_type key_type
• typedef remove_const< key_type >::type rckey_type
• typedef remove_const< value_type >::type rcvalue_type
• typedef rebind_traits< _Alloc, rckey_type > rebind_k
• typedef rebind_traits< _Alloc, rcvalue_type > rebind_v
• typedef rebind_v::reference reference
• typedef std::iterator_traits< it_type >::value_type value_type

Protected Member Functions

• virtual it_type end ()=0


• it_type end_iterator () const

Static Protected Member Functions

• static key_const_reference extract_key (const_reference r_val)

Generated by Doxygen
1722

5.281.1 Detailed Description

template<typename Node_CItr, typename Node_Itr, typename _Alloc>


struct __gnu_pbds::detail::branch_policy< Node_CItr, Node_Itr, _Alloc >

Primary template, base class for branch structure policies.


The documentation for this struct was generated from the following file:

• branch_policy.hpp

5.282 __gnu_pbds::detail::branch_policy< Node_CItr, Node_CItr, _Alloc > Struct Template


Reference
#include <branch_policy.hpp>

Protected Types

• typedef rebind_v::const_pointer const_pointer


• typedef rebind_v::const_reference const_reference
• typedef Node_CItr::value_type it_type
• typedef rebind_v::const_reference key_const_reference
• typedef value_type key_type
• typedef remove_const< value_type >::type rcvalue_type
• typedef rebind_traits< _Alloc, rcvalue_type > rebind_v
• typedef rebind_v::reference reference
• typedef std::iterator_traits< it_type >::value_type value_type

Protected Member Functions

• virtual it_type end () const =0


• it_type end_iterator () const

Static Protected Member Functions

• static key_const_reference extract_key (const_reference r_val)

5.282.1 Detailed Description

template<typename Node_CItr, typename _Alloc>


struct __gnu_pbds::detail::branch_policy< Node_CItr, Node_CItr, _Alloc >

Specialization for const iterators.


The documentation for this struct was generated from the following file:

• branch_policy.hpp

5.283 std::cauchy_distribution< _RealType > Class Template Reference


#include <random>

Classes

• struct param_type

Public Types

• typedef _RealType result_type

Generated by Doxygen
5.283 std::cauchy_distribution< _RealType > Class Template Reference 1723

Public Member Functions

• cauchy_distribution (_RealType __a, _RealType __b=1.0)


• cauchy_distribution (const param_type &__p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• _RealType a () const
• _RealType b () const
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Friends

• bool operator== (const cauchy_distribution &__d1, const cauchy_distribution &__d2)

5.283.1 Detailed Description

template<typename _RealType = double>


class std::cauchy_distribution< _RealType >

A cauchy_distribution random number distribution.


2 −1
The formula for the normal probability mass function is p(x|a, b) = (πb(1 + ( x−a
b ) ))

Since

C++11

5.283.2 Member Typedef Documentation

result_type

template<typename _RealType = double>


_RealType std::cauchy_distribution< _RealType >::result_type
The type of the range of the distribution.

5.283.3 Member Function Documentation

max()

template<typename _RealType = double>


result_type std::cauchy_distribution< _RealType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

Generated by Doxygen
1724

min()

template<typename _RealType = double>


result_type std::cauchy_distribution< _RealType >::min () const [inline]
Returns the greatest lower bound value of the distribution.
References std::numeric_limits< _Tp >::lowest().

operator()()

template<typename _RealType = double>


template<typename _UniformRandomNumberGenerator >
result_type std::cauchy_distribution< _RealType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References std::cauchy_distribution< _RealType >::operator()().
Referenced by std::cauchy_distribution< _RealType >::operator()().

param() [1/2]

template<typename _RealType = double>


param_type std::cauchy_distribution< _RealType >::param () const [inline]
Returns the parameter set of the distribution.
Referenced by std::operator>>().

param() [2/2]

template<typename _RealType = double>


void std::cauchy_distribution< _RealType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

template<typename _RealType = double>


void std::cauchy_distribution< _RealType >::reset () [inline]
Resets the distribution state.

5.283.4 Friends And Related Symbol Documentation

operator==

template<typename _RealType = double>


bool operator== (
const cauchy_distribution< _RealType > & __d1,
const cauchy_distribution< _RealType > & __d2) [friend]
Return true if two Cauchy distributions have the same parameters.
The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

Generated by Doxygen
5.284 __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >
Class Template Reference 1725

5.284 __gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type > Class Template Reference
#include <hash_policy.hpp>

Public Types

• enum { external_load_access }
• typedef Size_Type size_type

Public Member Functions

• cc_hash_max_collision_check_resize_trigger (float load=0.5)


• float get_load () const
• void set_load (float load)
• void swap (cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type > &other)

Protected Member Functions

• bool is_grow_needed (size_type size, size_type num_entries) const


• bool is_resize_needed () const
• void notify_cleared ()
• void notify_erase_search_collision ()
• void notify_erase_search_end ()
• void notify_erase_search_start ()
• void notify_erased (size_type num_entries)
• void notify_externally_resized (size_type new_size)
• void notify_find_search_collision ()
• void notify_find_search_end ()
• void notify_find_search_start ()
• void notify_insert_search_collision ()
• void notify_insert_search_end ()
• void notify_insert_search_start ()
• void notify_inserted (size_type num_entries)
• void notify_resized (size_type new_size)

5.284.1 Detailed Description

template<bool External_Load_Access = false, typename Size_Type = std::size_t>


class __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >

A resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor.

5.284.2 Member Enumeration Documentation

anonymous enum

template<bool External_Load_Access = false, typename Size_Type = std::size_t>


anonymous enum

Enumerator

external_load_access Specifies whether the load factor can be accessed externally. The two options have
different trade-offs in terms of flexibility, genericity, and encapsulation.

Generated by Doxygen
1726

5.284.3 Constructor & Destructor Documentation

cc_hash_max_collision_check_resize_trigger()

template<bool External_Load_Access, typename Size_Type >


__gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >::cc_←-
hash_max_collision_check_resize_trigger (
float load = 0.5)
Default constructor, or constructor taking load, a __load factor which it will attempt to maintain.

5.284.4 Member Function Documentation

get_load()

template<bool External_Load_Access, typename Size_Type >


float __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::get_load () const [inline]
Returns the current load.

is_grow_needed()

template<bool External_Load_Access, typename Size_Type >


bool __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::is_grow_needed (
size_type size,
size_type num_entries) const [inline], [protected]
Queries whether a grow is needed. This method is called only if this object indicated is needed.

is_resize_needed()

template<bool External_Load_Access, typename Size_Type >


bool __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::is_resize_needed () const [inline], [protected]
Queries whether a resize is needed.

notify_cleared()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_cleared () [protected]
Notifies the table was cleared.

notify_erase_search_collision()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_erase_search_collision () [inline], [protected]
Notifies a search encountered a collision.

notify_erase_search_end()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_erase_search_end () [inline], [protected]
Notifies a search ended.

Generated by Doxygen
5.284 __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >
Class Template Reference 1727

notify_erase_search_start()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_erase_search_start () [inline], [protected]
Notifies an erase search started.

notify_erased()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_erased (
size_type num_entries) [inline], [protected]
Notifies an element was erased.

notify_externally_resized()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_externally_resized (
size_type new_size) [protected]
Notifies the table was resized externally.

notify_find_search_collision()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_find_search_collision () [inline], [protected]
Notifies a search encountered a collision.

notify_find_search_end()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_find_search_end () [inline], [protected]
Notifies a search ended.

notify_find_search_start()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_find_search_start () [inline], [protected]
Notifies a find search started.

notify_insert_search_collision()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_insert_search_collision () [inline], [protected]
Notifies a search encountered a collision.

notify_insert_search_end()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_insert_search_end () [inline], [protected]

Generated by Doxygen
1728

Notifies a search ended.

notify_insert_search_start()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_insert_search_start () [inline], [protected]
Notifies an insert search started.

notify_inserted()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_inserted (
size_type num_entries) [inline], [protected]
Notifies an element was inserted.

notify_resized()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::notify_resized (
size_type new_size) [protected]
Notifies the table was resized as a result of this object's signifying that a resize is needed.

set_load()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >←-
::set_load (
float load)
Sets the load; does not resize the container.
The documentation for this class was generated from the following file:

• hash_policy.hpp

5.285 __gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn,


Resize_Policy, Store_Hash, _Alloc > Class Template Reference
#include <assoc_container.hpp>
Inheritance diagram for __gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy,
Store_Hash, _Alloc >:

__gnu_pbds::basic_hash __gnu_pbds::cc_hash
_table< Key, Mapped, Hash _table< Key, Mapped,
_Fn, Eq_Fn, Resize_Policy, Hash_Fn, Eq_Fn, Comb
Store_Hash, Tag, Policy_Tl, _Hash_Fn, Resize_Policy,
_Alloc > Store_Hash, _Alloc >

Generated by Doxygen
5.285 __gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy,
Store_Hash, _Alloc > Class Template Reference 1729

Public Types

• typedef Comb_Hash_Fn comb_hash_fn


• typedef cc_hash_tag container_category
• typedef Eq_Fn eq_fn
• typedef Hash_Fn hash_fn
• typedef Resize_Policy resize_policy

Public Member Functions

• cc_hash_table ()
• cc_hash_table (const cc_hash_table &other)
• cc_hash_table (const hash_fn &h)
• cc_hash_table (const hash_fn &h, const eq_fn &e)
• cc_hash_table (const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch)
• cc_hash_table (const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch, const resize_policy &rp)
• template<typename It >
cc_hash_table (It first, It last)
• template<typename It >
cc_hash_table (It first, It last, const hash_fn &h)
• template<typename It >
cc_hash_table (It first, It last, const hash_fn &h, const eq_fn &e)
• template<typename It >
cc_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch)
• template<typename It >
cc_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch, const resize_policy
&rp)
• cc_hash_table & operator= (const cc_hash_table &other)
• void swap (cc_hash_table &other)

5.285.1 Detailed Description

template<typename Key, typename Mapped, typename Hash_Fn = typename detail::default_hash_fn<Key>←-


::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn = detail←-
::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_←-
Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
class __gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_←-
Hash, _Alloc >

A collision-chaining hash-based associative container.

Template Parameters

Key Key type.


Mapped Map type.
Hash_Fn Hashing functor.
Eq_Fn Equal functor.
Comb_Hash_Fn Combining hash functor. If Hash_Fn is not null_type, then this is the ranged-hash functor;
otherwise, this is the range-hashing functor. XXX(See Design::Hash-Based Containers::Hash
Policies.)
Resize_Policy Resizes hash.
Store_Hash Indicates whether the hash value will be stored along with each key. If Hash_Fn is null_type,
then the container will not compile if this value is true

Generated by Doxygen
1730

_Alloc Allocator type.

Base tag choices are: cc_hash_tag.


Base is basic_hash_table.

5.285.2 Constructor & Destructor Documentation

cc_hash_table() [1/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table () [inline]
Default constructor.

cc_hash_table() [2/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
const hash_fn & h) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the Hash_Fn object of the container object.

cc_hash_table() [3/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
const hash_fn & h,
const eq_fn & e) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, and
r_eq_fn will be copied by the eq_fn object of the container object.

cc_hash_table() [4/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
const hash_fn & h,

Generated by Doxygen
5.285 __gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy,
Store_Hash, _Alloc > Class Template Reference 1731

const eq_fn & e,


const comb_hash_fn & ch) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn
will be copied by the eq_fn object of the container object, and r_comb_hash_fn will be copied by the comb_hash_fn
object of the container object.

cc_hash_table() [5/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
const hash_fn & h,
const eq_fn & e,
const comb_hash_fn & ch,
const resize_policy & rp) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn
will be copied by the eq_fn object of the container object, r_comb_hash_fn will be copied by the comb_hash_fn object
of the container object, and r_resize_policy will be copied by the resize_policy object of the container object.

cc_hash_table() [6/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
template<typename It >
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
It first,
It last) [inline]
Constructor taking __iterators to a range of value_types. The value_types between first_it and last_it will be inserted
into the container object.

cc_hash_table() [7/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
template<typename It >
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
It first,
It last,
const hash_fn & h) [inline]
Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it and
last_it will be inserted into the container object.

Generated by Doxygen
1732

cc_hash_table() [8/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
template<typename It >
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
It first,
It last,
const hash_fn & h,
const eq_fn & e) [inline]
Constructor taking __iterators to a range of value_types and some policy objects The value_types between first_it and
last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container object,
and r_eq_fn will be copied by the eq_fn object of the container object.

cc_hash_table() [9/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
template<typename It >
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
It first,
It last,
const hash_fn & h,
const eq_fn & e,
const comb_hash_fn & ch) [inline]
Constructor taking __iterators to a range of value_types and some policy objects The value_types between first_←-
it and last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container
object, r_eq_fn will be copied by the eq_fn object of the container object, and r_comb_hash_fn will be copied by the
comb_hash_fn object of the container object.

cc_hash_table() [10/10]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Hash_Fn =
detail::default_comb_hash_fn::type, typename Resize_Policy = typename detail::default_resize_←-
policy<Comb_Hash_Fn>::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std←-
::allocator<char>>
template<typename It >
__gnu_pbds::cc_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Hash_Fn, Resize_Policy, Store_Hash,
_Alloc >::cc_hash_table (
It first,
It last,
const hash_fn & h,
const eq_fn & e,
const comb_hash_fn & ch,
const resize_policy & rp) [inline]
Constructor taking __iterators to a range of value_types and some policy objects The value_types between first_it and

Generated by Doxygen
5.286 __gnu_pbds::cc_hash_tag Struct Reference 1733

last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container object,
r_eq_fn will be copied by the eq_fn object of the container object, r_comb_hash_fn will be copied by the comb_hash_fn
object of the container object, and r_resize_policy will be copied by the resize_policy object of the container object.
The documentation for this class was generated from the following file:

• assoc_container.hpp

5.286 __gnu_pbds::cc_hash_tag Struct Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::cc_hash_tag:

__gnu_pbds::container_tag

__gnu_pbds::associative_tag

__gnu_pbds::basic_hash_tag

__gnu_pbds::cc_hash_tag

5.286.1 Detailed Description

Collision-chaining hash.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.287 __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc,


Store_Hash, Comb_Hash_Fn, Resize_Policy > Class Template Reference
#include <cc_ht_map_.hpp>
Inheritance diagram for __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb←-

Generated by Doxygen
1734

_Hash_Fn, Resize_Policy >:

__gnu_pbds::detail
::hash_eq_fn< Key, Eq
_Fn, _Alloc, Store_Hash >

__gnu_pbds::detail
__gnu_pbds::detail
::cc_ht_map< Key, Mapped,
::ranged_hash_fn< Key,
Hash_Fn, Eq_Fn, _Alloc,
Hash_Fn, _Alloc, Comb
Store_Hash, Comb_Hash_Fn,
_Hash_Fn, Store_Hash >
Resize_Policy >

__gnu_pbds::detail __gnu_pbds::detail
::maybe_null_type< Key, ::types_traits< Key,
Mapped, _Alloc, Store Mapped, _Alloc, Store
_Hash > _Hash >

Public Types

• enum { store_hash }
• typedef _Alloc allocator_type
• typedef Comb_Hash_Fn comb_hash_fn
• typedef const_iterator_ const_iterator
• typedef traits_base::const_pointer const_pointer
• typedef traits_base::const_reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef Eq_Fn eq_fn
• typedef Hash_Fn hash_fn
• typedef iterator_ iterator
• typedef traits_base::key_const_pointer key_const_pointer
• typedef traits_base::key_const_reference key_const_reference
• typedef traits_base::key_pointer key_pointer
• typedef traits_base::key_reference key_reference
• typedef traits_base::key_type key_type
• typedef traits_base::mapped_const_pointer mapped_const_pointer
• typedef traits_base::mapped_const_reference mapped_const_reference
• typedef traits_base::mapped_pointer mapped_pointer
• typedef traits_base::mapped_reference mapped_reference
• typedef traits_base::mapped_type mapped_type
• typedef __nothrowcopy::indicator no_throw_indicator
• typedef point_const_iterator_ point_const_iterator
• typedef point_iterator_ point_iterator
• typedef traits_base::pointer pointer
• typedef traits_base::reference reference
• typedef Resize_Policy resize_policy
• typedef _Alloc::size_type size_type
• typedef integral_constant< int, Store_Hash > store_extra
• typedef stored_data< value_type, size_type, Store_Hash > stored_data_type
• typedef traits_base::value_type value_type

Generated by Doxygen
5.287 __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn,
Resize_Policy > Class Template Reference 1735

Public Member Functions

• cc_ht_map (const cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize←-
_Policy > &)
• cc_ht_map (const Hash_Fn &)
• cc_ht_map (const Hash_Fn &, const Eq_Fn &)
• cc_ht_map (const Hash_Fn &, const Eq_Fn &, const Comb_Hash_Fn &)
• cc_ht_map (const Hash_Fn &, const Eq_Fn &, const Comb_Hash_Fn &, const Resize_Policy &)
• iterator begin ()
• const_iterator begin () const
• void clear ()
• template<typename It >
void copy_from_range (It, It)
• bool empty () const
• iterator end ()
• const_iterator end () const
• bool erase (key_const_reference)
• template<typename Pred >
size_type erase_if (Pred)
• point_iterator find (key_const_reference)
• point_const_iterator find (key_const_reference) const
• point_iterator find_end ()
• point_const_iterator find_end () const
• Comb_Hash_Fn & get_comb_hash_fn ()
• const Comb_Hash_Fn & get_comb_hash_fn () const
• Eq_Fn & get_eq_fn ()
• const Eq_Fn & get_eq_fn () const
• Hash_Fn & get_hash_fn ()
• const Hash_Fn & get_hash_fn () const
• Resize_Policy & get_resize_policy ()
• const Resize_Policy & get_resize_policy () const
• void initialize ()
• std::pair< point_iterator, bool > insert (const_reference r_val)
• size_type max_size () const
• mapped_reference operator[ ] (key_const_reference r_key)
• size_type size () const
• void swap (cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy >
&)

Public Attributes

• no_throw_indicator m_no_throw_copies_indicator
• store_extra m_store_extra_indicator

Friends

• class const_iterator_
• class iterator_

Generated by Doxygen
1736

5.287.1 Detailed Description

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn, typename _Alloc, bool
Store_Hash, typename Comb_Hash_Fn, typename Resize_Policy>
class __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn,
Resize_Policy >

A collision-chaining hash-based container.

Template Parameters

Key Key type.


Mapped Map type.
Hash_Fn Hashing functor. Default is __gnu_cxx::hash.
Eq_Fn Equal functor. Default std::equal_to<Key>
_Alloc Allocator type.
Store_Hash If key type stores extra metadata. Defaults to false.
Comb_Hash_Fn Combining hash functor. If Hash_Fn is not null_type, then this is the ranged-hash functor;
otherwise, this is the range-hashing functor. XXX(See Design::Hash-Based Containers::Hash
Policies.) Default direct_mask_range_hashing.
Resize_Policy Resizes hash. Defaults to hash_standard_resize_policy, using hash_exponential_size_policy
and hash_load_check_resize_trigger.

Bases are: detail::hash_eq_fn, Resize_Policy, detail::ranged_hash_fn, detail::types_traits. (Optional: detail::debug_←-


map_base.)

5.287.2 Member Enumeration Documentation

anonymous enum

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
anonymous enum
Value stores hash, true or false.

5.287.3 Member Function Documentation

empty()

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
bool __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_←-
Fn, Resize_Policy >::empty () const [inline], [nodiscard]
True if size() == 0.

get_comb_hash_fn() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
Comb_Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Hash_Fn, Resize_Policy >::get_comb_hash_fn ()
Return current comb_hash_fn.

Generated by Doxygen
5.287 __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn,
Resize_Policy > Class Template Reference 1737

get_comb_hash_fn() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
const Comb_Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_←-
Hash, Comb_Hash_Fn, Resize_Policy >::get_comb_hash_fn () const
Return current const comb_hash_fn.

get_eq_fn() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
Eq_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_←-
Hash_Fn, Resize_Policy >::get_eq_fn ()
Return current eq_fn.

get_eq_fn() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
const Eq_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Hash_Fn, Resize_Policy >::get_eq_fn () const
Return current const eq_fn.

get_hash_fn() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_←-
Hash_Fn, Resize_Policy >::get_hash_fn ()
Return current hash_fn.

get_hash_fn() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
const Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Hash_Fn, Resize_Policy >::get_hash_fn () const
Return current const hash_fn.

get_resize_policy() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
Resize_Policy & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Hash_Fn, Resize_Policy >::get_resize_policy ()
Return current resize_policy.

get_resize_policy() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Hash_Fn , typename Resize_Policy >
const Resize_Policy & __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_←-
Hash, Comb_Hash_Fn, Resize_Policy >::get_resize_policy () const
Return current const resize_policy.
The documentation for this class was generated from the following file:

Generated by Doxygen
1738

• cc_ht_map_.hpp

5.288 __gnu_cxx::char_traits< _CharT > Struct Template Reference


#include <char_traits.h>
Inheritance diagram for __gnu_cxx::char_traits< _CharT >:

__gnu_cxx::char_traits
< _CharT >

std::char_traits<
_CharT >

__gnu_cxx::encoding
_char_traits< _CharT >

Public Types

• typedef _CharT char_type


• using comparison_category
• typedef _Char_types< _CharT >::int_type int_type
• typedef _Char_types< _CharT >::off_type off_type
• typedef _Char_types< _CharT >::pos_type pos_type
• typedef _Char_types< _CharT >::state_type state_type

Static Public Member Functions

• static constexpr void assign (char_type &__c1, const char_type &__c2)


• static constexpr char_type ∗ assign (char_type ∗__s, std::size_t __n, char_type __a)
• static constexpr int compare (const char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr char_type ∗ copy (char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr int_type eof ()
• static constexpr bool eq (const char_type &__c1, const char_type &__c2)
• static constexpr bool eq_int_type (const int_type &__c1, const int_type &__c2)
• static constexpr const char_type ∗ find (const char_type ∗__s, std::size_t __n, const char_type &__a)
• static constexpr std::size_t length (const char_type ∗__s)
• static constexpr bool lt (const char_type &__c1, const char_type &__c2)
• static constexpr char_type ∗ move (char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr int_type not_eof (const int_type &__c)
• static constexpr char_type to_char_type (const int_type &__c)
• static constexpr int_type to_int_type (const char_type &__c)

Generated by Doxygen
5.289 std::char_traits< _CharT > Struct Template Reference 1739

5.288.1 Detailed Description

template<typename _CharT>
struct __gnu_cxx::char_traits< _CharT >

Base class used to implement std::char_traits.


Note

For any given actual character type, this definition is probably wrong. (Most of the member functions are likely to be
right, but the int_type and state_type typedefs, and the eof() member function, are likely to be wrong.) The reason
this class exists is so users can specialize it. Classes in namespace std may not be specialized for fundamental
types, but classes in namespace __gnu_cxx may be.

See https://gcc.gnu.org/onlinedocs/libstdc++/manual/strings.html#strings.←-
string.character_types for advice on how to make use of this class for unusual character types. Also,
check out include/ext/pod_char_traits.h.
The documentation for this struct was generated from the following file:

• char_traits.h

5.289 std::char_traits< _CharT > Struct Template Reference


#include <char_traits.h>
Inheritance diagram for std::char_traits< _CharT >:

__gnu_cxx::char_traits
< _CharT >

std::char_traits<
_CharT >

__gnu_cxx::encoding
_char_traits< _CharT >

Public Types

• typedef _CharT char_type


• using comparison_category
• typedef _Char_types< _CharT >::int_type int_type
• typedef _Char_types< _CharT >::off_type off_type
• typedef _Char_types< _CharT >::pos_type pos_type
• typedef _Char_types< _CharT >::state_type state_type

Generated by Doxygen
1740

Static Public Member Functions

• static constexpr void assign (char_type &__c1, const char_type &__c2)


• static constexpr char_type ∗ assign (char_type ∗__s, std::size_t __n, char_type __a)
• static constexpr int compare (const char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr char_type ∗ copy (char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr int_type eof ()
• static constexpr bool eq (const char_type &__c1, const char_type &__c2)
• static constexpr bool eq_int_type (const int_type &__c1, const int_type &__c2)
• static constexpr const char_type ∗ find (const char_type ∗__s, std::size_t __n, const char_type &__a)
• static constexpr std::size_t length (const char_type ∗__s)
• static constexpr bool lt (const char_type &__c1, const char_type &__c2)
• static constexpr char_type ∗ move (char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr int_type not_eof (const int_type &__c)
• static constexpr char_type to_char_type (const int_type &__c)
• static constexpr int_type to_int_type (const char_type &__c)

5.289.1 Detailed Description

template<class _CharT>
struct std::char_traits< _CharT >

Basis for explicit traits specializations.

Note

For any given actual character type, this definition is probably wrong. Since this is just a thin wrapper around __←-
gnu_cxx::char_traits, it is possible to achieve a more appropriate definition by specializing __gnu_cxx::char_traits.

See https://gcc.gnu.org/onlinedocs/libstdc++/manual/strings.html#strings.←-
string.character_types for advice on how to make use of this class for unusual character types. Also,
check out include/ext/pod_char_traits.h.
The documentation for this struct was generated from the following files:

• char_traits.h
• stl_algobase.h
• stringfwd.h

5.290 std::char_traits< __gnu_cxx::character< _Value, _Int, _St > > Struct Template
Reference
#include <pod_char_traits.h>

Public Types

• typedef __gnu_cxx::character< _Value, _Int, _St > char_type


• typedef char_type::int_type int_type
• typedef streamoff off_type
• typedef fpos< state_type > pos_type
• typedef char_type::state_type state_type

Generated by Doxygen
5.291 std::char_traits< char > Struct Reference 1741

Static Public Member Functions

• static void assign (char_type &__c1, const char_type &__c2)


• static char_type ∗ assign (char_type ∗__s, size_t __n, char_type __a)
• static int compare (const char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static char_type ∗ copy (char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static int_type eof ()
• static bool eq (const char_type &__c1, const char_type &__c2)
• static bool eq_int_type (const int_type &__c1, const int_type &__c2)
• static const char_type ∗ find (const char_type ∗__s, size_t __n, const char_type &__a)
• static size_t length (const char_type ∗__s)
• static bool lt (const char_type &__c1, const char_type &__c2)
• static char_type ∗ move (char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static int_type not_eof (const int_type &__c)
• static char_type to_char_type (const int_type &__i)
• static int_type to_int_type (const char_type &__c)

5.290.1 Detailed Description

template<typename _Value, typename _Int, typename _St>


struct std::char_traits< __gnu_cxx::character< _Value, _Int, _St > >

char_traits<__gnu_cxx::character> specialization.
The documentation for this struct was generated from the following file:
• pod_char_traits.h

5.291 std::char_traits< char > Struct Reference


#include <char_traits.h>

Public Types

• typedef char char_type


• using comparison_category
• typedef int int_type
• typedef streamoff off_type
• typedef streampos pos_type
• typedef mbstate_t state_type

Static Public Member Functions

• static constexpr void assign (char_type &__c1, const char_type &__c2) noexcept
• static constexpr char_type ∗ assign (char_type ∗__s, size_t __n, char_type __a)
• static constexpr int compare (const char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static constexpr char_type ∗ copy (char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static constexpr int_type eof () noexcept
• static constexpr bool eq (const char_type &__c1, const char_type &__c2) noexcept
• static constexpr bool eq_int_type (const int_type &__c1, const int_type &__c2) noexcept
• static constexpr const char_type ∗ find (const char_type ∗__s, size_t __n, const char_type &__a)
• static constexpr size_t length (const char_type ∗__s)
• static constexpr bool lt (const char_type &__c1, const char_type &__c2) noexcept
• static constexpr char_type ∗ move (char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static constexpr int_type not_eof (const int_type &__c) noexcept
• static constexpr char_type to_char_type (const int_type &__c) noexcept
• static constexpr int_type to_int_type (const char_type &__c) noexcept

Generated by Doxygen
1742

5.291.1 Detailed Description

21.1.3.1 char_traits specializations


The documentation for this struct was generated from the following file:

• char_traits.h

5.292 std::char_traits< wchar_t > Struct Reference


#include <char_traits.h>

Public Types

• typedef wchar_t char_type


• using comparison_category
• typedef wint_t int_type
• typedef streamoff off_type
• typedef wstreampos pos_type
• typedef mbstate_t state_type

Static Public Member Functions

• static constexpr void assign (char_type &__c1, const char_type &__c2) noexcept
• static constexpr char_type ∗ assign (char_type ∗__s, size_t __n, char_type __a)
• static constexpr int compare (const char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static constexpr char_type ∗ copy (char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static constexpr int_type eof () noexcept
• static constexpr bool eq (const char_type &__c1, const char_type &__c2) noexcept
• static constexpr bool eq_int_type (const int_type &__c1, const int_type &__c2) noexcept
• static constexpr const char_type ∗ find (const char_type ∗__s, size_t __n, const char_type &__a)
• static constexpr size_t length (const char_type ∗__s)
• static constexpr bool lt (const char_type &__c1, const char_type &__c2) noexcept
• static constexpr char_type ∗ move (char_type ∗__s1, const char_type ∗__s2, size_t __n)
• static constexpr int_type not_eof (const int_type &__c) noexcept
• static constexpr char_type to_char_type (const int_type &__c) noexcept
• static constexpr int_type to_int_type (const char_type &__c) noexcept

5.292.1 Detailed Description

21.1.3.2 char_traits specializations


The documentation for this struct was generated from the following file:

• char_traits.h

5.293 __gnu_cxx::character< _Value, _Int, _St > Struct Template Reference


#include <pod_char_traits.h>

Public Types

• typedef character< _Value, _Int, _St > char_type


• typedef _Int int_type
• typedef _St state_type
• typedef _Value value_type

Generated by Doxygen
5.294 std::chi_squared_distribution< _RealType > Class Template Reference 1743

Static Public Member Functions

• template<typename V2 >
static char_type from (const V2 &v)
• template<typename V2 >
static V2 to (const char_type &c)

Public Attributes

• value_type value

5.293.1 Detailed Description

template<typename _Value, typename _Int, typename _St = std::mbstate_t>


struct __gnu_cxx::character< _Value, _Int, _St >

A POD class that serves as a character abstraction class.


The documentation for this struct was generated from the following file:
• pod_char_traits.h

5.294 std::chi_squared_distribution< _RealType > Class Template Reference


#include <random>

Classes

• struct param_type

Public Types

• typedef _RealType result_type

Public Member Functions

• chi_squared_distribution (_RealType __n)


• chi_squared_distribution (const param_type &__p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• result_type max () const
• result_type min () const
• _RealType n () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Generated by Doxygen
1744

Friends

• template<typename _RealType1 , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::chi_squared_distribution< _RealType1 > &__x)
• bool operator== (const chi_squared_distribution &__d1, const chi_squared_distribution &__d2)
• template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::chi_squared_distribution< _RealType1 > &__x)

5.294.1 Detailed Description

template<typename _RealType = double>


class std::chi_squared_distribution< _RealType >

A chi_squared_distribution random number distribution.


x(n/2)−1 e−x/2
The formula for the normal probability mass function is p(x|n) = Γ(n/2)2n/2

Since

C++11

5.294.2 Member Typedef Documentation

result_type

template<typename _RealType = double>


_RealType std::chi_squared_distribution< _RealType >::result_type
The type of the range of the distribution.

5.294.3 Member Function Documentation

max()

template<typename _RealType = double>


result_type std::chi_squared_distribution< _RealType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

min()

template<typename _RealType = double>


result_type std::chi_squared_distribution< _RealType >::min () const [inline]
Returns the greatest lower bound value of the distribution.

operator()()

template<typename _RealType = double>


template<typename _UniformRandomNumberGenerator >
result_type std::chi_squared_distribution< _RealType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.

param() [1/2]

template<typename _RealType = double>


param_type std::chi_squared_distribution< _RealType >::param () const [inline]
Returns the parameter set of the distribution.

Generated by Doxygen
5.294 std::chi_squared_distribution< _RealType > Class Template Reference 1745

param() [2/2]

template<typename _RealType = double>


void std::chi_squared_distribution< _RealType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

References std::gamma_distribution< _RealType >::param().

reset()

template<typename _RealType = double>


void std::chi_squared_distribution< _RealType >::reset () [inline]
Resets the distribution state.
References std::gamma_distribution< _RealType >::reset().

5.294.4 Friends And Related Symbol Documentation

operator<<

template<typename _RealType = double>


template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::chi_squared_distribution< _RealType1 > & __x) [friend]
Inserts a chi_squared_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A chi_squared_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

operator==

template<typename _RealType = double>


bool operator== (
const chi_squared_distribution< _RealType > & __d1,
const chi_squared_distribution< _RealType > & __d2) [friend]
Return true if two Chi-squared distributions have the same parameters and the sequences that would be generated are
equal.

operator>>

template<typename _RealType = double>


template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (

Generated by Doxygen
1746

std::basic_istream< _CharT, _Traits > & __is,


std::chi_squared_distribution< _RealType1 > & __x) [friend]
Extracts a chi_squared_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A chi_squared_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.295 std::codecvt< _InternT, _ExternT, _StateT > Class Template Reference


#include <codecvt.h>
Inheritance diagram for std::codecvt< _InternT, _ExternT, _StateT >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< _InternT, _ExternT,
_StateT >

std::codecvt< _InternT,
_ExternT, _StateT >

std::codecvt_byname
< _InternT, _ExternT,
_StateT >

Generated by Doxygen
5.295 std::codecvt< _InternT, _ExternT, _StateT > Class Template Reference 1747

Public Types

• typedef _ExternT extern_type


• typedef _InternT intern_type
• typedef codecvt_base::result result
• typedef _StateT state_type

Public Member Functions

• codecvt (__c_locale __cloc, size_t __refs=0)


• codecvt (size_t __refs=0)
• bool always_noconv () const throw ()
• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Static Public Attributes

• static locale::id id

Protected Member Functions

• virtual bool do_always_noconv () const throw ()


• virtual int do_encoding () const throw ()
• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• virtual int do_max_length () const throw ()
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Protected Attributes

• __c_locale _M_c_locale_codecvt

Generated by Doxygen
1748

5.295.1 Detailed Description

template<typename _InternT, typename _ExternT, typename _StateT>


class std::codecvt< _InternT, _ExternT, _StateT >

Primary class template codecvt.


NB: Generic, mostly useless implementation.

5.295.2 Member Function Documentation

do_always_noconv()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual bool std::codecvt< _InternT, _ExternT, _StateT >::do_always_noconv () const throw ( )
[protected], [virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_encoding()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual int std::codecvt< _InternT, _ExternT, _StateT >::do_encoding () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_in()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual result std::codecvt< _InternT, _ExternT, _StateT >::do_in (
state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_length()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual int std::codecvt< _InternT, _ExternT, _StateT >::do_length (
state_type & ,
const extern_type ∗ __from,
const extern_type ∗ __end,
size_t __max) const [protected], [virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_max_length()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual int std::codecvt< _InternT, _ExternT, _StateT >::do_max_length () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

Generated by Doxygen
5.295 std::codecvt< _InternT, _ExternT, _StateT > Class Template Reference 1749

do_out()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual result std::codecvt< _InternT, _ExternT, _StateT >::do_out (
state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_unshift()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual result std::codecvt< _InternT, _ExternT, _StateT >::do_unshift (
state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

in()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::in (
state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline], [inherited]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Generated by Doxygen
1750

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::out (
state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

References std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::do_out().

Generated by Doxygen
5.296 std::codecvt< _InternT, _ExternT, encoding_state > Class Template Reference 1751

unshift()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::unshift (
state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

The documentation for this class was generated from the following files:

• codecvt.h
• localefwd.h

5.296 std::codecvt< _InternT, _ExternT, encoding_state > Class Template Reference


#include <codecvt_specializations.h>

Generated by Doxygen
1752

Inheritance diagram for std::codecvt< _InternT, _ExternT, encoding_state >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< _InternT, _ExternT,
encoding_state >

std::codecvt< _InternT,
_ExternT, encoding_state >

Public Types

• typedef state_type::descriptor_type descriptor_type


• typedef _ExternT extern_type
• typedef _InternT intern_type
• typedef codecvt_base::result result
• typedef __gnu_cxx::encoding_state state_type

Public Member Functions

• codecvt (size_t __refs=0)


• codecvt (state_type &__enc, size_t __refs=0)
• bool always_noconv () const throw ()
• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Static Public Attributes

• static locale::id id

Generated by Doxygen
5.296 std::codecvt< _InternT, _ExternT, encoding_state > Class Template Reference 1753

Protected Member Functions

• virtual bool do_always_noconv () const throw ()


• virtual int do_encoding () const throw ()
• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• virtual int do_max_length () const throw ()
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

5.296.1 Detailed Description

template<typename _InternT, typename _ExternT>


class std::codecvt< _InternT, _ExternT, encoding_state >

codecvt<InternT, _ExternT, encoding_state> specialization.

5.296.2 Member Function Documentation

do_always_noconv()

template<typename _InternT , typename _ExternT >


bool std::codecvt< _InternT, _ExternT, encoding_state >::do_always_noconv () const throw ( )
[protected], [virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >.

do_encoding()

template<typename _InternT , typename _ExternT >


int std::codecvt< _InternT, _ExternT, encoding_state >::do_encoding () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >.

do_in()

template<typename _InternT , typename _ExternT >


codecvt_base::result std::codecvt< _InternT, _ExternT, encoding_state >::do_in (
state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [protected], [virtual]

Generated by Doxygen
1754

Implements std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >.

do_length()

template<typename _InternT , typename _ExternT >


int std::codecvt< _InternT, _ExternT, encoding_state >::do_length (
state_type & ,
const extern_type ∗ __from,
const extern_type ∗ __end,
size_t __max) const [protected], [virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >.

do_max_length()

template<typename _InternT , typename _ExternT >


int std::codecvt< _InternT, _ExternT, encoding_state >::do_max_length () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >.

do_out()

template<typename _InternT , typename _ExternT >


codecvt_base::result std::codecvt< _InternT, _ExternT, encoding_state >::do_out (
state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implements std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >.

do_unshift()

template<typename _InternT , typename _ExternT >


codecvt_base::result std::codecvt< _InternT, _ExternT, encoding_state >::do_unshift (
state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >.

in()

result std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >::in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,

Generated by Doxygen
5.296 std::codecvt< _InternT, _ExternT, encoding_state > Class Template Reference 1755

const extern_type ∗& __from_next,


intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline], [inherited]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

result std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >::out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Generated by Doxygen
1756

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

unshift()

result std::__codecvt_abstract_base< _InternT, _ExternT, encoding_state >::unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

The documentation for this class was generated from the following file:

• codecvt_specializations.h

5.297 std::codecvt< char, char, mbstate_t > Class Reference


#include <codecvt.h>

Generated by Doxygen
5.297 std::codecvt< char, char, mbstate_t > Class Reference 1757

Inheritance diagram for std::codecvt< char, char, mbstate_t >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< char, char, mbstate_t >

std::codecvt< char,
char, mbstate_t >

Public Types

• typedef char extern_type


• typedef char intern_type
• typedef codecvt_base::result result
• typedef mbstate_t state_type

Public Member Functions

• codecvt (__c_locale __cloc, size_t __refs=0)


• codecvt (size_t __refs=0)
• bool always_noconv () const throw ()
• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Static Public Attributes

• static locale::id id

Protected Member Functions

• virtual bool do_always_noconv () const throw ()


• virtual int do_encoding () const throw ()

Generated by Doxygen
1758

• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• virtual int do_max_length () const throw ()
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Protected Attributes

• __c_locale _M_c_locale_codecvt

Friends

• class messages< char >

5.297.1 Detailed Description

class codecvt<char, char, mbstate_t> specialization.

5.297.2 Member Function Documentation

do_always_noconv()

virtual bool std::codecvt< char, char, mbstate_t >::do_always_noconv () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char, char, mbstate_t >.

do_encoding()

virtual int std::codecvt< char, char, mbstate_t >::do_encoding () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char, char, mbstate_t >.

do_in()

virtual result std::codecvt< char, char, mbstate_t >::do_in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char, char, mbstate_t >.

Generated by Doxygen
5.297 std::codecvt< char, char, mbstate_t > Class Reference 1759

do_length()

virtual int std::codecvt< char, char, mbstate_t >::do_length (


state_type & ,
const extern_type ∗ __from,
const extern_type ∗ __end,
size_t __max) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char, char, mbstate_t >.

do_max_length()

virtual int std::codecvt< char, char, mbstate_t >::do_max_length () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char, char, mbstate_t >.

do_out()

virtual result std::codecvt< char, char, mbstate_t >::do_out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implements std::__codecvt_abstract_base< char, char, mbstate_t >.

do_unshift()

virtual result std::codecvt< char, char, mbstate_t >::do_unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char, char, mbstate_t >.

in()

result std::__codecvt_abstract_base< char, char, mbstate_t >::in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline], [inherited]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.

Generated by Doxygen
1760

The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

result std::__codecvt_abstract_base< char, char, mbstate_t >::out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.

Generated by Doxygen
5.298 std::codecvt< char16_t, char, mbstate_t > Class Reference 1761

Parameters

__from_next Returns start of unconverted data.


__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

unshift()

result std::__codecvt_abstract_base< char, char, mbstate_t >::unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

The documentation for this class was generated from the following file:

• codecvt.h

5.298 std::codecvt< char16_t, char, mbstate_t > Class Reference


#include <codecvt.h>

Generated by Doxygen
1762

Inheritance diagram for std::codecvt< char16_t, char, mbstate_t >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< char16_t, char,
mbstate_t >

std::codecvt< char16
_t, char, mbstate_t >

Public Types

• typedef char extern_type


• typedef char16_t intern_type
• typedef codecvt_base::result result
• typedef mbstate_t state_type

Public Member Functions

• codecvt (size_t __refs=0)


• bool always_noconv () const throw ()
• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Static Public Attributes

• static locale::id id

Protected Member Functions

• virtual bool do_always_noconv () const throw ()


• virtual int do_encoding () const throw ()

Generated by Doxygen
5.298 std::codecvt< char16_t, char, mbstate_t > Class Reference 1763

• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• virtual int do_max_length () const throw ()
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

5.298.1 Detailed Description

Class codecvt<char16_t, char, mbstate_t> specialization.


Converts between UTF-16 and UTF-8.

5.298.2 Member Function Documentation

do_always_noconv()

virtual bool std::codecvt< char16_t, char, mbstate_t >::do_always_noconv () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char16_t, char, mbstate_t >.

do_encoding()

virtual int std::codecvt< char16_t, char, mbstate_t >::do_encoding () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char16_t, char, mbstate_t >.

do_in()

virtual result std::codecvt< char16_t, char, mbstate_t >::do_in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char16_t, char, mbstate_t >.

do_length()

virtual int std::codecvt< char16_t, char, mbstate_t >::do_length (


state_type & ,
const extern_type ∗ __from,

Generated by Doxygen
1764

const extern_type ∗ __end,


size_t __max) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char16_t, char, mbstate_t >.

do_max_length()

virtual int std::codecvt< char16_t, char, mbstate_t >::do_max_length () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char16_t, char, mbstate_t >.

do_out()

virtual result std::codecvt< char16_t, char, mbstate_t >::do_out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implements std::__codecvt_abstract_base< char16_t, char, mbstate_t >.

do_unshift()

virtual result std::codecvt< char16_t, char, mbstate_t >::do_unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char16_t, char, mbstate_t >.

in()

result std::__codecvt_abstract_base< char16_t, char, mbstate_t >::in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline], [inherited]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.

Generated by Doxygen
5.298 std::codecvt< char16_t, char, mbstate_t > Class Reference 1765

The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

result std::__codecvt_abstract_base< char16_t, char, mbstate_t >::out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Generated by Doxygen
1766

Returns

codecvt_base::result.

unshift()

result std::__codecvt_abstract_base< char16_t, char, mbstate_t >::unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

The documentation for this class was generated from the following file:

• codecvt.h

5.299 std::codecvt< char32_t, char, mbstate_t > Class Reference


#include <codecvt.h>

Generated by Doxygen
5.299 std::codecvt< char32_t, char, mbstate_t > Class Reference 1767

Inheritance diagram for std::codecvt< char32_t, char, mbstate_t >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< char32_t, char,
mbstate_t >

std::codecvt< char32
_t, char, mbstate_t >

Public Types

• typedef char extern_type


• typedef char32_t intern_type
• typedef codecvt_base::result result
• typedef mbstate_t state_type

Public Member Functions

• codecvt (size_t __refs=0)


• bool always_noconv () const throw ()
• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Static Public Attributes

• static locale::id id

Protected Member Functions

• virtual bool do_always_noconv () const throw ()


• virtual int do_encoding () const throw ()

Generated by Doxygen
1768

• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• virtual int do_max_length () const throw ()
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

5.299.1 Detailed Description

Class codecvt<char32_t, char, mbstate_t> specialization.


Converts between UTF-32 and UTF-8.

5.299.2 Member Function Documentation

do_always_noconv()

virtual bool std::codecvt< char32_t, char, mbstate_t >::do_always_noconv () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char32_t, char, mbstate_t >.

do_encoding()

virtual int std::codecvt< char32_t, char, mbstate_t >::do_encoding () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char32_t, char, mbstate_t >.

do_in()

virtual result std::codecvt< char32_t, char, mbstate_t >::do_in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char32_t, char, mbstate_t >.

do_length()

virtual int std::codecvt< char32_t, char, mbstate_t >::do_length (


state_type & ,
const extern_type ∗ __from,

Generated by Doxygen
5.299 std::codecvt< char32_t, char, mbstate_t > Class Reference 1769

const extern_type ∗ __end,


size_t __max) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char32_t, char, mbstate_t >.

do_max_length()

virtual int std::codecvt< char32_t, char, mbstate_t >::do_max_length () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< char32_t, char, mbstate_t >.

do_out()

virtual result std::codecvt< char32_t, char, mbstate_t >::do_out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implements std::__codecvt_abstract_base< char32_t, char, mbstate_t >.

do_unshift()

virtual result std::codecvt< char32_t, char, mbstate_t >::do_unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< char32_t, char, mbstate_t >.

in()

result std::__codecvt_abstract_base< char32_t, char, mbstate_t >::in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline], [inherited]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.

Generated by Doxygen
1770

The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

result std::__codecvt_abstract_base< char32_t, char, mbstate_t >::out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Generated by Doxygen
5.300 std::codecvt< wchar_t, char, mbstate_t > Class Reference 1771

Returns

codecvt_base::result.

unshift()

result std::__codecvt_abstract_base< char32_t, char, mbstate_t >::unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

The documentation for this class was generated from the following file:

• codecvt.h

5.300 std::codecvt< wchar_t, char, mbstate_t > Class Reference


#include <codecvt.h>

Generated by Doxygen
1772

Inheritance diagram for std::codecvt< wchar_t, char, mbstate_t >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< wchar_t, char,
mbstate_t >

std::codecvt< wchar
_t, char, mbstate_t >

Public Types

• typedef char extern_type


• typedef wchar_t intern_type
• typedef codecvt_base::result result
• typedef mbstate_t state_type

Public Member Functions

• codecvt (__c_locale __cloc, size_t __refs=0)


• codecvt (size_t __refs=0)
• bool always_noconv () const throw ()
• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Static Public Attributes

• static locale::id id

Protected Member Functions

• virtual bool do_always_noconv () const throw ()


• virtual int do_encoding () const throw ()

Generated by Doxygen
5.300 std::codecvt< wchar_t, char, mbstate_t > Class Reference 1773

• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• virtual int do_max_length () const throw ()
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Protected Attributes

• __c_locale _M_c_locale_codecvt

Friends

• class messages< wchar_t >

5.300.1 Detailed Description

Class codecvt<wchar_t, char, mbstate_t> specialization.


Converts between narrow and wide characters in the native character set

5.300.2 Member Function Documentation

do_always_noconv()

virtual bool std::codecvt< wchar_t, char, mbstate_t >::do_always_noconv () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< wchar_t, char, mbstate_t >.

do_encoding()

virtual int std::codecvt< wchar_t, char, mbstate_t >::do_encoding () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< wchar_t, char, mbstate_t >.

do_in()

virtual result std::codecvt< wchar_t, char, mbstate_t >::do_in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< wchar_t, char, mbstate_t >.

Generated by Doxygen
1774

do_length()

virtual int std::codecvt< wchar_t, char, mbstate_t >::do_length (


state_type & ,
const extern_type ∗ __from,
const extern_type ∗ __end,
size_t __max) const [protected], [virtual]
Implements std::__codecvt_abstract_base< wchar_t, char, mbstate_t >.

do_max_length()

virtual int std::codecvt< wchar_t, char, mbstate_t >::do_max_length () const throw ( ) [protected],
[virtual]
Implements std::__codecvt_abstract_base< wchar_t, char, mbstate_t >.

do_out()

virtual result std::codecvt< wchar_t, char, mbstate_t >::do_out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implements std::__codecvt_abstract_base< wchar_t, char, mbstate_t >.

do_unshift()

virtual result std::codecvt< wchar_t, char, mbstate_t >::do_unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual]
Implements std::__codecvt_abstract_base< wchar_t, char, mbstate_t >.

in()

result std::__codecvt_abstract_base< wchar_t, char, mbstate_t >::in (


state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline], [inherited]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.

Generated by Doxygen
5.300 std::codecvt< wchar_t, char, mbstate_t > Class Reference 1775

The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

result std::__codecvt_abstract_base< wchar_t, char, mbstate_t >::out (


state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.

Generated by Doxygen
1776

Parameters

__from_next Returns start of unconverted data.


__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

unshift()

result std::__codecvt_abstract_base< wchar_t, char, mbstate_t >::unshift (


state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

The documentation for this class was generated from the following file:

• codecvt.h

5.301 std::codecvt_base Class Reference


#include <codecvt.h>

Generated by Doxygen
5.302 std::codecvt_byname< _InternT, _ExternT, _StateT > Class Template Reference 1777

Inheritance diagram for std::codecvt_base:

std::__codecvt_abstract
std::codecvt< _InternT,
_base< _InternT, _ExternT,
_ExternT, encoding_state >
encoding_state >

std::__codecvt_abstract std::codecvt< char,


_base< char, char, mbstate_t > char, mbstate_t >

std::__codecvt_abstract
std::codecvt< char16
_base< char16_t, char,
_t, char, mbstate_t >
mbstate_t >

std::__codecvt_abstract
std::codecvt< char32
std::codecvt_base _base< char32_t, char,
_t, char, mbstate_t >
mbstate_t >

std::__codecvt_abstract
std::codecvt< wchar
_base< wchar_t, char,
_t, char, mbstate_t >
mbstate_t >

std::__codecvt_abstract std::codecvt< _Elem,


_base< _Elem, char, mbstate_t > char, mbstate_t >

std::__codecvt_abstract std::codecvt_byname
std::codecvt< _InternT,
_base< _InternT, _ExternT, < _InternT, _ExternT,
_ExternT, _StateT >
_StateT > _StateT >

Public Types

• enum result { ok , partial , error , noconv }

5.301.1 Detailed Description

Empty base class for codecvt facet [22.2.1.5].


The documentation for this class was generated from the following file:

• codecvt.h

5.302 std::codecvt_byname< _InternT, _ExternT, _StateT > Class Template Reference


#include <codecvt.h>

Generated by Doxygen
1778

Inheritance diagram for std::codecvt_byname< _InternT, _ExternT, _StateT >:

std::locale::facet std::codecvt_base

std::__codecvt_abstract
_base< _InternT, _ExternT,
_StateT >

std::codecvt< _InternT,
_ExternT, _StateT >

std::codecvt_byname
< _InternT, _ExternT,
_StateT >

Public Types

• typedef _ExternT extern_type


• typedef _InternT intern_type
• typedef codecvt_base::result result
• typedef _StateT state_type

Public Member Functions

• codecvt_byname (const char ∗__s, size_t __refs=0)


• codecvt_byname (const string &__s, size_t __refs=0)
• bool always_noconv () const throw ()
• int encoding () const throw ()
• result in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const extern_type
∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• int length (state_type &__state, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• int max_length () const throw ()
• result out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const intern_type
∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• result unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const

Generated by Doxygen
5.302 std::codecvt_byname< _InternT, _ExternT, _StateT > Class Template Reference 1779

Static Public Attributes

• static locale::id id

Protected Member Functions

• virtual bool do_always_noconv () const throw ()


• virtual int do_encoding () const throw ()
• virtual result do_in (state_type &__state, const extern_type ∗__from, const extern_type ∗__from_end, const
extern_type ∗&__from_next, intern_type ∗__to, intern_type ∗__to_end, intern_type ∗&__to_next) const
• virtual int do_length (state_type &, const extern_type ∗__from, const extern_type ∗__end, size_t __max) const
• virtual int do_max_length () const throw ()
• virtual result do_out (state_type &__state, const intern_type ∗__from, const intern_type ∗__from_end, const
intern_type ∗&__from_next, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to_next) const
• virtual result do_unshift (state_type &__state, extern_type ∗__to, extern_type ∗__to_end, extern_type ∗&__to←-
_next) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Protected Attributes

• __c_locale _M_c_locale_codecvt

5.302.1 Detailed Description

template<typename _InternT, typename _ExternT, typename _StateT>


class std::codecvt_byname< _InternT, _ExternT, _StateT >

class codecvt_byname [22.2.1.6].

5.302.2 Member Function Documentation

do_always_noconv()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual bool std::codecvt< _InternT, _ExternT, _StateT >::do_always_noconv () const throw ( )
[protected], [virtual], [inherited]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_encoding()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual int std::codecvt< _InternT, _ExternT, _StateT >::do_encoding () const throw ( ) [protected],
[virtual], [inherited]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

Generated by Doxygen
1780

do_in()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual result std::codecvt< _InternT, _ExternT, _StateT >::do_in (
state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [protected], [virtual], [inherited]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_length()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual int std::codecvt< _InternT, _ExternT, _StateT >::do_length (
state_type & ,
const extern_type ∗ __from,
const extern_type ∗ __end,
size_t __max) const [protected], [virtual], [inherited]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_max_length()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual int std::codecvt< _InternT, _ExternT, _StateT >::do_max_length () const throw ( ) [protected],
[virtual], [inherited]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_out()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual result std::codecvt< _InternT, _ExternT, _StateT >::do_out (
state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual], [inherited]
Convert from internal to external character set.
Converts input string of intern_type to output string of extern_type. This function is a hook for derived classes to change
the value returned.
See also

out for more information.

Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

do_unshift()

template<typename _InternT , typename _ExternT , typename _StateT >


virtual result std::codecvt< _InternT, _ExternT, _StateT >::do_unshift (
state_type & __state,
extern_type ∗ __to,

Generated by Doxygen
5.302 std::codecvt_byname< _InternT, _ExternT, _StateT > Class Template Reference 1781

extern_type ∗ __to_end,
extern_type ∗& __to_next) const [protected], [virtual], [inherited]
Implements std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >.

in()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::in (
state_type & __state,
const extern_type ∗ __from,
const extern_type ∗ __from_end,
const extern_type ∗& __from_next,
intern_type ∗ __to,
intern_type ∗ __to_end,
intern_type ∗& __to_next) const [inline], [inherited]
Convert from external to internal character set.
Converts input string of extern_type to output string of intern_type. This is analogous to mbsrtowcs. It does this by
calling codecvt::do_in.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

out()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::out (
state_type & __state,
const intern_type ∗ __from,
const intern_type ∗ __from_end,
const intern_type ∗& __from_next,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]

Generated by Doxygen
1782

Convert from internal to external character set.


Converts input string of intern_type to output string of extern_type. This is analogous to wcsrtombs. It does this by
calling codecvt::do_out.
The source and destination character sets are determined by the facet's locale, internal and external types.
The characters in [from,from_end) are converted and written to [to,to_end). from_next and to_next are set to point to the
character following the last successfully converted character, respectively. If the result needed no conversion, from_next
and to_next are not affected.
The state argument should be initialized if the input is at the beginning and carried from a previous call if continuing
conversion. There are no guarantees about how state is used.
The result returned is a member of codecvt_base::result. If all the input is converted, returns codecvt_base::ok. If
no conversion is necessary, returns codecvt_base::noconv. If the input ends early or there is insufficient space in the
output, returns codecvt_base::partial. Otherwise the conversion failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__from Start of input.
__from_end End of input.
__from_next Returns start of unconverted data.
__to Start of output buffer.
__to_end End of output buffer.
__to_next Returns start of unused output area.

Returns

codecvt_base::result.

References std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::do_out().

unshift()

template<typename _InternT , typename _ExternT , typename _StateT >


result std::__codecvt_abstract_base< _InternT, _ExternT, _StateT >::unshift (
state_type & __state,
extern_type ∗ __to,
extern_type ∗ __to_end,
extern_type ∗& __to_next) const [inline], [inherited]
Reset conversion state.
Writes characters to output that would restore state to initial conditions. The idea is that if a partial conversion occurs,
then the converting the characters written by this function would leave the state in initial conditions, rather than partial
conversion state. It does this by calling codecvt::do_unshift().
For example, if 4 external characters always converted to 1 internal character, and input to in() had 6 external characters
with state saved, this function would write two characters to the output and set the state to initialized conditions.
The source and destination character sets are determined by the facet's locale, internal and external types.
The result returned is a member of codecvt_base::result. If the state could be reset and data written, returns codecvt←-
_base::ok. If no conversion is necessary, returns codecvt_base::noconv. If the output has insufficient space, returns
codecvt_base::partial. Otherwise the reset failed and codecvt_base::error is returned.

Parameters
__state Persistent conversion state data.
__to Start of output buffer.
__to_end End of output buffer.

Generated by Doxygen
5.303 std::__cxx11::collate< _CharT > Class Template Reference 1783

__to_next Returns start of unused output area.

Returns

codecvt_base::result.

The documentation for this class was generated from the following files:

• codecvt.h
• localefwd.h

5.303 std::__cxx11::collate< _CharT > Class Template Reference


#include <locale_classes.h>
Inheritance diagram for std::__cxx11::collate< _CharT >:

std::locale::facet

std::__cxx11::collate
< _CharT >

Public Types

• typedef _CharT char_type


• typedef basic_string< _CharT > string_type

Public Member Functions

• collate (__c_locale __cloc, size_t __refs=0)


• collate (size_t __refs=0)
• int _M_compare (const _CharT ∗, const _CharT ∗) const throw ()
• size_t _M_transform (_CharT ∗, const _CharT ∗, size_t) const throw ()
• int compare (const _CharT ∗__lo1, const _CharT ∗__hi1, const _CharT ∗__lo2, const _CharT ∗__hi2) const
• long hash (const _CharT ∗__lo, const _CharT ∗__hi) const
• string_type transform (const _CharT ∗__lo, const _CharT ∗__hi) const

Static Public Attributes

• static locale::id id

Generated by Doxygen
1784

Protected Member Functions

• virtual ∼collate ()
• virtual int do_compare (const _CharT ∗__lo1, const _CharT ∗__hi1, const _CharT ∗__lo2, const _CharT ∗__hi2)
const
• virtual long do_hash (const _CharT ∗__lo, const _CharT ∗__hi) const
• virtual string_type do_transform (const _CharT ∗__lo, const _CharT ∗__hi) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Protected Attributes

• __c_locale _M_c_locale_collate

5.303.1 Detailed Description

template<typename _CharT>
class std::__cxx11::collate< _CharT >

Facet for localized string comparison.


This facet encapsulates the code to compare strings in a localized manner.
The collate template uses protected virtual functions to provide the actual results. The public accessors forward the call
to the virtual functions. These virtual functions are hooks for developers to implement the behavior they require from the
collate facet.

5.303.2 Member Typedef Documentation

char_type

template<typename _CharT >


_CharT std::__cxx11::collate< _CharT >::char_type
Public typedefs.

string_type

template<typename _CharT >


basic_string<_CharT> std::__cxx11::collate< _CharT >::string_type
Public typedefs.

5.303.3 Constructor & Destructor Documentation

collate() [1/2]

template<typename _CharT >


std::__cxx11::collate< _CharT >::collate (
size_t __refs = 0) [inline], [explicit]
Constructor performs initialization.
This is the constructor provided by the standard.

Generated by Doxygen
5.303 std::__cxx11::collate< _CharT > Class Template Reference 1785

Parameters

__refs Passed to the base facet class.

collate() [2/2]

template<typename _CharT >


std::__cxx11::collate< _CharT >::collate (
__c_locale __cloc,
size_t __refs = 0) [inline], [explicit]
Internal constructor. Not for general use.
This is a constructor for use by the library itself to set up new locales.

Parameters

__cloc The C locale.


__refs Passed to the base facet class.

∼collate()
template<typename _CharT >
virtual std::__cxx11::collate< _CharT >::∼collate () [inline], [protected], [virtual]
Destructor.

5.303.4 Member Function Documentation

compare()

template<typename _CharT >


int std::__cxx11::collate< _CharT >::compare (
const _CharT ∗ __lo1,
const _CharT ∗ __hi1,
const _CharT ∗ __lo2,
const _CharT ∗ __hi2) const [inline]
Compare two strings.
This function compares two strings and returns the result by calling collate::do_compare().

Parameters

__lo1 Start of string 1.


__hi1 End of string 1.
__lo2 Start of string 2.
__hi2 End of string 2.

Returns

1 if string1 > string2, -1 if string1 < string2, else 0.

Generated by Doxygen
1786

do_compare()

template<typename _CharT >


int std::collate< _CharT >::do_compare (
const _CharT ∗ __lo1,
const _CharT ∗ __hi1,
const _CharT ∗ __lo2,
const _CharT ∗ __hi2) const [protected], [virtual]
Compare two strings.
This function is a hook for derived classes to change the value returned.
See also

compare().

Parameters

__lo1 Start of string 1.


__hi1 End of string 1.
__lo2 Start of string 2.
__hi2 End of string 2.

Returns

1 if string1 > string2, -1 if string1 < string2, else 0.

do_hash()

template<typename _CharT >


long std::collate< _CharT >::do_hash (
const _CharT ∗ __lo,
const _CharT ∗ __hi) const [protected], [virtual]
Return hash of a string.
This function computes and returns a hash on the input string. This function is a hook for derived classes to change the
value returned.
Parameters

_←- Start of string.


_lo
_←- End of string.
_hi

Returns

Hash value.

do_transform()

template<typename _CharT >


collate< _CharT >::string_type std::collate< _CharT >::do_transform (
const _CharT ∗ __lo,
const _CharT ∗ __hi) const [protected], [virtual]
Transform string to comparable form.
This function is a hook for derived classes to change the value returned.

Generated by Doxygen
5.303 std::__cxx11::collate< _CharT > Class Template Reference 1787

Parameters

_←- Start.
_lo
_←- End.
_hi

Returns

transformed string.

hash()

template<typename _CharT >


long std::__cxx11::collate< _CharT >::hash (
const _CharT ∗ __lo,
const _CharT ∗ __hi) const [inline]
Return hash of a string.
This function computes and returns a hash on the input string. It does so by returning collate::do_hash().

Parameters

_←- Start of string.


_lo
_←- End of string.
_hi

Returns

Hash value.

transform()

template<typename _CharT >


string_type std::__cxx11::collate< _CharT >::transform (
const _CharT ∗ __lo,
const _CharT ∗ __hi) const [inline]
Transform string to comparable form.
This function is a wrapper for strxfrm functionality. It takes the input string and returns a modified string that can be
directly compared to other transformed strings. In the C locale, this function just returns a copy of the input string.
In some other locales, it may replace two chars with one, change a char for another, etc. It does so by returning
collate::do_transform().

Parameters

_←- Start of string.


_lo
_←- End of string.
_hi

Returns

Transformed string_type.

Generated by Doxygen
1788

5.303.5 Member Data Documentation

id

template<typename _CharT >


locale::id std::collate< _CharT >::id [static]
Numpunct facet id.
The documentation for this class was generated from the following files:

• locale_classes.h
• locale_classes.tcc

5.304 std::__cxx11::collate_byname< _CharT > Class Template Reference


#include <locale_classes.h>

Public Types

• typedef _CharT char_type


• typedef basic_string< _CharT > string_type

Public Member Functions

• collate_byname (const char ∗__s, size_t __refs=0)


• collate_byname (const string &__s, size_t __refs=0)
• int _M_compare (const char ∗, const char ∗) const throw()
• int _M_compare (const wchar_t ∗, const wchar_t ∗) const throw()
• size_t _M_transform (char ∗, const char ∗, size_t) const throw()
• size_t _M_transform (wchar_t ∗, const wchar_t ∗, size_t) const throw()

5.304.1 Detailed Description

template<typename _CharT>
class std::__cxx11::collate_byname< _CharT >

class collate_byname [22.2.4.2].

5.304.2 Member Typedef Documentation

char_type

template<typename _CharT >


_CharT std::__cxx11::collate_byname< _CharT >::char_type
Public typedefs.

string_type

template<typename _CharT >


basic_string<_CharT> std::__cxx11::collate_byname< _CharT >::string_type
Public typedefs.
The documentation for this class was generated from the following file:

• locale_classes.h

5.305 std::common_iterator< _It, _Sent > Class Template Reference


#include <stl_iterator.h>

Generated by Doxygen
5.305 std::common_iterator< _It, _Sent > Class Template Reference 1789

Public Member Functions

• constexpr common_iterator (_It __i) noexcept(is_nothrow_move_constructible_v< _It >)


• constexpr common_iterator (_Sent __s) noexcept(is_nothrow_move_constructible_v< _Sent >)
• common_iterator (common_iterator &&)=default
• constexpr common_iterator (common_iterator &&__x) noexcept(_S_noexcept< _It, _Sent >())
• common_iterator (const common_iterator &)=default
• constexpr common_iterator (const common_iterator &__x) noexcept(_S_noexcept< const _It &, const _Sent &
>())
• template<typename _It2 , typename _Sent2 >
requires convertible_to<const _It2&, _It> && convertible_to<const _Sent2&, _Sent>
constexpr common_iterator (const common_iterator< _It2, _Sent2 > &__x) noexcept(_S_noexcept< const _It2
&, const _Sent2 & >())
• constexpr decltype(auto) operator∗ ()
• constexpr decltype(auto) operator∗ () const
• constexpr common_iterator & operator++ ()
• constexpr decltype(auto) operator++ (int)
• constexpr auto operator-> () const
• constexpr common_iterator & operator= (common_iterator &&)=default
• constexpr common_iterator & operator= (common_iterator &&__x) noexcept(is_nothrow_move_assignable_←-
v< _It > &&is_nothrow_move_assignable_v< _Sent > &&is_nothrow_move_constructible_v< _It > &&is_←-
nothrow_move_constructible_v< _Sent >)
• constexpr common_iterator & operator= (const common_iterator &)=default
• constexpr common_iterator & operator= (const common_iterator &__x) noexcept(is_nothrow_copy_assignable←-
_v< _It > &&is_nothrow_copy_assignable_v< _Sent > &&is_nothrow_copy_constructible_v< _It > &&is_←-
nothrow_copy_constructible_v< _Sent >)
• template<typename _It2 , typename _Sent2 >
requires convertible_to<const _It2&, _It> && convertible_to<const _Sent2&, _Sent> && assignable_from<_It&, const _It2&> &&
assignable_from<_Sent&, const _Sent2&>
constexpr common_iterator & operator= (const common_iterator< _It2, _Sent2 > &__x) noexcept(is_nothrow←-
_constructible_v< _It, const _It2 & > &&is_nothrow_constructible_v< _Sent, const _Sent2 & > &&is_nothrow←-
_assignable_v< _It &, const _It2 & > &&is_nothrow_assignable_v< _Sent &, const _Sent2 & >)

Friends

• constexpr iter_rvalue_reference_t< _It > iter_move (const common_iterator &__i) noexcept(noexcept(ranges←-


::iter_move(std::declval< const _It & >())))
• template<indirectly_swappable< _It > _It2, typename _Sent2 >
constexpr void iter_swap (const common_iterator &__x, const common_iterator< _It2, _Sent2 > &__←-
y) noexcept(noexcept(ranges::iter_swap(std::declval< const _It & >(), std::declval< const _It2 & >())))
• template<sized_sentinel_for< _It > _It2, sized_sentinel_for< _It > _Sent2>
requires sized_sentinel_for<_Sent, _It2>
constexpr iter_difference_t< _It2 > operator- (const common_iterator &__x, const common_iterator< _It2, _←-
Sent2 > &__y)
• template<typename _It2 , sentinel_for< _It > _Sent2>
requires sentinel_for<_Sent, _It2>
constexpr bool operator== (const common_iterator &__x, const common_iterator< _It2, _Sent2 > &__y)
• template<typename _It2 , sentinel_for< _It > _Sent2>
requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It, _It2>
constexpr bool operator== (const common_iterator &__x, const common_iterator< _It2, _Sent2 > &__y)

Generated by Doxygen
1790

5.305.1 Detailed Description

template<input_or_output_iterator _It, sentinel_for< _It > _Sent>


requires (!same_as<_It, _Sent>) && copyable<_It>
class std::common_iterator< _It, _Sent >

An iterator/sentinel adaptor for representing a non-common range.


The documentation for this class was generated from the following file:
• bits/stl_iterator.h

5.306 std::common_type< _Tp > Struct Template Reference


5.306.1 Detailed Description

template<typename... _Tp>
struct std::common_type< _Tp >

common_type
The documentation for this struct was generated from the following file:
• type_traits

5.307 std::common_type< chrono::duration< _Rep, _Period > > Struct Template


Reference
#include <chrono.h>

Public Types

• using type

5.307.1 Detailed Description

template<typename _Rep, typename _Period>


struct std::common_type< chrono::duration< _Rep, _Period > >

Specialization of common_type for one chrono::duration type.


The documentation for this struct was generated from the following file:
• chrono.h

5.308 std::common_type< chrono::duration< _Rep, _Period >, chrono::duration< _Rep,


_Period > > Struct Template Reference
#include <chrono.h>

Public Types

• using type

5.308.1 Detailed Description

template<typename _Rep, typename _Period>


struct std::common_type< chrono::duration< _Rep, _Period >, chrono::duration< _Rep, _Period > >

Specialization of common_type for two identical chrono::duration types.


The documentation for this struct was generated from the following file:
• chrono.h

Generated by Doxygen
5.309 std::common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration< _Rep2, _Period2 > >
Struct Template Reference 1791

5.309 std::common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration<


_Rep2, _Period2 > > Struct Template Reference
#include <chrono.h>

5.309.1 Detailed Description

template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2>


struct std::common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration< _Rep2, _Period2 > >

Specialization of common_type for chrono::duration types.


The documentation for this struct was generated from the following file:
• chrono.h

5.310 std::common_type< chrono::time_point< _Clock, _Duration > > Struct Template


Reference
#include <chrono.h>

Public Types

• using type

5.310.1 Detailed Description

template<typename _Clock, typename _Duration>


struct std::common_type< chrono::time_point< _Clock, _Duration > >

Specialization of common_type for one chrono::time_point type.


The documentation for this struct was generated from the following file:
• chrono.h

5.311 std::common_type< chrono::time_point< _Clock, _Duration >,


chrono::time_point< _Clock, _Duration > > Struct Template Reference
#include <chrono.h>

Public Types

• using type

5.311.1 Detailed Description

template<typename _Clock, typename _Duration>


struct std::common_type< chrono::time_point< _Clock, _Duration >, chrono::time_point< _Clock, _Duration
>>
Specialization of common_type for two identical chrono::time_point types.
The documentation for this struct was generated from the following file:
• chrono.h

5.312 std::common_type< chrono::time_point< _Clock, _Duration1 >,


chrono::time_point< _Clock, _Duration2 > > Struct Template Reference
#include <chrono.h>

Generated by Doxygen
1792

5.312.1 Detailed Description

template<typename _Clock, typename _Duration1, typename _Duration2>


struct std::common_type< chrono::time_point< _Clock, _Duration1 >, chrono::time_point< _Clock, _←-
Duration2 > >

Specialization of common_type for chrono::time_point types.


The documentation for this struct was generated from the following file:

• chrono.h

5.313 std::compare_three_way_result< _Tp, _Up > Struct Template Reference


#include <compare>

5.313.1 Detailed Description

template<typename _Tp, typename _Up = _Tp>


struct std::compare_three_way_result< _Tp, _Up >

[cmp.result], result of three-way comparison


The documentation for this struct was generated from the following file:

• compare

5.314 std::complex< _Tp > Class Template Reference


#include <complex>

Public Types

• typedef _Tp value_type

Public Member Functions

• constexpr complex (const _Tp &__r=_Tp(), const _Tp &__i=_Tp())


• constexpr complex (const complex &)=default
• template<typename _Up >
constexpr complex (const complex< _Up > &__z)
• __attribute ((__abi_tag__("cxx11"))) const expr _Tp imag() const
• __attribute ((__abi_tag__("cxx11"))) const expr _Tp real() const
• constexpr complex __rep () const
• constexpr void imag (_Tp __val)
• constexpr complex< _Tp > & operator∗= (const _Tp &)
• template<typename _Up >
constexpr complex< _Tp > & operator∗= (const complex< _Up > &)
• constexpr complex< _Tp > & operator+= (const _Tp &__t)
• template<typename _Up >
constexpr complex< _Tp > & operator+= (const complex< _Up > &)
• constexpr complex< _Tp > & operator-= (const _Tp &__t)
• template<typename _Up >
constexpr complex< _Tp > & operator-= (const complex< _Up > &)
• constexpr complex< _Tp > & operator/= (const _Tp &)
• template<typename _Up >
constexpr complex< _Tp > & operator/= (const complex< _Up > &)

Generated by Doxygen
5.314 std::complex< _Tp > Class Template Reference 1793

• constexpr complex< _Tp > & operator= (const _Tp &)


• constexpr complex & operator= (const complex &)=default
• template<typename _Up >
constexpr complex< _Tp > & operator= (const complex< _Up > &)
• constexpr void real (_Tp __val)

5.314.1 Detailed Description

template<typename _Tp>
class std::complex< _Tp >

Template to represent complex numbers.


Specializations for float, double, and long double are part of the library. Results with any other type are not guaranteed.

Parameters

Tp Type of real and imaginary values.

5.314.2 Member Typedef Documentation

value_type

template<typename _Tp >


_Tp std::complex< _Tp >::value_type
Value typedef.

5.314.3 Constructor & Destructor Documentation

complex() [1/2]

template<typename _Tp >


std::complex< _Tp >::complex (
const _Tp & __r = _Tp(),
const _Tp & __i = _Tp()) [inline], [constexpr]
Default constructor. First parameter is x, second parameter is y. Unspecified parameters default to 0.

complex() [2/2]

template<typename _Tp >


template<typename _Up >
std::complex< _Tp >::complex (
const complex< _Up > & __z) [inline], [constexpr]
Converting constructor.

5.314.4 Member Function Documentation

operator+=()

template<typename _Tp >


complex< _Tp > & std::complex< _Tp >::operator+= (
const _Tp & __t) [inline], [constexpr]
Add a scalar to this complex number.

Generated by Doxygen
1794

operator-=()

template<typename _Tp >


complex< _Tp > & std::complex< _Tp >::operator-= (
const _Tp & __t) [inline], [constexpr]
Subtract a scalar from this complex number.
The documentation for this class was generated from the following file:

• complex

5.315 std::complex< double > Class Reference


#include <complex>

Public Types

• typedef __complex__ double _ComplexT


• typedef double value_type

Public Member Functions

• constexpr complex (_ComplexT __z)


• constexpr complex (const complex &)=default
• constexpr complex (const complex< float > &__z)
• constexpr complex (const complex< long double > &)
• constexpr complex (double __r=0.0, double __i=0.0)
• __attribute ((__abi_tag__("cxx11"))) const expr double imag() const
• __attribute ((__abi_tag__("cxx11"))) const expr double real() const
• constexpr _ComplexT __rep () const
• constexpr void imag (double __val)
• template<typename _Tp >
constexpr complex & operator∗= (const complex< _Tp > &__z)
• constexpr complex & operator∗= (double __d)
• template<typename _Tp >
constexpr complex & operator+= (const complex< _Tp > &__z)
• constexpr complex & operator+= (double __d)
• template<typename _Tp >
constexpr complex & operator-= (const complex< _Tp > &__z)
• constexpr complex & operator-= (double __d)
• template<typename _Tp >
constexpr complex & operator/= (const complex< _Tp > &__z)
• constexpr complex & operator/= (double __d)
• constexpr complex & operator= (const complex &)=default
• template<typename _Tp >
constexpr complex & operator= (const complex< _Tp > &__z)
• constexpr complex & operator= (double __d)
• constexpr void real (double __val)

5.315.1 Detailed Description

26.2.3 complex specializations complex<double> specialization


The documentation for this class was generated from the following file:

• complex

Generated by Doxygen
5.316 std::complex< float > Class Reference 1795

5.316 std::complex< float > Class Reference


#include <complex>

Public Types

• typedef __complex__ float _ComplexT


• typedef float value_type

Public Member Functions

• constexpr complex (_ComplexT __z)


• constexpr complex (const complex &)=default
• constexpr complex (const complex< double > &)
• constexpr complex (const complex< long double > &)
• constexpr complex (float __r=0.0f, float __i=0.0f)
• __attribute ((__abi_tag__("cxx11"))) const expr float imag() const
• __attribute ((__abi_tag__("cxx11"))) const expr float real() const
• constexpr _ComplexT __rep () const
• constexpr void imag (float __val)
• template<class _Tp >
constexpr complex & operator∗= (const complex< _Tp > &__z)
• constexpr complex & operator∗= (float __f)
• template<typename _Tp >
constexpr complex & operator+= (const complex< _Tp > &__z)
• constexpr complex & operator+= (float __f)
• template<class _Tp >
constexpr complex & operator-= (const complex< _Tp > &__z)
• constexpr complex & operator-= (float __f)
• template<class _Tp >
constexpr complex & operator/= (const complex< _Tp > &__z)
• constexpr complex & operator/= (float __f)
• constexpr complex & operator= (const complex &)=default
• template<typename _Tp >
constexpr complex & operator= (const complex< _Tp > &__z)
• constexpr complex & operator= (float __f)
• constexpr void real (float __val)

5.316.1 Detailed Description

26.2.3 complex specializations complex<float> specialization


The documentation for this class was generated from the following file:

• complex

5.317 std::complex< long double > Class Reference


#include <complex>

Public Types

• typedef __complex__ long double _ComplexT


• typedef long double value_type

Generated by Doxygen
1796

Public Member Functions

• constexpr complex (_ComplexT __z)


• constexpr complex (const complex &)=default
• constexpr complex (const complex< double > &__z)
• constexpr complex (const complex< float > &__z)
• constexpr complex (long double __r=0.0L, long double __i=0.0L)
• __attribute ((__abi_tag__("cxx11"))) const expr long double imag() const
• __attribute ((__abi_tag__("cxx11"))) const expr long double real() const
• constexpr _ComplexT __rep () const
• constexpr void imag (long double __val)
• template<typename _Tp >
constexpr complex & operator∗= (const complex< _Tp > &__z)
• constexpr complex & operator∗= (long double __r)
• template<typename _Tp >
constexpr complex & operator+= (const complex< _Tp > &__z)
• constexpr complex & operator+= (long double __r)
• template<typename _Tp >
constexpr complex & operator-= (const complex< _Tp > &__z)
• constexpr complex & operator-= (long double __r)
• template<typename _Tp >
constexpr complex & operator/= (const complex< _Tp > &__z)
• constexpr complex & operator/= (long double __r)
• constexpr complex & operator= (const complex &)=default
• template<typename _Tp >
constexpr complex & operator= (const complex< _Tp > &__z)
• constexpr complex & operator= (long double __r)
• constexpr void real (long double __val)

5.317.1 Detailed Description

26.2.3 complex specializations complex<long double> specialization


The documentation for this class was generated from the following file:
• complex

5.318 __gnu_pbds::detail::cond_dealtor< HT_Map > Class Template Reference


#include <cond_key_dtor_entry_dealtor.hpp>

Public Types

• typedef HT_Map::entry entry


• typedef HT_Map::entry_allocator entry_allocator
• typedef alloc_traits::allocator_type entry_allocator
• typedef alloc_traits::pointer entry_pointer
• typedef HT_Map::key_type key_type

Public Member Functions

• cond_dealtor (entry_allocator ∗p_a, entry ∗p_e)


• cond_dealtor (entry_pointer p_e)
• void set_key_destruct ()
• void set_no_action ()
• void set_no_action_destructor ()

Generated by Doxygen
5.319 __gnu_pbds::detail::ov_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::cond_dtor<
Size_Type > Class Template Reference 1797

Protected Attributes

• bool m_key_destruct
• entry_allocator ∗const m_p_a
• entry ∗const m_p_e

5.318.1 Detailed Description

template<typename HT_Map>
class __gnu_pbds::detail::cond_dealtor< HT_Map >

Conditional deallocate constructor argument.


Conditional dey destructor, cc_hash.
The documentation for this class was generated from the following files:

• cond_dealtor.hpp
• cond_key_dtor_entry_dealtor.hpp

5.319 __gnu_pbds::detail::ov_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits,


_Alloc >::cond_dtor< Size_Type > Class Template Reference
#include <ov_tree_map_.hpp>

Public Member Functions

• cond_dtor (value_vector a_vec, iterator &r_last_it, Size_Type total_size)


• void set_no_action ()

Protected Attributes

• value_vector m_a_vec
• const Size_Type m_max_size
• bool m_no_action
• iterator & m_r_last_it

5.319.1 Detailed Description

template<typename Key, typename Mapped, typename Cmp_Fn, typename Node_And_It_Traits, typename _←-
Alloc>
template<typename Size_Type>
class __gnu_pbds::detail::ov_tree_map< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::cond_dtor<
Size_Type >

Conditional destructor.
The documentation for this class was generated from the following file:

• ov_tree_map_.hpp

5.320 __gnu_cxx::condition_base Struct Reference


#include <throw_allocator.h>

Generated by Doxygen
1798

Inheritance diagram for __gnu_cxx::condition_base:

__gnu_cxx::throw_allocator __gnu_cxx::throw_allocator
_base< _Tp, limit_condition > _limit< _Tp >

__gnu_cxx::throw_value __gnu_cxx::throw_value
__gnu_cxx::limit_condition
_base< limit_condition > _limit
__gnu_cxx::condition_base
__gnu_cxx::throw_allocator __gnu_cxx::throw_allocator
__gnu_cxx::random_condition
_base< _Tp, random_condition > _random< _Tp >

__gnu_cxx::throw_value __gnu_cxx::throw_value
_base< random_condition > _random

Public Member Functions

• condition_base (const condition_base &)=default


• condition_base & operator= (const condition_base &)=default

5.320.1 Detailed Description

Base struct for condition policy.


Requires a public member function with the signature void throw_conditionally()
The documentation for this struct was generated from the following file:

• throw_allocator.h

5.321 std::condition_variable Class Reference


#include <condition_variable>

Public Types

• typedef __gthread_cond_t ∗ native_handle_type

Public Member Functions

• condition_variable (const condition_variable &)=delete


• native_handle_type native_handle ()
• void notify_all () noexcept
• void notify_one () noexcept
• condition_variable & operator= (const condition_variable &)=delete
• void wait (unique_lock< mutex > &__lock)
• template<typename _Predicate >
void wait (unique_lock< mutex > &__lock, _Predicate __p)
• template<typename _Rep , typename _Period >
cv_status wait_for (unique_lock< mutex > &__lock, const chrono::duration< _Rep, _Period > &__rtime)
• template<typename _Rep , typename _Period , typename _Predicate >
bool wait_for (unique_lock< mutex > &__lock, const chrono::duration< _Rep, _Period > &__rtime, _Predicate
__p)
• template<typename _Clock , typename _Duration >
cv_status wait_until (unique_lock< mutex > &__lock, const chrono::time_point< _Clock, _Duration > &__atime)
• template<typename _Clock , typename _Duration , typename _Predicate >
bool wait_until (unique_lock< mutex > &__lock, const chrono::time_point< _Clock, _Duration > &__atime, _←-
Predicate __p)

Generated by Doxygen
5.322 std::_V2::condition_variable_any Class Reference 1799

• template<typename _Duration >


cv_status wait_until (unique_lock< mutex > &__lock, const chrono::time_point< steady_clock, _Duration >
&__atime)
• template<typename _Duration >
cv_status wait_until (unique_lock< mutex > &__lock, const chrono::time_point< system_clock, _Duration >
&__atime)

5.321.1 Detailed Description

condition_variable
The documentation for this class was generated from the following file:

• condition_variable

5.322 std::_V2::condition_variable_any Class Reference


#include <condition_variable>

Public Member Functions

• condition_variable_any (const condition_variable_any &)=delete


• void notify_all () noexcept
• void notify_one () noexcept
• condition_variable_any & operator= (const condition_variable_any &)=delete
• template<typename _Lock >
void wait (_Lock &__lock)
• template<typename _Lock , typename _Predicate >
void wait (_Lock &__lock, _Predicate __p)
• template<class _Lock , class _Predicate >
bool wait (_Lock &__lock, stop_token __stoken, _Predicate __p)
• template<typename _Lock , typename _Rep , typename _Period >
cv_status wait_for (_Lock &__lock, const chrono::duration< _Rep, _Period > &__rtime)
• template<typename _Lock , typename _Rep , typename _Period , typename _Predicate >
bool wait_for (_Lock &__lock, const chrono::duration< _Rep, _Period > &__rtime, _Predicate __p)
• template<class _Lock , class _Rep , class _Period , class _Predicate >
bool wait_for (_Lock &__lock, stop_token __stoken, const chrono::duration< _Rep, _Period > &__rel_time, _←-
Predicate __p)
• template<typename _Lock , typename _Clock , typename _Duration >
cv_status wait_until (_Lock &__lock, const chrono::time_point< _Clock, _Duration > &__atime)
• template<typename _Lock , typename _Clock , typename _Duration , typename _Predicate >
bool wait_until (_Lock &__lock, const chrono::time_point< _Clock, _Duration > &__atime, _Predicate __p)
• template<class _Lock , class _Clock , class _Duration , class _Predicate >
bool wait_until (_Lock &__lock, stop_token __stoken, const chrono::time_point< _Clock, _Duration > &__abs←-
_time, _Predicate __p)

5.322.1 Detailed Description

condition_variable_any
The documentation for this class was generated from the following file:

• condition_variable

5.323 std::conditional< _Cond, _Iftrue, _Iffalse > Struct Template Reference


#include <type_traits>

Generated by Doxygen
1800

Public Types

• using type

5.323.1 Detailed Description

template<bool _Cond, typename _Iftrue, typename _Iffalse>


struct std::conditional< _Cond, _Iftrue, _Iffalse >

Define a member typedef type to one of two argument types.


The documentation for this struct was generated from the following file:

• type_traits

5.324 __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata >::const_iterator


Struct Reference
#include <pat_trie_base.hpp>
Inheritance diagram for __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata >::const_iterator:

__gnu_pbds::detail
::pat_trie_base::_Inode
< _ATraits, Metadata >
::const_iterator

__gnu_pbds::detail
::pat_trie_base::_Inode
< _ATraits, Metadata >
::iterator

Public Types

• typedef _Alloc::difference_type difference_type


• typedef std::forward_iterator_tag iterator_category
• typedef node_pointer_pointer pointer
• typedef node_pointer_reference reference
• typedef node_pointer value_type

Public Member Functions

• const_iterator (node_pointer_pointer p_p_cur=0, node_pointer_pointer p_p_end=0)


• bool operator!= (const const_iterator &other) const
• node_const_pointer operator∗ () const
• const_iterator & operator++ ()

Generated by Doxygen
5.325 std::chrono::tzdb_list::const_iterator Class Reference 1801

• const_iterator operator++ (int)


• const node_pointer_pointer operator-> () const
• bool operator== (const const_iterator &other) const

Public Attributes

• node_pointer_pointer m_p_p_cur
• node_pointer_pointer m_p_p_end

5.324.1 Detailed Description

template<typename _ATraits, typename Metadata>


struct __gnu_pbds::detail::pat_trie_base::_Inode< _ATraits, Metadata >::const_iterator

Constant child iterator.


The documentation for this struct was generated from the following file:

• pat_trie_base.hpp

5.325 std::chrono::tzdb_list::const_iterator Class Reference


#include <chrono>

Public Types

• using difference_type
• using iterator_category
• using pointer
• using reference
• using value_type

Public Member Functions

• const_iterator (const const_iterator &)=default


• const_iterator (const_iterator &&)=default
• reference operator∗ () const noexcept
• const_iterator & operator++ ()
• const_iterator operator++ (int)
• pointer operator-> () const noexcept
• const_iterator & operator= (const const_iterator &)=default
• const_iterator & operator= (const_iterator &&)=default
• bool operator== (const const_iterator &) const noexcept=default

Friends

• class tzdb_list

5.325.1 Detailed Description

An iterator into the tzdb_list


As a extension, in libstdc++ each tzdb is reference-counted and the const_iterator type shares ownership of
the object it refers to. This ensures that a tzdb erased from the list will not be destroyed while there is an iterator that
refers to it.
The documentation for this class was generated from the following file:

• chrono

Generated by Doxygen
1802

5.326 std::const_mem_fun1_ref_t< _Ret, _Tp, _Arg > Class Template Reference


#include <stl_function.h>
Inheritance diagram for std::const_mem_fun1_ref_t< _Ret, _Tp, _Arg >:

std::binary_function
< _Tp, _Arg, _Ret >

std::const_mem_fun1
_ref_t< _Ret, _Tp, _Arg >

Public Types

• typedef _Tp first_argument_type


• typedef _Ret result_type
• typedef _Arg second_argument_type

Public Member Functions

• const_mem_fun1_ref_t (_Ret(_Tp::∗__pf)(_Arg) const)


• _Ret operator() (const _Tp &__r, _Arg __x) const

5.326.1 Detailed Description

template<typename _Ret, typename _Tp, typename _Arg>


class std::const_mem_fun1_ref_t< _Ret, _Tp, _Arg >

One of the adaptors for member pointers.

5.326.2 Member Typedef Documentation

first_argument_type

_Tp std::binary_function< _Tp, _Arg, _Ret >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

_Ret std::binary_function< _Tp, _Arg, _Ret >::result_type [inherited]


result_type is the return type

second_argument_type

_Arg std::binary_function< _Tp, _Arg, _Ret >::second_argument_type [inherited]


second_argument_type is the type of the second argument

Generated by Doxygen
5.327 std::const_mem_fun1_t< _Ret, _Tp, _Arg > Class Template Reference 1803

The documentation for this class was generated from the following file:

• stl_function.h

5.327 std::const_mem_fun1_t< _Ret, _Tp, _Arg > Class Template Reference


#include <stl_function.h>
Inheritance diagram for std::const_mem_fun1_t< _Ret, _Tp, _Arg >:

std::binary_function
< const _Tp *, _Arg,
_Ret >

std::const_mem_fun1
_t< _Ret, _Tp, _Arg >

Public Types

• typedef const _Tp ∗ first_argument_type


• typedef _Ret result_type
• typedef _Arg second_argument_type

Public Member Functions

• const_mem_fun1_t (_Ret(_Tp::∗__pf)(_Arg) const)


• _Ret operator() (const _Tp ∗__p, _Arg __x) const

5.327.1 Detailed Description

template<typename _Ret, typename _Tp, typename _Arg>


class std::const_mem_fun1_t< _Ret, _Tp, _Arg >

One of the adaptors for member pointers.

5.327.2 Member Typedef Documentation

first_argument_type

const _Tp ∗ std::binary_function< const _Tp ∗, _Arg, _Ret >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

_Ret std::binary_function< const _Tp ∗, _Arg, _Ret >::result_type [inherited]


result_type is the return type

Generated by Doxygen
1804

second_argument_type

_Arg std::binary_function< const _Tp ∗, _Arg, _Ret >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this class was generated from the following file:

• stl_function.h

5.328 std::const_mem_fun_ref_t< _Ret, _Tp > Class Template Reference


#include <stl_function.h>
Inheritance diagram for std::const_mem_fun_ref_t< _Ret, _Tp >:

std::unary_function
< _Tp, _Ret >

std::const_mem_fun
_ref_t< _Ret, _Tp >

Public Types

• typedef _Tp argument_type


• typedef _Ret result_type

Public Member Functions

• const_mem_fun_ref_t (_Ret(_Tp::∗__pf)() const)


• _Ret operator() (const _Tp &__r) const

5.328.1 Detailed Description

template<typename _Ret, typename _Tp>


class std::const_mem_fun_ref_t< _Ret, _Tp >

One of the adaptors for member pointers.

5.328.2 Member Typedef Documentation

argument_type

_Tp std::unary_function< _Tp, _Ret >::argument_type [inherited]


argument_type is the type of the argument

Generated by Doxygen
5.329 std::const_mem_fun_t< _Ret, _Tp > Class Template Reference 1805

result_type

_Ret std::unary_function< _Tp, _Ret >::result_type [inherited]


result_type is the return type
The documentation for this class was generated from the following file:

• stl_function.h

5.329 std::const_mem_fun_t< _Ret, _Tp > Class Template Reference


#include <stl_function.h>
Inheritance diagram for std::const_mem_fun_t< _Ret, _Tp >:

std::unary_function
< const _Tp *, _Ret >

std::const_mem_fun
_t< _Ret, _Tp >

Public Types

• typedef const _Tp ∗ argument_type


• typedef _Ret result_type

Public Member Functions

• const_mem_fun_t (_Ret(_Tp::∗__pf)() const)


• _Ret operator() (const _Tp ∗__p) const

5.329.1 Detailed Description

template<typename _Ret, typename _Tp>


class std::const_mem_fun_t< _Ret, _Tp >

One of the adaptors for member pointers.

5.329.2 Member Typedef Documentation

argument_type

const _Tp ∗ std::unary_function< const _Tp ∗, _Ret >::argument_type [inherited]


argument_type is the type of the argument

Generated by Doxygen
1806

result_type

_Ret std::unary_function< const _Tp ∗, _Ret >::result_type [inherited]


result_type is the return type
The documentation for this class was generated from the following file:

• stl_function.h

5.330 __gnu_cxx::constant_binary_fun< _Result, _Arg1, _Arg2 > Struct Template


Reference
#include <functional>

Public Types

• typedef _Arg1 first_argument_type


• typedef _Result result_type
• typedef _Arg2 second_argument_type

Public Member Functions

• constant_binary_fun (const _Result &__v)


• const result_type & operator() (const _Arg1 &, const _Arg2 &) const

Public Attributes

• _Result _M_val

5.330.1 Detailed Description

template<class _Result, class _Arg1 = _Result, class _Arg2 = _Arg1>


struct __gnu_cxx::constant_binary_fun< _Result, _Arg1, _Arg2 >

An SGI extension .
The documentation for this struct was generated from the following file:

• ext/functional

5.331 __gnu_parallel::constant_size_blocks_tag Struct Reference


#include <tags.h>

Generated by Doxygen
5.332 __gnu_cxx::constant_unary_fun< _Result, _Argument > Struct Template Reference 1807

Inheritance diagram for __gnu_parallel::constant_size_blocks_tag:

__gnu_parallel::find_tag

__gnu_parallel::constant
_size_blocks_tag

5.331.1 Detailed Description

Selects the constant block size variant for std::find().

See also

_GLIBCXX_FIND_CONSTANT_SIZE_BLOCKS

The documentation for this struct was generated from the following file:

• tags.h

5.332 __gnu_cxx::constant_unary_fun< _Result, _Argument > Struct Template Reference


#include <functional>

Public Types

• typedef _Argument argument_type


• typedef _Result result_type

Public Member Functions

• constant_unary_fun (const _Result &__v)


• const result_type & operator() (const _Argument &) const

Public Attributes

• result_type _M_val

5.332.1 Detailed Description

template<class _Result, class _Argument = _Result>


struct __gnu_cxx::constant_unary_fun< _Result, _Argument >

An SGI extension .
The documentation for this struct was generated from the following file:

• ext/functional

Generated by Doxygen
1808

5.333 __gnu_cxx::constant_void_fun< _Result > Struct Template Reference


#include <functional>

Public Types

• typedef _Result result_type

Public Member Functions

• constant_void_fun (const _Result &__v)


• const result_type & operator() () const

Public Attributes

• result_type _M_val

5.333.1 Detailed Description

template<class _Result>
struct __gnu_cxx::constant_void_fun< _Result >

An SGI extension .
The documentation for this struct was generated from the following file:

• ext/functional

5.334 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, Tag, Policy_Tl


> Struct Template Reference
5.334.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Tag, typename Policy_Tl = null_type>
struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, Tag, Policy_Tl >

Dispatch mechanism, primary template for associative types.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.335 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc,


binary_heap_tag, null_type > Struct Template Reference
#include <priority_queue_base_dispatch.hpp>

Public Types

• typedef binary_heap< _VTp, Cmp_Fn, _Alloc > type

5.335.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc>


struct __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, binary_heap_tag, null_type >

Specialization for binary_heap.

Generated by Doxygen
5.336 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, binomial_heap_tag, null_type
> Struct Template Reference 1809

5.335.2 Member Typedef Documentation

type

template<typename _VTp , typename Cmp_Fn , typename _Alloc >


binary_heap<_VTp, Cmp_Fn, _Alloc> __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _←-
Alloc, binary_heap_tag, null_type >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• priority_queue_base_dispatch.hpp

5.336 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc,


binomial_heap_tag, null_type > Struct Template Reference
#include <priority_queue_base_dispatch.hpp>

Public Types

• typedef binomial_heap< _VTp, Cmp_Fn, _Alloc > type

5.336.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc>


struct __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, binomial_heap_tag, null_type >

Specialization for binomial_heap.

5.336.2 Member Typedef Documentation

type

template<typename _VTp , typename Cmp_Fn , typename _Alloc >


binomial_heap<_VTp, Cmp_Fn, _Alloc> __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, ←-
_Alloc, binomial_heap_tag, null_type >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• priority_queue_base_dispatch.hpp

5.337 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc,


pairing_heap_tag, null_type > Struct Template Reference
#include <priority_queue_base_dispatch.hpp>

Public Types

• typedef pairing_heap< _VTp, Cmp_Fn, _Alloc > type

5.337.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc>


struct __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, pairing_heap_tag, null_type >

Specialization for pairing_heap.

Generated by Doxygen
1810

5.337.2 Member Typedef Documentation

type

template<typename _VTp , typename Cmp_Fn , typename _Alloc >


pairing_heap<_VTp, Cmp_Fn, _Alloc> __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _←-
Alloc, pairing_heap_tag, null_type >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• priority_queue_base_dispatch.hpp

5.338 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc,


rc_binomial_heap_tag, null_type > Struct Template Reference
#include <priority_queue_base_dispatch.hpp>

Public Types

• typedef rc_binomial_heap< _VTp, Cmp_Fn, _Alloc > type

5.338.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc>


struct __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, rc_binomial_heap_tag, null_type
>
Specialization for rc_binary_heap.

5.338.2 Member Typedef Documentation

type

template<typename _VTp , typename Cmp_Fn , typename _Alloc >


rc_binomial_heap<_VTp, Cmp_Fn, _Alloc> __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn,
_Alloc, rc_binomial_heap_tag, null_type >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• priority_queue_base_dispatch.hpp

5.339 __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc,


thin_heap_tag, null_type > Struct Template Reference
#include <priority_queue_base_dispatch.hpp>

Public Types

• typedef thin_heap< _VTp, Cmp_Fn, _Alloc > type

5.339.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc>


struct __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _Alloc, thin_heap_tag, null_type >

Specialization for thin_heap.

Generated by Doxygen
5.340 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, cc_hash_tag, Policy_Tl > Struct
Template Reference 1811

5.339.2 Member Typedef Documentation

type

template<typename _VTp , typename Cmp_Fn , typename _Alloc >


thin_heap<_VTp, Cmp_Fn, _Alloc> __gnu_pbds::detail::container_base_dispatch< _VTp, Cmp_Fn, _←-
Alloc, thin_heap_tag, null_type >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• priority_queue_base_dispatch.hpp

5.340 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, cc_hash_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef cc_ht_map< Key, Mapped, at0t, at1t, _Alloc, at3t::value, at4t, at2t > type

5.340.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, cc_hash_tag, Policy_Tl >

Specialization colision-chaining hash map.

5.340.2 Member Typedef Documentation

type

template<typename Key , typename Mapped , typename _Alloc , typename Policy_Tl >


cc_ht_map<Key, Mapped, at0t, at1t, _Alloc, at3t::value, at4t, at2t> __gnu_pbds::detail::container_base_dispatch<
Key, Mapped, _Alloc, cc_hash_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.341 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, gp_hash_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef gp_ht_map< Key, Mapped, at0t, at1t, _Alloc, at3t::value, at4t, at5t, at2t > type

5.341.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, gp_hash_tag, Policy_Tl >

Specialization general-probe hash map.

Generated by Doxygen
1812

5.341.2 Member Typedef Documentation

type

template<typename Key , typename Mapped , typename _Alloc , typename Policy_Tl >


gp_ht_map<Key, Mapped, at0t, at1t, _Alloc, at3t::value, at4t, at5t, at2t> __gnu_pbds::detail::container_base_disp
Key, Mapped, _Alloc, gp_hash_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.342 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc,


list_update_tag, Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef lu_map< Key, Mapped, at0t, _Alloc, at1t > type

5.342.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, list_update_tag, Policy_Tl >

Specialization for list-update map.

5.342.2 Member Typedef Documentation

type

template<typename Key , typename Mapped , typename _Alloc , typename Policy_Tl >


lu_map<Key, Mapped, at0t, _Alloc, at1t> __gnu_pbds::detail::container_base_dispatch< Key, Mapped,
_Alloc, list_update_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.343 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, ov_tree_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef ov_tree_map< Key, Mapped, at0t, at1t, _Alloc > type

5.343.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, ov_tree_tag, Policy_Tl >

Specialization ordered-vector tree map.

Generated by Doxygen
5.344 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, pat_trie_tag, Policy_Tl > Struct
Template Reference 1813

5.343.2 Member Typedef Documentation

type

template<typename Key , typename Mapped , typename _Alloc , typename Policy_Tl >


ov_tree_map<Key, Mapped, at0t, at1t, _Alloc> __gnu_pbds::detail::container_base_dispatch< Key,
Mapped, _Alloc, ov_tree_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.344 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, pat_trie_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef pat_trie_map< Key, Mapped, at1t, _Alloc > type

5.344.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, pat_trie_tag, Policy_Tl >

Specialization for PATRICIA trie map.


The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.345 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, rb_tree_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef rb_tree_map< Key, Mapped, at0t, at1t, _Alloc > type

5.345.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, rb_tree_tag, Policy_Tl >

Specialization for R-B tree map.

5.345.2 Member Typedef Documentation

type

template<typename Key , typename Mapped , typename _Alloc , typename Policy_Tl >


rb_tree_map<Key, Mapped, at0t, at1t, _Alloc> __gnu_pbds::detail::container_base_dispatch< Key,
Mapped, _Alloc, rb_tree_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

Generated by Doxygen
1814

5.346 __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc,


splay_tree_tag, Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef splay_tree_map< Key, Mapped, at0t, at1t, _Alloc > type

5.346.1 Detailed Description

template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, Mapped, _Alloc, splay_tree_tag, Policy_Tl >

Specialization splay tree map.

5.346.2 Member Typedef Documentation

type

template<typename Key , typename Mapped , typename _Alloc , typename Policy_Tl >


splay_tree_map<Key, Mapped, at0t, at1t, _Alloc> __gnu_pbds::detail::container_base_dispatch< Key,
Mapped, _Alloc, splay_tree_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.347 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, cc_hash_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef cc_ht_set< Key, null_type, at0t, at1t, _Alloc, at3t::value, at4t, at2t > type

5.347.1 Detailed Description

template<typename Key, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, cc_hash_tag, Policy_Tl >

Specialization colision-chaining hash set.

5.347.2 Member Typedef Documentation

type

template<typename Key , typename _Alloc , typename Policy_Tl >


cc_ht_set<Key, null_type, at0t, at1t, _Alloc, at3t::value, at4t, at2t> __gnu_pbds::detail::container_base_dispatc
Key, null_type, _Alloc, cc_hash_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

Generated by Doxygen
5.348 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, gp_hash_tag, Policy_Tl >
Struct Template Reference 1815

5.348 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, gp_hash_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef gp_ht_set< Key, null_type, at0t, at1t, _Alloc, at3t::value, at4t, at5t, at2t > type

5.348.1 Detailed Description

template<typename Key, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, gp_hash_tag, Policy_Tl >

Specialization general-probe hash set.

5.348.2 Member Typedef Documentation

type

template<typename Key , typename _Alloc , typename Policy_Tl >


gp_ht_set<Key, null_type, at0t, at1t, _Alloc, at3t::value, at4t, at5t, at2t> __gnu_pbds::detail::container_base_d
Key, null_type, _Alloc, gp_hash_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.349 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc,


list_update_tag, Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef lu_set< Key, null_type, at0t, _Alloc, at1t > type

5.349.1 Detailed Description

template<typename Key, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, list_update_tag, Policy_Tl >

Specialization for list-update set.

5.349.2 Member Typedef Documentation

type

template<typename Key , typename _Alloc , typename Policy_Tl >


lu_set<Key, null_type, at0t, _Alloc, at1t> __gnu_pbds::detail::container_base_dispatch< Key,
null_type, _Alloc, list_update_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

Generated by Doxygen
1816

5.350 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, ov_tree_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef ov_tree_set< Key, null_type, at0t, at1t, _Alloc > type

5.350.1 Detailed Description

template<typename Key, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, ov_tree_tag, Policy_Tl >

Specialization ordered-vector tree set.

5.350.2 Member Typedef Documentation

type

template<typename Key , typename _Alloc , typename Policy_Tl >


ov_tree_set<Key, null_type, at0t, at1t, _Alloc> __gnu_pbds::detail::container_base_dispatch< Key,
null_type, _Alloc, ov_tree_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.351 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, pat_trie_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef pat_trie_set< Key, null_type, at1t, _Alloc > type

5.351.1 Detailed Description

template<typename Key, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, pat_trie_tag, Policy_Tl >

Specialization for PATRICIA trie set.

5.351.2 Member Typedef Documentation

type

template<typename Key , typename _Alloc , typename Policy_Tl >


pat_trie_set<Key, null_type, at1t, _Alloc> __gnu_pbds::detail::container_base_dispatch< Key,
null_type, _Alloc, pat_trie_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

Generated by Doxygen
5.352 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, rb_tree_tag, Policy_Tl > Struct
Template Reference 1817

5.352 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, rb_tree_tag,


Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef rb_tree_set< Key, null_type, at0t, at1t, _Alloc > type

5.352.1 Detailed Description

template<typename Key, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, rb_tree_tag, Policy_Tl >

Specialization for R-B tree set.


The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.353 __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc,


splay_tree_tag, Policy_Tl > Struct Template Reference
#include <container_base_dispatch.hpp>

Public Types

• typedef splay_tree_set< Key, null_type, at0t, at1t, _Alloc > type

5.353.1 Detailed Description

template<typename Key, typename _Alloc, typename Policy_Tl>


struct __gnu_pbds::detail::container_base_dispatch< Key, null_type, _Alloc, splay_tree_tag, Policy_Tl >

Specialization splay tree set.

5.353.2 Member Typedef Documentation

type

template<typename Key , typename _Alloc , typename Policy_Tl >


splay_tree_set<Key, null_type, at0t, at1t, _Alloc> __gnu_pbds::detail::container_base_dispatch<
Key, null_type, _Alloc, splay_tree_tag, Policy_Tl >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• container_base_dispatch.hpp

5.354 __gnu_pbds::container_error Struct Reference


#include <exception.hpp>

Generated by Doxygen
1818

Inheritance diagram for __gnu_pbds::container_error:

std::exception

std::logic_error

__gnu_pbds::container
_error

__gnu_pbds::insert __gnu_pbds::resize
__gnu_pbds::join_error
_error _error

Public Member Functions

• virtual const char ∗ what () const noexcept

5.354.1 Detailed Description

Base class for exceptions.

5.354.2 Member Function Documentation

what()

virtual const char ∗ std::logic_error::what () const [virtual], [noexcept], [inherited]


Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::exception.


Reimplemented in std::future_error.
The documentation for this struct was generated from the following file:

• exception.hpp

5.355 __gnu_pbds::container_tag Struct Reference


#include <tag_and_trait.hpp>

Generated by Doxygen
5.356 __gnu_pbds::container_traits< Cntnr > Struct Template Reference 1819

Inheritance diagram for __gnu_pbds::container_tag:

__gnu_pbds::ov_tree_tag

__gnu_pbds::rb_tree_tag
__gnu_pbds::tree_tag

__gnu_pbds::splay_tree_tag

__gnu_pbds::basic_branch_tag __gnu_pbds::trie_tag
__gnu_pbds::pat_trie_tag

__gnu_pbds::basic_hash_tag __gnu_pbds::cc_hash_tag

__gnu_pbds::associative_tag
__gnu_pbds::list_update_tag __gnu_pbds::gp_hash_tag

__gnu_pbds::binary
_heap_tag

__gnu_pbds::binomial
_heap_tag

__gnu_pbds::priority __gnu_pbds::pairing
__gnu_pbds::container_tag
_queue_tag _heap_tag

__gnu_pbds::rc_binomial
_heap_tag

__gnu_pbds::sequence_tag
__gnu_pbds::thin_heap_tag

__gnu_pbds::string_tag

5.355.1 Detailed Description

Base data structure tag.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.356 __gnu_pbds::container_traits< Cntnr > Struct Template Reference


#include <tag_and_trait.hpp>
Inheritance diagram for __gnu_pbds::container_traits< Cntnr >:

__gnu_pbds::container
_traits_base< Cntnr::
container_category >

__gnu_pbds::container
_traits< Cntnr >

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }

Generated by Doxygen
1820

• typedef container_traits_base< container_category > base_type


• typedef Cntnr::container_category container_category
• typedef Cntnr container_type
• typedef base_type::invalidation_guarantee invalidation_guarantee

5.356.1 Detailed Description

template<typename Cntnr>
struct __gnu_pbds::container_traits< Cntnr >

Container traits.

5.356.2 Member Enumeration Documentation

anonymous enum

template<typename Cntnr >


anonymous enum

Enumerator

order_preserving True only if Cntnr objects guarantee storing keys by order.


erase_can_throw True only if erasing a key can throw.
split_join_can_throw True only if split or join operations can throw.
reverse_iteration True only reverse iterators are supported.

The documentation for this struct was generated from the following file:
• tag_and_trait.hpp

5.357 __gnu_pbds::container_traits_base< _Tag > Struct Template Reference


5.357.1 Detailed Description

template<typename _Tag>
struct __gnu_pbds::container_traits_base< _Tag >

Primary template, container traits base.


The documentation for this struct was generated from the following file:
• tag_and_trait.hpp

5.358 __gnu_pbds::container_traits_base< binary_heap_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef binary_heap_tag container_category
• typedef basic_invalidation_guarantee invalidation_guarantee

5.358.1 Detailed Description

Specialization, binary heap.


The documentation for this struct was generated from the following file:
• tag_and_trait.hpp

Generated by Doxygen
5.359 __gnu_pbds::container_traits_base< binomial_heap_tag > Struct Reference 1821

5.359 __gnu_pbds::container_traits_base< binomial_heap_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef binomial_heap_tag container_category
• typedef point_invalidation_guarantee invalidation_guarantee

5.359.1 Detailed Description

Specialization, binomial heap.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.360 __gnu_pbds::container_traits_base< cc_hash_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef cc_hash_tag container_category
• typedef point_invalidation_guarantee invalidation_guarantee

5.360.1 Detailed Description

Specialization, cc hash.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.361 __gnu_pbds::container_traits_base< gp_hash_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef gp_hash_tag container_category
• typedef basic_invalidation_guarantee invalidation_guarantee

5.361.1 Detailed Description

Specialization, gp hash.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.362 __gnu_pbds::container_traits_base< list_update_tag > Struct Reference


#include <tag_and_trait.hpp>

Generated by Doxygen
1822

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef list_update_tag container_category
• typedef point_invalidation_guarantee invalidation_guarantee

5.362.1 Detailed Description

Specialization, list update.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.363 __gnu_pbds::container_traits_base< ov_tree_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef ov_tree_tag container_category
• typedef basic_invalidation_guarantee invalidation_guarantee

5.363.1 Detailed Description

Specialization, ov tree.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.364 __gnu_pbds::container_traits_base< pairing_heap_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef pairing_heap_tag container_category
• typedef point_invalidation_guarantee invalidation_guarantee

5.364.1 Detailed Description

Specialization, pairing heap.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.365 __gnu_pbds::container_traits_base< pat_trie_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef pat_trie_tag container_category
• typedef range_invalidation_guarantee invalidation_guarantee

Generated by Doxygen
5.366 __gnu_pbds::container_traits_base< rb_tree_tag > Struct Reference 1823

5.365.1 Detailed Description

Specialization, pat trie.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.366 __gnu_pbds::container_traits_base< rb_tree_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef rb_tree_tag container_category
• typedef range_invalidation_guarantee invalidation_guarantee

5.366.1 Detailed Description

Specialization, rb tree.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.367 __gnu_pbds::container_traits_base< rc_binomial_heap_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef rc_binomial_heap_tag container_category
• typedef point_invalidation_guarantee invalidation_guarantee

5.367.1 Detailed Description

Specialization, rc binomial heap.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.368 __gnu_pbds::container_traits_base< splay_tree_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef splay_tree_tag container_category
• typedef range_invalidation_guarantee invalidation_guarantee

5.368.1 Detailed Description

Specialization, splay tree.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

Generated by Doxygen
1824

5.369 __gnu_pbds::container_traits_base< thin_heap_tag > Struct Reference


#include <tag_and_trait.hpp>

Public Types

• enum { order_preserving , erase_can_throw , split_join_can_throw , reverse_iteration }


• typedef thin_heap_tag container_category
• typedef point_invalidation_guarantee invalidation_guarantee

5.369.1 Detailed Description

Specialization, thin heap.


The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.370 std::contiguous_iterator_tag Struct Reference


#include <stl_iterator_base_types.h>
Inheritance diagram for std::contiguous_iterator_tag:

std::input_iterator_tag

std::forward_iterator_tag

std::bidirectional
_iterator_tag

std::random_access
_iterator_tag

std::contiguous_iterator_tag

Generated by Doxygen
5.371 std::counted_iterator< _It > Class Template Reference 1825

5.370.1 Detailed Description

Contiguous iterators point to objects stored contiguously in memory.


The documentation for this struct was generated from the following file:

• stl_iterator_base_types.h

5.371 std::counted_iterator< _It > Class Template Reference


#include <stl_iterator.h>

Public Types

• using difference_type
• using iterator_type

Public Member Functions

• constexpr counted_iterator (_It __i, iter_difference_t< _It > __n)


• template<typename _It2 >
requires convertible_to<const _It2&, _It>
constexpr counted_iterator (const counted_iterator< _It2 > &__x)
• constexpr _It base () &&noexcept(is_nothrow_move_constructible_v< _It >)
• constexpr const _It & base () const &noexcept
• constexpr iter_difference_t< _It > count () const noexcept
• constexpr decltype(auto) operator∗ () const noexcept(noexcept(∗_M_current))
• constexpr decltype(auto) operator∗ () noexcept(noexcept(∗_M_current))
• constexpr counted_iterator operator+ (iter_difference_t< _It > __n) const
• constexpr counted_iterator & operator++ ()
• constexpr decltype(auto) operator++ (int)
• constexpr counted_iterator operator++ (int)
• constexpr counted_iterator & operator+= (iter_difference_t< _It > __n)
• constexpr counted_iterator operator- (iter_difference_t< _It > __n) const
• constexpr counted_iterator & operator-- ()
• constexpr counted_iterator operator-- (int)
• constexpr counted_iterator & operator-= (iter_difference_t< _It > __n)
• constexpr auto operator-> () const noexcept
• template<typename _It2 >
requires assignable_from<_It&, const _It2&>
constexpr counted_iterator & operator= (const counted_iterator< _It2 > &__x)
• constexpr decltype(auto) operator[ ] (iter_difference_t< _It > __n) const noexcept(noexcept(_M_current[__n]))

Friends

• constexpr iter_rvalue_reference_t< _It > iter_move (const counted_iterator &__i) noexcept(noexcept(ranges←-


::iter_move(__i._M_current)))
• template<indirectly_swappable< _It > _It2>
constexpr void iter_swap (const counted_iterator &__x, const counted_iterator< _It2 > &__y) noexcept(noexcept(ranges←-
::iter_swap(__x._M_current, __y._M_current)))
• constexpr counted_iterator operator+ (iter_difference_t< _It > __n, const counted_iterator &__x)
• template<common_with< _It > _It2>
constexpr iter_difference_t< _It2 > operator- (const counted_iterator &__x, const counted_iterator< _It2 > &←-
__y)
• constexpr iter_difference_t< _It > operator- (const counted_iterator &__x, default_sentinel_t)

Generated by Doxygen
1826

• constexpr iter_difference_t< _It > operator- (default_sentinel_t, const counted_iterator &__y)


• template<common_with< _It > _It2>
constexpr strong_ordering operator<=> (const counted_iterator &__x, const counted_iterator< _It2 > &__y)
• template<common_with< _It > _It2>
constexpr bool operator== (const counted_iterator &__x, const counted_iterator< _It2 > &__y)
• constexpr bool operator== (const counted_iterator &__x, default_sentinel_t)

5.371.1 Detailed Description

template<input_or_output_iterator _It>
class std::counted_iterator< _It >

An iterator adaptor that keeps track of the distance to the end.


The documentation for this class was generated from the following file:

• bits/stl_iterator.h

5.372 std::ctype< _CharT > Class Template Reference


#include <locale_facets.h>
Inheritance diagram for std::ctype< _CharT >:

std::locale::facet std::ctype_base

std::__ctype_abstract
_base< _CharT >

std::ctype< _CharT >

std::ctype_byname<
_CharT >

Public Types

• typedef const int ∗ __to_type


• typedef _CharT char_type
• typedef __ctype_abstract_base< _CharT >::mask mask

Generated by Doxygen
5.372 std::ctype< _CharT > Class Template Reference 1827

Public Member Functions

• ctype (size_t __refs=0)


• const char_type ∗ is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const
• bool is (mask __m, char_type __c) const
• char narrow (char_type __c, char __dfault) const
• const char_type ∗ narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to) const
• const char_type ∗ scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ tolower (char_type ∗__lo, const char_type ∗__hi) const
• char_type tolower (char_type __c) const
• const char_type ∗ toupper (char_type ∗__lo, const char_type ∗__hi) const
• char_type toupper (char_type __c) const
• char_type widen (char __c) const
• const char ∗ widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Public Attributes

• static const mask alnum


• static const mask alpha
• static const mask blank
• static const mask cntrl
• static const mask digit
• static const mask graph
• static locale::id id
• static const mask lower
• static const mask print
• static const mask punct
• static const mask space
• static const mask upper
• static const mask xdigit

Protected Member Functions

• virtual const char_type ∗ do_is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const
• virtual bool do_is (mask __m, char_type __c) const
• virtual char do_narrow (char_type, char __dfault) const
• virtual const char_type ∗ do_narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to)
const
• virtual const char_type ∗ do_scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• virtual const char_type ∗ do_scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• virtual const char_type ∗ do_tolower (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_tolower (char_type __c) const
• virtual const char_type ∗ do_toupper (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_toupper (char_type __c) const
• virtual char_type do_widen (char __c) const
• virtual const char ∗ do_widen (const char ∗__lo, const char ∗__hi, char_type ∗__dest) const

Generated by Doxygen
1828

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

5.372.1 Detailed Description

template<typename _CharT>
class std::ctype< _CharT >

Primary class template ctype facet.


This template class defines classification and conversion functions for character sets. It wraps cctype functionality.
Ctype gets used by streams for many I/O operations.
This template provides the protected virtual functions the developer will have to replace in a derived class or specializa-
tion to make a working facet. The public functions that access them are defined in __ctype_abstract_base, to allow for
implementation flexibility. See ctype<wchar_t> for an example. The functions are documented in __ctype_abstract_←-
base.
Note: implementations are provided for all the protected virtual functions, but will likely not be useful.

5.372.2 Member Function Documentation

do_is() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_is (
const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [protected], [virtual]
Return a mask array.
This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the input.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

do_is() [2/2]

template<typename _CharT >


virtual bool std::ctype< _CharT >::do_is (

Generated by Doxygen
5.372 std::ctype< _CharT > Class Template Reference 1829

mask __m,
char_type __c) const [protected], [virtual]
Test char_type classification.
This function finds a mask M for c and compares it to mask m.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Parameters

_←- The char_type to find the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

Implements std::__ctype_abstract_base< _CharT >.

do_narrow() [1/2]

template<typename _CharT >


virtual char std::ctype< _CharT >::do_narrow (
char_type __c,
char __dfault) const [protected], [virtual]
Narrow char_type to char.
This virtual function converts the argument to char using the simplest reasonable transformation. If the conversion fails,
dfault is returned instead.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char_type to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

Implements std::__ctype_abstract_base< _CharT >.


Referenced by std::ctype< char >::narrow(), and std::ctype< char >::narrow().

do_narrow() [2/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_narrow (
const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [protected], [virtual]
Narrow char_type array to char.

Generated by Doxygen
1830

This virtual function converts each char_type in the range [__lo,__hi) to char using the simplest reasonable transforma-
tion and writes the results to the destination array. For any element in the input that cannot be converted, __dfault is
used instead.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

do_scan_is()

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_scan_is (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Find char_type matching mask.
This function searches for and returns the first char_type c in [__lo,__hi) for which is(__m,c) is true.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a matching char_type if found, else __hi.

Implements std::__ctype_abstract_base< _CharT >.

do_scan_not()

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_scan_not (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]

Generated by Doxygen
5.372 std::ctype< _CharT > Class Template Reference 1831

Find char_type not matching mask.


This function searches for and returns a pointer to the first char_type c of [lo,hi) for which is(m,c) is false.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a non-matching char_type if found, else __hi.

Implements std::__ctype_abstract_base< _CharT >.

do_tolower() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_tolower (
char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Convert array to lowercase.
This virtual function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain
untouched.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

do_tolower() [2/2]

template<typename _CharT >


virtual char_type std::ctype< _CharT >::do_tolower (
char_type __c) const [protected], [virtual]
Convert to lowercase.
This virtual function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argu-
ment.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Generated by Doxygen
1832

Parameters
_←- The char_type to convert.
_c

Returns

The lowercase char_type if convertible, else __c.

Implements std::__ctype_abstract_base< _CharT >.


Referenced by std::ctype< char >::tolower(), and std::ctype< char >::tolower().

do_toupper() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_toupper (
char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Convert array to uppercase.
This virtual function converts each char_type in the range [__lo,__hi) to uppercase if possible. Other elements remain
untouched.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

do_toupper() [2/2]

template<typename _CharT >


virtual char_type std::ctype< _CharT >::do_toupper (
char_type __c) const [protected], [virtual]
Convert to uppercase.
This virtual function converts the char_type argument to uppercase if possible. If not possible (for example, '2'), returns
the argument.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters
_←- The char_type to convert.
_c

Generated by Doxygen
5.372 std::ctype< _CharT > Class Template Reference 1833

Returns

The uppercase char_type if convertible, else __c.

Implements std::__ctype_abstract_base< _CharT >.


Referenced by std::ctype< char >::toupper(), and std::ctype< char >::toupper().

do_widen() [1/2]

template<typename _CharT >


virtual char_type std::ctype< _CharT >::do_widen (
char __c) const [protected], [virtual]
Widen char.
This virtual function converts the char to char_type using the simplest reasonable transformation.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted char_type

Implements std::__ctype_abstract_base< _CharT >.


Referenced by std::ctype< char >::widen(), and std::ctype< char >::widen().

do_widen() [2/2]

template<typename _CharT >


virtual const char ∗ std::ctype< _CharT >::do_widen (
const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [protected], [virtual]
Widen char array.
This function converts each char in the input to char_type using the simplest reasonable transformation.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- Pointer to start range.
_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

Generated by Doxygen
1834

is() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::is (
const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [inline], [inherited]
Return a mask array.
This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the char array. It does so by returning the value of ctype<char_type>::do_is().

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_is().

is() [2/2]

template<typename _CharT >


bool std::__ctype_abstract_base< _CharT >::is (
mask __m,
char_type __c) const [inline], [inherited]
Test char_type classification.
This function finds a mask M for __c and compares it to mask __m. It does so by returning the value of ctype<char_←-
type>::do_is().

Parameters

_←- The char_type to compare the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

References std::__ctype_abstract_base< _CharT >::do_is().


Referenced by std::time_get< _CharT, _InIter >::get().

narrow() [1/2]

template<typename _CharT >


char std::__ctype_abstract_base< _CharT >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Narrow char_type to char.

Generated by Doxygen
5.372 std::ctype< _CharT > Class Template Reference 1835

This function converts the char_type to char using the simplest reasonable transformation. If the conversion fails, dfault
is returned instead. It does so by returning ctype<char_type>::do_narrow(__c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
1836

Parameters
__c The char_type to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

References std::__ctype_abstract_base< _CharT >::do_narrow().


Referenced by std::time_get< _CharT, _InIter >::do_get_year(), std::time_get< _CharT, _InIter >::get(), and
std::time_put< _CharT, _OutIter >::put().

narrow() [2/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::narrow (
const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [inline], [inherited]
Narrow array to char array.
This function converts each char_type in the input to char using the simplest reasonable transformation and writes the
results to the destination array. For any char_type in the input that cannot be converted, dfault is used instead. It does
so by returning ctype<char_type>::do_narrow(__lo, __hi, __dfault, __to).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_narrow().

scan_is()

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::scan_is (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Find char_type matching a mask.
This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is true. It does so by returning
ctype<char_type>::do_scan_is().

Generated by Doxygen
5.372 std::ctype< _CharT > Class Template Reference 1837

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to matching char_type if found, else __hi.

References std::__ctype_abstract_base< _CharT >::do_scan_is().

scan_not()

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::scan_not (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Find char_type not matching a mask.
This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is false. It does so by returning
ctype<char_type>::do_scan_not().

Parameters
_←- The mask to compare against.
_m
_←- Pointer to first char in range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to non-matching char if found, else __hi.

References std::__ctype_abstract_base< _CharT >::do_scan_not().

tolower() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::tolower (
char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to lowercase.
This function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain un-
touched. It does so by returning ctype<char_type>:: do_tolower(__lo, __hi).

Parameters

_←- Pointer to start of range.


_lo

Generated by Doxygen
1838

_←- Pointer to end of range.


_hi

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_tolower().

tolower() [2/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::tolower (
char_type __c) const [inline], [inherited]
Convert to lowercase.
This function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_tolower(c).

Parameters
_←- The char_type to convert.
_c

Returns

The lowercase char_type if convertible, else __c.

References std::__ctype_abstract_base< _CharT >::do_tolower().


Referenced by std::time_get< _CharT, _InIter >::get().

toupper() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::toupper (
char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to uppercase.
This function converts each char_type in the range [lo,hi) to uppercase if possible. Other elements remain untouched.
It does so by returning ctype<char_type>:: do_toupper(lo, hi).

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_toupper().

Generated by Doxygen
5.372 std::ctype< _CharT > Class Template Reference 1839

toupper() [2/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::toupper (
char_type __c) const [inline], [inherited]
Convert to uppercase.
This function converts the argument to uppercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_toupper().

Parameters
_←- The char_type to convert.
_c

Returns

The uppercase char_type if convertible, else __c.

References std::__ctype_abstract_base< _CharT >::do_toupper().


Referenced by std::time_get< _CharT, _InIter >::get().

widen() [1/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::widen (
char __c) const [inline], [inherited]
Widen char to char_type.
This function converts the char argument to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted char_type.

References std::__ctype_abstract_base< _CharT >::do_widen().


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), and
std::time_put< _CharT, _OutIter >::do_put().

widen() [2/2]

template<typename _CharT >


const char ∗ std::__ctype_abstract_base< _CharT >::widen (
const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline], [inherited]
Widen array to char_type.
This function converts each char in the input to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
1840

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_widen().

5.372.3 Member Data Documentation

id

template<typename _CharT >


locale::id std::ctype< _CharT >::id [static]
The facet id for ctype<char_type>
The documentation for this class was generated from the following files:

• locale_facets.h
• localefwd.h

5.373 std::ctype< char > Class Reference


#include <locale_facets.h>
Inheritance diagram for std::ctype< char >:

std::locale::facet std::ctype_base

std::ctype< char >

std::ctype_byname<
char >

Generated by Doxygen
5.373 std::ctype< char > Class Reference 1841

Public Types

• typedef const int ∗ __to_type


• typedef char char_type
• typedef unsigned short mask

Public Member Functions

• ctype (__c_locale __cloc, const mask ∗__table=0, bool __del=false, size_t __refs=0)
• ctype (const mask ∗__table=0, bool __del=false, size_t __refs=0)
• const char ∗ is (const char ∗__lo, const char ∗__hi, mask ∗__vec) const
• bool is (mask __m, char __c) const
• char narrow (char_type __c, char __dfault) const
• const char_type ∗ narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to) const
• const char ∗ scan_is (mask __m, const char ∗__lo, const char ∗__hi) const
• const char ∗ scan_not (mask __m, const char ∗__lo, const char ∗__hi) const
• const mask ∗ table () const throw ()
• const char_type ∗ tolower (char_type ∗__lo, const char_type ∗__hi) const
• char_type tolower (char_type __c) const
• const char_type ∗ toupper (char_type ∗__lo, const char_type ∗__hi) const
• char_type toupper (char_type __c) const
• char_type widen (char __c) const
• const char ∗ widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Public Member Functions

• static const mask ∗ classic_table () throw ()

Static Public Attributes

• static const mask alnum


• static const mask alpha
• static const mask blank
• static const mask cntrl
• static const mask digit
• static const mask graph
• static locale::id id
• static const mask lower
• static const mask print
• static const mask punct
• static const mask space
• static const size_t table_size
• static const mask upper
• static const mask xdigit

Protected Member Functions

• virtual ∼ctype ()
• virtual char do_narrow (char_type __c, char __dfault) const
• virtual const char_type ∗ do_narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to)
const
• virtual const char_type ∗ do_tolower (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_tolower (char_type __c) const

Generated by Doxygen
1842

• virtual const char_type ∗ do_toupper (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_toupper (char_type __c) const
• virtual char_type do_widen (char __c) const
• virtual const char ∗ do_widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Protected Attributes

• __c_locale _M_c_locale_ctype
• bool _M_del
• char _M_narrow [1+static_cast< unsigned char >(-1)]
• char _M_narrow_ok
• const mask ∗ _M_table
• __to_type _M_tolower
• __to_type _M_toupper
• char _M_widen [1+static_cast< unsigned char >(-1)]
• char _M_widen_ok

5.373.1 Detailed Description

The ctype<char> specialization.


This class defines classification and conversion functions for the char type. It gets used by char streams for many I/O
operations. The char specialization provides a number of optimizations as well.

5.373.2 Member Typedef Documentation

char_type

char std::ctype< char >::char_type


Typedef for the template parameter char.

5.373.3 Constructor & Destructor Documentation

ctype() [1/2]

std::ctype< char >::ctype (


const mask ∗ __table = 0,
bool __del = false,
size_t __refs = 0) [explicit]
Constructor performs initialization.
This is the constructor provided by the standard.

Parameters

__table If non-zero, table is used as the per-char mask. Else classic_table() is used.
__del If true, passes ownership of table to this facet.
__refs Passed to the base facet class.

Generated by Doxygen
5.373 std::ctype< char > Class Reference 1843

ctype() [2/2]

std::ctype< char >::ctype (


__c_locale __cloc,
const mask ∗ __table = 0,
bool __del = false,
size_t __refs = 0) [explicit]
Constructor performs static initialization.
This constructor is used to construct the initial C locale facet.

Parameters

__cloc Handle to C locale data.


__table If non-zero, table is used as the per-char mask.
__del If true, passes ownership of table to this facet.
__refs Passed to the base facet class.

∼ctype()
virtual std::ctype< char >::∼ctype () [protected], [virtual]
Destructor.
This function deletes table() if del was true in the constructor.

5.373.4 Member Function Documentation

classic_table()

static const mask ∗ std::ctype< char >::classic_table () throw ( ) [static]


Returns a pointer to the C locale mask table.

do_narrow() [1/2]

virtual char std::ctype< char >::do_narrow (


char_type __c,
char __dfault) const [inline], [protected], [virtual]
Narrow char.
This virtual function converts the char to char using the simplest reasonable transformation. If the conversion fails, dfault
is returned instead. For an underived ctype<char> facet, c will be returned unchanged.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

Generated by Doxygen
1844

do_narrow() [2/2]

virtual const char_type ∗ std::ctype< char >::do_narrow (


const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [inline], [protected], [virtual]
Narrow char array to char array.
This virtual function converts each char in the range [lo,hi) to char using the simplest reasonable transformation and
writes the results to the destination array. For any char in the input that cannot be converted, dfault is used instead. For
an underived ctype<char> facet, the argument will be copied unchanged.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

do_tolower() [1/2]

virtual const char_type ∗ std::ctype< char >::do_tolower (


char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Convert array to lowercase.
This virtual function converts each char in the range [lo,hi) to lowercase if possible. Other chars remain untouched.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

do_tolower() [2/2]

virtual char_type std::ctype< char >::do_tolower (


char_type __c) const [protected], [virtual]
Convert to lowercase.

Generated by Doxygen
5.373 std::ctype< char > Class Reference 1845

This virtual function converts the char argument to lowercase if possible. If not possible (for example, '2'), returns the
argument.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters
_←- The char to convert.
_c

Returns

The lowercase char if convertible, else __c.

do_toupper() [1/2]

virtual const char_type ∗ std::ctype< char >::do_toupper (


char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Convert array to uppercase.
This virtual function converts each char in the range [lo,hi) to uppercase if possible. Other chars remain untouched.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

do_toupper() [2/2]

virtual char_type std::ctype< char >::do_toupper (


char_type __c) const [protected], [virtual]
Convert to uppercase.
This virtual function converts the char argument to uppercase if possible. If not possible (for example, '2'), returns the
argument.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters
_←- The char to convert.
_c

Returns

The uppercase char if convertible, else __c.

Generated by Doxygen
1846

do_widen() [1/2]

virtual char_type std::ctype< char >::do_widen (


char __c) const [inline], [protected], [virtual]
Widen char.
This virtual function converts the char to char using the simplest reasonable transformation. For an underived
ctype<char> facet, the argument will be returned unchanged.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted character.

do_widen() [2/2]

virtual const char ∗ std::ctype< char >::do_widen (


const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline], [protected], [virtual]
Widen char array.
This function converts each char in the range [lo,hi) to char using the simplest reasonable transformation. For an
underived ctype<char> facet, the argument will be copied unchanged.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

is() [1/2]

const char ∗ std::ctype< char >::is (


const char ∗ __lo,
const char ∗ __hi,
mask ∗ __vec) const [inline]
Return a mask array.
This function finds the mask for each char in the range [lo, hi) and successively writes it to vec. vec must have as many
elements as the char array.

Generated by Doxygen
5.373 std::ctype< char > Class Reference 1847

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

is() [2/2]

bool std::ctype< char >::is (


mask __m,
char __c) const [inline]
Test char classification.
This function compares the mask table[c] to __m.

Parameters

_←- The char to compare the mask of.


_c
_←- The mask to compare against.
_m

Returns

True if __m & table[__c] is true, false otherwise.

narrow() [1/2]

char std::ctype< char >::narrow (


char_type __c,
char __dfault) const [inline]
Narrow char.
This function converts the char to char using the simplest reasonable transformation. If the conversion fails, dfault is
returned instead. For an underived ctype<char> facet, c will be returned unchanged.
This function works as if it returns ctype<char>::do_narrow(c). do_narrow() must always return the same result for the
same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char to convert.
__dfault Char to return if conversion fails.

Returns

The converted character.

References std::ctype< _CharT >::do_narrow().

Generated by Doxygen
1848

narrow() [2/2]

const char_type ∗ std::ctype< char >::narrow (


const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [inline]
Narrow char array.
This function converts each char in the input to char using the simplest reasonable transformation and writes the results
to the destination array. For any char in the input that cannot be converted, dfault is used instead. For an underived
ctype<char> facet, the argument will be copied unchanged.
This function works as if it returns ctype<char>::do_narrow(lo, hi, dfault, to). do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

References std::ctype< _CharT >::do_narrow().

scan_is()

const char ∗ std::ctype< char >::scan_is (


mask __m,
const char ∗ __lo,
const char ∗ __hi) const [inline]
Find char matching a mask.
This function searches for and returns the first char in [lo,hi) for which is(m,char) is true.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a matching char if found, else __hi.

Generated by Doxygen
5.373 std::ctype< char > Class Reference 1849

scan_not()

const char ∗ std::ctype< char >::scan_not (


mask __m,
const char ∗ __lo,
const char ∗ __hi) const [inline]
Find char not matching a mask.
This function searches for and returns a pointer to the first char in [__lo,__hi) for which is(m,char) is false.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a non-matching char if found, else __hi.

table()

const mask ∗ std::ctype< char >::table () const throw ( ) [inline]


Returns a pointer to the mask table provided to the constructor, or the default from classic_table() if none was provided.

tolower() [1/2]

const char_type ∗ std::ctype< char >::tolower (


char_type ∗ __lo,
const char_type ∗ __hi) const [inline]
Convert array to lowercase.
This function converts each char in the range [lo,hi) to lowercase if possible. Other chars remain untouched.
tolower() acts as if it returns ctype<char>:: do_tolower(__lo, __hi). do_tolower() must always return the same result for
the same input.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::ctype< _CharT >::do_tolower().

Generated by Doxygen
1850

tolower() [2/2]

char_type std::ctype< char >::tolower (


char_type __c) const [inline]
Convert to lowercase.
This function converts the char argument to lowercase if possible. If not possible (for example, '2'), returns the argument.
tolower() acts as if it returns ctype<char>::do_tolower(__c). do_tolower() must always return the same result for the
same input.

Parameters
_←- The char to convert.
_c

Returns

The lowercase char if convertible, else __c.

References std::ctype< _CharT >::do_tolower().

toupper() [1/2]

const char_type ∗ std::ctype< char >::toupper (


char_type ∗ __lo,
const char_type ∗ __hi) const [inline]
Convert array to uppercase.
This function converts each char in the range [__lo,__hi) to uppercase if possible. Other chars remain untouched.
toupper() acts as if it returns ctype<char>:: do_toupper(__lo, __hi). do_toupper() must always return the same result
for the same input.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::ctype< _CharT >::do_toupper().

toupper() [2/2]

char_type std::ctype< char >::toupper (


char_type __c) const [inline]
Convert to uppercase.
This function converts the char argument to uppercase if possible. If not possible (for example, '2'), returns the argument.
toupper() acts as if it returns ctype<char>::do_toupper(c). do_toupper() must always return the same result for the
same input.

Parameters
_←- The char to convert.
_c

Generated by Doxygen
5.373 std::ctype< char > Class Reference 1851

Returns

The uppercase char if convertible, else __c.

References std::ctype< _CharT >::do_toupper().

widen() [1/2]

char_type std::ctype< char >::widen (


char __c) const [inline]
Widen char.
This function converts the char to char_type using the simplest reasonable transformation. For an underived
ctype<char> facet, the argument will be returned unchanged.
This function works as if it returns ctype<char>::do_widen(c). do_widen() must always return the same result for the
same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted character.

References std::ctype< _CharT >::do_widen().

widen() [2/2]

const char ∗ std::ctype< char >::widen (


const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline]
Widen char array.
This function converts each char in the input to char using the simplest reasonable transformation. For an underived
ctype<char> facet, the argument will be copied unchanged.
This function works as if it returns ctype<char>::do_widen(c). do_widen() must always return the same result for the
same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

References std::ctype< _CharT >::do_widen().

Generated by Doxygen
1852

5.373.5 Member Data Documentation

id

locale::id std::ctype< char >::id [static]


The facet id for ctype<char>

table_size

const size_t std::ctype< char >::table_size [static]


The size of the mask table. It is SCHAR_MAX + 1.
The documentation for this class was generated from the following files:

• locale_facets.h
• ctype_inline.h

5.374 std::ctype< wchar_t > Class Reference


#include <locale_facets.h>
Inheritance diagram for std::ctype< wchar_t >:

std::locale::facet std::ctype_base

std::__ctype_abstract
_base< wchar_t >

std::ctype< wchar_t >

Public Types

• typedef const int ∗ __to_type


• typedef wctype_t __wmask_type
• typedef wchar_t char_type
• typedef unsigned short mask

Public Member Functions

• ctype (__c_locale __cloc, size_t __refs=0)


• ctype (size_t __refs=0)
• const char_type ∗ is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const
• bool is (mask __m, char_type __c) const

Generated by Doxygen
5.374 std::ctype< wchar_t > Class Reference 1853

• char narrow (char_type __c, char __dfault) const


• const char_type ∗ narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to) const
• const char_type ∗ scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ tolower (char_type ∗__lo, const char_type ∗__hi) const
• char_type tolower (char_type __c) const
• const char_type ∗ toupper (char_type ∗__lo, const char_type ∗__hi) const
• char_type toupper (char_type __c) const
• char_type widen (char __c) const
• const char ∗ widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Public Attributes

• static const mask alnum


• static const mask alpha
• static const mask blank
• static const mask cntrl
• static const mask digit
• static const mask graph
• static locale::id id
• static const mask lower
• static const mask print
• static const mask punct
• static const mask space
• static const mask upper
• static const mask xdigit

Protected Member Functions

• virtual ∼ctype ()
• __wmask_type _M_convert_to_wmask (const mask __m) const throw ()
• void _M_initialize_ctype () throw ()
• virtual const char_type ∗ do_is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const
• virtual bool do_is (mask __m, char_type __c) const
• virtual char do_narrow (char_type __c, char __dfault) const
• virtual const char_type ∗ do_narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to)
const
• virtual const char_type ∗ do_scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• virtual const char_type ∗ do_scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• virtual const char_type ∗ do_tolower (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_tolower (char_type __c) const
• virtual const char_type ∗ do_toupper (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_toupper (char_type __c) const
• virtual char_type do_widen (char __c) const
• virtual const char ∗ do_widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Generated by Doxygen
1854

Protected Attributes

• mask _M_bit [16]


• __c_locale _M_c_locale_ctype
• char _M_narrow [128]
• bool _M_narrow_ok
• wint_t _M_widen [1+static_cast< unsigned char >(-1)]
• __wmask_type _M_wmask [16]

5.374.1 Detailed Description

The ctype<wchar_t> specialization.


This class defines classification and conversion functions for the wchar_t type. It gets used by wchar_t streams for many
I/O operations. The wchar_t specialization provides a number of optimizations as well.
ctype<wchar_t> inherits its public methods from __ctype_abstract_base<wchar_t>.

5.374.2 Member Typedef Documentation

char_type

wchar_t std::ctype< wchar_t >::char_type


Typedef for the template parameter wchar_t.

5.374.3 Constructor & Destructor Documentation

ctype() [1/2]

std::ctype< wchar_t >::ctype (


size_t __refs = 0) [explicit]
Constructor performs initialization.
This is the constructor provided by the standard.

Parameters

__refs Passed to the base facet class.

ctype() [2/2]

std::ctype< wchar_t >::ctype (


__c_locale __cloc,
size_t __refs = 0) [explicit]
Constructor performs static initialization.
This constructor is used to construct the initial C locale facet.

Parameters

__cloc Handle to C locale data.


__refs Passed to the base facet class.

∼ctype()
virtual std::ctype< wchar_t >::∼ctype () [protected], [virtual]
Destructor.

Generated by Doxygen
5.374 std::ctype< wchar_t > Class Reference 1855

5.374.4 Member Function Documentation

do_is() [1/2]

virtual const char_type ∗ std::ctype< wchar_t >::do_is (


const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [protected], [virtual]
Return a mask array.
This function finds the mask for each wchar_t in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the input.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

Implements std::__ctype_abstract_base< wchar_t >.

do_is() [2/2]

virtual bool std::ctype< wchar_t >::do_is (


mask __m,
char_type __c) const [protected], [virtual]
Test wchar_t classification.
This function finds a mask M for c and compares it to mask m.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Parameters

_←- The wchar_t to find the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

Implements std::__ctype_abstract_base< wchar_t >.

do_narrow() [1/2]

virtual char std::ctype< wchar_t >::do_narrow (


char_type __c,
char __dfault) const [protected], [virtual]
Narrow wchar_t to char.

Generated by Doxygen
1856

This virtual function converts the argument to char using the simplest reasonable transformation. If the conversion fails,
dfault is returned instead. For an underived ctype<wchar_t> facet, c will be cast to char and returned.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The wchar_t to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

Implements std::__ctype_abstract_base< wchar_t >.

do_narrow() [2/2]

virtual const char_type ∗ std::ctype< wchar_t >::do_narrow (


const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [protected], [virtual]
Narrow wchar_t array to char array.
This virtual function converts each wchar_t in the range [lo,hi) to char using the simplest reasonable transformation and
writes the results to the destination array. For any wchar_t in the input that cannot be converted, dfault is used instead.
For an underived ctype<wchar_t> facet, the argument will be copied, casting each element to char.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

Implements std::__ctype_abstract_base< wchar_t >.

do_scan_is()

virtual const char_type ∗ std::ctype< wchar_t >::do_scan_is (


mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Find wchar_t matching mask.
This function searches for and returns the first wchar_t c in [__lo,__hi) for which is(__m,c) is true.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Generated by Doxygen
5.374 std::ctype< wchar_t > Class Reference 1857

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a matching wchar_t if found, else __hi.

Implements std::__ctype_abstract_base< wchar_t >.

do_scan_not()

virtual const char_type ∗ std::ctype< wchar_t >::do_scan_not (


mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Find wchar_t not matching mask.
This function searches for and returns a pointer to the first wchar_t c of [__lo,__hi) for which is(__m,c) is false.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a non-matching wchar_t if found, else __hi.

Implements std::__ctype_abstract_base< wchar_t >.

do_tolower() [1/2]

virtual const char_type ∗ std::ctype< wchar_t >::do_tolower (


char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Convert array to lowercase.
This virtual function converts each wchar_t in the range [lo,hi) to lowercase if possible. Other elements remain un-
touched.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Generated by Doxygen
1858

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

Implements std::__ctype_abstract_base< wchar_t >.

do_tolower() [2/2]

virtual char_type std::ctype< wchar_t >::do_tolower (


char_type __c) const [protected], [virtual]
Convert to lowercase.
This virtual function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argu-
ment.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters
_←- The wchar_t to convert.
_c

Returns

The lowercase wchar_t if convertible, else __c.

Implements std::__ctype_abstract_base< wchar_t >.

do_toupper() [1/2]

virtual const char_type ∗ std::ctype< wchar_t >::do_toupper (


char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual]
Convert array to uppercase.
This virtual function converts each wchar_t in the range [lo,hi) to uppercase if possible. Other elements remain un-
touched.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

Implements std::__ctype_abstract_base< wchar_t >.

Generated by Doxygen
5.374 std::ctype< wchar_t > Class Reference 1859

do_toupper() [2/2]

virtual char_type std::ctype< wchar_t >::do_toupper (


char_type __c) const [protected], [virtual]
Convert to uppercase.
This virtual function converts the wchar_t argument to uppercase if possible. If not possible (for example, '2'), returns
the argument.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters
_←- The wchar_t to convert.
_c

Returns

The uppercase wchar_t if convertible, else __c.

Implements std::__ctype_abstract_base< wchar_t >.

do_widen() [1/2]

virtual char_type std::ctype< wchar_t >::do_widen (


char __c) const [protected], [virtual]
Widen char to wchar_t.
This virtual function converts the char to wchar_t using the simplest reasonable transformation. For an underived
ctype<wchar_t> facet, the argument will be cast to wchar_t.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted wchar_t.

Implements std::__ctype_abstract_base< wchar_t >.

do_widen() [2/2]

virtual const char ∗ std::ctype< wchar_t >::do_widen (


const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [protected], [virtual]
Widen char array to wchar_t array.
This function converts each char in the input to wchar_t using the simplest reasonable transformation. For an underived
ctype<wchar_t> facet, the argument will be copied, casting each element to wchar_t.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
1860

Parameters
_←- Pointer to start range.
_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

Implements std::__ctype_abstract_base< wchar_t >.

is() [1/2]

const char_type ∗ std::__ctype_abstract_base< wchar_t >::is (


const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [inline], [inherited]
Return a mask array.
This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the char array. It does so by returning the value of ctype<char_type>::do_is().

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

is() [2/2]

bool std::__ctype_abstract_base< wchar_t >::is (


mask __m,
char_type __c) const [inline], [inherited]
Test char_type classification.
This function finds a mask M for __c and compares it to mask __m. It does so by returning the value of ctype<char_←-
type>::do_is().

Parameters

_←- The char_type to compare the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

Generated by Doxygen
5.374 std::ctype< wchar_t > Class Reference 1861

narrow() [1/2]

char std::__ctype_abstract_base< wchar_t >::narrow (


char_type __c,
char __dfault) const [inline], [inherited]
Narrow char_type to char.
This function converts the char_type to char using the simplest reasonable transformation. If the conversion fails, dfault
is returned instead. It does so by returning ctype<char_type>::do_narrow(__c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char_type to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

narrow() [2/2]

const char_type ∗ std::__ctype_abstract_base< wchar_t >::narrow (


const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [inline], [inherited]
Narrow array to char array.
This function converts each char_type in the input to char using the simplest reasonable transformation and writes the
results to the destination array. For any char_type in the input that cannot be converted, dfault is used instead. It does
so by returning ctype<char_type>::do_narrow(__lo, __hi, __dfault, __to).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

scan_is()

const char_type ∗ std::__ctype_abstract_base< wchar_t >::scan_is (


mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Find char_type matching a mask.
This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is true. It does so by returning
ctype<char_type>::do_scan_is().

Generated by Doxygen
1862

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to matching char_type if found, else __hi.

scan_not()

const char_type ∗ std::__ctype_abstract_base< wchar_t >::scan_not (


mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Find char_type not matching a mask.
This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is false. It does so by returning
ctype<char_type>::do_scan_not().

Parameters
_←- The mask to compare against.
_m
_←- Pointer to first char in range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to non-matching char if found, else __hi.

tolower() [1/2]

const char_type ∗ std::__ctype_abstract_base< wchar_t >::tolower (


char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to lowercase.
This function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain un-
touched. It does so by returning ctype<char_type>:: do_tolower(__lo, __hi).

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Generated by Doxygen
5.374 std::ctype< wchar_t > Class Reference 1863

Returns

__hi.

tolower() [2/2]

char_type std::__ctype_abstract_base< wchar_t >::tolower (


char_type __c) const [inline], [inherited]
Convert to lowercase.
This function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_tolower(c).

Parameters
_←- The char_type to convert.
_c

Returns

The lowercase char_type if convertible, else __c.

toupper() [1/2]

const char_type ∗ std::__ctype_abstract_base< wchar_t >::toupper (


char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to uppercase.
This function converts each char_type in the range [lo,hi) to uppercase if possible. Other elements remain untouched.
It does so by returning ctype<char_type>:: do_toupper(lo, hi).

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

toupper() [2/2]

char_type std::__ctype_abstract_base< wchar_t >::toupper (


char_type __c) const [inline], [inherited]
Convert to uppercase.
This function converts the argument to uppercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_toupper().

Parameters
_←- The char_type to convert.
_c

Generated by Doxygen
1864

Returns

The uppercase char_type if convertible, else __c.

widen() [1/2]

char_type std::__ctype_abstract_base< wchar_t >::widen (


char __c) const [inline], [inherited]
Widen char to char_type.
This function converts the char argument to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted char_type.

widen() [2/2]

const char ∗ std::__ctype_abstract_base< wchar_t >::widen (


const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline], [inherited]
Widen array to char_type.
This function converts each char in the input to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

5.374.5 Member Data Documentation

id

locale::id std::ctype< wchar_t >::id [static]


The facet id for ctype<wchar_t>
The documentation for this class was generated from the following file:

• locale_facets.h

Generated by Doxygen
5.375 std::ctype_base Struct Reference 1865

5.375 std::ctype_base Struct Reference


#include <ctype_base.h>
Inheritance diagram for std::ctype_base:

std::__ctype_abstract
std::ctype< wchar_t >
_base< wchar_t >

std::__ctype_abstract std::ctype_byname<
std::ctype_base std::ctype< _CharT >
_base< _CharT > _CharT >

std::ctype_byname<
std::ctype< char >
char >

Public Types

• typedef const int ∗ __to_type


• typedef unsigned short mask

Static Public Attributes

• static const mask alnum


• static const mask alpha
• static const mask blank
• static const mask cntrl
• static const mask digit
• static const mask graph
• static const mask lower
• static const mask print
• static const mask punct
• static const mask space
• static const mask upper
• static const mask xdigit

5.375.1 Detailed Description

Base class for ctype.


The documentation for this struct was generated from the following file:

• ctype_base.h

5.376 std::ctype_byname< _CharT > Class Template Reference


#include <locale_facets.h>

Generated by Doxygen
1866

Inheritance diagram for std::ctype_byname< _CharT >:

std::locale::facet std::ctype_base

std::__ctype_abstract
_base< _CharT >

std::ctype< _CharT >

std::ctype_byname<
_CharT >

Public Types

• typedef const int ∗ __to_type


• typedef _CharT char_type
• typedef ctype< _CharT >::mask mask

Public Member Functions

• ctype_byname (const char ∗__s, size_t __refs=0)


• ctype_byname (const string &__s, size_t __refs=0)
• const char_type ∗ is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const
• bool is (mask __m, char_type __c) const
• char narrow (char_type __c, char __dfault) const
• const char_type ∗ narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to) const
• const char_type ∗ scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• const char_type ∗ tolower (char_type ∗__lo, const char_type ∗__hi) const
• char_type tolower (char_type __c) const
• const char_type ∗ toupper (char_type ∗__lo, const char_type ∗__hi) const
• char_type toupper (char_type __c) const
• char_type widen (char __c) const
• const char ∗ widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Generated by Doxygen
5.376 std::ctype_byname< _CharT > Class Template Reference 1867

Static Public Attributes

• static const mask alnum


• static const mask alpha
• static const mask blank
• static const mask cntrl
• static const mask digit
• static const mask graph
• static locale::id id
• static const mask lower
• static const mask print
• static const mask punct
• static const mask space
• static const mask upper
• static const mask xdigit

Protected Member Functions

• virtual const char_type ∗ do_is (const char_type ∗__lo, const char_type ∗__hi, mask ∗__vec) const
• virtual bool do_is (mask __m, char_type __c) const
• virtual char do_narrow (char_type, char __dfault) const
• virtual const char_type ∗ do_narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to)
const
• virtual const char_type ∗ do_scan_is (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• virtual const char_type ∗ do_scan_not (mask __m, const char_type ∗__lo, const char_type ∗__hi) const
• virtual const char_type ∗ do_tolower (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_tolower (char_type __c) const
• virtual const char_type ∗ do_toupper (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_toupper (char_type __c) const
• virtual char_type do_widen (char __c) const
• virtual const char ∗ do_widen (const char ∗__lo, const char ∗__hi, char_type ∗__dest) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

5.376.1 Detailed Description

template<typename _CharT>
class std::ctype_byname< _CharT >

class ctype_byname [22.2.1.2].

Generated by Doxygen
1868

5.376.2 Member Function Documentation

do_is() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_is (
const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [protected], [virtual], [inherited]
Return a mask array.
This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the input.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

do_is() [2/2]

template<typename _CharT >


virtual bool std::ctype< _CharT >::do_is (
mask __m,
char_type __c) const [protected], [virtual], [inherited]
Test char_type classification.
This function finds a mask M for c and compares it to mask m.
do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for
the same input.

Parameters

_←- The char_type to find the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

Implements std::__ctype_abstract_base< _CharT >.

do_narrow() [1/2]

template<typename _CharT >


virtual char std::ctype< _CharT >::do_narrow (

Generated by Doxygen
5.376 std::ctype_byname< _CharT > Class Template Reference 1869

char_type __c,
char __dfault) const [protected], [virtual], [inherited]
Narrow char_type to char.
This virtual function converts the argument to char using the simplest reasonable transformation. If the conversion fails,
dfault is returned instead.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char_type to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

Implements std::__ctype_abstract_base< _CharT >.


Referenced by std::ctype< char >::narrow(), and std::ctype< char >::narrow().

do_narrow() [2/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_narrow (
const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [protected], [virtual], [inherited]
Narrow char_type array to char.
This virtual function converts each char_type in the range [__lo,__hi) to char using the simplest reasonable transforma-
tion and writes the results to the destination array. For any element in the input that cannot be converted, __dfault is
used instead.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

do_scan_is()

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_scan_is (

Generated by Doxygen
1870

mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual], [inherited]
Find char_type matching mask.
This function searches for and returns the first char_type c in [__lo,__hi) for which is(__m,c) is true.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a matching char_type if found, else __hi.

Implements std::__ctype_abstract_base< _CharT >.

do_scan_not()

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_scan_not (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual], [inherited]
Find char_type not matching mask.
This function searches for and returns a pointer to the first char_type c of [lo,hi) for which is(m,c) is false.
do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the
same result for the same input.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a non-matching char_type if found, else __hi.

Implements std::__ctype_abstract_base< _CharT >.

do_tolower() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_tolower (

Generated by Doxygen
5.376 std::ctype_byname< _CharT > Class Template Reference 1871

char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual], [inherited]
Convert array to lowercase.
This virtual function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain
untouched.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

do_tolower() [2/2]

template<typename _CharT >


virtual char_type std::ctype< _CharT >::do_tolower (
char_type __c) const [protected], [virtual], [inherited]
Convert to lowercase.
This virtual function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argu-
ment.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters
_←- The char_type to convert.
_c

Returns

The lowercase char_type if convertible, else __c.

Implements std::__ctype_abstract_base< _CharT >.


Referenced by std::ctype< char >::tolower(), and std::ctype< char >::tolower().

do_toupper() [1/2]

template<typename _CharT >


virtual const char_type ∗ std::ctype< _CharT >::do_toupper (
char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual], [inherited]
Convert array to uppercase.
This virtual function converts each char_type in the range [__lo,__hi) to uppercase if possible. Other elements remain
untouched.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Generated by Doxygen
1872

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.
Implements std::__ctype_abstract_base< _CharT >.

do_toupper() [2/2]

template<typename _CharT >


virtual char_type std::ctype< _CharT >::do_toupper (
char_type __c) const [protected], [virtual], [inherited]
Convert to uppercase.
This virtual function converts the char_type argument to uppercase if possible. If not possible (for example, '2'), returns
the argument.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters
_←- The char_type to convert.
_c

Returns

The uppercase char_type if convertible, else __c.


Implements std::__ctype_abstract_base< _CharT >.
Referenced by std::ctype< char >::toupper(), and std::ctype< char >::toupper().

do_widen() [1/2]

template<typename _CharT >


virtual char_type std::ctype< _CharT >::do_widen (
char __c) const [protected], [virtual], [inherited]
Widen char.
This virtual function converts the char to char_type using the simplest reasonable transformation.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted char_type


Implements std::__ctype_abstract_base< _CharT >.
Referenced by std::ctype< char >::widen(), and std::ctype< char >::widen().

Generated by Doxygen
5.376 std::ctype_byname< _CharT > Class Template Reference 1873

do_widen() [2/2]

template<typename _CharT >


virtual const char ∗ std::ctype< _CharT >::do_widen (
const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [protected], [virtual], [inherited]
Widen char array.
This function converts each char in the input to char_type using the simplest reasonable transformation.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- Pointer to start range.
_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

Implements std::__ctype_abstract_base< _CharT >.

is() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::is (
const char_type ∗ __lo,
const char_type ∗ __hi,
mask ∗ __vec) const [inline], [inherited]
Return a mask array.
This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as
many elements as the char array. It does so by returning the value of ctype<char_type>::do_is().

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_is().

Generated by Doxygen
1874

is() [2/2]

template<typename _CharT >


bool std::__ctype_abstract_base< _CharT >::is (
mask __m,
char_type __c) const [inline], [inherited]
Test char_type classification.
This function finds a mask M for __c and compares it to mask __m. It does so by returning the value of ctype<char_←-
type>::do_is().

Parameters

_←- The char_type to compare the mask of.


_c
_←- The mask to compare against.
_m

Returns

(M & __m) != 0.

References std::__ctype_abstract_base< _CharT >::do_is().


Referenced by std::time_get< _CharT, _InIter >::get().

narrow() [1/2]

template<typename _CharT >


char std::__ctype_abstract_base< _CharT >::narrow (
char_type __c,
char __dfault) const [inline], [inherited]
Narrow char_type to char.
This function converts the char_type to char using the simplest reasonable transformation. If the conversion fails, dfault
is returned instead. It does so by returning ctype<char_type>::do_narrow(__c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char_type to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

References std::__ctype_abstract_base< _CharT >::do_narrow().


Referenced by std::time_get< _CharT, _InIter >::do_get_year(), std::time_get< _CharT, _InIter >::get(), and
std::time_put< _CharT, _OutIter >::put().

narrow() [2/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::narrow (
const char_type ∗ __lo,
const char_type ∗ __hi,

Generated by Doxygen
5.376 std::ctype_byname< _CharT > Class Template Reference 1875

char __dfault,
char ∗ __to) const [inline], [inherited]
Narrow array to char array.
This function converts each char_type in the input to char using the simplest reasonable transformation and writes the
results to the destination array. For any char_type in the input that cannot be converted, dfault is used instead. It does
so by returning ctype<char_type>::do_narrow(__lo, __hi, __dfault, __to).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_narrow().

scan_is()

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::scan_is (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Find char_type matching a mask.
This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is true. It does so by returning
ctype<char_type>::do_scan_is().

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to matching char_type if found, else __hi.

References std::__ctype_abstract_base< _CharT >::do_scan_is().

scan_not()

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::scan_not (
mask __m,
const char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]

Generated by Doxygen
1876

Find char_type not matching a mask.


This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is false. It does so by returning
ctype<char_type>::do_scan_not().

Parameters
_←- The mask to compare against.
_m
_←- Pointer to first char in range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to non-matching char if found, else __hi.

References std::__ctype_abstract_base< _CharT >::do_scan_not().

tolower() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::tolower (
char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to lowercase.
This function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain un-
touched. It does so by returning ctype<char_type>:: do_tolower(__lo, __hi).

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_tolower().

tolower() [2/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::tolower (
char_type __c) const [inline], [inherited]
Convert to lowercase.
This function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_tolower(c).

Parameters
_←- The char_type to convert.
_c

Generated by Doxygen
5.376 std::ctype_byname< _CharT > Class Template Reference 1877

Returns

The lowercase char_type if convertible, else __c.

References std::__ctype_abstract_base< _CharT >::do_tolower().


Referenced by std::time_get< _CharT, _InIter >::get().

toupper() [1/2]

template<typename _CharT >


const char_type ∗ std::__ctype_abstract_base< _CharT >::toupper (
char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to uppercase.
This function converts each char_type in the range [lo,hi) to uppercase if possible. Other elements remain untouched.
It does so by returning ctype<char_type>:: do_toupper(lo, hi).

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_toupper().

toupper() [2/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::toupper (
char_type __c) const [inline], [inherited]
Convert to uppercase.
This function converts the argument to uppercase if possible. If not possible (for example, '2'), returns the argument. It
does so by returning ctype<char_type>::do_toupper().

Parameters
_←- The char_type to convert.
_c

Returns

The uppercase char_type if convertible, else __c.

References std::__ctype_abstract_base< _CharT >::do_toupper().


Referenced by std::time_get< _CharT, _InIter >::get().

widen() [1/2]

template<typename _CharT >


char_type std::__ctype_abstract_base< _CharT >::widen (
char __c) const [inline], [inherited]

Generated by Doxygen
1878

Widen char to char_type.


This function converts the char argument to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
_←- The char to convert.
_c

Returns

The converted char_type.

References std::__ctype_abstract_base< _CharT >::do_widen().


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), and
std::time_put< _CharT, _OutIter >::do_put().

widen() [2/2]

template<typename _CharT >


const char ∗ std::__ctype_abstract_base< _CharT >::widen (
const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline], [inherited]
Widen array to char_type.
This function converts each char in the input to char_type using the simplest reasonable transformation. It does so by
returning ctype<char_type>::do_widen(c).
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

References std::__ctype_abstract_base< _CharT >::do_widen().

5.376.3 Member Data Documentation

id

template<typename _CharT >


locale::id std::ctype< _CharT >::id [static], [inherited]
The facet id for ctype<char_type>
The documentation for this class was generated from the following files:

• locale_facets.h
• localefwd.h

Generated by Doxygen
5.377 std::ctype_byname< char > Class Reference 1879

5.377 std::ctype_byname< char > Class Reference


#include <locale_facets.h>
Inheritance diagram for std::ctype_byname< char >:

std::locale::facet std::ctype_base

std::ctype< char >

std::ctype_byname<
char >

Public Types

• typedef const int ∗ __to_type


• typedef char char_type
• typedef unsigned short mask

Public Member Functions

• ctype_byname (const char ∗__s, size_t __refs=0)


• ctype_byname (const string &__s, size_t __refs=0)
• const char ∗ is (const char ∗__lo, const char ∗__hi, mask ∗__vec) const
• bool is (mask __m, char __c) const
• char narrow (char_type __c, char __dfault) const
• const char_type ∗ narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to) const
• const char ∗ scan_is (mask __m, const char ∗__lo, const char ∗__hi) const
• const char ∗ scan_not (mask __m, const char ∗__lo, const char ∗__hi) const
• const mask ∗ table () const throw ()
• const char_type ∗ tolower (char_type ∗__lo, const char_type ∗__hi) const
• char_type tolower (char_type __c) const
• const char_type ∗ toupper (char_type ∗__lo, const char_type ∗__hi) const
• char_type toupper (char_type __c) const
• char_type widen (char __c) const
• const char ∗ widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Public Member Functions

• static const mask ∗ classic_table () throw ()

Generated by Doxygen
1880

Static Public Attributes

• static const mask alnum


• static const mask alpha
• static const mask blank
• static const mask cntrl
• static const mask digit
• static const mask graph
• static locale::id id
• static const mask lower
• static const mask print
• static const mask punct
• static const mask space
• static const size_t table_size
• static const mask upper
• static const mask xdigit

Protected Member Functions

• virtual char do_narrow (char_type __c, char __dfault) const


• virtual const char_type ∗ do_narrow (const char_type ∗__lo, const char_type ∗__hi, char __dfault, char ∗__to)
const
• virtual const char_type ∗ do_tolower (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_tolower (char_type __c) const
• virtual const char_type ∗ do_toupper (char_type ∗__lo, const char_type ∗__hi) const
• virtual char_type do_toupper (char_type __c) const
• virtual char_type do_widen (char __c) const
• virtual const char ∗ do_widen (const char ∗__lo, const char ∗__hi, char_type ∗__to) const

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Protected Attributes

• __c_locale _M_c_locale_ctype
• bool _M_del
• char _M_narrow [1+static_cast< unsigned char >(-1)]
• char _M_narrow_ok
• const mask ∗ _M_table
• __to_type _M_tolower
• __to_type _M_toupper
• char _M_widen [1+static_cast< unsigned char >(-1)]
• char _M_widen_ok

5.377.1 Detailed Description

22.2.1.4 Class ctype_byname specializations.

Generated by Doxygen
5.377 std::ctype_byname< char > Class Reference 1881

5.377.2 Member Typedef Documentation

char_type

char std::ctype< char >::char_type [inherited]


Typedef for the template parameter char.

5.377.3 Member Function Documentation

classic_table()

static const mask ∗ std::ctype< char >::classic_table () throw ( ) [static], [inherited]


Returns a pointer to the C locale mask table.

do_narrow() [1/2]

virtual char std::ctype< char >::do_narrow (


char_type __c,
char __dfault) const [inline], [protected], [virtual], [inherited]
Narrow char.
This virtual function converts the char to char using the simplest reasonable transformation. If the conversion fails, dfault
is returned instead. For an underived ctype<char> facet, c will be returned unchanged.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char to convert.
__dfault Char to return if conversion fails.

Returns

The converted char.

do_narrow() [2/2]

virtual const char_type ∗ std::ctype< char >::do_narrow (


const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [inline], [protected], [virtual], [inherited]
Narrow char array to char array.
This virtual function converts each char in the range [lo,hi) to char using the simplest reasonable transformation and
writes the results to the destination array. For any char in the input that cannot be converted, dfault is used instead. For
an underived ctype<char> facet, the argument will be copied unchanged.
do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.

Generated by Doxygen
1882

__to Pointer to the destination array.

Returns

__hi.

do_tolower() [1/2]

virtual const char_type ∗ std::ctype< char >::do_tolower (


char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual], [inherited]
Convert array to lowercase.
This virtual function converts each char in the range [lo,hi) to lowercase if possible. Other chars remain untouched.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

do_tolower() [2/2]

virtual char_type std::ctype< char >::do_tolower (


char_type __c) const [protected], [virtual], [inherited]
Convert to lowercase.
This virtual function converts the char argument to lowercase if possible. If not possible (for example, '2'), returns the
argument.
do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the
same result for the same input.

Parameters
_←- The char to convert.
_c

Returns

The lowercase char if convertible, else __c.

Generated by Doxygen
5.377 std::ctype_byname< char > Class Reference 1883

do_toupper() [1/2]

virtual const char_type ∗ std::ctype< char >::do_toupper (


char_type ∗ __lo,
const char_type ∗ __hi) const [protected], [virtual], [inherited]
Convert array to uppercase.
This virtual function converts each char in the range [lo,hi) to uppercase if possible. Other chars remain untouched.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

do_toupper() [2/2]

virtual char_type std::ctype< char >::do_toupper (


char_type __c) const [protected], [virtual], [inherited]
Convert to uppercase.
This virtual function converts the char argument to uppercase if possible. If not possible (for example, '2'), returns the
argument.
do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the
same result for the same input.

Parameters
_←- The char to convert.
_c

Returns

The uppercase char if convertible, else __c.

do_widen() [1/2]

virtual char_type std::ctype< char >::do_widen (


char __c) const [inline], [protected], [virtual], [inherited]
Widen char.
This virtual function converts the char to char using the simplest reasonable transformation. For an underived
ctype<char> facet, the argument will be returned unchanged.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
1884

Parameters
_←- The char to convert.
_c

Returns

The converted character.

do_widen() [2/2]

virtual const char ∗ std::ctype< char >::do_widen (


const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline], [protected], [virtual], [inherited]
Widen char array.
This function converts each char in the range [lo,hi) to char using the simplest reasonable transformation. For an
underived ctype<char> facet, the argument will be copied unchanged.
do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

_←- Pointer to start of range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

is() [1/2]

const char ∗ std::ctype< char >::is (


const char ∗ __lo,
const char ∗ __hi,
mask ∗ __vec) const [inline], [inherited]
Return a mask array.
This function finds the mask for each char in the range [lo, hi) and successively writes it to vec. vec must have as many
elements as the char array.

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__vec Pointer to an array of mask storage.

Returns

__hi.

Generated by Doxygen
5.377 std::ctype_byname< char > Class Reference 1885

is() [2/2]

bool std::ctype< char >::is (


mask __m,
char __c) const [inline], [inherited]
Test char classification.
This function compares the mask table[c] to __m.

Parameters

_←- The char to compare the mask of.


_c
_←- The mask to compare against.
_m

Returns

True if __m & table[__c] is true, false otherwise.

narrow() [1/2]

char std::ctype< char >::narrow (


char_type __c,
char __dfault) const [inline], [inherited]
Narrow char.
This function converts the char to char using the simplest reasonable transformation. If the conversion fails, dfault is
returned instead. For an underived ctype<char> facet, c will be returned unchanged.
This function works as if it returns ctype<char>::do_narrow(c). do_narrow() must always return the same result for the
same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters
__c The char to convert.
__dfault Char to return if conversion fails.

Returns

The converted character.


References std::ctype< _CharT >::do_narrow().

narrow() [2/2]

const char_type ∗ std::ctype< char >::narrow (


const char_type ∗ __lo,
const char_type ∗ __hi,
char __dfault,
char ∗ __to) const [inline], [inherited]
Narrow char array.
This function converts each char in the input to char using the simplest reasonable transformation and writes the results
to the destination array. For any char in the input that cannot be converted, dfault is used instead. For an underived
ctype<char> facet, the argument will be copied unchanged.
This function works as if it returns ctype<char>::do_narrow(lo, hi, dfault, to). do_narrow() must always return the same
result for the same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
1886

Parameters

__lo Pointer to start of range.


__hi Pointer to end of range.
__dfault Char to use if conversion fails.
__to Pointer to the destination array.

Returns

__hi.

References std::ctype< _CharT >::do_narrow().

scan_is()

const char ∗ std::ctype< char >::scan_is (


mask __m,
const char ∗ __lo,
const char ∗ __hi) const [inline], [inherited]
Find char matching a mask.
This function searches for and returns the first char in [lo,hi) for which is(m,char) is true.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Returns

Pointer to a matching char if found, else __hi.

scan_not()

const char ∗ std::ctype< char >::scan_not (


mask __m,
const char ∗ __lo,
const char ∗ __hi) const [inline], [inherited]
Find char not matching a mask.
This function searches for and returns a pointer to the first char in [__lo,__hi) for which is(m,char) is false.

Parameters
_←- The mask to compare against.
_m
_←- Pointer to start of range.
_lo
_←- Pointer to end of range.
_hi

Generated by Doxygen
5.377 std::ctype_byname< char > Class Reference 1887

Returns

Pointer to a non-matching char if found, else __hi.

table()

const mask ∗ std::ctype< char >::table () const throw ( ) [inline], [inherited]


Returns a pointer to the mask table provided to the constructor, or the default from classic_table() if none was provided.

tolower() [1/2]

const char_type ∗ std::ctype< char >::tolower (


char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to lowercase.
This function converts each char in the range [lo,hi) to lowercase if possible. Other chars remain untouched.
tolower() acts as if it returns ctype<char>:: do_tolower(__lo, __hi). do_tolower() must always return the same result for
the same input.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::ctype< _CharT >::do_tolower().

tolower() [2/2]

char_type std::ctype< char >::tolower (


char_type __c) const [inline], [inherited]
Convert to lowercase.
This function converts the char argument to lowercase if possible. If not possible (for example, '2'), returns the argument.
tolower() acts as if it returns ctype<char>::do_tolower(__c). do_tolower() must always return the same result for the
same input.

Parameters
_←- The char to convert.
_c

Returns

The lowercase char if convertible, else __c.

References std::ctype< _CharT >::do_tolower().

Generated by Doxygen
1888

toupper() [1/2]

const char_type ∗ std::ctype< char >::toupper (


char_type ∗ __lo,
const char_type ∗ __hi) const [inline], [inherited]
Convert array to uppercase.
This function converts each char in the range [__lo,__hi) to uppercase if possible. Other chars remain untouched.
toupper() acts as if it returns ctype<char>:: do_toupper(__lo, __hi). do_toupper() must always return the same result
for the same input.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi

Returns

__hi.

References std::ctype< _CharT >::do_toupper().

toupper() [2/2]

char_type std::ctype< char >::toupper (


char_type __c) const [inline], [inherited]
Convert to uppercase.
This function converts the char argument to uppercase if possible. If not possible (for example, '2'), returns the argument.
toupper() acts as if it returns ctype<char>::do_toupper(c). do_toupper() must always return the same result for the
same input.

Parameters
_←- The char to convert.
_c

Returns

The uppercase char if convertible, else __c.

References std::ctype< _CharT >::do_toupper().

widen() [1/2]

char_type std::ctype< char >::widen (


char __c) const [inline], [inherited]
Widen char.
This function converts the char to char_type using the simplest reasonable transformation. For an underived
ctype<char> facet, the argument will be returned unchanged.
This function works as if it returns ctype<char>::do_widen(c). do_widen() must always return the same result for the
same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Generated by Doxygen
5.378 __gnu_cxx::debug_allocator< _Alloc > Class Template Reference 1889

Parameters
_←- The char to convert.
_c

Returns

The converted character.

References std::ctype< _CharT >::do_widen().

widen() [2/2]

const char ∗ std::ctype< char >::widen (


const char ∗ __lo,
const char ∗ __hi,
char_type ∗ __to) const [inline], [inherited]
Widen char array.
This function converts each char in the input to char using the simplest reasonable transformation. For an underived
ctype<char> facet, the argument will be copied unchanged.
This function works as if it returns ctype<char>::do_widen(c). do_widen() must always return the same result for the
same input.
Note: this is not what you want for codepage conversions. See codecvt for that.

Parameters

_←- Pointer to first char in range.


_lo
_←- Pointer to end of range.
_hi
_←- Pointer to the destination array.
_to

Returns

__hi.

References std::ctype< _CharT >::do_widen().

5.377.4 Member Data Documentation

id

locale::id std::ctype< char >::id [static], [inherited]


The facet id for ctype<char>

table_size

const size_t std::ctype< char >::table_size [static], [inherited]


The size of the mask table. It is SCHAR_MAX + 1.
The documentation for this class was generated from the following file:
• locale_facets.h

5.378 __gnu_cxx::debug_allocator< _Alloc > Class Template Reference


#include <debug_allocator.h>

Generated by Doxygen
1890

Public Types

• typedef _Traits::const_pointer const_pointer


• typedef _Traits::const_reference const_reference
• typedef _Traits::difference_type difference_type
• typedef _Traits::pointer pointer
• typedef _Traits::reference reference
• typedef _Traits::size_type size_type
• typedef _Traits::value_type value_type

Public Member Functions

• debug_allocator (const _Alloc &__a)


• template<typename _Alloc2 >
debug_allocator (const debug_allocator< _Alloc2 > &__a2, typename __convertible< _Alloc2 >::__type=0)
• pointer allocate (size_type __n)
• pointer allocate (size_type __n, const void ∗__hint)
• template<typename _Tp , typename... _Args>
void construct (_Tp ∗__p, _Args &&... __args)
• void construct (pointer __p, const value_type &__val)
• void deallocate (pointer __p, size_type __n)
• template<typename _Tp >
void destroy (_Tp ∗__p)
• size_type max_size () const throw ()

Friends

• template<typename _Alloc2 >


bool operator== (const debug_allocator &__lhs, const debug_allocator< _Alloc2 > &__rhs) noexcept

5.378.1 Detailed Description

template<typename _Alloc>
class __gnu_cxx::debug_allocator< _Alloc >

A meta-allocator with debugging bits.


This is precisely the allocator defined in the C++03 Standard.
The documentation for this class was generated from the following file:
• debug_allocator.h

5.379 std::decay< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• using type

5.379.1 Detailed Description

template<typename _Tp>
struct std::decay< _Tp >

decay
The documentation for this struct was generated from the following file:
• type_traits

Generated by Doxygen
5.380 std::decimal::decimal128 Class Reference 1891

5.380 std::decimal::decimal128 Class Reference


#include <decimal>

Public Types

• typedef float __decfloat128

Public Member Functions

• decimal128 (__decfloat128 __z)


• decimal128 (decimal32 d32)
• decimal128 (decimal64 d64)
• decimal128 (double __r)
• decimal128 (float __r)
• decimal128 (int __z)
• decimal128 (long __z)
• decimal128 (long double __r)
• decimal128 (long long __z)
• decimal128 (unsigned int __z)
• decimal128 (unsigned long __z)
• decimal128 (unsigned long long __z)
• __decfloat128 __getval (void)
• void __setval (__decfloat128 __x)
• operator long long () const
• decimal128 & operator∗= (decimal128 __rhs)
• decimal128 & operator∗= (decimal32 __rhs)
• decimal128 & operator∗= (decimal64 __rhs)
• decimal128 & operator∗= (int __rhs)
• decimal128 & operator∗= (long __rhs)
• decimal128 & operator∗= (long long __rhs)
• decimal128 & operator∗= (unsigned int __rhs)
• decimal128 & operator∗= (unsigned long __rhs)
• decimal128 & operator∗= (unsigned long long __rhs)
• decimal128 & operator++ ()
• decimal128 operator++ (int)
• decimal128 & operator+= (decimal128 __rhs)
• decimal128 & operator+= (decimal32 __rhs)
• decimal128 & operator+= (decimal64 __rhs)
• decimal128 & operator+= (int __rhs)
• decimal128 & operator+= (long __rhs)
• decimal128 & operator+= (long long __rhs)
• decimal128 & operator+= (unsigned int __rhs)
• decimal128 & operator+= (unsigned long __rhs)
• decimal128 & operator+= (unsigned long long __rhs)
• decimal128 & operator-- ()
• decimal128 operator-- (int)
• decimal128 & operator-= (decimal128 __rhs)
• decimal128 & operator-= (decimal32 __rhs)
• decimal128 & operator-= (decimal64 __rhs)
• decimal128 & operator-= (int __rhs)
• decimal128 & operator-= (long __rhs)

Generated by Doxygen
1892

• decimal128 & operator-= (long long __rhs)


• decimal128 & operator-= (unsigned int __rhs)
• decimal128 & operator-= (unsigned long __rhs)
• decimal128 & operator-= (unsigned long long __rhs)
• decimal128 & operator/= (decimal128 __rhs)
• decimal128 & operator/= (decimal32 __rhs)
• decimal128 & operator/= (decimal64 __rhs)
• decimal128 & operator/= (int __rhs)
• decimal128 & operator/= (long __rhs)
• decimal128 & operator/= (long long __rhs)
• decimal128 & operator/= (unsigned int __rhs)
• decimal128 & operator/= (unsigned long __rhs)
• decimal128 & operator/= (unsigned long long __rhs)

5.380.1 Detailed Description

3.2.4 Class decimal128.

5.380.2 Constructor & Destructor Documentation

decimal128()

std::decimal::decimal128::decimal128 (
__decfloat128 __z) [inline]
Conforming extension: Conversion from scalar decimal type.
The documentation for this class was generated from the following file:

• decimal

5.381 std::decimal::decimal32 Class Reference


#include <decimal>

Public Types

• typedef float __decfloat32

Public Member Functions

• decimal32 (__decfloat32 __z)


• decimal32 (decimal128 __d128)
• decimal32 (decimal64 __d64)
• decimal32 (double __r)
• decimal32 (float __r)
• decimal32 (int __z)
• decimal32 (long __z)
• decimal32 (long double __r)
• decimal32 (long long __z)
• decimal32 (unsigned int __z)
• decimal32 (unsigned long __z)
• decimal32 (unsigned long long __z)
• __decfloat32 __getval (void)
• void __setval (__decfloat32 __x)
• operator long long () const

Generated by Doxygen
5.381 std::decimal::decimal32 Class Reference 1893

• decimal32 & operator∗= (decimal128 __rhs)


• decimal32 & operator∗= (decimal32 __rhs)
• decimal32 & operator∗= (decimal64 __rhs)
• decimal32 & operator∗= (int __rhs)
• decimal32 & operator∗= (long __rhs)
• decimal32 & operator∗= (long long __rhs)
• decimal32 & operator∗= (unsigned int __rhs)
• decimal32 & operator∗= (unsigned long __rhs)
• decimal32 & operator∗= (unsigned long long __rhs)
• decimal32 & operator++ ()
• decimal32 operator++ (int)
• decimal32 & operator+= (decimal128 __rhs)
• decimal32 & operator+= (decimal32 __rhs)
• decimal32 & operator+= (decimal64 __rhs)
• decimal32 & operator+= (int __rhs)
• decimal32 & operator+= (long __rhs)
• decimal32 & operator+= (long long __rhs)
• decimal32 & operator+= (unsigned int __rhs)
• decimal32 & operator+= (unsigned long __rhs)
• decimal32 & operator+= (unsigned long long __rhs)
• decimal32 & operator-- ()
• decimal32 operator-- (int)
• decimal32 & operator-= (decimal128 __rhs)
• decimal32 & operator-= (decimal32 __rhs)
• decimal32 & operator-= (decimal64 __rhs)
• decimal32 & operator-= (int __rhs)
• decimal32 & operator-= (long __rhs)
• decimal32 & operator-= (long long __rhs)
• decimal32 & operator-= (unsigned int __rhs)
• decimal32 & operator-= (unsigned long __rhs)
• decimal32 & operator-= (unsigned long long __rhs)
• decimal32 & operator/= (decimal128 __rhs)
• decimal32 & operator/= (decimal32 __rhs)
• decimal32 & operator/= (decimal64 __rhs)
• decimal32 & operator/= (int __rhs)
• decimal32 & operator/= (long __rhs)
• decimal32 & operator/= (long long __rhs)
• decimal32 & operator/= (unsigned int __rhs)
• decimal32 & operator/= (unsigned long __rhs)
• decimal32 & operator/= (unsigned long long __rhs)

5.381.1 Detailed Description

3.2.2 Class decimal32.

5.381.2 Constructor & Destructor Documentation

decimal32()

std::decimal::decimal32::decimal32 (
__decfloat32 __z) [inline]
Conforming extension: Conversion from scalar decimal type.
The documentation for this class was generated from the following file:
• decimal

Generated by Doxygen
1894

5.382 std::decimal::decimal64 Class Reference


#include <decimal>

Public Types

• typedef float __decfloat64

Public Member Functions

• decimal64 (__decfloat64 __z)


• decimal64 (decimal128 d128)
• decimal64 (decimal32 d32)
• decimal64 (double __r)
• decimal64 (float __r)
• decimal64 (int __z)
• decimal64 (long __z)
• decimal64 (long double __r)
• decimal64 (long long __z)
• decimal64 (unsigned int __z)
• decimal64 (unsigned long __z)
• decimal64 (unsigned long long __z)
• __decfloat64 __getval (void)
• void __setval (__decfloat64 __x)
• operator long long () const
• decimal64 & operator∗= (decimal128 __rhs)
• decimal64 & operator∗= (decimal32 __rhs)
• decimal64 & operator∗= (decimal64 __rhs)
• decimal64 & operator∗= (int __rhs)
• decimal64 & operator∗= (long __rhs)
• decimal64 & operator∗= (long long __rhs)
• decimal64 & operator∗= (unsigned int __rhs)
• decimal64 & operator∗= (unsigned long __rhs)
• decimal64 & operator∗= (unsigned long long __rhs)
• decimal64 & operator++ ()
• decimal64 operator++ (int)
• decimal64 & operator+= (decimal128 __rhs)
• decimal64 & operator+= (decimal32 __rhs)
• decimal64 & operator+= (decimal64 __rhs)
• decimal64 & operator+= (int __rhs)
• decimal64 & operator+= (long __rhs)
• decimal64 & operator+= (long long __rhs)
• decimal64 & operator+= (unsigned int __rhs)
• decimal64 & operator+= (unsigned long __rhs)
• decimal64 & operator+= (unsigned long long __rhs)
• decimal64 & operator-- ()
• decimal64 operator-- (int)
• decimal64 & operator-= (decimal128 __rhs)
• decimal64 & operator-= (decimal32 __rhs)
• decimal64 & operator-= (decimal64 __rhs)
• decimal64 & operator-= (int __rhs)
• decimal64 & operator-= (long __rhs)

Generated by Doxygen
5.383 simd_abi::deduce< _Tp, _Np,... > Struct Template Reference 1895

• decimal64 & operator-= (long long __rhs)


• decimal64 & operator-= (unsigned int __rhs)
• decimal64 & operator-= (unsigned long __rhs)
• decimal64 & operator-= (unsigned long long __rhs)
• decimal64 & operator/= (decimal128 __rhs)
• decimal64 & operator/= (decimal32 __rhs)
• decimal64 & operator/= (decimal64 __rhs)
• decimal64 & operator/= (int __rhs)
• decimal64 & operator/= (long __rhs)
• decimal64 & operator/= (long long __rhs)
• decimal64 & operator/= (unsigned int __rhs)
• decimal64 & operator/= (unsigned long __rhs)
• decimal64 & operator/= (unsigned long long __rhs)

5.382.1 Detailed Description

3.2.3 Class decimal64.

5.382.2 Constructor & Destructor Documentation

decimal64()

std::decimal::decimal64::decimal64 (
__decfloat64 __z) [inline]
Conforming extension: Conversion from scalar decimal type.
The documentation for this class was generated from the following file:

• decimal

5.383 simd_abi::deduce< _Tp, _Np,... > Struct Template Reference


#include <simd.h>

5.383.1 Detailed Description

template<typename _Tp, size_t _Np, typename...>


struct simd_abi::deduce< _Tp, _Np,... >

Template Parameters

_Tp The requested value_type for the elements.


_Np The requested number of elements.
_Abis This parameter is ignored, since this implementation cannot make any use of it. Either __a good native ABI
is matched and used as type alias, or the fixed_size<_Np> ABI is used, which internally is built
from the best matching native ABIs.

The documentation for this struct was generated from the following file:

• simd.h

5.384 __gnu_pbds::detail::default_comb_hash_fn Struct Reference


#include <standard_policies.hpp>

Generated by Doxygen
1896

Public Types

• typedef direct_mask_range_hashing type

5.384.1 Detailed Description

Primary template, default_comb_hash_fn.

5.384.2 Member Typedef Documentation

type

direct_mask_range_hashing __gnu_pbds::detail::default_comb_hash_fn::type
Dispatched type.
The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.385 std::default_delete< _Tp > Struct Template Reference


#include <memory>

Public Member Functions

• constexpr default_delete () noexcept=default


• template<typename _Up , typename = _Require<is_convertible<_Up∗, _Tp∗>>>
constexpr default_delete (const default_delete< _Up > &) noexcept
• constexpr void operator() (_Tp ∗__ptr) const

5.385.1 Detailed Description

template<typename _Tp>
struct std::default_delete< _Tp >

Primary template of default_delete, used by unique_ptr for single objects

Since

C++11

5.385.2 Constructor & Destructor Documentation

default_delete() [1/2]

template<typename _Tp >


std::default_delete< _Tp >::default_delete () [constexpr], [default], [noexcept]
Default constructor.

default_delete() [2/2]

template<typename _Tp >


template<typename _Up , typename = _Require<is_convertible<_Up∗, _Tp∗>>>
std::default_delete< _Tp >::default_delete (
const default_delete< _Up > & ) [inline], [constexpr], [noexcept]
Converting constructor.
Allows conversion from a deleter for objects of another type, _Up, only if _Up∗ is convertible to _Tp∗.

Generated by Doxygen
5.386 std::default_delete< _Tp[]> Struct Template Reference 1897

5.385.3 Member Function Documentation

operator()()

template<typename _Tp >


void std::default_delete< _Tp >::operator() (
_Tp ∗ __ptr) const [inline], [constexpr]
Calls delete __ptr
The documentation for this struct was generated from the following file:

• unique_ptr.h

5.386 std::default_delete< _Tp[]> Struct Template Reference


#include <memory>

Public Member Functions

• constexpr default_delete () noexcept=default


• template<typename _Up , typename = _Require<is_convertible<_Up(∗)[ ], _Tp(∗)[ ]>>>
constexpr default_delete (const default_delete< _Up[ ]> &) noexcept
• template<typename _Up >
constexpr enable_if< is_convertible< _Up(∗)[ ], _Tp(∗)[ ]>::value >::type operator() (_Up ∗__ptr) const

5.386.1 Detailed Description

template<typename _Tp>
struct std::default_delete< _Tp[ ]>

Specialization of default_delete for arrays, used by unique_ptr<T[]>

Since

C++11

5.386.2 Constructor & Destructor Documentation

default_delete() [1/2]

template<typename _Tp >


std::default_delete< _Tp[ ]>::default_delete () [constexpr], [default], [noexcept]
Default constructor.

default_delete() [2/2]

template<typename _Tp >


template<typename _Up , typename = _Require<is_convertible<_Up(∗)[ ], _Tp(∗)[ ]>>>
std::default_delete< _Tp[ ]>::default_delete (
const default_delete< _Up[ ]> & ) [inline], [constexpr], [noexcept]
Converting constructor.
Allows conversion from a deleter for arrays of another type, such as a const-qualified version of _Tp.
Conversions from types derived from _Tp are not allowed because it is undefined to delete[] an array of derived
types through a pointer to the base type.

Generated by Doxygen
1898

5.386.3 Member Function Documentation

operator()()

template<typename _Tp >


template<typename _Up >
enable_if< is_convertible< _Up(∗)[ ], _Tp(∗)[ ]>::value >::type std::default_delete< _Tp[ ]>::operator()
(
_Up ∗ __ptr) const [inline], [constexpr]
Calls delete[] __ptr
The documentation for this struct was generated from the following file:

• unique_ptr.h

5.387 __gnu_pbds::detail::default_eq_fn< Key > Struct Template Reference


#include <standard_policies.hpp>

Public Types

• typedef std::equal_to< Key > type

5.387.1 Detailed Description

template<typename Key>
struct __gnu_pbds::detail::default_eq_fn< Key >

Primary template, default_eq_fn.

5.387.2 Member Typedef Documentation

type

template<typename Key >


std::equal_to<Key> __gnu_pbds::detail::default_eq_fn< Key >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.388 __gnu_pbds::detail::default_hash_fn< Key > Struct Template Reference


#include <standard_policies.hpp>

Public Types

• typedef std::tr1::hash< Key > type

5.388.1 Detailed Description

template<typename Key>
struct __gnu_pbds::detail::default_hash_fn< Key >

Primary template, default_hash_fn.

Generated by Doxygen
5.389 __gnu_parallel::default_parallel_tag Struct Reference 1899

5.388.2 Member Typedef Documentation

type

template<typename Key >


std::tr1::hash<Key> __gnu_pbds::detail::default_hash_fn< Key >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.389 __gnu_parallel::default_parallel_tag Struct Reference


#include <tags.h>
Inheritance diagram for __gnu_parallel::default_parallel_tag:

__gnu_parallel::parallel_tag

__gnu_parallel::default
_parallel_tag

Public Member Functions

• default_parallel_tag (_ThreadIndex __num_threads)


• _ThreadIndex __get_num_threads ()
• void set_num_threads (_ThreadIndex __num_threads)

5.389.1 Detailed Description

Recommends parallel execution using the default parallel algorithm.

5.389.2 Member Function Documentation

__get_num_threads()

_ThreadIndex __gnu_parallel::parallel_tag::__get_num_threads () [inline], [inherited]


Find out desired number of threads.
Returns

Desired number of threads.

Referenced by __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(),


__gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), and __gnu_parallel::__parallel_sort(

Generated by Doxygen
1900

set_num_threads()

void __gnu_parallel::parallel_tag::set_num_threads (
_ThreadIndex __num_threads) [inline], [inherited]
Set the desired number of threads.

Parameters

__num_threads Desired number of threads.

The documentation for this struct was generated from the following file:

• tags.h

5.390 __gnu_pbds::detail::default_probe_fn< Comb_Probe_Fn > Struct Template


Reference
#include <standard_policies.hpp>

Public Types

• typedef cond_type::__type type

5.390.1 Detailed Description

template<typename Comb_Probe_Fn>
struct __gnu_pbds::detail::default_probe_fn< Comb_Probe_Fn >

Primary template, default_probe_fn.

5.390.2 Member Typedef Documentation

type

template<typename Comb_Probe_Fn >


cond_type::__type __gnu_pbds::detail::default_probe_fn< Comb_Probe_Fn >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.391 __gnu_pbds::detail::default_resize_policy< Comb_Hash_Fn > Struct Template


Reference
#include <standard_policies.hpp>

Public Types

• typedef hash_standard_resize_policy< size_policy_type, trigger, false, size_type > type

5.391.1 Detailed Description

template<typename Comb_Hash_Fn>
struct __gnu_pbds::detail::default_resize_policy< Comb_Hash_Fn >

Primary template, default_resize_policy.

Generated by Doxygen
5.392 std::default_sentinel_t Struct Reference 1901

5.391.2 Member Typedef Documentation

type

template<typename Comb_Hash_Fn >


hash_standard_resize_policy<size_policy_type, trigger, false, size_type> __gnu_pbds::detail::default_resize_polic
Comb_Hash_Fn >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.392 std::default_sentinel_t Struct Reference


#include <iterator_concepts.h>

5.392.1 Detailed Description

A sentinel type that can be used to check for the end of a range.
For some iterator types the past-the-end sentinel value is independent of the underlying sequence, and a default sentinel
can be used with them. For example, a std::counted_iterator keeps a count of how many elements remain,
and so checking for the past-the-end value only requires checking if that count has reached zero. A past-the-end
std::istream_iterator is equal to the default-constructed value, which can be easily checked.
Comparing iterators of these types to std::default_sentinel is a convenient way to check if the end has been
reached.
Since

C++20

The documentation for this struct was generated from the following file:

• iterator_concepts.h

5.393 __gnu_pbds::detail::default_trie_access_traits< Key > Struct Template Reference


5.393.1 Detailed Description

template<typename Key>
struct __gnu_pbds::detail::default_trie_access_traits< Key >

Primary template, default_trie_access_traits.


The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.394 __gnu_pbds::detail::default_trie_access_traits< std::basic_string< Char,


Char_Traits, std::allocator< char > > > Struct Template Reference
#include <standard_policies.hpp>

Public Types

• typedef trie_string_access_traits< string_type > type

Generated by Doxygen
1902

5.394.1 Detailed Description

template<typename Char, typename Char_Traits>


struct __gnu_pbds::detail::default_trie_access_traits< std::basic_string< Char, Char_Traits, std::allocator<
char > > >

Partial specialization, default_trie_access_traits.

5.394.2 Member Typedef Documentation

type

template<typename Char , typename Char_Traits >


trie_string_access_traits<string_type> __gnu_pbds::detail::default_trie_access_traits< std::basic_string<
Char, Char_Traits, std::allocator< char > > >::type
Dispatched type.
The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.395 __gnu_pbds::detail::default_update_policy Struct Reference


#include <standard_policies.hpp>

Public Types

• typedef lu_move_to_front_policy type

5.395.1 Detailed Description

Default update policy.

5.395.2 Member Typedef Documentation

type

lu_move_to_front_policy __gnu_pbds::detail::default_update_policy::type
Dispatched type.
The documentation for this struct was generated from the following file:

• standard_policies.hpp

5.396 std::defer_lock_t Struct Reference


#include <std_mutex.h>

5.396.1 Detailed Description

Do not acquire ownership of the mutex.


The documentation for this struct was generated from the following file:

• std_mutex.h

Generated by Doxygen
5.397 std::__debug::deque< _Tp, _Allocator > Class Template Reference 1903

5.397 std::__debug::deque< _Tp, _Allocator > Class Template Reference


#include <deque>
Inheritance diagram for std::__debug::deque< _Tp, _Allocator >:

__gnu_debug::_Safe
_container< _SafeContainer, std::__debug::deque
_Alloc, _SafeBase, _IsCxx11Allocator < _Tp, _Allocator >
Aware >

Public Types

• typedef _Allocator allocator_type


• typedef __gnu_debug::_Safe_iterator< _Base_const_iterator, deque > const_iterator
• typedef _Base::const_pointer const_pointer
• typedef _Base::const_reference const_reference
• typedef std::reverse_iterator< const_iterator > const_reverse_iterator
• typedef _Base::difference_type difference_type
• typedef __gnu_debug::_Safe_iterator< _Base_iterator, deque > iterator
• typedef _Base::pointer pointer
• typedef _Base::reference reference
• typedef std::reverse_iterator< iterator > reverse_iterator
• typedef _Base::size_type size_type
• typedef _Tp value_type

Public Member Functions

• deque (_Base_ref __x)


• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
deque (_InputIterator __first, _InputIterator __last, const _Allocator &__a=_Allocator())
• deque (const _Allocator &__a)
• deque (const deque &)=default
• deque (const deque &__d, const __type_identity_t< _Allocator > &__a)
• deque (deque &&)=default
• deque (deque &&__d, const __type_identity_t< _Allocator > &__a)
• deque (initializer_list< value_type > __l, const allocator_type &__a=allocator_type())
• deque (size_type __n, const __type_identity_t< _Tp > &__value, const _Allocator &__a=_Allocator())
• deque (size_type __n, const _Allocator &__a=_Allocator())
• const _Base & _M_base () const noexcept
• _Base & _M_base () noexcept
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
void assign (_InputIterator __first, _InputIterator __last)
• void assign (initializer_list< value_type > __l)
• void assign (size_type __n, const _Tp &__t)
• const_reference back () const noexcept
• reference back () noexcept

Generated by Doxygen
1904

• const_iterator begin () const noexcept


• iterator begin () noexcept
• const_iterator cbegin () const noexcept
• const_iterator cend () const noexcept
• void clear () noexcept
• const_reverse_iterator crbegin () const noexcept
• const_reverse_iterator crend () const noexcept
• template<typename... _Args>
iterator emplace (const_iterator __position, _Args &&... __args)
• template<typename... _Args>
reference emplace_back (_Args &&... __args)
• template<typename... _Args>
reference emplace_front (_Args &&... __args)
• const_iterator end () const noexcept
• iterator end () noexcept
• iterator erase (const_iterator __first, const_iterator __last)
• iterator erase (const_iterator __position)
• const_reference front () const noexcept
• reference front () noexcept
• template<class _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator insert (const_iterator __position, _InputIterator __first, _InputIterator __last)
• iterator insert (const_iterator __position, _Tp &&__x)
• iterator insert (const_iterator __position, const _Tp &__x)
• iterator insert (const_iterator __position, initializer_list< value_type > __l)
• iterator insert (const_iterator __position, size_type __n, const _Tp &__x)
• deque & operator= (const deque &)=default
• deque & operator= (deque &&)=default
• deque & operator= (initializer_list< value_type > __l)
• const_reference operator[ ] (size_type __n) const noexcept
• reference operator[ ] (size_type __n) noexcept
• void pop_back () noexcept
• void pop_front () noexcept
• void push_back (_Tp &&__x)
• void push_back (const _Tp &__x)
• void push_front (_Tp &&__x)
• void push_front (const _Tp &__x)
• const_reverse_iterator rbegin () const noexcept
• reverse_iterator rbegin () noexcept
• const_reverse_iterator rend () const noexcept
• reverse_iterator rend () noexcept
• void resize (size_type __sz)
• void resize (size_type __sz, const _Tp &__c)
• void shrink_to_fit () noexcept
• void swap (deque &__x) noexcept(/∗conditional ∗/)

Protected Member Functions

• constexpr void _M_swap (_Safe_container &__x) noexcept

Friends

• template<typename _ItT , typename _SeqT , typename _CatT >


class ::__gnu_debug::_Safe_iterator

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1905

5.397.1 Detailed Description

template<typename _Tp, typename _Allocator = std::allocator<_Tp>>


class std::__debug::deque< _Tp, _Allocator >

Class std::deque with safety/checking/debug instrumentation.


The documentation for this class was generated from the following file:

• debug/deque

5.398 std::deque< _Tp, _Alloc > Class Template Reference


#include <stl_deque.h>
Inheritance diagram for std::deque< _Tp, _Alloc >:

std::_Deque_base<
_Tp, _Alloc >

std::deque< _Tp, _Alloc >

Public Types

• typedef _Alloc allocator_type


• typedef _Base::const_iterator const_iterator
• typedef _Alloc_traits::const_pointer const_pointer
• typedef _Alloc_traits::const_reference const_reference
• typedef std::reverse_iterator< const_iterator > const_reverse_iterator
• typedef ptrdiff_t difference_type
• typedef _Base::iterator iterator
• typedef _Alloc_traits::pointer pointer
• typedef _Alloc_traits::reference reference
• typedef std::reverse_iterator< iterator > reverse_iterator
• typedef size_t size_type
• typedef _Tp value_type

Public Member Functions

• deque ()=default
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
deque (_InputIterator __first, _InputIterator __last, const allocator_type &__a=allocator_type())
• deque (const allocator_type &__a)
• deque (const deque &__x)
• deque (const deque &__x, const __type_identity_t< allocator_type > &__a)

Generated by Doxygen
1906

• deque (deque &&)=default


• deque (deque &&__x, const __type_identity_t< allocator_type > &__a)
• deque (initializer_list< value_type > __l, const allocator_type &__a=allocator_type())
• deque (size_type __n, const allocator_type &__a=allocator_type())
• deque (size_type __n, const value_type &__value, const allocator_type &__a=allocator_type())
• ∼deque ()
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
void assign (_InputIterator __first, _InputIterator __last)
• void assign (initializer_list< value_type > __l)
• void assign (size_type __n, const value_type &__val)
• reference at (size_type __n)
• const_reference at (size_type __n) const
• const_reference back () const noexcept
• reference back () noexcept
• const_iterator begin () const noexcept
• iterator begin () noexcept
• const_iterator cbegin () const noexcept
• const_iterator cend () const noexcept
• void clear () noexcept
• const_reverse_iterator crbegin () const noexcept
• const_reverse_iterator crend () const noexcept
• template<typename... _Args>
iterator emplace (const_iterator __position, _Args &&... __args)
• template<typename... _Args>
reference emplace_back (_Args &&... __args)
• template<typename... _Args>
reference emplace_front (_Args &&... __args)
• bool empty () const noexcept
• const_iterator end () const noexcept
• iterator end () noexcept
• iterator erase (const_iterator __first, const_iterator __last)
• iterator erase (const_iterator __position)
• const_reference front () const noexcept
• reference front () noexcept
• allocator_type get_allocator () const noexcept
• iterator insert (const_iterator __p, initializer_list< value_type > __l)
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator insert (const_iterator __position, _InputIterator __first, _InputIterator __last)
• iterator insert (const_iterator __position, const value_type &__x)
• iterator insert (const_iterator __position, size_type __n, const value_type &__x)
• iterator insert (const_iterator __position, value_type &&__x)
• size_type max_size () const noexcept
• deque & operator= (const deque &__x)
• deque & operator= (deque &&__x) noexcept(_Alloc_traits::_S_always_equal())
• deque & operator= (initializer_list< value_type > __l)
• const_reference operator[ ] (size_type __n) const noexcept
• reference operator[ ] (size_type __n) noexcept
• void pop_back () noexcept
• void pop_front () noexcept
• void push_back (const value_type &__x)
• void push_back (value_type &&__x)

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1907

• void push_front (const value_type &__x)


• void push_front (value_type &&__x)
• const_reverse_iterator rbegin () const noexcept
• reverse_iterator rbegin () noexcept
• const_reverse_iterator rend () const noexcept
• reverse_iterator rend () noexcept
• void resize (size_type __new_size)
• void resize (size_type __new_size, const value_type &__x)
• void shrink_to_fit () noexcept
• size_type size () const noexcept
• void swap (deque &__x) noexcept

Protected Types

• enum { _S_initial_map_size }
• typedef __gnu_cxx::__alloc_traits< _Map_alloc_type > _Map_alloc_traits
• typedef _Alloc_traits::template rebind< _Ptr >::other _Map_alloc_type
• typedef _Alloc_traits::pointer _Ptr
• typedef _Alloc_traits::const_pointer _Ptr_const

Protected Member Functions

• template<typename _ForwardIterator >


void _M_assign_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
• template<typename _InputIterator >
void _M_assign_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
• void _M_deallocate_map (_Map_pointer __p, size_t __n) noexcept
• void _M_default_append (size_type __n)
• void _M_default_initialize ()
• template<typename _Alloc1 >
void _M_destroy_data (iterator __first, iterator __last, const _Alloc1 &)
• void _M_destroy_data (iterator __first, iterator __last, const std::allocator< _Tp > &)
• void _M_destroy_data_aux (iterator __first, iterator __last)
• template<typename... _Args>
iterator _M_emplace_aux (iterator __pos, _Args &&... __args)
• iterator _M_erase (iterator __first, iterator __last)
• iterator _M_erase (iterator __pos)
• void _M_erase_at_begin (iterator __pos)
• void _M_erase_at_end (iterator __pos)
• void _M_fill_assign (size_type __n, const value_type &__val)
• void _M_fill_initialize (const value_type &__value)
• void _M_fill_insert (iterator __pos, size_type __n, const value_type &__x)
• _Map_alloc_type _M_get_map_allocator () const noexcept
• template<typename _ForwardIterator >
void _M_insert_aux (iterator __pos, _ForwardIterator __first, _ForwardIterator __last, size_type __n)
• iterator _M_insert_aux (iterator __pos, const value_type &__x)
• void _M_insert_aux (iterator __pos, size_type __n, const value_type &__x)
• void _M_move_assign1 (deque &&__x, false_type)
• void _M_move_assign1 (deque &&__x, true_type) noexcept
• void _M_move_assign2 (deque &&__x, false_type)
• void _M_move_assign2 (deque &&__x, true_type)

Generated by Doxygen
1908

• template<typename _InputIterator , typename _Sentinel >


void _M_range_append (_InputIterator __first, _Sentinel __last, size_type __n)
• void _M_range_check (size_type __n) const
• template<typename _ForwardIterator >
void _M_range_insert_aux (iterator __pos, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
• template<typename _InputIterator >
void _M_range_insert_aux (iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag)
• template<typename _InputIterator , typename _Sentinel >
void _M_range_prepend (_InputIterator __first, _Sentinel __last, size_type __n)
• template<typename... _Args>
void _M_replace_map (_Args &&... __args)
• bool _M_shrink_to_fit ()

• template<typename _InputIterator >


void _M_range_initialize (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
• template<typename _ForwardIterator >
void _M_range_initialize (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)

• template<typename... _Args>
void _M_push_back_aux (_Args &&... __args)
• template<typename... _Args>
void _M_push_front_aux (_Args &&... __args)
• void _M_pop_back_aux ()
• void _M_pop_front_aux ()

• iterator _M_reserve_elements_at_front (size_type __n)


• iterator _M_reserve_elements_at_back (size_type __n)
• void _M_new_elements_at_front (size_type __new_elements)
• void _M_new_elements_at_back (size_type __new_elements)

• void _M_reserve_map_at_back (size_type __nodes_to_add=1)


• void _M_reserve_map_at_front (size_type __nodes_to_add=1)
• void _M_reallocate_map (size_type __nodes_to_add, bool __add_at_front)

Static Protected Member Functions

• static size_t _S_check_init_len (size_t __n, const allocator_type &__a)


• static size_type _S_max_size (const _Tp_alloc_type &__a) noexcept

5.398.1 Detailed Description

template<typename _Tp, typename _Alloc = std::allocator<_Tp>>


class std::deque< _Tp, _Alloc >

A standard container using fixed-size memory allocation and constant-time manipulation of elements at either end.

Template Parameters

_Tp Type of element.

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1909

_Alloc Allocator type, defaults to allocator<_Tp>.

Meets the requirements of a


container, a reversible container, and a sequence, including the
optional sequence requirements.
In previous HP/SGI versions of deque, there was an extra template parameter so users could control the node size. This
extension turned out to violate the C++ standard (it can be detected using template template parameters), and it was
removed.
Here's how a deque<Tp> manages memory. Each deque has 4 members:

• Tp∗∗ _M_map

• size_t _M_map_size

• iterator _M_start, _M_finish

map_size is at least 8. map is an array of map_size pointers-to-nodes. (The name map has nothing to do with the
std::map class, and nodes should not be confused with std::list's usage of node.)
A node has no specific type name as such, but it is referred to as node in this file. It is a simple array-of-Tp. If Tp is very
large, there will be one Tp element per node (i.e., an array of one). For non-huge Tp's, node size is inversely related to
Tp size: the larger the Tp, the fewer Tp's will fit in a node. The goal here is to keep the total size of a node relatively
small and constant over different Tp's, to improve allocator efficiency.
Not every pointer in the map array will point to a node. If the initial number of elements in the deque is small, the /middle/
map pointers will be valid, and the ones at the edges will be unused. This same situation will arise as the map grows:
available map pointers, if any, will be on the ends. As new nodes are created, only a subset of the map's pointers need
to be copied outward.
Class invariants:

• For any nonsingular iterator i:

– i.node points to a member of the map array. (Yes, you read that correctly: i.node does not actually point to
a node.) The member of the map array is what actually points to the node.
– i.first == ∗(i.node) (This points to the node (first Tp element).)
– i.last == i.first + node_size
– i.cur is a pointer in the range [i.first, i.last). NOTE: the implication of this is that i.cur is always a dereference-
able pointer, even if i is a past-the-end iterator.

• Start and Finish are always nonsingular iterators. NOTE: this means that an empty deque must have one node,
a deque with <N elements (where N is the node buffer size) must have one node, a deque with N through (2N-1)
elements must have two nodes, etc.

• For every node other than start.node and finish.node, every element in the node is an initialized object. If start.←-
node == finish.node, then [start.cur, finish.cur) are initialized objects, and the elements outside that range are
uninitialized storage. Otherwise, [start.cur, start.last) and [finish.first, finish.cur) are initialized objects, and [start.←-
first, start.cur) and [finish.cur, finish.last) are uninitialized storage.

• [map, map + map_size) is a valid, non-empty range.

• [start.node, finish.node] is a valid range contained within [map, map + map_size).

• A pointer in the range [map, map + map_size) points to an allocated node if and only if the pointer is in the range
[start.node, finish.node].
Here's the magic: nothing in deque is aware of the discontiguous storage!
The memory setup and layout occurs in the parent, _Base, and the iterator class is entirely responsible for leaping
from one node to the next. All the implementation routines for deque itself work only through the start and finish
iterators. This keeps the routines simple and sane, and we can use other standard algorithms as well.

Generated by Doxygen
1910

5.398.2 Constructor & Destructor Documentation

deque() [1/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque () [default]
Creates a deque with no elements.

deque() [2/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
const allocator_type & __a) [inline], [explicit]
Creates a deque with no elements.

Parameters
_←- An allocator object.
_a

deque() [3/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
size_type __n,
const allocator_type & __a = allocator_type()) [inline], [explicit]
Creates a deque with default constructed elements.

Parameters

_←- The number of elements to initially create.


_n
_←- An allocator.
_a

This constructor fills the deque with n default constructed elements.

deque() [4/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
size_type __n,
const value_type & __value,
const allocator_type & __a = allocator_type()) [inline]
Creates a deque with copies of an exemplar element.

Parameters

__n The number of elements to initially create.


__value An element to copy.
__a An allocator.

This constructor fills the deque with __n copies of __value.


References std::deque< _Tp, _Alloc >::_M_fill_initialize().

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1911

deque() [5/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
const deque< _Tp, _Alloc > & __x) [inline]
Deque copy constructor.

Parameters

_←- A deque of identical element and allocator types.


_x

The newly-created deque uses a copy of the allocator object used by __x (unless the allocator traits dictate a different
object).
References std::deque< _Tp, _Alloc >::begin(), and std::deque< _Tp, _Alloc >::end().

deque() [6/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
deque< _Tp, _Alloc > && ) [default]
Deque move constructor.
The newly-created deque contains the exact contents of the moved instance. The contents of the moved instance are a
valid, but unspecified deque.

deque() [7/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
const deque< _Tp, _Alloc > & __x,
const __type_identity_t< allocator_type > & __a) [inline]
Copy constructor with alternative allocator.
References std::deque< _Tp, _Alloc >::begin(), and std::deque< _Tp, _Alloc >::end().

deque() [8/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
deque< _Tp, _Alloc > && __x,
const __type_identity_t< allocator_type > & __a) [inline]
Move constructor with alternative allocator.

deque() [9/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


std::deque< _Tp, _Alloc >::deque (
initializer_list< value_type > __l,
const allocator_type & __a = allocator_type()) [inline]
Builds a deque from an initializer list.

Parameters
_←- An initializer_list.
_l

Generated by Doxygen
1912

_←- An allocator object.


_a

Create a deque consisting of copies of the elements in the initializer_list __l.


This will call the element type's copy constructor N times (where N is __l.size()) and do no memory reallocation.
References std::deque< _Tp, _Alloc >::_M_range_initialize().

deque() [10/10]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
std::deque< _Tp, _Alloc >::deque (
_InputIterator __first,
_InputIterator __last,
const allocator_type & __a = allocator_type()) [inline]
Builds a deque from a range.

Parameters

__first An input iterator.


__last An input iterator.
__a An allocator object.

Create a deque consisting of copies of the elements from [__first, __last).


If the iterators are forward, bidirectional, or random-access, then this will call the elements' copy constructor N times
(where N is distance(__first,__last)) and do no memory reallocation. But if only input iterators are used, then this will do
at most 2N calls to the copy constructor, and logN memory reallocations.
References std::__iterator_category(), and std::deque< _Tp, _Alloc >::_M_range_initialize().

∼deque()
template<typename _Tp , typename _Alloc = std::allocator<_Tp>>
std::deque< _Tp, _Alloc >::∼deque () [inline]
The dtor only erases the elements, and note that if the elements themselves are pointers, the pointed-to memory is not
touched in any way. Managing the pointer is the user's responsibility.
References std::deque< _Tp, _Alloc >::begin(), and std::deque< _Tp, _Alloc >::end().

5.398.3 Member Function Documentation

_M_fill_initialize()

template<typename _Tp , typename _Alloc >


void deque::_M_fill_initialize (
const value_type & __value) [protected]
Fills the deque with copies of value.

Parameters
__value Initial value.

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1913

Returns

Nothing.

Precondition

_M_start and _M_finish have already been initialized, but none of the deque's elements have yet been constructed.

This function is called only when the user provides an explicit size (with or without an explicit exemplar value).
References std::_Destroy().
Referenced by std::deque< _Tp, _Alloc >::deque().

_M_new_elements_at_back()

template<typename _Tp , typename _Alloc >


void deque::_M_new_elements_at_back (
size_type __new_elements) [protected]
Memory-handling helpers for the previous internal insert functions.
References std::size().
Referenced by std::deque< _Tp, _Alloc >::_M_reserve_elements_at_back().

_M_new_elements_at_front()

template<typename _Tp , typename _Alloc >


void deque::_M_new_elements_at_front (
size_type __new_elements) [protected]
Memory-handling helpers for the previous internal insert functions.
References std::size().
Referenced by std::deque< _Tp, _Alloc >::_M_reserve_elements_at_front().

_M_pop_back_aux()

template<typename _Tp , typename _Alloc >


void deque::_M_pop_back_aux () [protected]
Helper functions for push_∗ and pop_∗.
Referenced by std::deque< _Tp, _Alloc >::pop_back().

_M_pop_front_aux()

template<typename _Tp , typename _Alloc >


void deque::_M_pop_front_aux () [protected]
Helper functions for push_∗ and pop_∗.
Referenced by std::deque< _Tp, _Alloc >::pop_front().

_M_push_back_aux()

template<typename _Tp , typename _Alloc >


template<typename... _Args>
void deque::_M_push_back_aux (
_Args &&... __args) [protected]
Helper functions for push_∗ and pop_∗.
References std::forward(), and std::size().
Referenced by std::deque< _Tp, _Alloc >::push_back().

Generated by Doxygen
1914

_M_push_front_aux()

template<typename _Tp , typename _Alloc >


template<typename... _Args>
void deque::_M_push_front_aux (
_Args &&... __args) [protected]
Helper functions for push_∗ and pop_∗.
References std::forward(), and std::size().
Referenced by std::deque< _Tp, _Alloc >::push_front().

_M_range_check()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::_M_range_check (
size_type __n) const [inline], [protected]
Safety check used only from at().
References std::deque< _Tp, _Alloc >::size().
Referenced by std::deque< _Tp, _Alloc >::at(), and std::deque< _Tp, _Alloc >::at().

_M_range_initialize() [1/2]

template<typename _Tp , typename _Alloc >


template<typename _ForwardIterator >
void deque::_M_range_initialize (
_ForwardIterator __first,
_ForwardIterator __last,
std::forward_iterator_tag ) [protected]
Fills the deque with whatever is in [first,last).

Parameters

__first An input iterator.


__last An input iterator.

Returns

Nothing.

If the iterators are actually forward iterators (or better), then the memory layout can be done all at once. Else we move
forward using push_back on each value from the iterator.
References std::_Destroy(), std::advance(), and std::distance().

_M_range_initialize() [2/2]

template<typename _Tp , typename _Alloc >


template<typename _InputIterator >
void deque::_M_range_initialize (
_InputIterator __first,
_InputIterator __last,
std::input_iterator_tag ) [protected]
Fills the deque with whatever is in [first,last).

Parameters

__first An input iterator.

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1915

__last An input iterator.

Returns

Nothing.

If the iterators are actually forward iterators (or better), then the memory layout can be done all at once. Else we move
forward using push_back on each value from the iterator.
Referenced by std::deque< _Tp, _Alloc >::deque(), and std::deque< _Tp, _Alloc >::deque().

_M_reallocate_map()

template<typename _Tp , typename _Alloc >


void deque::_M_reallocate_map (
size_type __nodes_to_add,
bool __add_at_front) [protected]
Memory-handling helpers for the major map.
Makes sure the _M_map has space for new nodes. Does not actually add the nodes. Can invalidate _M_map pointers.
(And consequently, deque iterators.)
References std::max().
Referenced by std::deque< _Tp, _Alloc >::_M_reserve_map_at_back(), and std::deque< _Tp, _Alloc >::_M_reserve_map_at_front().

_M_reserve_elements_at_back()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::_M_reserve_elements_at_back (
size_type __n) [inline], [protected]
Memory-handling helpers for the previous internal insert functions.
References std::deque< _Tp, _Alloc >::_M_new_elements_at_back().

_M_reserve_elements_at_front()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::_M_reserve_elements_at_front (
size_type __n) [inline], [protected]
Memory-handling helpers for the previous internal insert functions.
References std::deque< _Tp, _Alloc >::_M_new_elements_at_front().

_M_reserve_map_at_back()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::_M_reserve_map_at_back (
size_type __nodes_to_add = 1) [inline], [protected]
Memory-handling helpers for the major map.
Makes sure the _M_map has space for new nodes. Does not actually add the nodes. Can invalidate _M_map pointers.
(And consequently, deque iterators.)
References std::deque< _Tp, _Alloc >::_M_reallocate_map().

_M_reserve_map_at_front()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::_M_reserve_map_at_front (
size_type __nodes_to_add = 1) [inline], [protected]
Memory-handling helpers for the major map.

Generated by Doxygen
1916

Makes sure the _M_map has space for new nodes. Does not actually add the nodes. Can invalidate _M_map pointers.
(And consequently, deque iterators.)
References std::deque< _Tp, _Alloc >::_M_reallocate_map().

assign() [1/3]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
void std::deque< _Tp, _Alloc >::assign (
_InputIterator __first,
_InputIterator __last) [inline]
Assigns a range to a deque.

Parameters

__first An input iterator.


__last An input iterator.

This function fills a deque with copies of the elements in the range [__first,__last).
Note that the assignment completely changes the deque and that the resulting deque's size is the same as the number
of elements assigned.
References std::__iterator_category().

assign() [2/3]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::assign (
initializer_list< value_type > __l) [inline]
Assigns an initializer list to a deque.

Parameters
←- An initializer_list.
_←-
←-
_←-
l

This function fills a deque with copies of the elements in the initializer_list __l.
Note that the assignment completely changes the deque and that the resulting deque's size is the same as the number
of elements assigned.

assign() [3/3]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::assign (
size_type __n,
const value_type & __val) [inline]
Assigns a given value to a deque.

Parameters

__n Number of elements to be assigned.


__val Value to be assigned.

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1917

This function fills a deque with n copies of the given value. Note that the assignment completely changes the deque and
that the resulting deque's size is the same as the number of elements assigned.

at() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


reference std::deque< _Tp, _Alloc >::at (
size_type __n) [inline]
Provides access to the data contained in the deque.

Parameters

_←- The index of the element for which data should be accessed.
_n

Returns

Read/write reference to data.

Exceptions

std::out_of_range If __n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the deque. The
function throws out_of_range if the check fails.
References std::deque< _Tp, _Alloc >::_M_range_check().

at() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reference std::deque< _Tp, _Alloc >::at (
size_type __n) const [inline]
Provides access to the data contained in the deque.

Parameters

_←- The index of the element for which data should be accessed.
_n

Returns

Read-only (constant) reference to data.

Exceptions

std::out_of_range If __n is an invalid index.

This function provides for safer data access. The parameter is first checked that it is in the range of the deque. The
function throws out_of_range if the check fails.
References std::deque< _Tp, _Alloc >::_M_range_check().

Generated by Doxygen
1918

back() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reference std::deque< _Tp, _Alloc >::back () const [inline], [nodiscard], [noexcept]
Returns a read-only (constant) reference to the data at the last element of the deque.
References std::deque< _Tp, _Alloc >::end().

back() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


reference std::deque< _Tp, _Alloc >::back () [inline], [nodiscard], [noexcept]
Returns a read/write reference to the data at the last element of the deque.
References std::deque< _Tp, _Alloc >::end().

begin() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_iterator std::deque< _Tp, _Alloc >::begin () const [inline], [nodiscard], [noexcept]
Returns a read-only (constant) iterator that points to the first element in the deque. Iteration is done in ordinary element
order.

begin() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::begin () [inline], [nodiscard], [noexcept]
Returns a read/write iterator that points to the first element in the deque. Iteration is done in ordinary element order.
Referenced by std::deque< _Tp, _Alloc >::deque(), std::deque< _Tp, _Alloc >::deque(), std::deque< _Tp, _Alloc >::∼deque(),
std::deque< _Tp, _Alloc >::clear(), std::deque< _Tp, _Alloc >::front(), std::deque< _Tp, _Alloc >::front(), std::deque< _Tp, _Alloc >::in
std::deque< _Tp, _Alloc >::insert(), std::deque< _Tp, _Alloc >::insert(), std::operator<=>(), and std::deque< _Tp, _Alloc >::operator=()

cbegin()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_iterator std::deque< _Tp, _Alloc >::cbegin () const [inline], [noexcept]
Returns a read-only (constant) iterator that points to the first element in the deque. Iteration is done in ordinary element
order.
Referenced by std::deque< _Tp, _Alloc >::insert(), std::deque< _Tp, _Alloc >::insert(), and std::deque< _Tp, _Alloc >::insert().

cend()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_iterator std::deque< _Tp, _Alloc >::cend () const [inline], [noexcept]
Returns a read-only (constant) iterator that points one past the last element in the deque. Iteration is done in ordinary
element order.

clear()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::clear () [inline], [noexcept]
Erases all the elements. Note that this function only erases the elements, and that if the elements themselves are
pointers, the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibility.
References std::deque< _Tp, _Alloc >::begin().

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1919

crbegin()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reverse_iterator std::deque< _Tp, _Alloc >::crbegin () const [inline], [noexcept]
Returns a read-only (constant) reverse iterator that points to the last element in the deque. Iteration is done in reverse
element order.

crend()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reverse_iterator std::deque< _Tp, _Alloc >::crend () const [inline], [noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first element in the deque. Iteration is done
in reverse element order.

emplace()

template<typename _Tp , typename _Alloc >


template<typename... _Args>
deque< _Tp, _Alloc >::iterator deque::emplace (
const_iterator __position,
_Args &&... __args)
Inserts an object in deque before specified iterator.

Parameters
__position A const_iterator into the deque.
__args Arguments.

Returns

An iterator that points to the inserted data.


This function will insert an object of type T constructed with T(std::forward<Args>(args)...) before the specified location.
References std::forward().
Referenced by std::deque< _Tp, _Alloc >::insert().

empty()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


bool std::deque< _Tp, _Alloc >::empty () const [inline], [nodiscard], [noexcept]
Returns true if the deque is empty. (Thus begin() would equal end().)

end() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_iterator std::deque< _Tp, _Alloc >::end () const [inline], [nodiscard], [noexcept]
Returns a read-only (constant) iterator that points one past the last element in the deque. Iteration is done in ordinary
element order.

end() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::end () [inline], [nodiscard], [noexcept]
Returns a read/write iterator that points one past the last element in the deque. Iteration is done in ordinary element
order.
Referenced by std::deque< _Tp, _Alloc >::deque(), std::deque< _Tp, _Alloc >::deque(), std::deque< _Tp, _Alloc >::∼deque(),
std::deque< _Tp, _Alloc >::back(), std::deque< _Tp, _Alloc >::back(), std::operator<=>(), and std::deque< _Tp, _Alloc >::operator=().

Generated by Doxygen
1920

erase() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::erase (
const_iterator __first,
const_iterator __last) [inline]
Remove a range of elements.

Parameters

__first Iterator pointing to the first element to be erased.


__last Iterator pointing to one past the last element to be erased.

Returns

An iterator pointing to the element pointed to by last prior to erasing (or end()).

This function will erase the elements in the range [__first,__last) and shorten the deque accordingly.
The user is cautioned that this function only erases the elements, and that if the elements themselves are pointers, the
pointed-to memory is not touched in any way. Managing the pointer is the user's responsibility.

erase() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::erase (
const_iterator __position) [inline]
Remove element at given position.

Parameters
__position Iterator pointing to element to be erased.

Returns

An iterator pointing to the next element (or end()).

This function will erase the element at the given position and thus shorten the deque by one.
The user is cautioned that this function only erases the element, and that if the element is itself a pointer, the pointed-to
memory is not touched in any way. Managing the pointer is the user's responsibility.

front() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reference std::deque< _Tp, _Alloc >::front () const [inline], [nodiscard], [noexcept]
Returns a read-only (constant) reference to the data at the first element of the deque.
References std::deque< _Tp, _Alloc >::begin().

front() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


reference std::deque< _Tp, _Alloc >::front () [inline], [nodiscard], [noexcept]
Returns a read/write reference to the data at the first element of the deque.
References std::deque< _Tp, _Alloc >::begin().

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1921

get_allocator()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


allocator_type std::deque< _Tp, _Alloc >::get_allocator () const [inline], [nodiscard], [noexcept]
Get a copy of the memory allocation object.
Referenced by std::deque< _Tp, _Alloc >::operator=().

insert() [1/5]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::insert (
const_iterator __p,
initializer_list< value_type > __l) [inline]
Inserts an initializer list into the deque.

Parameters
_←- An iterator into the deque.
_p
_←- An initializer_list.
_l

Returns

An iterator that points to the inserted data.

This function will insert copies of the data in the initializer_list __l into the deque before the location specified by __p.
This is known as list insert.
References std::deque< _Tp, _Alloc >::begin(), and std::deque< _Tp, _Alloc >::cbegin().

insert() [2/5]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator std::deque< _Tp, _Alloc >::insert (
const_iterator __position,
_InputIterator __first,
_InputIterator __last) [inline]
Inserts a range into the deque.

Parameters
__position A const_iterator into the deque.
__first An input iterator.
__last An input iterator.

Returns

An iterator that points to the inserted data.

This function will insert copies of the data in the range [__first,__last) into the deque before the location specified by
__position. This is known as range insert.
References std::__iterator_category(), std::deque< _Tp, _Alloc >::begin(), and std::deque< _Tp, _Alloc >::cbegin().

Generated by Doxygen
1922

insert() [3/5]

template<typename _Tp , typename _Alloc >


deque< _Tp, _Alloc >::iterator deque::insert (
const_iterator __position,
const value_type & __x)
Inserts given value into deque before specified iterator.

Parameters
__position A const_iterator into the deque.
__x Data to be inserted.

Returns

An iterator that points to the inserted data.

This function will insert a copy of the given value before the specified location.

insert() [4/5]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::insert (
const_iterator __position,
size_type __n,
const value_type & __x) [inline]
Inserts a number of copies of given data into the deque.

Parameters
__position A const_iterator into the deque.
__n Number of elements to be inserted.
__x Data to be inserted.

Returns

An iterator that points to the inserted data.

This function will insert a specified number of copies of the given data before the location specified by __position.
References std::deque< _Tp, _Alloc >::begin(), and std::deque< _Tp, _Alloc >::cbegin().

insert() [5/5]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


iterator std::deque< _Tp, _Alloc >::insert (
const_iterator __position,
value_type && __x) [inline]
Inserts given rvalue into deque before specified iterator.

Parameters
__position A const_iterator into the deque.
__x Data to be inserted.

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1923

Returns

An iterator that points to the inserted data.

This function will insert a copy of the given rvalue before the specified location.
References std::deque< _Tp, _Alloc >::emplace(), and std::move().

max_size()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


size_type std::deque< _Tp, _Alloc >::max_size () const [inline], [nodiscard], [noexcept]
Returns the size() of the largest possible deque.

Referenced by std::deque< _Tp, _Alloc >::size().

operator=() [1/3]

template<typename _Tp , typename _Alloc >


deque< _Tp, _Alloc > & deque::operator= (
const deque< _Tp, _Alloc > & __x)
Deque assignment operator.

Parameters

_←- A deque of identical element and allocator types.


_x

All the elements of x are copied.


The newly-created deque uses a copy of the allocator object used by __x (unless the allocator traits dictate a different
object).
References std::__addressof(), std::deque< _Tp, _Alloc >::begin(), std::deque< _Tp, _Alloc >::end(), std::deque< _Tp, _Alloc >::get_al
std::deque< _Tp, _Alloc >::size(), and std::size().

operator=() [2/3]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


deque & std::deque< _Tp, _Alloc >::operator= (
deque< _Tp, _Alloc > && __x) [inline], [noexcept]
Deque move assignment operator.

Parameters

_←- A deque of identical element and allocator types.


_x

The contents of __x are moved into this deque (without copying, if the allocators permit it). __x is a valid, but unspecified
deque.
References std::move().

operator=() [3/3]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


deque & std::deque< _Tp, _Alloc >::operator= (
initializer_list< value_type > __l) [inline]
Assigns an initializer list to a deque.

Generated by Doxygen
1924

Parameters
←- An initializer_list.
_←-
←-
_←-
l

This function fills a deque with copies of the elements in the initializer_list __l.
Note that the assignment completely changes the deque and that the resulting deque's size is the same as the number
of elements assigned.

operator[]() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reference std::deque< _Tp, _Alloc >::operator[ ] (
size_type __n) const [inline], [nodiscard], [noexcept]
Subscript access to the data contained in the deque.

Parameters

_←- The index of the element for which data should be accessed.
_n

Returns

Read-only (constant) reference to data.


This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().)

operator[]() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


reference std::deque< _Tp, _Alloc >::operator[ ] (
size_type __n) [inline], [nodiscard], [noexcept]
Subscript access to the data contained in the deque.

Parameters

_←- The index of the element for which data should be accessed.
_n

Returns

Read/write reference to data.


This operator allows for easy, array-style, data access. Note that data access with this operator is unchecked and
out_of_range lookups are not defined. (For checked lookups see at().)

pop_back()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::pop_back () [inline], [noexcept]
Removes last element.
This is a typical stack operation. It shrinks the deque by one.
Note that no data is returned, and if the last element's data is needed, it should be retrieved before pop_back() is called.
References std::deque< _Tp, _Alloc >::_M_pop_back_aux().

Generated by Doxygen
5.398 std::deque< _Tp, _Alloc > Class Template Reference 1925

pop_front()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::pop_front () [inline], [noexcept]
Removes first element.
This is a typical stack operation. It shrinks the deque by one.
Note that no data is returned, and if the first element's data is needed, it should be retrieved before pop_front() is called.
References std::deque< _Tp, _Alloc >::_M_pop_front_aux().

push_back()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::push_back (
const value_type & __x) [inline]
Add data to the end of the deque.

Parameters
_←- Data to be added.
_x

This is a typical stack operation. The function creates an element at the end of the deque and assigns the given data to
it. Due to the nature of a deque this operation can be done in constant time.
References std::deque< _Tp, _Alloc >::_M_push_back_aux().

push_front()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::push_front (
const value_type & __x) [inline]
Add data to the front of the deque.

Parameters
_←- Data to be added.
_x

This is a typical stack operation. The function creates an element at the front of the deque and assigns the given data
to it. Due to the nature of a deque this operation can be done in constant time.
References std::deque< _Tp, _Alloc >::_M_push_front_aux().

rbegin() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reverse_iterator std::deque< _Tp, _Alloc >::rbegin () const [inline], [nodiscard], [noexcept]
Returns a read-only (constant) reverse iterator that points to the last element in the deque. Iteration is done in reverse
element order.

rbegin() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


reverse_iterator std::deque< _Tp, _Alloc >::rbegin () [inline], [nodiscard], [noexcept]
Returns a read/write reverse iterator that points to the last element in the deque. Iteration is done in reverse element
order.

Generated by Doxygen
1926

rend() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


const_reverse_iterator std::deque< _Tp, _Alloc >::rend () const [inline], [nodiscard], [noexcept]
Returns a read-only (constant) reverse iterator that points to one before the first element in the deque. Iteration is done
in reverse element order.

rend() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


reverse_iterator std::deque< _Tp, _Alloc >::rend () [inline], [nodiscard], [noexcept]
Returns a read/write reverse iterator that points to one before the first element in the deque. Iteration is done in reverse
element order.

resize() [1/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::resize (
size_type __new_size) [inline]
Resizes the deque to the specified number of elements.

Parameters

__new_size Number of elements the deque should contain.

This function will resize the deque to the specified number of elements. If the number is smaller than the deque's current
size the deque is truncated, otherwise default constructed elements are appended.
References std::deque< _Tp, _Alloc >::size().

resize() [2/2]

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::resize (
size_type __new_size,
const value_type & __x) [inline]
Resizes the deque to the specified number of elements.

Parameters

__new_size Number of elements the deque should contain.


__x Data with which new elements should be populated.

This function will resize the deque to the specified number of elements. If the number is smaller than the deque's current
size the deque is truncated, otherwise the deque is extended and new elements are populated with given data.
References std::deque< _Tp, _Alloc >::size().

shrink_to_fit()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::shrink_to_fit () [inline], [noexcept]
A non-binding request to reduce memory use.

Generated by Doxygen
5.399 std::destroying_delete_t Struct Reference 1927

size()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


size_type std::deque< _Tp, _Alloc >::size () const [inline], [nodiscard], [noexcept]
Returns the number of elements in the deque.

References std::deque< _Tp, _Alloc >::max_size().


Referenced by std::deque< _Tp, _Alloc >::_M_range_check(), std::operator<=>(), std::deque< _Tp, _Alloc >::operator=(),
std::deque< _Tp, _Alloc >::resize(), and std::deque< _Tp, _Alloc >::resize().

swap()

template<typename _Tp , typename _Alloc = std::allocator<_Tp>>


void std::deque< _Tp, _Alloc >::swap (
deque< _Tp, _Alloc > & __x) [inline], [noexcept]
Swaps data with another deque.

Parameters

_←- A deque of the same element and allocator types.


_x

This exchanges the elements between two deques in constant time. (Four pointers, so it should be quite fast.) Note that
the global std::swap() function is specialized such that std::swap(d1,d2) will feed to this function.
Whether the allocators are swapped depends on the allocator traits.
The documentation for this class was generated from the following files:
• stl_deque.h
• deque.tcc

5.399 std::destroying_delete_t Struct Reference


#include <new>

5.399.1 Detailed Description

Tag type used to declare a class-specific operator delete that can invoke the destructor before deallocating the memory.
The documentation for this struct was generated from the following file:
• new

5.400 std::tr2::direct_bases< _Tp > Struct Template Reference


#include <type_traits>

Public Types

• typedef __reflection_typelist< __direct_bases(_Tp)... > type

5.400.1 Detailed Description

template<typename _Tp>
struct std::tr2::direct_bases< _Tp >

Enumerate all the direct base classes of a class. Form of a typelist.


The documentation for this struct was generated from the following file:
• tr2/type_traits

Generated by Doxygen
1928

5.401 __gnu_pbds::direct_mask_range_hashing< Size_Type > Class Template Reference


#include <hash_policy.hpp>
Inheritance diagram for __gnu_pbds::direct_mask_range_hashing< Size_Type >:

__gnu_pbds::detail
::mask_based_range_hashing
< std::size_t >

__gnu_pbds::direct
_mask_range_hashing
< Size_Type >

Public Types

• typedef Size_Type size_type

Public Member Functions

• void swap (direct_mask_range_hashing< Size_Type > &other)

Protected Member Functions

• void notify_resized (size_type size)


• size_type operator() (size_type hash) const
• size_type range_hash (size_type hash) const
• void swap (mask_based_range_hashing &other)

5.401.1 Detailed Description

template<typename Size_Type = std::size_t>


class __gnu_pbds::direct_mask_range_hashing< Size_Type >

A mask range-hashing class (uses a bitmask).

5.401.2 Member Function Documentation

operator()()

template<typename Size_Type >


direct_mask_range_hashing< Size_Type >::size_type __gnu_pbds::direct_mask_range_hashing< Size_←-
Type >::operator() (
size_type hash) const [inline], [protected]
Transforms the __hash value hash into a ranged-hash value (using a bit-mask).
The documentation for this class was generated from the following file:

Generated by Doxygen
5.402 __gnu_pbds::direct_mod_range_hashing< Size_Type > Class Template Reference 1929

• hash_policy.hpp

5.402 __gnu_pbds::direct_mod_range_hashing< Size_Type > Class Template Reference


#include <hash_policy.hpp>
Inheritance diagram for __gnu_pbds::direct_mod_range_hashing< Size_Type >:

__gnu_pbds::detail
::mod_based_range_hashing
< std::size_t >

__gnu_pbds::direct
_mod_range_hashing<
Size_Type >

Public Types

• typedef Size_Type size_type

Public Member Functions

• void swap (direct_mod_range_hashing< Size_Type > &other)

Protected Member Functions

• void notify_resized (size_type s)


• void notify_resized (size_type size)
• size_type operator() (size_type hash) const
• size_type range_hash (size_type s) const
• void swap (mod_based_range_hashing &other)

5.402.1 Detailed Description

template<typename Size_Type = std::size_t>


class __gnu_pbds::direct_mod_range_hashing< Size_Type >

A mod range-hashing class (uses the modulo function).

5.402.2 Member Function Documentation

operator()()

template<typename Size_Type >


direct_mod_range_hashing< Size_Type >::size_type __gnu_pbds::direct_mod_range_hashing< Size_Type

Generated by Doxygen
1930

>::operator() (
size_type hash) const [inline], [protected]
Transforms the __hash value hash into a ranged-hash value (using a modulo operation).
The documentation for this class was generated from the following file:

• hash_policy.hpp

5.403 std::filesystem::directory_entry Class Reference


#include <filesystem>

Public Member Functions

• directory_entry (const directory_entry &)=default


• directory_entry (const filesystem::path &__p)
• directory_entry (const filesystem::path &__p, error_code &__ec)
• directory_entry (directory_entry &&) noexcept=default
• void assign (const filesystem::path &__p)
• void assign (const filesystem::path &__p, error_code &__ec)
• bool exists () const
• bool exists (error_code &__ec) const noexcept
• uintmax_t file_size () const
• uintmax_t file_size (error_code &__ec) const noexcept
• uintmax_t hard_link_count () const
• uintmax_t hard_link_count (error_code &__ec) const noexcept
• bool is_block_file () const
• bool is_block_file (error_code &__ec) const noexcept
• bool is_character_file () const
• bool is_character_file (error_code &__ec) const noexcept
• bool is_directory () const
• bool is_directory (error_code &__ec) const noexcept
• bool is_fifo () const
• bool is_fifo (error_code &__ec) const noexcept
• bool is_other () const
• bool is_other (error_code &__ec) const noexcept
• bool is_regular_file () const
• bool is_regular_file (error_code &__ec) const noexcept
• bool is_socket () const
• bool is_socket (error_code &__ec) const noexcept
• bool is_symlink () const
• bool is_symlink (error_code &__ec) const noexcept
• file_time_type last_write_time () const
• file_time_type last_write_time (error_code &__ec) const noexcept
• operator const filesystem::path & () const noexcept
• strong_ordering operator<=> (const directory_entry &__rhs) const noexcept
• directory_entry & operator= (const directory_entry &)=default
• directory_entry & operator= (directory_entry &&) noexcept=default
• bool operator== (const directory_entry &__rhs) const noexcept
• const filesystem::path & path () const noexcept
• void refresh ()
• void refresh (error_code &__ec) noexcept
• void replace_filename (const filesystem::path &__p)

Generated by Doxygen
5.404 std::filesystem::directory_iterator Class Reference 1931

• void replace_filename (const filesystem::path &__p, error_code &__ec)


• file_status status () const
• file_status status (error_code &__ec) const noexcept
• file_status symlink_status () const
• file_status symlink_status (error_code &__ec) const noexcept

Friends

• struct _Dir
• class directory_iterator
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const
directory_entry &__d)
• class recursive_directory_iterator

5.403.1 Detailed Description

The value type used by directory iterators.

Since

C++17

The documentation for this class was generated from the following file:

• bits/fs_dir.h

5.404 std::filesystem::directory_iterator Class Reference


#include <filesystem>

Public Types

• typedef ptrdiff_t difference_type


• typedef input_iterator_tag iterator_category
• typedef const directory_entry ∗ pointer
• typedef const directory_entry & reference
• typedef directory_entry value_type

Public Member Functions

• directory_iterator (const directory_iterator &__rhs)=default


• directory_iterator (const path &__p)
• directory_iterator (const path &__p, directory_options __options)
• directory_iterator (const path &__p, directory_options __options, error_code &__ec)
• directory_iterator (const path &__p, error_code &__ec)
• directory_iterator (directory_iterator &&__rhs) noexcept=default
• directory_iterator & increment (error_code &__ec)
• const directory_entry & operator∗ () const noexcept
• directory_iterator & operator++ ()
• __directory_iterator_proxy operator++ (int)
• const directory_entry ∗ operator-> () const noexcept
• directory_iterator & operator= (const directory_iterator &__rhs)=default
• directory_iterator & operator= (directory_iterator &&__rhs) noexcept=default
• bool operator== (default_sentinel_t) const noexcept

Generated by Doxygen
1932

Friends

• bool operator== (const directory_iterator &__lhs, const directory_iterator &__rhs) noexcept


• class recursive_directory_iterator

Related Symbols

(Note that these are not member symbols.)

• directory_iterator begin (directory_iterator __iter) noexcept


• directory_iterator end (directory_iterator) noexcept

• recursive_directory_iterator begin (recursive_directory_iterator __iter) noexcept


• recursive_directory_iterator end (recursive_directory_iterator) noexcept

5.404.1 Detailed Description

Iterator type for traversing the entries in a single directory.

Since

C++17

The documentation for this class was generated from the following file:

• bits/fs_dir.h

5.405 std::discard_block_engine< _RandomNumberEngine, __p, __r > Class Template


Reference
#include <random>

Public Types

• template<typename _Sseq >


using _If_seed_seq
• typedef _RandomNumberEngine::result_type result_type

Public Member Functions

• discard_block_engine ()
• discard_block_engine (_RandomNumberEngine &&__rng)
• template<typename _Sseq , typename = _If_seed_seq<_Sseq>>
discard_block_engine (_Sseq &__q)
• discard_block_engine (const _RandomNumberEngine &__rng)
• discard_block_engine (result_type __s)
• const _RandomNumberEngine & base () const noexcept
• void discard (unsigned long long __z)
• result_type operator() ()
• void seed ()
• template<typename _Sseq >
_If_seed_seq< _Sseq > seed (_Sseq &__q)
• void seed (result_type __s)

Generated by Doxygen
5.405 std::discard_block_engine< _RandomNumberEngine, __p, __r > Class Template Reference 1933

Static Public Member Functions

• static constexpr result_type max ()


• static constexpr result_type min ()

Static Public Attributes

• static constexpr size_t block_size


• static constexpr size_t used_block

Friends

• template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > &__x)
• bool operator== (const discard_block_engine &__lhs, const discard_block_engine &__rhs)
• template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > &__x)

5.405.1 Detailed Description

template<typename _RandomNumberEngine, size_t __p, size_t __r>


class std::discard_block_engine< _RandomNumberEngine, __p, __r >

Produces random numbers from some base engine by discarding blocks of data.

Precondition

0≤r≤p

Since

C++11

5.405.2 Member Typedef Documentation

result_type

template<typename _RandomNumberEngine , size_t __p, size_t __r>


_RandomNumberEngine::result_type std::discard_block_engine< _RandomNumberEngine, __p, __r >←-
::result_type
The type of the generated random value.

5.405.3 Constructor & Destructor Documentation

discard_block_engine() [1/5]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine () [inline]
Constructs a default discard_block_engine engine.
The underlying engine is default constructed as well.

Generated by Doxygen
1934

discard_block_engine() [2/5]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine (
const _RandomNumberEngine & __rng) [inline], [explicit]
Copy constructs a discard_block_engine engine.
Copies an existing base class random number generator.

Parameters

__rng An existing (base class) engine object.

discard_block_engine() [3/5]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine (
_RandomNumberEngine && __rng) [inline], [explicit]
Move constructs a discard_block_engine engine.
Copies an existing base class random number generator.

Parameters

__rng An existing (base class) engine object.

discard_block_engine() [4/5]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine (
result_type __s) [inline], [explicit]
Seed constructs a discard_block_engine engine.
Constructs the underlying generator engine seeded with __s.

Parameters

_←- A seed value for the base class engine.


_s

discard_block_engine() [5/5]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


template<typename _Sseq , typename = _If_seed_seq<_Sseq>>
std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine (
_Sseq & __q) [inline], [explicit]
Generator construct a discard_block_engine engine.

Parameters
_←- A seed sequence.
_q

Generated by Doxygen
5.405 std::discard_block_engine< _RandomNumberEngine, __p, __r > Class Template Reference 1935

5.405.4 Member Function Documentation

base()

template<typename _RandomNumberEngine , size_t __p, size_t __r>


const _RandomNumberEngine & std::discard_block_engine< _RandomNumberEngine, __p, __r >::base ()
const [inline], [noexcept]
Gets a const reference to the underlying generator engine object.

discard()

template<typename _RandomNumberEngine , size_t __p, size_t __r>


void std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard (
unsigned long long __z) [inline]
Discard a sequence of random numbers.

max()

template<typename _RandomNumberEngine , size_t __p, size_t __r>


static constexpr result_type std::discard_block_engine< _RandomNumberEngine, __p, __r >::max ()
[inline], [static], [constexpr]
Gets the maximum value in the generated random number range.

min()

template<typename _RandomNumberEngine , size_t __p, size_t __r>


static constexpr result_type std::discard_block_engine< _RandomNumberEngine, __p, __r >::min ()
[inline], [static], [constexpr]
Gets the minimum value in the generated random number range.

operator()()

template<typename _RandomNumberEngine , size_t __p, size_t __r>


discard_block_engine< _RandomNumberEngine, __p, __r >::result_type std::discard_block_engine< _←-
RandomNumberEngine, __p, __r >::operator() ()
Gets the next value in the generated random number sequence.

seed() [1/3]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


void std::discard_block_engine< _RandomNumberEngine, __p, __r >::seed () [inline]
Reseeds the discard_block_engine object with the default seed for the underlying base class generator engine.

seed() [2/3]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


template<typename _Sseq >
_If_seed_seq< _Sseq > std::discard_block_engine< _RandomNumberEngine, __p, __r >::seed (
_Sseq & __q) [inline]
Reseeds the discard_block_engine object with the given seed sequence.

Parameters

_←- A seed generator function.


_q

Generated by Doxygen
1936

seed() [3/3]

template<typename _RandomNumberEngine , size_t __p, size_t __r>


void std::discard_block_engine< _RandomNumberEngine, __p, __r >::seed (
result_type __s) [inline]
Reseeds the discard_block_engine object with the default seed for the underlying base class generator engine.

5.405.5 Friends And Related Symbol Documentation

operator<<

template<typename _RandomNumberEngine , size_t __p, size_t __r>


template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _←-
Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > & __x) [friend]
Inserts the current state of a discard_block_engine random number generator engine __x into the output stream __os.

Parameters
__os An output stream.
__x A discard_block_engine random number generator engine.

Returns

The output stream with the state of __x inserted or in an error state.

operator==

template<typename _RandomNumberEngine , size_t __p, size_t __r>


bool operator== (
const discard_block_engine< _RandomNumberEngine, __p, __r > & __lhs,
const discard_block_engine< _RandomNumberEngine, __p, __r > & __rhs) [friend]
Compares two discard_block_engine random number generator objects of the same type for equality.

Parameters
__lhs A discard_block_engine random number generator object.
__rhs Another discard_block_engine random number generator object.

Returns

true if the infinite sequences of generated values would be equal, false otherwise.

operator>>

template<typename _RandomNumberEngine , size_t __p, size_t __r>


template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _←-
Traits >
std::basic_istream< _CharT, _Traits > & operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > & __x) [friend]
Extracts the current state of a % subtract_with_carry_engine random number generator engine __x from the input
stream __is.

Generated by Doxygen
5.406 std::discrete_distribution< _IntType > Class Template Reference 1937

Parameters
_←- An input stream.
_is
_←- A discard_block_engine random number generator engine.
_x

Returns

The input stream with the state of __x extracted or in an error state.

The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.406 std::discrete_distribution< _IntType > Class Template Reference


#include <random>

Classes

• struct param_type

Public Types

• typedef _IntType result_type

Public Member Functions

• template<typename _InputIterator >


discrete_distribution (_InputIterator __wbegin, _InputIterator __wend)
• discrete_distribution (const param_type &__p)
• discrete_distribution (initializer_list< double > __wl)
• template<typename _Func >
discrete_distribution (size_t __nw, double __xmin, double __xmax, _Func __fw)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• param_type param () const
• void param (const param_type &__param)
• std::vector< double > probabilities () const
• void reset ()

Generated by Doxygen
1938

Friends

• template<typename _IntType1 , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::discrete_distribution< _IntType1 > &__x)
• bool operator== (const discrete_distribution &__d1, const discrete_distribution &__d2)
• template<typename _IntType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::discrete_distribution< _IntType1 > &__x)

5.406.1 Detailed Description

template<typename _IntType = int>


class std::discrete_distribution< _IntType >

A discrete_distribution random number distribution.


This distribution produces random numbers i, 0 ≤ i < n, distributed according to the probability mass function
p(i|p0 , ..., pn−1 ) = pi .

Since

C++11

5.406.2 Member Typedef Documentation

result_type

template<typename _IntType = int>


_IntType std::discrete_distribution< _IntType >::result_type
The type of the range of the distribution.

5.406.3 Member Function Documentation

max()

template<typename _IntType = int>


result_type std::discrete_distribution< _IntType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::vector< _Tp, _Alloc >::empty(), and std::vector< _Tp, _Alloc >::size().

min()

template<typename _IntType = int>


result_type std::discrete_distribution< _IntType >::min () const [inline]
Returns the greatest lower bound value of the distribution.

operator()()

template<typename _IntType = int>


template<typename _UniformRandomNumberGenerator >
result_type std::discrete_distribution< _IntType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References std::discrete_distribution< _IntType >::operator()().
Referenced by std::discrete_distribution< _IntType >::operator()().

Generated by Doxygen
5.406 std::discrete_distribution< _IntType > Class Template Reference 1939

param() [1/2]

template<typename _IntType = int>


param_type std::discrete_distribution< _IntType >::param () const [inline]
Returns the parameter set of the distribution.

param() [2/2]

template<typename _IntType = int>


void std::discrete_distribution< _IntType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

probabilities()

template<typename _IntType = int>


std::vector< double > std::discrete_distribution< _IntType >::probabilities () const [inline]
Returns the probabilities of the distribution.
References std::vector< _Tp, _Alloc >::empty().

reset()

template<typename _IntType = int>


void std::discrete_distribution< _IntType >::reset () [inline]
Resets the distribution state.

5.406.4 Friends And Related Symbol Documentation

operator<<

template<typename _IntType = int>


template<typename _IntType1 , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (
std::basic_ostream< _CharT, _Traits > & __os,
const std::discrete_distribution< _IntType1 > & __x) [friend]
Inserts a discrete_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A discrete_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

Generated by Doxygen
1940

operator==

template<typename _IntType = int>


bool operator== (
const discrete_distribution< _IntType > & __d1,
const discrete_distribution< _IntType > & __d2) [friend]
Return true if two discrete distributions have the same parameters.

operator>>

template<typename _IntType = int>


template<typename _IntType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::discrete_distribution< _IntType1 > & __x) [friend]
Extracts a discrete_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A discrete_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.407 std::divides< _Tp > Struct Template Reference


#include <stl_function.h>
Inheritance diagram for std::divides< _Tp >:

std::binary_function
< _Tp, _Tp, _Tp >

std::divides< _Tp >

Generated by Doxygen
5.408 std::divides< void > Struct Reference 1941

Public Types

• typedef _Tp first_argument_type


• typedef _Tp result_type
• typedef _Tp second_argument_type

Public Member Functions

• constexpr _Tp operator() (const _Tp &__x, const _Tp &__y) const

5.407.1 Detailed Description

template<typename _Tp>
struct std::divides< _Tp >

One of the math functors.

5.407.2 Member Typedef Documentation

first_argument_type

_Tp std::binary_function< _Tp, _Tp, _Tp >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

_Tp std::binary_function< _Tp, _Tp, _Tp >::result_type [inherited]


result_type is the return type

second_argument_type

_Tp std::binary_function< _Tp, _Tp, _Tp >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

• stl_function.h

5.408 std::divides< void > Struct Reference


#include <stl_function.h>

Public Types

• typedef __is_transparent is_transparent

Public Member Functions

• template<typename _Tp , typename _Up >


constexpr auto operator() (_Tp &&__t, _Up &&__u) const noexcept(noexcept(std::forward< _Tp >(__←-
t)/std::forward< _Up >(__u))) -> decltype(std::forward< _Tp >(__t)/std::forward< _Up >(__u))

5.408.1 Detailed Description

One of the math functors.


The documentation for this struct was generated from the following file:

• stl_function.h

Generated by Doxygen
1942

5.409 std::domain_error Class Reference


#include <stdexcept>
Inheritance diagram for std::domain_error:

std::exception

std::logic_error

std::domain_error

Public Member Functions

• domain_error (const char ∗)


• domain_error (const domain_error &)=default
• domain_error (const string &__arg)
• domain_error (domain_error &&)=default
• domain_error & operator= (const domain_error &)=default
• domain_error & operator= (domain_error &&)=default
• virtual const char ∗ what () const noexcept

5.409.1 Detailed Description

Thrown by the library, or by you, to report domain errors (domain in the mathematical sense).

5.409.2 Member Function Documentation

what()

virtual const char ∗ std::logic_error::what () const [virtual], [noexcept], [inherited]


Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::exception.


Reimplemented in std::future_error.
The documentation for this class was generated from the following file:

• stdexcept

Generated by Doxygen
5.410 __gnu_pbds::detail::dumnode_const_iterator< Key, Data, _Alloc > Struct Template Reference 1943

5.410 __gnu_pbds::detail::dumnode_const_iterator< Key, Data, _Alloc > Struct Template


Reference
#include <null_node_metadata.hpp>

Public Types

• typedef const_iterator const_reference


• typedef const_reference reference
• typedef const_iterator value_type

5.410.1 Detailed Description

template<typename Key, typename Data, typename _Alloc>


struct __gnu_pbds::detail::dumnode_const_iterator< Key, Data, _Alloc >

Constant node iterator.


The documentation for this struct was generated from the following file:

• null_node_metadata.hpp

5.411 std::chrono::duration< _Rep, _Period > Class Template Reference


Public Types

• using period
• using rep

Public Member Functions

• template<typename _Rep2 , typename = _Require< is_convertible<const _Rep2&, rep>, __or_<__is_float<rep>, __not_<__is_←-


float<_Rep2>>>>>
constexpr duration (const _Rep2 &__rep)
• duration (const duration &)=default
• template<typename _Rep2 , typename _Period2 , typename = _Require< is_convertible<const _Rep2&, rep>, __or_<__is_float<rep>,
__and_<__is_harmonic<_Period2>, __not_<__is_float<_Rep2>>>>>>
constexpr duration (const duration< _Rep2, _Period2 > &__d)
• constexpr rep count () const
• template<typename _Rep2 = rep>
constexpr __enable_if_t<!treat_as_floating_point< _Rep2 >::value, duration & > operator%= (const duration
&__d)
• template<typename _Rep2 = rep>
constexpr __enable_if_t<!treat_as_floating_point< _Rep2 >::value, duration & > operator%= (const rep &__←-
rhs)
• constexpr duration & operator∗= (const rep &__rhs)
• constexpr duration< typename common_type< rep >::type, period > operator+ () const
• constexpr duration & operator++ ()
• constexpr duration operator++ (int)
• constexpr duration & operator+= (const duration &__d)
• constexpr duration< typename common_type< rep >::type, period > operator- () const
• constexpr duration & operator-- ()
• constexpr duration operator-- (int)
• constexpr duration & operator-= (const duration &__d)
• constexpr duration & operator/= (const rep &__rhs)
• duration & operator= (const duration &)=default

Generated by Doxygen
1944

Static Public Member Functions

• static constexpr duration max () noexcept


• static constexpr duration min () noexcept
• static constexpr duration zero () noexcept

Related Symbols

(Note that these are not member symbols.)

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator+
(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)

• template<typename _Rep1 , typename _Period , typename _Rep2 >


constexpr duration< __common_rep_t< _Rep1, _Rep2 >, _Period > operator∗ (const duration< _Rep1, _←-
Period > &__d, const _Rep2 &__s)

• template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >


constexpr bool operator== (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 >
&__rhs)

5.411.1 Detailed Description

template<typename _Rep, typename _Period>


class std::chrono::duration< _Rep, _Period >

chrono::duration represents a distance between two points in time


The documentation for this class was generated from the following file:

• chrono.h

5.412 std::chrono::duration_values< _Rep > Struct Template Reference


#include <chrono.h>

Static Public Member Functions

• static constexpr _Rep max () noexcept


• static constexpr _Rep min () noexcept
• static constexpr _Rep zero () noexcept

5.412.1 Detailed Description

template<typename _Rep>
struct std::chrono::duration_values< _Rep >

duration_values
The documentation for this struct was generated from the following file:

• chrono.h

Generated by Doxygen
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference 1945

5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference


#include <dynamic_bitset>
Inheritance diagram for std::tr2::dynamic_bitset< _WordT, _Alloc >:

std::tr2::__dynamic
_bitset_base< _WordT,
_Alloc >

std::tr2::dynamic_bitset
< _WordT, _Alloc >

Classes

• class reference

Public Types

• typedef __dynamic_bitset_base< _WordT, _Alloc > _Base


• typedef _Alloc allocator_type
• typedef _WordT block_type
• typedef bool const_reference
• typedef size_t size_type

Public Member Functions

• dynamic_bitset ()=default
• dynamic_bitset (const allocator_type &__alloc)
• dynamic_bitset (const char ∗__str, const allocator_type &__alloc=allocator_type())
• dynamic_bitset (const dynamic_bitset &)=default
• template<typename _CharT , typename _Traits , typename _Alloc1 >
dynamic_bitset (const std::basic_string< _CharT, _Traits, _Alloc1 > &__str, typename basic_string< _CharT,
_Traits, _Alloc1 >::size_type __pos=0, typename basic_string< _CharT, _Traits, _Alloc1 >::size_type __←-
n=std::basic_string< _CharT, _Traits, _Alloc1 >::npos, _CharT __zero=_CharT('0'), _CharT __one=_CharT('1'),
const allocator_type &__alloc=allocator_type())
• dynamic_bitset (dynamic_bitset &&__b) noexcept
• dynamic_bitset (initializer_list< block_type > __il, const allocator_type &__alloc=allocator_type())
• dynamic_bitset (size_type __nbits, unsigned long long __val=0ULL, const allocator_type &__alloc=allocator_←-
type())
• template<typename _Traits = std::char_traits<char>, typename _CharT = typename _Traits::char_type>
void _M_copy_from_ptr (const _CharT ∗, size_t, size_t, size_t, _CharT __zero=_CharT('0'), _CharT __one=_←-
CharT('1'))

Generated by Doxygen
1946

• template<typename _CharT , typename _Traits , typename _Alloc1 >


void _M_copy_from_string (const basic_string< _CharT, _Traits, _Alloc1 > &__str, size_t __pos, size_t __n,
_CharT __zero=_CharT('0'), _CharT __one=_CharT('1'))
• template<typename _CharT , typename _Traits , typename _Alloc1 >
void _M_copy_to_string (std::basic_string< _CharT, _Traits, _Alloc1 > &__str, _CharT __zero=_CharT('0'), _←-
CharT __one=_CharT('1')) const
• bool all () const
• bool any () const
• template<typename _BlockInputIterator >
void append (_BlockInputIterator __first, _BlockInputIterator __last)
• void append (block_type __block)
• void append (initializer_list< block_type > __il)
• void clear ()
• size_type count () const noexcept
• bool empty () const noexcept
• size_type find_first () const
• size_type find_next (size_t __prev) const
• dynamic_bitset & flip ()
• dynamic_bitset & flip (size_type __pos)
• allocator_type get_allocator () const noexcept
• bool is_proper_subset_of (const dynamic_bitset &__b) const
• bool is_subset_of (const dynamic_bitset &__b) const
• constexpr size_type max_size () noexcept
• bool none () const
• size_type num_blocks () const noexcept
• dynamic_bitset & operator= (const dynamic_bitset &)=default
• dynamic_bitset & operator= (dynamic_bitset &&__b) noexcept(std::is_nothrow_move_assignable< _Base >←-
::value)
• dynamic_bitset operator∼ () const
• void push_back (bool __bit)
• dynamic_bitset & reset ()
• dynamic_bitset & reset (size_type __pos)
• void resize (size_type __nbits, bool __value=false)
• dynamic_bitset & set ()
• dynamic_bitset & set (size_type __pos, bool __val=true)
• size_type size () const noexcept
• void swap (dynamic_bitset &__b) noexcept
• bool test (size_type __pos) const
• template<typename _CharT = char, typename _Traits = std::char_traits<_CharT>, typename _Alloc1 = std::allocator<_CharT>>
std::basic_string< _CharT, _Traits, _Alloc1 > to_string (_CharT __zero=_CharT('0'), _CharT __one=_CharT('1'))
const
• unsigned long long to_ullong () const
• unsigned long to_ulong () const

• dynamic_bitset & operator&= (const dynamic_bitset &__rhs)


• dynamic_bitset & operator&= (dynamic_bitset &&__rhs)
• dynamic_bitset & operator|= (const dynamic_bitset &__rhs)
• dynamic_bitset & operator∧ = (const dynamic_bitset &__rhs)
• dynamic_bitset & operator-= (const dynamic_bitset &__rhs)

Generated by Doxygen
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference 1947

• dynamic_bitset & operator<<= (size_type __pos)


• dynamic_bitset & operator>>= (size_type __pos)

• reference operator[ ] (size_type __pos)


• const_reference operator[ ] (size_type __pos) const

• dynamic_bitset operator<< (size_type __pos) const


• dynamic_bitset operator>> (size_type __pos) const

Static Public Attributes

• static const size_type bits_per_block


• static const size_type npos

Friends

• bool operator< (const dynamic_bitset &__lhs, const dynamic_bitset &__rhs) noexcept


• bool operator== (const dynamic_bitset &__lhs, const dynamic_bitset &__rhs) noexcept
• class reference

5.413.1 Detailed Description

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


class std::tr2::dynamic_bitset< _WordT, _Alloc >

The dynamic_bitset class represents a sequence of bits.


See N2050, Proposal to Add a Dynamically Sizeable Bitset to the Standard Library. http://www.open-std.←-
org/jtc1/sc22/wg21/docs/papers/2006/n2050.pdf
In the general unoptimized case, storage is allocated in word-sized blocks. Let B be the number of bits in a word, then
(Nb+(B-1))/B words will be used for storage. B - NbB bits are unused. (They are the high-order bits in the highest word.)
It is a class invariant that those unused bits are always zero.
If you think of dynamic_bitset as "a simple array of bits," be aware that your mental picture is reversed: a dynamic_bitset
behaves the same way as bits in integers do, with the bit at index 0 in the "least significant / right-hand" position, and
the bit at index Nb-1 in the "most significant / left-hand" position. Thus, unlike other containers, a dynamic_bitset's index
"counts from right to left," to put it very loosely.
This behavior is preserved when translating to and from strings. For example, the first line of the following program
probably prints "b('a') is 0001100001" on a modern ASCII system.
#include <dynamic_bitset>
#include <iostream>
#include <sstream>

using namespace std;

int main()
{
long a = ’a’;
dynamic_bitset<> b(a);

cout « "b(’a’) is " « b « endl;

ostringstream s;
s « b;
string str = s.str();
cout « "index 3 in the string is " « str[3] « " but\n"
« "index 3 in the bitset is " « b[3] « endl;
}
Most of the actual code isn't contained in dynamic_bitset<> itself, but in the base class __dynamic_bitset_base. The
base class works with whole words, not with individual bits. This allows us to specialize __dynamic_bitset_base for the
important special case where the dynamic_bitset is only a single word.

Generated by Doxygen
1948

Extra confusion can result due to the fact that the storage for __dynamic_bitset_base is a vector, and is indexed as such.
This is carefully encapsulated.

5.413.2 Constructor & Destructor Documentation

dynamic_bitset() [1/7]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


std::tr2::dynamic_bitset< _WordT, _Alloc >::dynamic_bitset () [default]
All bits set to zero.

dynamic_bitset() [2/7]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


std::tr2::dynamic_bitset< _WordT, _Alloc >::dynamic_bitset (
const allocator_type & __alloc) [inline], [explicit]
All bits set to zero.

dynamic_bitset() [3/7]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


std::tr2::dynamic_bitset< _WordT, _Alloc >::dynamic_bitset (
size_type __nbits,
unsigned long long __val = 0ULL,
const allocator_type & __alloc = allocator_type()) [inline], [explicit]
Initial bits bitwise-copied from a single word (others set to zero).

dynamic_bitset() [4/7]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


template<typename _CharT , typename _Traits , typename _Alloc1 >
std::tr2::dynamic_bitset< _WordT, _Alloc >::dynamic_bitset (
const std::basic_string< _CharT, _Traits, _Alloc1 > & __str,
typename basic_string< _CharT, _Traits, _Alloc1 >::size_type __pos = 0,
typename basic_string< _CharT, _Traits, _Alloc1 >::size_type __n = std::basic_string<←-
_CharT, _Traits, _Alloc1>::npos,
_CharT __zero = _CharT('0'),
_CharT __one = _CharT('1'),
const allocator_type & __alloc = allocator_type()) [inline], [explicit]
Use a subset of a string.

Parameters

__str A string of '0' and '1' characters.


__pos Index of the first character in __str to use.
__n The number of characters to copy.
__zero The character to use for unset bits.
__one The character to use for set bits.
__alloc An allocator.

Exceptions

std::out_of_range If __pos is bigger the size of __str.

Generated by Doxygen
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference 1949

std::invalid_argument If a character appears in the string which is neither '0' nor '1'.

dynamic_bitset() [5/7]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


std::tr2::dynamic_bitset< _WordT, _Alloc >::dynamic_bitset (
const char ∗ __str,
const allocator_type & __alloc = allocator_type()) [inline], [explicit]
Construct from a string.

Parameters

__str A string of '0' and '1' characters.


__alloc An allocator.

Exceptions

std::invalid_argument If a character appears in the string which is neither '0' nor '1'.

dynamic_bitset() [6/7]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


std::tr2::dynamic_bitset< _WordT, _Alloc >::dynamic_bitset (
const dynamic_bitset< _WordT, _Alloc > & ) [default]
Copy constructor.

dynamic_bitset() [7/7]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


std::tr2::dynamic_bitset< _WordT, _Alloc >::dynamic_bitset (
dynamic_bitset< _WordT, _Alloc > && __b) [inline], [noexcept]
Move constructor.

5.413.3 Member Function Documentation

all()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


bool std::tr2::dynamic_bitset< _WordT, _Alloc >::all () const [inline]
Tests whether all the bits are on.
Returns

True if all the bits are set.

any()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


bool std::tr2::dynamic_bitset< _WordT, _Alloc >::any () const [inline]
Tests whether any of the bits are on.

Generated by Doxygen
1950

Returns

True if at least one bit is set.

append() [1/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


template<typename _BlockInputIterator >
void std::tr2::dynamic_bitset< _WordT, _Alloc >::append (
_BlockInputIterator __first,
_BlockInputIterator __last) [inline]
Append an iterator range of blocks.

append() [2/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


void std::tr2::dynamic_bitset< _WordT, _Alloc >::append (
block_type __block) [inline]
Append a block.

clear()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


void std::tr2::dynamic_bitset< _WordT, _Alloc >::clear () [inline]
Clear the bitset.

count()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


size_type std::tr2::dynamic_bitset< _WordT, _Alloc >::count () const [inline], [noexcept]
Returns the number of bits which are set.

empty()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


bool std::tr2::dynamic_bitset< _WordT, _Alloc >::empty () const [inline], [nodiscard], [noexcept]
Returns true if the dynamic_bitset is empty.

find_first()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


size_type std::tr2::dynamic_bitset< _WordT, _Alloc >::find_first () const [inline]
Finds the index of the first "on" bit.
Returns

The index of the first bit set, or size() if not found.

See also

find_next

Generated by Doxygen
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference 1951

find_next()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


size_type std::tr2::dynamic_bitset< _WordT, _Alloc >::find_next (
size_t __prev) const [inline]
Finds the index of the next "on" bit after prev.
Returns

The index of the next bit set, or size() if not found.

Parameters
__prev Where to start searching.

See also

find_first

flip() [1/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::flip () [inline]
Toggles every bit to its opposite value.

flip() [2/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::flip (
size_type __pos) [inline]
Toggles a given bit to its opposite value.

Parameters

__pos The index of the bit.

Exceptions

std::out_of_range If __pos is bigger the size of the set.

get_allocator()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


allocator_type std::tr2::dynamic_bitset< _WordT, _Alloc >::get_allocator () const [inline],
[noexcept]
Return the allocator for the bitset.

max_size()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


size_type std::tr2::dynamic_bitset< _WordT, _Alloc >::max_size () [inline], [constexpr], [noexcept]
Returns the maximum size of a dynamic_bitset object having the same type as ∗this. The real answer is max() ∗
bits_per_block but is likely to overflow.

Generated by Doxygen
1952

none()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


bool std::tr2::dynamic_bitset< _WordT, _Alloc >::none () const [inline]
Tests whether any of the bits are on.

Returns

True if none of the bits are set.

num_blocks()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


size_type std::tr2::dynamic_bitset< _WordT, _Alloc >::num_blocks () const [inline], [noexcept]
Returns the total number of blocks.

operator&=() [1/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator&= (
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]
Operations on dynamic_bitsets.

Parameters
__rhs A same-sized dynamic_bitset.

These should be self-explanatory.

operator&=() [2/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator&= (
dynamic_bitset< _WordT, _Alloc > && __rhs) [inline]
Operations on dynamic_bitsets.

Parameters
__rhs A same-sized dynamic_bitset.

These should be self-explanatory.

operator-=()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator-= (
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]
Operations on dynamic_bitsets.

Parameters
__rhs A same-sized dynamic_bitset.

These should be self-explanatory.

Generated by Doxygen
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference 1953

operator<<()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset std::tr2::dynamic_bitset< _WordT, _Alloc >::operator<< (
size_type __pos) const [inline]
Self-explanatory.

operator<<=()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator<<= (
size_type __pos) [inline]
Operations on dynamic_bitsets.

Parameters

__pos The number of places to shift.

These should be self-explanatory.

operator=() [1/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator= (
const dynamic_bitset< _WordT, _Alloc > & ) [default]
Copy assignment operator.

operator=() [2/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator= (
dynamic_bitset< _WordT, _Alloc > && __b) [inline], [noexcept]
Move assignment operator.

operator>>()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset std::tr2::dynamic_bitset< _WordT, _Alloc >::operator>> (
size_type __pos) const [inline]
Self-explanatory.

operator>>=()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator>>= (
size_type __pos) [inline]
Operations on dynamic_bitsets.

Parameters

__pos The number of places to shift.

These should be self-explanatory.

Generated by Doxygen
1954

operator[]() [1/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


reference std::tr2::dynamic_bitset< _WordT, _Alloc >::operator[ ] (
size_type __pos) [inline]
Array-indexing support.

Parameters
__pos Index into the dynamic_bitset.

Returns

A bool for a 'const dynamic_bitset'. For non-const bitsets, an instance of the reference proxy class.

Note

These operators do no range checking and throw no exceptions, as required by DR 11 to the standard.

operator[]() [2/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


const_reference std::tr2::dynamic_bitset< _WordT, _Alloc >::operator[ ] (
size_type __pos) const [inline]
Array-indexing support.

Parameters
__pos Index into the dynamic_bitset.

Returns

A bool for a 'const dynamic_bitset'. For non-const bitsets, an instance of the reference proxy class.

Note

These operators do no range checking and throw no exceptions, as required by DR 11 to the standard.

operator∧ =()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator∧ = (
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]
Operations on dynamic_bitsets.

Parameters
__rhs A same-sized dynamic_bitset.

These should be self-explanatory.

operator"|=()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::operator|= (
const dynamic_bitset< _WordT, _Alloc > & __rhs) [inline]
Operations on dynamic_bitsets.

Generated by Doxygen
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference 1955

Parameters
__rhs A same-sized dynamic_bitset.

These should be self-explanatory.

operator∼()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset std::tr2::dynamic_bitset< _WordT, _Alloc >::operator∼ () const [inline]
See the no-argument flip().

push_back()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


void std::tr2::dynamic_bitset< _WordT, _Alloc >::push_back (
bool __bit) [inline]
Push a bit onto the high end of the bitset.

reset() [1/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::reset () [inline]
Sets every bit to false.

reset() [2/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::reset (
size_type __pos) [inline]
Sets a given bit to false.

Parameters

__pos The index of the bit.

Exceptions

std::out_of_range If __pos is bigger the size of the set.

Same as writing set(__pos, false).

resize()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


void std::tr2::dynamic_bitset< _WordT, _Alloc >::resize (
size_type __nbits,
bool __value = false) [inline]
Resize the bitset.
Referenced by std::tr2::operator>>().

Generated by Doxygen
1956

set() [1/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::set () [inline]
Sets every bit to true.

set() [2/2]

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


dynamic_bitset & std::tr2::dynamic_bitset< _WordT, _Alloc >::set (
size_type __pos,
bool __val = true) [inline]
Sets a given bit to a particular value.

Parameters

__pos The index of the bit.


__val Either true or false, defaults to true.

Exceptions

std::out_of_range If __pos is bigger the size of the set.

size()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


size_type std::tr2::dynamic_bitset< _WordT, _Alloc >::size () const [inline], [noexcept]
Returns the total number of bits.
Referenced by std::tr2::operator>>().

swap()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


void std::tr2::dynamic_bitset< _WordT, _Alloc >::swap (
dynamic_bitset< _WordT, _Alloc > & __b) [inline], [noexcept]
Swap with another bitset.

test()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


bool std::tr2::dynamic_bitset< _WordT, _Alloc >::test (
size_type __pos) const [inline]
Tests the value of a bit.

Parameters

__pos The index of a bit.

Returns

The value at __pos.

Generated by Doxygen
5.413 std::tr2::dynamic_bitset< _WordT, _Alloc > Class Template Reference 1957

Exceptions

std::out_of_range If __pos is bigger the size of the set.

to_string()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


template<typename _CharT = char, typename _Traits = std::char_traits<_CharT>, typename _Alloc1 =
std::allocator<_CharT>>
std::basic_string< _CharT, _Traits, _Alloc1 > std::tr2::dynamic_bitset< _WordT, _Alloc >::to_←-
string (
_CharT __zero = _CharT('0'),
_CharT __one = _CharT('1')) const [inline]
Returns a character interpretation of the dynamic_bitset.

Returns

The string equivalent of the bits.

Note the ordering of the bits: decreasing character positions correspond to increasing bit positions (see the main class
notes for an example).

to_ullong()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


unsigned long long std::tr2::dynamic_bitset< _WordT, _Alloc >::to_ullong () const [inline]
Returns a numerical interpretation of the dynamic_bitset.

Returns

The integral equivalent of the bits.

Exceptions

std::overflow_error If there are too many bits to be represented in an unsigned long.

to_ulong()

template<typename _WordT = unsigned long long, typename _Alloc = std::allocator<_WordT>>


unsigned long std::tr2::dynamic_bitset< _WordT, _Alloc >::to_ulong () const [inline]
Returns a numerical interpretation of the dynamic_bitset.

Returns

The integral equivalent of the bits.

Exceptions

std::overflow_error If there are too many bits to be represented in an unsigned long.

The documentation for this class was generated from the following files:

• dynamic_bitset
• dynamic_bitset.tcc

Generated by Doxygen
1958

5.414 std::enable_if< bool, _Tp > Struct Template Reference


#include <type_traits>

5.414.1 Detailed Description

template<bool, typename _Tp = void>


struct std::enable_if< bool, _Tp >

Define a member typedef type only if a boolean constant is true.


The documentation for this struct was generated from the following file:

• type_traits

5.415 std::enable_shared_from_this< _Tp > Class Template Reference


#include <memory>

Public Member Functions

• shared_ptr< _Tp > shared_from_this ()


• shared_ptr< const _Tp > shared_from_this () const

• weak_ptr< _Tp > weak_from_this () noexcept


• weak_ptr< const _Tp > weak_from_this () const noexcept

Protected Member Functions

• enable_shared_from_this (const enable_shared_from_this &) noexcept


• enable_shared_from_this & operator= (const enable_shared_from_this &) noexcept

Friends

• const enable_shared_from_this ∗ __enable_shared_from_this_base (const __shared_count<> &, const


enable_shared_from_this ∗__p)
• template<typename , _Lock_policy >
class __shared_ptr

5.415.1 Detailed Description

template<typename _Tp>
class std::enable_shared_from_this< _Tp >

Base class allowing use of the member function shared_from_this.

Since

C++11

5.415.2 Member Function Documentation

weak_from_this() [1/2]

template<typename _Tp >


weak_ptr< const _Tp > std::enable_shared_from_this< _Tp >::weak_from_this () const [inline],
[noexcept]
Get a weak_ptr referring to the object that has ∗this as its base.

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1959

Since

C++17

weak_from_this() [2/2]

template<typename _Tp >


weak_ptr< _Tp > std::enable_shared_from_this< _Tp >::weak_from_this () [inline], [noexcept]
Get a weak_ptr referring to the object that has ∗this as its base.

Since

C++17

The documentation for this class was generated from the following files:

• bits/shared_ptr.h
• shared_ptr_base.h

5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference


#include <enc_filebuf.h>
Inheritance diagram for __gnu_cxx::enc_filebuf< _CharT >:

std::basic_streambuf
< _CharT, encoding_char
_traits< _CharT > >

std::basic_filebuf
< _CharT, encoding_char
_traits< _CharT > >

__gnu_cxx::enc_filebuf
< _CharT >

Public Types

• typedef codecvt< char_type, char, __state_type > __codecvt_type


• typedef __basic_file< char > __file_type
• typedef basic_filebuf< char_type, traits_type > __filebuf_type
• typedef traits_type::state_type __state_type

Generated by Doxygen
1960

• typedef basic_streambuf< char_type, traits_type > __streambuf_type


• typedef _CharT char_type
• typedef traits_type::int_type int_type
• typedef traits_type::off_type off_type
• typedef traits_type::pos_type pos_type
• typedef traits_type::state_type state_type
• typedef encoding_char_traits< _CharT > traits_type

Public Member Functions

• enc_filebuf (state_type &__state)


• __filebuf_type ∗ close ()
• locale getloc () const
• streamsize in_avail ()
• bool is_open () const throw ()
• _If_fs_path< _Path, __filebuf_type ∗ > open (const _Path &__s, ios_base::openmode __mode)
• __filebuf_type ∗ open (const char ∗__s, ios_base::openmode __mode)
• __filebuf_type ∗ open (const std::string &__s, ios_base::openmode __mode)
• locale pubimbue (const locale &__loc)
• int_type sbumpc ()
• int_type sgetc ()
• streamsize sgetn (char_type ∗__s, streamsize __n)
• int_type snextc ()
• int_type sputbackc (char_type __c)
• int_type sputc (char_type __c)
• streamsize sputn (const char_type ∗__s, streamsize __n)
• int_type sungetc ()
• void swap (basic_filebuf &)

• basic_streambuf ∗ pubsetbuf (char_type ∗__s, streamsize __n)


• pos_type pubseekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios←-
_base::out)
• pos_type pubseekpos (pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
• int pubsync ()

Protected Member Functions

• void __safe_gbump (streamsize __n)


• void __safe_pbump (streamsize __n)
• void _M_allocate_internal_buffer ()
• bool _M_convert_to_external (char_type ∗, streamsize)
• void _M_create_pback ()
• void _M_destroy_internal_buffer () throw ()
• void _M_destroy_pback () throw ()
• int _M_get_ext_pos (__state_type &__state)
• pos_type _M_seek (off_type __off, ios_base::seekdir __way, __state_type __state)
• void _M_set_buffer (streamsize __off)
• bool _M_terminate_output ()
• void gbump (int __n)
• virtual void imbue (const locale &__loc)
• virtual int_type overflow (int_type __c=encoding_char_traits< _CharT >::eof())

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1961

• virtual int_type pbackfail (int_type __c=encoding_char_traits< _CharT >::eof())


• void pbump (int __n)
• virtual pos_type seekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base←-
::in|ios_base::out)
• virtual pos_type seekpos (pos_type __pos, ios_base::openmode __mode=ios_base::in|ios_base::out)
• virtual __streambuf_type ∗ setbuf (char_type ∗__s, streamsize __n)
• void setg (char_type ∗__gbeg, char_type ∗__gnext, char_type ∗__gend)
• void setp (char_type ∗__pbeg, char_type ∗__pend)
• virtual streamsize showmanyc ()
• void swap (basic_streambuf &__sb)
• virtual int sync ()
• virtual int_type uflow ()
• virtual int_type underflow ()
• virtual streamsize xsgetn (char_type ∗__s, streamsize __n)
• virtual streamsize xsputn (const char_type ∗__s, streamsize __n)

• char_type ∗ eback () const


• char_type ∗ gptr () const
• char_type ∗ egptr () const

• char_type ∗ pbase () const


• char_type ∗ pptr () const
• char_type ∗ epptr () const

Protected Attributes

• char_type ∗ _M_buf
• bool _M_buf_allocated
• locale _M_buf_locale
• size_t _M_buf_size
• const __codecvt_type ∗ _M_codecvt
• char ∗ _M_ext_buf
• streamsize _M_ext_buf_size
• char ∗ _M_ext_end
• const char ∗ _M_ext_next
• __file_type _M_file
• char_type ∗ _M_in_beg
• char_type ∗ _M_in_cur
• char_type ∗ _M_in_end
• __c_lock _M_lock
• ios_base::openmode _M_mode
• char_type ∗ _M_out_beg
• char_type ∗ _M_out_cur
• char_type ∗ _M_out_end
• bool _M_reading
• __state_type _M_state_beg
• __state_type _M_state_cur
• __state_type _M_state_last
• bool _M_writing

• char_type _M_pback
• char_type ∗ _M_pback_cur_save
• char_type ∗ _M_pback_end_save
• bool _M_pback_init

Generated by Doxygen
1962

5.416.1 Detailed Description

template<typename _CharT>
class __gnu_cxx::enc_filebuf< _CharT >

class enc_filebuf.

5.416.2 Member Function Documentation

_M_create_pback()

void std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_create_pback () [inline],


[protected], [inherited]
Initializes pback buffers, and moves normal buffers to safety. Assumptions: _M_in_cur has already been moved back

_M_destroy_pback()

void std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_destroy_pback () throw ( )


[inline], [protected], [inherited]
Deactivates pback buffer contents, and restores normal buffer. Assumptions: The pback buffer has only moved forward.

_M_set_buffer()

void std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_set_buffer (


streamsize __off) [inline], [protected], [inherited]
This function sets the pointers of the internal buffer, both get and put areas. Typically:
__off == egptr() - eback() upon underflow/uflow (read mode); __off == 0 upon overflow (write mode); __off == -1 upon
open, setbuf, seekoff/pos (uncommitted mode).
NB: epptr() - pbase() == _M_buf_size - 1, since _M_buf_size reflects the actual allocated memory and the last cell is
reserved for the overflow char of a full put area.

close()

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::__filebuf_type ∗ std::basic_filebuf< ←-


_CharT, encoding_char_traits< _CharT > >::close () [inherited]
Closes the currently associated file.
Returns

this on success, NULL on failure

If no file is currently open, this function immediately fails.


If a put buffer area exists, overflow(eof) is called to flush all the characters. The file is then closed.
If any operations fail, this function also fails.

eback()

char_type ∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::eback () const [inline],


[protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1963

egptr()

char_type ∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::egptr () const [inline],


[protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

epptr()

char_type ∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::epptr () const [inline],


[protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

gbump()

void std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::gbump (


int __n) [inline], [protected], [inherited]
Moving the read position.

Parameters
_←- The delta by which to move.
_n

This just advances the read position without returning any data.

getloc()

locale std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::getloc () const [inline],


[inherited]
Locale access.
Returns

The current locale in effect.

If pubimbue(loc) has been called, then the most recent loc is returned. Otherwise the global locale in effect at the time
of construction is returned.

Generated by Doxygen
1964

gptr()

char_type ∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::gptr () const [inline],


[protected], [inherited]
Access to the get area.
These functions are only available to other protected functions, including derived classes.

• eback() returns the beginning pointer for the input sequence

• gptr() returns the next pointer for the input sequence

• egptr() returns the end pointer for the input sequence

imbue()

void std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::imbue (


const locale & __loc) [protected], [virtual], [inherited]
Changes translations.

Parameters
__loc A new locale.

Translations done during I/O which depend on the current locale are changed by this call. The standard adds, Between
invocations of this function a class derived from streambuf can safely cache results of calls to locale functions and to
members of facets so obtained.
Note

Base class version does nothing.

Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

in_avail()

streamsize std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::in_avail () [inline],


[inherited]
Looking ahead into the stream.
Returns

The number of characters available.

If a read position is available, returns the number of characters available for reading before the buffer must be refilled.
Otherwise returns the derived showmanyc().

is_open()

bool std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::is_open () const throw ( )


[inline], [nodiscard], [inherited]
Returns true if the external file is open.

open() [1/3]

_If_fs_path< _Path, __filebuf_type ∗ > std::basic_filebuf< _CharT, encoding_char_traits< _CharT


> >::open (
const _Path & __s,
ios_base::openmode __mode) [inline], [inherited]
Opens an external file.

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1965

Parameters

__s The name of the file, as a filesystem::path.


__mode The open mode flags.

Returns

this on success, NULL on failure

open() [2/3]

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::__filebuf_type ∗ std::basic_filebuf< ←-


_CharT, encoding_char_traits< _CharT > >::open (
const char ∗ __s,
ios_base::openmode __mode) [inherited]
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Returns

this on success, NULL on failure

If a file is already open, this function immediately fails. Otherwise it tries to open the file named __s using the flags given
in __mode.
Table 92, adapted here, gives the relation between openmode combinations and the equivalent fopen() flags. (NB:
lines app, in|out|app, in|app, binary|app, binary|in|out|app, and binary|in|app per DR 596)

+---------------------------------------------------------+
| ios_base Flag combination stdio equivalent |
|binary in out trunc app |
+---------------------------------------------------------+
| + w |
| + + a |
| + a |
| + + w |
| + r |
| + + r+ |
| + + + w+ |
| + + + a+ |
| + + a+ |
+---------------------------------------------------------+
| + + wb |
| + + + ab |
| + + ab |
| + + + wb |
| + + rb |
| + + + r+b |
| + + + + w+b |
| + + + + a+b |
| + + + a+b |
+---------------------------------------------------------+

Generated by Doxygen
1966

open() [3/3]

__filebuf_type ∗ std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::open (


const std::string & __s,
ios_base::openmode __mode) [inline], [inherited]
Opens an external file.

Parameters

__s The name of the file.


__mode The open mode flags.

Returns

this on success, NULL on failure

overflow()

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::int_type std::basic_filebuf< _CharT,


encoding_char_traits< _CharT > >::overflow (
int_type __c = _Traits::eof()) [protected], [virtual], [inherited]
Consumes data from the buffer; writes to the controlled sequence.

Parameters
_←- An additional character to consume.
_c

Returns

eof() to indicate failure, something else (usually __c, or not_eof())

Informally, this function is called when the output buffer is full (or does not exist, as buffering need not actually be done).
If a buffer exists, it is consumed, with some effect on the controlled sequence. (Typically, the buffer is written out to the
sequence verbatim.) In either case, the character c is also written out, if __c is not eof().
For a formal definition of this function, see a good text such as Langer & Kreft, or [27.5.2.4.5]/3-7.
A functioning output streambuf can be created by overriding only this function (no buffer area will be used).
Note

Base class version does nothing, returns eof().

Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

pbackfail()

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::int_type std::basic_filebuf< _CharT,


encoding_char_traits< _CharT > >::pbackfail (
int_type __c = _Traits::eof()) [protected], [virtual], [inherited]
Tries to back up the input sequence.

Parameters
_←- The character to be inserted back into the sequence.
_c

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1967

Returns

eof() on failure, some other value on success

Postcondition

The constraints of gptr(), eback(), and pptr() are the same as for underflow().

Note

Base class version does nothing, returns eof().

Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

pbase()

char_type ∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pbase () const [inline],


[protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

pbump()

void std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pbump (


int __n) [inline], [protected], [inherited]
Moving the write position.

Parameters
_←- The delta by which to move.
_n

This just advances the write position without returning any data.

pptr()

char_type ∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pptr () const [inline],


[protected], [inherited]
Access to the put area.
These functions are only available to other protected functions, including derived classes.

• pbase() returns the beginning pointer for the output sequence

• pptr() returns the next pointer for the output sequence

• epptr() returns the end pointer for the output sequence

pubimbue()

locale std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pubimbue (


const locale & __loc) [inline], [inherited]
Entry point for imbue().

Generated by Doxygen
1968

Parameters
__loc The new locale.

Returns

The previous locale.

Calls the derived imbue(__loc).

pubseekoff()

pos_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pubseekoff (


off_type __off,
ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [inherited]
Alters the stream position.

Parameters

__off Offset.
__way Value for ios_base::seekdir.
__mode Value for ios_base::openmode.

Calls virtual seekoff function.

pubseekpos()

pos_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pubseekpos (


pos_type __sp,
ios_base::openmode __mode = ios_base::in | ios_base::out) [inline], [inherited]
Alters the stream position.

Parameters
__sp Position
__mode Value for ios_base::openmode.

Calls virtual seekpos function.

pubsetbuf()

basic_streambuf ∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pubsetbuf (


char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry points for derived buffer functions.
The public versions of pubfoo dispatch to the protected derived foo member functions, passing the arguments (if
any) and returning the result unchanged.

pubsync()

int std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::pubsync () [inline], [inherited]


Calls virtual sync function.

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1969

sbumpc()

int_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::sbumpc () [inline],


[inherited]
Getting the next character.

Returns

The next character, or eof.

If the input read position is available, returns that character and increments the read pointer, otherwise calls and returns
uflow().

seekoff()

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::pos_type std::basic_filebuf< _CharT,


encoding_char_traits< _CharT > >::seekoff (
off_type __off,
ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out) [protected], [virtual],
[inherited]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

seekpos()

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::pos_type std::basic_filebuf< _CharT,


encoding_char_traits< _CharT > >::seekpos (
pos_type __pos,
ios_base::openmode __mode = ios_base::in | ios_base::out) [protected], [virtual],
[inherited]
Alters the stream positions.
Each derived class provides its own appropriate behavior.

Note

Base class version does nothing, returns a pos_type that represents an invalid stream position.

Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

setbuf()

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::__streambuf_type ∗ std::basic_filebuf<


_CharT, encoding_char_traits< _CharT > >::setbuf (
char_type ∗ __s,
streamsize __n) [protected], [virtual], [inherited]
Manipulates the buffer.

Parameters

_←- Pointer to a buffer area.


_s

Generated by Doxygen
1970

_←- Size of __s.


_n

Returns

this

If no file has been opened, and both __s and __n are zero, then the stream becomes unbuffered. Otherwise, __s
is used as a buffer; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.←-
html#io.streambuf.buffering for more.
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

setg()

void std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::setg (


char_type ∗ __gbeg,
char_type ∗ __gnext,
char_type ∗ __gend) [inline], [protected], [inherited]
Setting the three read area pointers.

Parameters
__gbeg A pointer.
__gnext A pointer.
__gend A pointer.

Postcondition

__gbeg == eback(), __gnext == gptr(), and __gend == egptr()

setp()

void std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::setp (


char_type ∗ __pbeg,
char_type ∗ __pend) [inline], [protected], [inherited]
Setting the three write area pointers.

Parameters
__pbeg A pointer.
__pend A pointer.

Postcondition

__pbeg == pbase(), __pbeg == pptr(), and __pend == epptr()

sgetc()

int_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::sgetc () [inline],


[inherited]
Getting the next character.

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1971

Returns

The next character, or eof.

If the input read position is available, returns that character, otherwise calls and returns underflow(). Does not
move the read position after fetching the character.

sgetn()

streamsize std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::sgetn (


char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry point for xsgetn.

Parameters

_←- A buffer area.


_s
_←- A count.
_n

Returns xsgetn(__s,__n). The effect is to fill __s[0] through __s[__n-1] with characters from the input sequence, if
possible.

showmanyc()

streamsize std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::showmanyc () [protected],


[virtual], [inherited]
Investigating the data available.

Returns

An estimate of the number of characters available in the input sequence, or -1.

If it returns a positive value, then successive calls to underflow() will not return traits::eof() until at least that
number of characters have been supplied. If showmanyc() returns -1, then calls to underflow() or uflow()
will fail. [27.5.2.4.3]/1

Note

Base class version does nothing, returns zero.


The standard adds that the intention is not only that the calls [to underflow or uflow] will not return eof() but that
they will return immediately.
The standard adds that the morphemes of showmanyc are es-how-many-see, not show-manic.

Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

snextc()

int_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::snextc () [inline],


[inherited]
Getting the next character.

Returns

The next character, or eof.

Calls sbumpc(), and if that function returns traits::eof(), so does this function. Otherwise, sgetc().

Generated by Doxygen
1972

sputbackc()

int_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::sputbackc (


char_type __c) [inline], [inherited]
Pushing characters back into the input stream.

Parameters
_←- The character to push back.
_c

Returns

The previous character, if possible.

Similar to sungetc(), but __c is pushed onto the stream instead of the previous character. If successful, the next character
fetched from the input stream will be __c.

sputc()

int_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::sputc (


char_type __c) [inline], [inherited]
Entry point for all single-character output functions.

Parameters
_←- A character to output.
_c

Returns

__c, if possible.

One of two public output functions.


If a write position is available for the output sequence (i.e., the buffer is not full), stores __c in that position, increments
the position, and returns traits::to_int_type(__c). If a write position is not available, returns overflow(←-
__c).

sputn()

streamsize std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::sputn (


const char_type ∗ __s,
streamsize __n) [inline], [inherited]
Entry point for all single-character output functions.

Parameters

_←- A buffer read area.


_s
_←- A count.
_n

One of two public output functions.


Returns xsputn(__s,__n). The effect is to write __s[0] through __s[__n-1] to the output sequence, if possible.

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1973

sungetc()

int_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::sungetc () [inline],


[inherited]
Moving backwards in the input stream.

Returns

The previous character, if possible.

If a putback position is available, this function decrements the input pointer and returns that character. Otherwise, calls
and returns pbackfail(). The effect is to unget the last character gotten.

sync()

int std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::sync () [protected], [virtual],


[inherited]
Synchronizes the buffer arrays with the controlled sequences.

Returns

-1 on failure.

Each derived class provides its own appropriate behavior, including the definition of failure.

Note

Base class version does nothing, returns zero.

Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

uflow()

virtual int_type std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::uflow () [inline],


[protected], [virtual], [inherited]
Fetches more data from the controlled sequence.

Returns

The first character from the pending sequence.

Informally, this function does the same thing as underflow(), and in fact is required to call that function. It also
returns the new character, like underflow() does. However, this function also moves the read position forward by
one.

underflow()

basic_filebuf< _CharT, encoding_char_traits< _CharT > >::int_type std::basic_filebuf< _CharT,


encoding_char_traits< _CharT > >::underflow () [protected], [virtual], [inherited]
Fetches more data from the controlled sequence.

Returns

The first character from the pending sequence.

Informally, this function is called when the input buffer is exhausted (or does not exist, as buffering need not actually be
done). If a buffer exists, it is refilled. In either case, the next available character is returned, or traits::eof() to
indicate a null pending sequence.
For a formal definition of the pending sequence, see a good text such as Langer & Kreft, or [27.5.2.4.3]/7-14.
A functioning input streambuf can be created by overriding only this function (no buffer area will be used). For an
example, see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html

Generated by Doxygen
1974

Note

Base class version does nothing, returns eof().


Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

xsgetn()

streamsize std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::xsgetn (


char_type ∗ __s,
streamsize __n) [protected], [virtual], [inherited]
Multiple character extraction.

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to assign.
_n

Returns

The number of characters assigned.


Fills __s[0] through __s[__n-1] with characters from the input sequence, as if by sbumpc(). Stops when either __n
characters have been copied, or when traits::eof() would be copied.
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

xsputn()

streamsize std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::xsputn (


const char_type ∗ __s,
streamsize __n) [protected], [virtual], [inherited]
Multiple character insertion.

Parameters

_←- A buffer area.


_s
_←- Maximum number of characters to write.
_n

Returns

The number of characters written.


Writes __s[0] through __s[__n-1] to the output sequence, as if by sputc(). Stops when either n characters have been
copied, or when sputc() would return traits::eof().
It is expected that derived classes provide a more efficient implementation by overriding this definition.
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.

5.416.3 Member Data Documentation

_M_buf

char_type∗ std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_buf [protected],


[inherited]
Pointer to the beginning of internal buffer.

Generated by Doxygen
5.416 __gnu_cxx::enc_filebuf< _CharT > Class Template Reference 1975

_M_buf_locale

locale std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::_M_buf_locale [protected],


[inherited]
Current locale setting.

_M_buf_size

size_t std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_buf_size [protected],


[inherited]
Actual size of internal buffer. This number is equal to the size of the put area + 1 position, reserved for the overflow char
of a full area.

_M_ext_buf

char∗ std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_ext_buf [protected],


[inherited]
Buffer for external characters. Used for input when codecvt::always_noconv() == false. When valid, this corresponds to
eback().

_M_ext_buf_size

streamsize std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_ext_buf_size [protected],


[inherited]
Size of buffer held by _M_ext_buf.

_M_ext_next

const char∗ std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_ext_next [protected],


[inherited]
Pointers into the buffer held by _M_ext_buf that delimit a subsequence of bytes that have been read but not yet con-
verted. When valid, _M_ext_next corresponds to egptr().

_M_in_beg

char_type∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::_M_in_beg [protected],


[inherited]
Start of get area.

_M_in_cur

char_type∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::_M_in_cur [protected],


[inherited]
Current read area.

_M_in_end

char_type∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::_M_in_end [protected],


[inherited]
End of get area.

_M_mode

ios_base::openmode std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_mode [protected],


[inherited]
Place to stash in || out || in | out settings for current filebuf.

Generated by Doxygen
1976

_M_out_beg

char_type∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::_M_out_beg [protected],


[inherited]
Start of put area.

_M_out_cur

char_type∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::_M_out_cur [protected],


[inherited]
Current put area.

_M_out_end

char_type∗ std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >::_M_out_end [protected],


[inherited]
End of put area.

_M_pback

char_type std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_pback [protected],


[inherited]
Necessary bits for putback buffer management.
Note

pbacks of over one character are not currently supported.

_M_pback_cur_save

char_type∗ std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_pback_cur_save [protected],


[inherited]
Necessary bits for putback buffer management.
Note

pbacks of over one character are not currently supported.

_M_pback_end_save

char_type∗ std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_pback_end_save [protected],


[inherited]
Necessary bits for putback buffer management.
Note

pbacks of over one character are not currently supported.

_M_pback_init

bool std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_pback_init [protected],


[inherited]
Necessary bits for putback buffer management.
Note

pbacks of over one character are not currently supported.

Generated by Doxygen
5.417 __gnu_cxx::encoding_char_traits< _CharT > Struct Template Reference 1977

_M_reading

bool std::basic_filebuf< _CharT, encoding_char_traits< _CharT > >::_M_reading [protected],


[inherited]
_M_reading == false && _M_writing == false for uncommitted mode; _M_reading == true for read mode; _M_writing
== true for write mode;
NB: _M_reading == true && _M_writing == true is unused.
The documentation for this class was generated from the following file:

• enc_filebuf.h

5.417 __gnu_cxx::encoding_char_traits< _CharT > Struct Template Reference


#include <codecvt_specializations.h>
Inheritance diagram for __gnu_cxx::encoding_char_traits< _CharT >:

__gnu_cxx::char_traits
< _CharT >

std::char_traits<
_CharT >

__gnu_cxx::encoding
_char_traits< _CharT >

Public Types

• typedef _CharT char_type


• using comparison_category
• typedef _Char_types< _CharT >::int_type int_type
• typedef _Char_types< _CharT >::off_type off_type
• typedef std::fpos< state_type > pos_type
• typedef encoding_state state_type

Static Public Member Functions

• static constexpr void assign (char_type &__c1, const char_type &__c2)


• static constexpr char_type ∗ assign (char_type ∗__s, std::size_t __n, char_type __a)
• static constexpr int compare (const char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr char_type ∗ copy (char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr int_type eof ()

Generated by Doxygen
1978

• static constexpr bool eq (const char_type &__c1, const char_type &__c2)


• static constexpr bool eq_int_type (const int_type &__c1, const int_type &__c2)
• static constexpr const char_type ∗ find (const char_type ∗__s, std::size_t __n, const char_type &__a)
• static constexpr std::size_t length (const char_type ∗__s)
• static constexpr bool lt (const char_type &__c1, const char_type &__c2)
• static constexpr char_type ∗ move (char_type ∗__s1, const char_type ∗__s2, std::size_t __n)
• static constexpr int_type not_eof (const int_type &__c)
• static constexpr char_type to_char_type (const int_type &__c)
• static constexpr int_type to_int_type (const char_type &__c)

5.417.1 Detailed Description

template<typename _CharT>
struct __gnu_cxx::encoding_char_traits< _CharT >

encoding_char_traits
The documentation for this struct was generated from the following file:

• codecvt_specializations.h

5.418 __gnu_cxx::encoding_state Class Reference


#include <codecvt_specializations.h>

Public Types

• typedef iconv_t descriptor_type

Public Member Functions

• encoding_state (const char ∗__int, const char ∗__ext, int __ibom=0, int __ebom=0, int __bytes=1)
• encoding_state (const encoding_state &__obj)
• int character_ratio () const
• int external_bom () const
• const std::string external_encoding () const
• bool good () const throw ()
• const descriptor_type & in_descriptor () const
• int internal_bom () const
• const std::string internal_encoding () const
• encoding_state & operator= (const encoding_state &__obj)
• const descriptor_type & out_descriptor () const

Protected Member Functions

• void construct (const encoding_state &__obj)


• void destroy () throw ()
• void init ()

Generated by Doxygen
5.419 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, No_Throw > Struct Template Reference 1979

Protected Attributes

• int _M_bytes
• int _M_ext_bom
• std::string _M_ext_enc
• descriptor_type _M_in_desc
• int _M_int_bom
• std::string _M_int_enc
• descriptor_type _M_out_desc

5.418.1 Detailed Description

Extension to use iconv for dealing with character encodings.


The documentation for this class was generated from the following file:

• codecvt_specializations.h

5.419 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, No_Throw > Struct


Template Reference
5.419.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc, bool No_Throw>


struct __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, No_Throw >

Entry compare, primary template.


The documentation for this struct was generated from the following file:

• entry_cmp.hpp

5.420 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, false > Struct Template


Reference
#include <entry_cmp.hpp>

Classes

• struct type

Public Types

• typedef __rebind_v::const_pointer entry

5.420.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc>


struct __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, false >

Specialization, false.
The documentation for this struct was generated from the following file:

• entry_cmp.hpp

5.421 __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, true > Struct Template


Reference
#include <entry_cmp.hpp>

Generated by Doxygen
1980

Public Types

• typedef Cmp_Fn type

5.421.1 Detailed Description

template<typename _VTp, typename Cmp_Fn, typename _Alloc>


struct __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, true >

Specialization, true.

5.421.2 Member Typedef Documentation

type

template<typename _VTp , typename Cmp_Fn , typename _Alloc >


Cmp_Fn __gnu_pbds::detail::entry_cmp< _VTp, Cmp_Fn, _Alloc, true >::type
Compare.
The documentation for this struct was generated from the following file:

• entry_cmp.hpp

5.422 __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, No_Throw > Struct Template


Reference
5.422.1 Detailed Description

template<typename _VTp, typename Pred, typename _Alloc, bool No_Throw>


struct __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, No_Throw >

Entry predicate primary class template.


The documentation for this struct was generated from the following file:

• entry_pred.hpp

5.423 __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, false > Struct Template


Reference
#include <entry_pred.hpp>

Public Types

• typedef __rebind_v::const_pointer entry

5.423.1 Detailed Description

template<typename _VTp, typename Pred, typename _Alloc>


struct __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, false >

Specialization, false.
The documentation for this struct was generated from the following file:

• entry_pred.hpp

5.424 __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, true > Struct Template


Reference
#include <entry_pred.hpp>

Generated by Doxygen
5.425 __gnu_pbds::detail::eq_by_less< Key, Cmp_Fn > Struct Template Reference 1981

Public Types

• typedef Pred type

5.424.1 Detailed Description

template<typename _VTp, typename Pred, typename _Alloc>


struct __gnu_pbds::detail::entry_pred< _VTp, Pred, _Alloc, true >

Specialization, true.
The documentation for this struct was generated from the following file:

• entry_pred.hpp

5.425 __gnu_pbds::detail::eq_by_less< Key, Cmp_Fn > Struct Template Reference


#include <eq_by_less.hpp>

Public Member Functions

• bool operator() (const Key &r_lhs, const Key &r_rhs) const

5.425.1 Detailed Description

template<typename Key, class Cmp_Fn>


struct __gnu_pbds::detail::eq_by_less< Key, Cmp_Fn >

Equivalence function.
The documentation for this struct was generated from the following file:

• eq_by_less.hpp

5.426 __gnu_parallel::equal_split_tag Struct Reference


#include <tags.h>
Inheritance diagram for __gnu_parallel::equal_split_tag:

__gnu_parallel::find_tag

__gnu_parallel::equal
_split_tag

5.426.1 Detailed Description

Selects the equal splitting variant for std::find().

Generated by Doxygen
1982

See also

_GLIBCXX_FIND_EQUAL_SPLIT

The documentation for this struct was generated from the following file:

• tags.h

5.427 std::equal_to< _Tp > Struct Template Reference


#include <stl_function.h>
Inheritance diagram for std::equal_to< _Tp >:

std::binary_function
< _Tp, _Tp, bool >

std::equal_to< _Tp >

Public Types

• typedef _Tp first_argument_type


• typedef bool result_type
• typedef _Tp second_argument_type

Public Member Functions

• constexpr bool operator() (const _Tp &__x, const _Tp &__y) const

5.427.1 Detailed Description

template<typename _Tp>
struct std::equal_to< _Tp >

One of the comparison functors.

5.427.2 Member Typedef Documentation

first_argument_type

_Tp std::binary_function< _Tp, _Tp, bool >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

bool std::binary_function< _Tp, _Tp, bool >::result_type [inherited]


result_type is the return type

Generated by Doxygen
5.428 std::ranges::equal_to Struct Reference 1983

second_argument_type

_Tp std::binary_function< _Tp, _Tp, bool >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

• stl_function.h

5.428 std::ranges::equal_to Struct Reference


#include <ranges_cmp.h>

Public Types

• using is_transparent

Public Member Functions

• template<typename _Tp , typename _Up >


requires equality_comparable_with<_Tp, _Up>
constexpr bool operator() (_Tp &&__t, _Up &&__u) const noexcept(noexcept(std::declval< _Tp >()==std::declval<
_Up >()))

5.428.1 Detailed Description

ranges::equal_to function object type.


The documentation for this struct was generated from the following file:

• ranges_cmp.h

5.429 std::equal_to< void > Struct Reference


#include <stl_function.h>

Public Types

• typedef __is_transparent is_transparent

Public Member Functions

• template<typename _Tp , typename _Up >


constexpr auto operator() (_Tp &&__t, _Up &&__u) const noexcept(noexcept(std::forward< _Tp >(__←-
t)==std::forward< _Up >(__u))) -> decltype(std::forward< _Tp >(__t)==std::forward< _Up >(__u))

5.429.1 Detailed Description

One of the comparison functors.


The documentation for this struct was generated from the following file:

• stl_function.h

5.430 std::_V2::error_category Class Reference


#include <system_error>

Generated by Doxygen
1984

Public Member Functions

• error_category (const error_category &)=delete


• virtual error_condition default_error_condition (int __i) const noexcept
• virtual bool equivalent (const error_code &__code, int __i) const noexcept
• virtual bool equivalent (int __i, const error_condition &__cond) const noexcept
• virtual string message (int) const =0
• virtual const char ∗ name () const noexcept=0
• strong_ordering operator<=> (const error_category &__rhs) const noexcept
• error_category & operator= (const error_category &)=delete
• bool operator== (const error_category &__other) const noexcept

5.430.1 Detailed Description

Abstract base class for types defining a category of error codes.


An error category defines a context that gives meaning to the integer stored in an error_code or error_←-
condition object. For example, the standard errno constants such a EINVAL and ENOMEM are associated
with the "generic" category and other OS-specific error numbers are associated with the "system" category, but a user-
defined category might give different meanings to the same numerical values.
A user-defined category can override the equivalent member functions to define correspondence between errors in
different categories. For example, a category for errors from disk I/O could consider some of its error numbers equivalent
to ENOSPC and ENOENT in the generic category.

Since

C++11

5.430.2 Member Function Documentation

default_error_condition()

virtual error_condition std::_V2::error_category::default_error_condition (


int __i) const [virtual], [noexcept]
Return an error_condition corresponding to i in this category.

equivalent() [1/2]

virtual bool std::_V2::error_category::equivalent (


const error_code & __code,
int __i) const [virtual], [noexcept]
Test whether code corresponds to i for this category.

equivalent() [2/2]

virtual bool std::_V2::error_category::equivalent (


int __i,
const error_condition & __cond) const [virtual], [noexcept]
Test whether cond corresponds to i for this category.

message()

virtual string std::_V2::error_category::message (


int ) const [pure virtual]
A description of the error condition corresponding to the number.

Generated by Doxygen
5.431 std::error_code Class Reference 1985

name()

virtual const char ∗ std::_V2::error_category::name () const [pure virtual], [noexcept]


A string that identifies the error category.

operator<=>()

strong_ordering std::_V2::error_category::operator<=> (
const error_category & __rhs) const [inline], [nodiscard], [noexcept]
Ordered comparison that defines a total order for error categories.

operator==()

bool std::_V2::error_category::operator== (
const error_category & __other) const [inline], [noexcept]
An error_category only compares equal to itself.
The documentation for this class was generated from the following file:

• system_error

5.431 std::error_code Class Reference


#include <system_error>

Public Member Functions

• template<typename _ErrorCodeEnum , typename = _Check<_ErrorCodeEnum>>


error_code (_ErrorCodeEnum __e) noexcept
• error_code (const error_code &)=default
• error_code (int __v, const error_category &__cat) noexcept
• void assign (int __v, const error_category &__cat) noexcept
• const error_category & category () const noexcept
• void clear () noexcept
• error_condition default_error_condition () const noexcept
• string message () const
• operator bool () const noexcept
• error_code & operator= (const error_code &)=default
• int value () const noexcept

Related Symbols

(Note that these are not member symbols.)

• error_code make_error_code (errc __e) noexcept


• strong_ordering operator (const error_code &__lhs, const error_code &__rhs) noexcept
• template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__os, const error_code
&__e)

5.431.1 Detailed Description

Class error_code
This class is a value type storing an integer error number and a category that gives meaning to the error number.
Typically this is done close the the point where the error happens, to capture the original error value.

Generated by Doxygen
1986

An error_code object can be used to store the original error value emitted by some subsystem, with a category
relevant to the subsystem. For example, errors from POSIX library functions can be represented by an errno value
and the "generic" category, but errors from an HTTP library might be represented by an HTTP response status code
(e.g. 404) and a custom category defined by the library.

Since

C++11

5.431.2 Constructor & Destructor Documentation

error_code()

template<typename _ErrorCodeEnum , typename = _Check<_ErrorCodeEnum>>


std::error_code::error_code (
_ErrorCodeEnum __e) [inline], [noexcept]
Initialize with a user-defined type, by calling make_error_code.

5.431.3 Member Function Documentation

category()

const error_category & std::error_code::category () const [inline], [noexcept]


The error category that this error belongs to.

default_error_condition()

error_condition std::error_code::default_error_condition () const [noexcept]


An error_condition for this error's category and value.

message()

string std::error_code::message () const [inline]


The category's description of the value.

operator bool()

std::error_code::operator bool () const [inline], [explicit], [noexcept]


Test whether value() is non-zero.

value()

int std::error_code::value () const [inline], [noexcept]


The error value.
The documentation for this class was generated from the following file:

• system_error

5.432 std::error_condition Class Reference


#include <system_error>

Public Member Functions

• error_condition () noexcept
• template<typename _ErrorConditionEnum , typename = _Check<_ErrorConditionEnum>>
error_condition (_ErrorConditionEnum __e) noexcept

Generated by Doxygen
5.432 std::error_condition Class Reference 1987

• error_condition (const error_condition &)=default


• error_condition (int __v, const error_category &__cat) noexcept
• void assign (int __v, const error_category &__cat) noexcept
• const error_category & category () const noexcept
• void clear () noexcept
• string message () const
• operator bool () const noexcept
• error_condition & operator= (const error_condition &)=default
• int value () const noexcept

Related Symbols

(Note that these are not member symbols.)

• error_condition make_error_condition (errc __e) noexcept


• strong_ordering operator (const error_condition &__lhs, const error_condition &__rhs) noexcept
• bool operator== (const error_code &__lhs, const error_code &__rhs) noexcept
• bool operator== (const error_code &__lhs, const error_condition &__rhs) noexcept
• bool operator== (const error_condition &__lhs, const error_condition &__rhs) noexcept

5.432.1 Detailed Description

Class error_condition
This class represents error conditions that may be visible at an API boundary. Different error_code values that can
occur within a library or module might map to the same error_condition.
An error_condition represents something that the program can test for, and subsequently take appropriate action.

Since

C++11

5.432.2 Constructor & Destructor Documentation

error_condition() [1/3]

std::error_condition::error_condition () [inline], [noexcept]


Initialize with a zero (no error) value and the generic category.

error_condition() [2/3]

std::error_condition::error_condition (
int __v,
const error_category & __cat) [inline], [noexcept]
Initialize with the specified value and category.

error_condition() [3/3]

template<typename _ErrorConditionEnum , typename = _Check<_ErrorConditionEnum>>


std::error_condition::error_condition (
_ErrorConditionEnum __e) [inline], [noexcept]
Initialize with a user-defined type, by calling make_error_condition.

Generated by Doxygen
1988

5.432.3 Member Function Documentation

assign()

void std::error_condition::assign (
int __v,
const error_category & __cat) [inline], [noexcept]
Set the value and category.

category()

const error_category & std::error_condition::category () const [inline], [noexcept]


The error category that this error belongs to.

clear()

void std::error_condition::clear () [inline], [noexcept]


Reset the value and category to the default-constructed state.

message()

string std::error_condition::message () const [inline]


The category's description of the value.

operator bool()

std::error_condition::operator bool () const [inline], [explicit], [noexcept]


Test whether value() is non-zero.

value()

int std::error_condition::value () const [inline], [noexcept]


The error value.
The documentation for this class was generated from the following file:

• system_error

5.433 __gnu_parallel::exact_tag Struct Reference


#include <tags.h>
Inheritance diagram for __gnu_parallel::exact_tag:

__gnu_parallel::parallel_tag

__gnu_parallel::exact_tag

Generated by Doxygen
5.434 std::exception Class Reference 1989

Public Member Functions

• exact_tag (_ThreadIndex __num_threads)


• _ThreadIndex __get_num_threads ()
• void set_num_threads (_ThreadIndex __num_threads)

5.433.1 Detailed Description

Forces parallel merging with exact splitting, at compile time.

5.433.2 Member Function Documentation

__get_num_threads()

_ThreadIndex __gnu_parallel::parallel_tag::__get_num_threads () [inline], [inherited]


Find out desired number of threads.
Returns

Desired number of threads.

Referenced by __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(),


__gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), and __gnu_parallel::__parallel_sort(

set_num_threads()

void __gnu_parallel::parallel_tag::set_num_threads (
_ThreadIndex __num_threads) [inline], [inherited]
Set the desired number of threads.

Parameters

__num_threads Desired number of threads.

The documentation for this struct was generated from the following file:

• tags.h

5.434 std::exception Class Reference


#include <exception.h>

Generated by Doxygen
1990

Inheritance diagram for std::exception:

__gnu_cxx::forced_error

__gnu_cxx::recursive
_init_error

std::bad_alloc
std::experimental::
fundamentals_v1::bad
__gnu_pbds::insert
std::bad_cast _any_cast
_error

std::bad_exception __gnu_pbds::container
__gnu_pbds::join_error
_error
std::exception
std::bad_function_call
__gnu_pbds::resize
std::domain_error
_error
std::bad_typeid
std::experimental::
fundamentals_v1::bad
std::bad_weak_ptr _optional_access

std::logic_error std::future_error

std::invalid_argument

std::length_error

std::out_of_range

std::overflow_error

std::range_error
std::runtime_error

std::regex_error
std::experimental::
filesystem::v1::filesystem_error
std::system_error
std::filesystem::filesystem
_error
std::underflow_error

Public Member Functions

• exception (const exception &)=default


• exception (exception &&)=default
• exception & operator= (const exception &)=default
• exception & operator= (exception &&)=default
• virtual const char ∗ what () const noexcept

5.434.1 Detailed Description

Base class for all library exceptions.


This is the base class for all exceptions thrown by the standard library, and by certain language expressions. You are
free to derive your own exception classes, or use a different hierarchy, or to throw non-class data (e.g., fundamental
types).

5.434.2 Member Function Documentation

what()

virtual const char ∗ std::exception::what () const [virtual], [noexcept]

Generated by Doxygen
5.435 std::__unspecified__::exception_ptr Class Reference 1991

Returns a C-style character string describing the general cause of the current error.

Reimplemented in std::bad_alloc, std::bad_cast, std::bad_exception, std::bad_function_call, std::bad_typeid,


std::bad_weak_ptr, std::experimental::filesystem::v1::filesystem_error, std::experimental::fundamentals_v1::bad_any_cast,
std::filesystem::filesystem_error, std::future_error, std::logic_error, and std::runtime_error.
The documentation for this class was generated from the following file:

• exception.h

5.435 std::__unspecified__::exception_ptr Class Reference


#include <exception>

Public Member Functions

• exception_ptr (const exception_ptr &) noexcept


• exception_ptr (exception_ptr &&__o) noexcept
• exception_ptr (nullptr_t) noexcept
• const class std::type_info ∗ __cxa_exception_type () const noexcept
• operator bool () const noexcept
• exception_ptr & operator= (const exception_ptr &) noexcept
• exception_ptr & operator= (exception_ptr &&__o) noexcept
• void swap (exception_ptr &) noexcept

Friends

• bool operator== (const exception_ptr &, const exception_ptr &) noexcept=default


• exception_ptr std::current_exception () noexcept
• template<typename _Ex >
exception_ptr std::make_exception_ptr (_Ex) noexcept
• void std::rethrow_exception (exception_ptr)

Related Symbols

(Note that these are not member symbols.)

• void swap (exception_ptr &__lhs, exception_ptr &__rhs)

5.435.1 Detailed Description

An opaque pointer to an arbitrary exception.


The actual name of this type is unspecified, so the alias std::exception_ptr should be used to refer to it.

Since

C++11 (but usable in C++98 as a GCC extension)

The documentation for this class was generated from the following file:

• exception_ptr.h

5.436 std::exponential_distribution< _RealType > Class Template Reference


#include <random>

Generated by Doxygen
1992

Classes

• struct param_type

Public Types

• typedef _RealType result_type

Public Member Functions

• exponential_distribution ()
• exponential_distribution (_RealType __lambda)
• exponential_distribution (const param_type &__p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• _RealType lambda () const
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Friends

• bool operator== (const exponential_distribution &__d1, const exponential_distribution &__d2)

5.436.1 Detailed Description

template<typename _RealType = double>


class std::exponential_distribution< _RealType >

An exponential continuous distribution for random numbers.


The formula for the exponential probability density function is p(x|λ) = λe−λx .

Table 2169 Distribution Statistics

1
Mean λ
ln 2
Median λ
Mode zero
Range [0, ∞]
1
Standard Deviation λ

Generated by Doxygen
5.436 std::exponential_distribution< _RealType > Class Template Reference 1993

Since

C++11

5.436.2 Member Typedef Documentation

result_type

template<typename _RealType = double>


_RealType std::exponential_distribution< _RealType >::result_type
The type of the range of the distribution.

5.436.3 Constructor & Destructor Documentation

exponential_distribution() [1/2]

template<typename _RealType = double>


std::exponential_distribution< _RealType >::exponential_distribution () [inline]
Constructs an exponential distribution with inverse scale parameter 1.0.

exponential_distribution() [2/2]

template<typename _RealType = double>


std::exponential_distribution< _RealType >::exponential_distribution (
_RealType __lambda) [inline], [explicit]
Constructs an exponential distribution with inverse scale parameter λ.

5.436.4 Member Function Documentation

lambda()

template<typename _RealType = double>


_RealType std::exponential_distribution< _RealType >::lambda () const [inline]
Returns the inverse scale parameter of the distribution.

max()

template<typename _RealType = double>


result_type std::exponential_distribution< _RealType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

min()

template<typename _RealType = double>


result_type std::exponential_distribution< _RealType >::min () const [inline]
Returns the greatest lower bound value of the distribution.

operator()()

template<typename _RealType = double>


template<typename _UniformRandomNumberGenerator >
result_type std::exponential_distribution< _RealType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References std::exponential_distribution< _RealType >::operator()().
Referenced by std::exponential_distribution< _RealType >::operator()().

Generated by Doxygen
1994

param() [1/2]

template<typename _RealType = double>


param_type std::exponential_distribution< _RealType >::param () const [inline]
Returns the parameter set of the distribution.
Referenced by std::operator>>().

param() [2/2]

template<typename _RealType = double>


void std::exponential_distribution< _RealType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

template<typename _RealType = double>


void std::exponential_distribution< _RealType >::reset () [inline]
Resets the distribution state.
Has no effect on exponential distributions.

5.436.5 Friends And Related Symbol Documentation

operator==

template<typename _RealType = double>


bool operator== (
const exponential_distribution< _RealType > & __d1,
const exponential_distribution< _RealType > & __d2) [friend]
Return true if two exponential distributions have the same parameters.
The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.437 std::extent< typename, _Uint > Struct Template Reference


#include <type_traits>

Generated by Doxygen
5.438 std::extreme_value_distribution< _RealType > Class Template Reference 1995

Inheritance diagram for std::extent< typename, _Uint >:

std::integral_constant
< size_t, 0 >

std::extent< typename,
_Uint >

Public Types

• using type
• using value_type

Public Member Functions

• constexpr operator value_type () const noexcept

Static Public Attributes

• static constexpr size_t value

5.437.1 Detailed Description

template<typename, unsigned _Uint = 0>


struct std::extent< typename, _Uint >

extent
The documentation for this struct was generated from the following file:

• type_traits

5.438 std::extreme_value_distribution< _RealType > Class Template Reference


#include <random>

Classes

• struct param_type

Public Types

• typedef _RealType result_type

Generated by Doxygen
1996

Public Member Functions

• extreme_value_distribution (_RealType __a, _RealType __b=_RealType(1))


• extreme_value_distribution (const param_type &__p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• _RealType a () const
• _RealType b () const
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Friends

• bool operator== (const extreme_value_distribution &__d1, const extreme_value_distribution &__d2)

5.438.1 Detailed Description

template<typename _RealType = double>


class std::extreme_value_distribution< _RealType >

A extreme_value_distribution random number distribution.


The formula for the normal probability mass function is
1 a−x a−x
p(x|a, b) = exp( − exp( ))
b b b

Since

C++11

5.438.2 Member Typedef Documentation

result_type

template<typename _RealType = double>


_RealType std::extreme_value_distribution< _RealType >::result_type
The type of the range of the distribution.

5.438.3 Member Function Documentation

a()

template<typename _RealType = double>


_RealType std::extreme_value_distribution< _RealType >::a () const [inline]
Return the a parameter of the distribution.

Generated by Doxygen
5.438 std::extreme_value_distribution< _RealType > Class Template Reference 1997

b()

template<typename _RealType = double>


_RealType std::extreme_value_distribution< _RealType >::b () const [inline]
Return the b parameter of the distribution.

max()

template<typename _RealType = double>


result_type std::extreme_value_distribution< _RealType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

min()

template<typename _RealType = double>


result_type std::extreme_value_distribution< _RealType >::min () const [inline]
Returns the greatest lower bound value of the distribution.
References std::numeric_limits< _Tp >::lowest().

operator()()

template<typename _RealType = double>


template<typename _UniformRandomNumberGenerator >
result_type std::extreme_value_distribution< _RealType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References std::extreme_value_distribution< _RealType >::operator()().
Referenced by std::extreme_value_distribution< _RealType >::operator()().

param() [1/2]

template<typename _RealType = double>


param_type std::extreme_value_distribution< _RealType >::param () const [inline]
Returns the parameter set of the distribution.
Referenced by std::operator>>().

param() [2/2]

template<typename _RealType = double>


void std::extreme_value_distribution< _RealType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

template<typename _RealType = double>


void std::extreme_value_distribution< _RealType >::reset () [inline]
Resets the distribution state.

Generated by Doxygen
1998

5.438.4 Friends And Related Symbol Documentation

operator==

template<typename _RealType = double>


bool operator== (
const extreme_value_distribution< _RealType > & __d1,
const extreme_value_distribution< _RealType > & __d2) [friend]
Return true if two extreme value distributions have the same parameters.
The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.439 std::locale::facet Class Reference


#include <locale_classes.h>

Generated by Doxygen
5.439 std::locale::facet Class Reference 1999

Inheritance diagram for std::locale::facet:

std::__codecvt_abstract
std::codecvt< _InternT,
_base< _InternT, _ExternT,
_ExternT, encoding_state >
encoding_state >

std::__codecvt_abstract std::codecvt< char,


_base< char, char, mbstate_t > char, mbstate_t >

std::__codecvt_abstract
std::codecvt< char16
_base< char16_t, char,
_t, char, mbstate_t >
mbstate_t >

std::__codecvt_abstract
std::codecvt< char32
_base< char32_t, char,
_t, char, mbstate_t >
mbstate_t >

std::__codecvt_abstract
std::codecvt< wchar
_base< wchar_t, char,
_t, char, mbstate_t >
mbstate_t >

std::__codecvt_abstract std::codecvt< _Elem,


_base< _Elem, char, mbstate_t > char, mbstate_t >

std::__ctype_abstract
std::ctype< wchar_t >
_base< wchar_t >

std::moneypunct< _CharT, std::moneypunct_byname


false > < _CharT, _Intl >

std::time_get< _CharT,
istreambuf_iterator
< _CharT > >

std::time_put< _CharT,
ostreambuf_iterator
< _CharT > >

std::__codecvt_abstract std::codecvt_byname
std::codecvt< _InternT,
_base< _InternT, _ExternT, < _InternT, _ExternT,
_ExternT, _StateT >
_StateT > _StateT >

std::__ctype_abstract std::ctype_byname<
std::locale::facet std::ctype< _CharT >
_base< _CharT > _CharT >

std::__cxx11::collate
< _CharT >

std::ctype_byname<
std::ctype< char > char >

std::messages< _CharT > std::messages_byname


< _CharT >

std::money_get< _CharT,
_InIter >

std::money_put< _CharT,
_OutIter >

std::moneypunct< _CharT,
_Intl >

std::num_get< _CharT,
_InIter >

std::num_put< _CharT,
_OutIter >

std::numpunct_byname
std::numpunct< _CharT > < _CharT >

std::time_get< _CharT, std::time_get_byname


_InIter > < _CharT, _InIter >

std::time_put< _CharT, std::time_put_byname


_OutIter > < _CharT, _OutIter >

Protected Member Functions

• facet (const facet &)=delete


• facet (size_t __refs=0) throw ()

Generated by Doxygen
2000

• virtual ∼facet ()
• facet & operator= (const facet &)=delete

Static Protected Member Functions

• static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()


• static void _S_create_c_locale (__c_locale &__cloc, const char ∗__s, __c_locale __old=0)
• static void _S_destroy_c_locale (__c_locale &__cloc)
• static __c_locale _S_get_c_locale ()
• static const char ∗ _S_get_c_name () throw ()
• static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char ∗__s)

Friends

• class locale
• class locale::_Impl

5.439.1 Detailed Description

Localization functionality base class.


The facet class is the base class for a localization feature, such as money, time, and number printing. It provides
common support for facets and reference management.
Facets may not be copied or assigned.

5.439.2 Constructor & Destructor Documentation

facet()

std::locale::facet::facet (
size_t __refs = 0) throw ( ) [inline], [explicit], [protected]
Facet constructor.
This is the constructor provided by the standard. If refs is 0, the facet is destroyed when the last referencing locale is
destroyed. Otherwise the facet will never be destroyed.

Parameters

__refs The initial value for reference count.

∼facet()
virtual std::locale::facet::∼facet () [protected], [virtual]
Facet destructor.
The documentation for this class was generated from the following file:

• locale_classes.h

5.440 std::filesystem::file_status Class Reference


#include <filesystem>

Generated by Doxygen
5.441 std::experimental::filesystem::v1::filesystem_error Class Reference 2001

Public Member Functions

• file_status (const file_status &) noexcept=default


• file_status (file_status &&) noexcept=default
• file_status (file_type __ft, perms __prms=perms::unknown) noexcept
• file_status & operator= (const file_status &) noexcept=default
• file_status & operator= (file_status &&) noexcept=default
• perms permissions () const noexcept
• void permissions (perms __prms) noexcept
• file_type type () const noexcept
• void type (file_type __ft) noexcept

Friends

• bool operator== (const file_status &, const file_status &) noexcept=default

5.440.1 Detailed Description

Information about a file's type and permissions.


Since

C++17
The documentation for this class was generated from the following file:
• bits/fs_dir.h

5.441 std::experimental::filesystem::v1::filesystem_error Class Reference


#include <fs_path.h>
Inheritance diagram for std::experimental::filesystem::v1::filesystem_error:

std::exception

std::runtime_error

std::system_error

std::experimental::
filesystem::v1::filesystem_error

Generated by Doxygen
2002

Public Member Functions

• filesystem_error (const string &__what_arg, const path &__p1, const path &__p2, error_code __ec)
• filesystem_error (const string &__what_arg, const path &__p1, error_code __ec)
• filesystem_error (const string &__what_arg, error_code __ec)
• const error_code & code () const noexcept
• const path & path1 () const noexcept
• const path & path2 () const noexcept
• const char ∗ what () const noexcept

5.441.1 Detailed Description

Exception type thrown by the Filesystem TS library.

5.441.2 Member Function Documentation

what()

const char ∗ std::experimental::filesystem::v1::filesystem_error::what () const [inline], [virtual],


[noexcept]
Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::runtime_error.


References std::basic_string< _CharT, _Traits, _Alloc >::c_str().
The documentation for this class was generated from the following file:

• experimental/bits/fs_path.h

5.442 std::filesystem::filesystem_error Class Reference


#include <filesystem>

Generated by Doxygen
5.442 std::filesystem::filesystem_error Class Reference 2003

Inheritance diagram for std::filesystem::filesystem_error:

std::exception

std::runtime_error

std::system_error

std::filesystem::filesystem
_error

Public Member Functions

• filesystem_error (const filesystem_error &)=default


• filesystem_error (const string &__what_arg, const path &__p1, const path &__p2, error_code __ec)
• filesystem_error (const string &__what_arg, const path &__p1, error_code __ec)
• filesystem_error (const string &__what_arg, error_code __ec)
• const error_code & code () const noexcept
• filesystem_error & operator= (const filesystem_error &)=default
• const path & path1 () const noexcept
• const path & path2 () const noexcept
• const char ∗ what () const noexcept

5.442.1 Detailed Description

Exception type thrown by the Filesystem library.

Since

C++17

5.442.2 Member Function Documentation

what()

const char ∗ std::filesystem::filesystem_error::what () const [virtual], [noexcept]


Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::runtime_error.

Generated by Doxygen
2004

References std::make_error_code().
The documentation for this class was generated from the following file:

• bits/fs_path.h

5.443 __gnu_parallel::find_tag Struct Reference


#include <tags.h>
Inheritance diagram for __gnu_parallel::find_tag:

__gnu_parallel::constant
_size_blocks_tag

__gnu_parallel::equal
__gnu_parallel::find_tag
_split_tag

__gnu_parallel::growing
_blocks_tag

5.443.1 Detailed Description

Base class for for std::find() variants.


The documentation for this struct was generated from the following file:

• tags.h

5.444 std::fisher_f_distribution< _RealType > Class Template Reference


#include <random>

Classes

• struct param_type

Public Types

• typedef _RealType result_type

Public Member Functions

• fisher_f_distribution (_RealType __m, _RealType __n=_RealType(1))


• fisher_f_distribution (const param_type &__p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)

Generated by Doxygen
5.444 std::fisher_f_distribution< _RealType > Class Template Reference 2005

• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >


void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• _RealType m () const
• result_type max () const
• result_type min () const
• _RealType n () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Friends

• template<typename _RealType1 , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::fisher_f_distribution< _RealType1 > &__x)
• bool operator== (const fisher_f_distribution &__d1, const fisher_f_distribution &__d2)
• template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::fisher_f_distribution< _RealType1 > &__x)

5.444.1 Detailed Description

template<typename _RealType = double>


class std::fisher_f_distribution< _RealType >

A fisher_f_distribution random number distribution.


The formula for the normal probability mass function is

Γ((m + n)/2) m m/2 (m/2)−1 mx −(m+n)/2


p(x|m, n) = ( ) x (1 + )
Γ(m/2)Γ(n/2) n n

Since

C++11

5.444.2 Member Typedef Documentation

result_type

template<typename _RealType = double>


_RealType std::fisher_f_distribution< _RealType >::result_type
The type of the range of the distribution.

Generated by Doxygen
2006

5.444.3 Member Function Documentation

max()

template<typename _RealType = double>


result_type std::fisher_f_distribution< _RealType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

min()

template<typename _RealType = double>


result_type std::fisher_f_distribution< _RealType >::min () const [inline]
Returns the greatest lower bound value of the distribution.

operator()()

template<typename _RealType = double>


template<typename _UniformRandomNumberGenerator >
result_type std::fisher_f_distribution< _RealType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.

param() [1/2]

template<typename _RealType = double>


param_type std::fisher_f_distribution< _RealType >::param () const [inline]
Returns the parameter set of the distribution.

param() [2/2]

template<typename _RealType = double>


void std::fisher_f_distribution< _RealType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

template<typename _RealType = double>


void std::fisher_f_distribution< _RealType >::reset () [inline]
Resets the distribution state.
References std::gamma_distribution< _RealType >::reset().

5.444.4 Friends And Related Symbol Documentation

operator<<

template<typename _RealType = double>


template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (

Generated by Doxygen
5.445 __gnu_cxx::forced_error Struct Reference 2007

std::basic_ostream< _CharT, _Traits > & __os,


const std::fisher_f_distribution< _RealType1 > & __x) [friend]
Inserts a fisher_f_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A fisher_f_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

operator==

template<typename _RealType = double>


bool operator== (
const fisher_f_distribution< _RealType > & __d1,
const fisher_f_distribution< _RealType > & __d2) [friend]
Return true if two Fisher f distributions have the same parameters and the sequences that would be generated are
equal.

operator>>

template<typename _RealType = double>


template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::fisher_f_distribution< _RealType1 > & __x) [friend]
Extracts a fisher_f_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A fisher_f_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.445 __gnu_cxx::forced_error Struct Reference


#include <throw_allocator.h>

Generated by Doxygen
2008

Inheritance diagram for __gnu_cxx::forced_error:

std::exception

__gnu_cxx::forced_error

Public Member Functions

• virtual const char ∗ what () const noexcept

5.445.1 Detailed Description

Thrown by utilities for testing exception safety.

5.445.2 Member Function Documentation

what()

virtual const char ∗ std::exception::what () const [virtual], [noexcept], [inherited]


Returns a C-style character string describing the general cause of the current error.

Reimplemented in std::bad_alloc, std::bad_cast, std::bad_exception, std::bad_function_call, std::bad_typeid,


std::bad_weak_ptr, std::experimental::filesystem::v1::filesystem_error, std::experimental::fundamentals_v1::bad_any_cast,
std::filesystem::filesystem_error, std::future_error, std::logic_error, and std::runtime_error.
The documentation for this struct was generated from the following file:

• throw_allocator.h

5.446 std::forward_iterator_tag Struct Reference


#include <stl_iterator_base_types.h>

Generated by Doxygen
5.447 std::__debug::forward_list< _Tp, _Alloc > Class Template Reference 2009

Inheritance diagram for std::forward_iterator_tag:

std::input_iterator_tag

std::forward_iterator_tag

std::bidirectional
_iterator_tag

std::random_access
_iterator_tag

std::contiguous_iterator_tag

5.446.1 Detailed Description

Forward iterators support a superset of input iterator operations.


The documentation for this struct was generated from the following file:

• stl_iterator_base_types.h

5.447 std::__debug::forward_list< _Tp, _Alloc > Class Template Reference


#include <forward_list>

Generated by Doxygen
2010

Inheritance diagram for std::__debug::forward_list< _Tp, _Alloc >:

__gnu_debug::_Safe
_container< _SafeContainer, std::__debug::forward
_Alloc, _SafeBase, _IsCxx11Allocator _list< _Tp, _Alloc >
Aware >

Public Types

• typedef _Base::allocator_type allocator_type


• typedef __gnu_debug::_Safe_iterator< _Base_const_iterator, forward_list > const_iterator
• typedef _Base::const_pointer const_pointer
• typedef _Base::const_reference const_reference
• typedef _Base::difference_type difference_type
• typedef __gnu_debug::_Safe_iterator< _Base_iterator, forward_list > iterator
• typedef _Base::pointer pointer
• typedef _Base::reference reference
• typedef _Base::size_type size_type
• typedef _Tp value_type

Public Member Functions

• forward_list (_Base_ref __x)


• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
forward_list (_InputIterator __first, _InputIterator __last, const allocator_type &__al=allocator_type())
• forward_list (const allocator_type &__al) noexcept
• forward_list (const forward_list &)=default
• forward_list (const forward_list &__list, const allocator_type &__al)
• forward_list (forward_list &&)=default
• forward_list (forward_list &&__list, const allocator_type &__al) noexcept(std::is_nothrow_constructible< _Base,
_Base, const allocator_type & >::value)
• forward_list (size_type __n, const __type_identity_t< _Tp > &__value, const allocator_type &__al=allocator_←-
type())
• forward_list (size_type __n, const allocator_type &__al=allocator_type())
• forward_list (std::initializer_list< _Tp > __il, const allocator_type &__al=allocator_type())
• const _Base & _M_base () const noexcept
• _Base & _M_base () noexcept
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
void assign (_InputIterator __first, _InputIterator __last)
• void assign (size_type __n, const _Tp &__val)
• void assign (std::initializer_list< _Tp > __il)
• const_iterator before_begin () const noexcept
• iterator before_begin () noexcept
• const_iterator begin () const noexcept
• iterator begin () noexcept
• const_iterator cbefore_begin () const noexcept

Generated by Doxygen
5.447 std::__debug::forward_list< _Tp, _Alloc > Class Template Reference 2011

• const_iterator cbegin () const noexcept


• const_iterator cend () const noexcept
• void clear () noexcept
• template<typename... _Args>
iterator emplace_after (const_iterator __pos, _Args &&... __args)
• const_iterator end () const noexcept
• iterator end () noexcept
• iterator erase_after (const_iterator __pos)
• iterator erase_after (const_iterator __pos, const_iterator __last)
• reference front ()
• const_reference front () const
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator insert_after (const_iterator __pos, _InputIterator __first, _InputIterator __last)
• iterator insert_after (const_iterator __pos, _Tp &&__val)
• iterator insert_after (const_iterator __pos, const _Tp &__val)
• iterator insert_after (const_iterator __pos, size_type __n, const _Tp &__val)
• iterator insert_after (const_iterator __pos, std::initializer_list< _Tp > __il)
• void merge (forward_list &&__list)
• template<typename _Comp >
void merge (forward_list &&__list, _Comp __comp)
• void merge (forward_list &__list)
• template<typename _Comp >
void merge (forward_list &__list, _Comp __comp)
• forward_list & operator= (const forward_list &)=default
• forward_list & operator= (forward_list &&)=default
• forward_list & operator= (std::initializer_list< _Tp > __il)
• void pop_front ()
• __remove_return_type remove (const _Tp &__val)
• template<typename _Pred >
__remove_return_type remove_if (_Pred __pred)
• void resize (size_type __sz)
• void resize (size_type __sz, const value_type &__val)
• void splice_after (const_iterator __pos, forward_list &&__list)
• void splice_after (const_iterator __pos, forward_list &&__list, const_iterator __before, const_iterator __last)
• void splice_after (const_iterator __pos, forward_list &&__list, const_iterator __i)
• void splice_after (const_iterator __pos, forward_list &__list)
• void splice_after (const_iterator __pos, forward_list &__list, const_iterator __before, const_iterator __last)
• void splice_after (const_iterator __pos, forward_list &__list, const_iterator __i)
• void swap (forward_list &__list) noexcept(noexcept(declval< _Base & >().swap(__list)))
• __remove_return_type unique ()
• template<typename _BinPred >
__remove_return_type unique (_BinPred __binary_pred)

Protected Member Functions

• constexpr void _M_swap (_Safe_container &__x) noexcept

Friends

• template<typename _ItT , typename _SeqT , typename _CatT >


class ::__gnu_debug::_Safe_iterator

Generated by Doxygen
2012

5.447.1 Detailed Description

template<typename _Tp, typename _Alloc = std::allocator<_Tp>>


class std::__debug::forward_list< _Tp, _Alloc >

Class std::forward_list with safety/checking/debug instrumentation.


The documentation for this class was generated from the following file:

• debug/forward_list

5.448 std::forward_list< _Tp, _Alloc > Class Template Reference


#include <forward_list>
Inheritance diagram for std::forward_list< _Tp, _Alloc >:

std::_Fwd_list_base
< _Tp, _Alloc >

std::forward_list<
_Tp, _Alloc >

Public Types

• typedef _Alloc allocator_type


• typedef _Base::const_iterator const_iterator
• typedef _Alloc_traits::const_pointer const_pointer
• typedef const value_type & const_reference
• typedef std::ptrdiff_t difference_type
• typedef _Base::iterator iterator
• typedef _Alloc_traits::pointer pointer
• typedef value_type & reference
• typedef std::size_t size_type
• typedef _Tp value_type

Public Member Functions

• forward_list ()=default
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
forward_list (_InputIterator __first, _InputIterator __last, const _Alloc &__al=_Alloc())
• forward_list (const _Alloc &__al) noexcept
• forward_list (const forward_list &__list)
• forward_list (const forward_list &__list, const __type_identity_t< _Alloc > &__al)
• forward_list (forward_list &&)=default

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2013

• forward_list (forward_list &&__list, const __type_identity_t< _Alloc > &__al) noexcept(_Node_alloc_traits::_S←-


_always_equal())
• forward_list (size_type __n, const _Alloc &__al=_Alloc())
• forward_list (size_type __n, const _Tp &__value, const _Alloc &__al=_Alloc())
• forward_list (std::initializer_list< _Tp > __il, const _Alloc &__al=_Alloc())
• ∼forward_list () noexcept
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
void assign (_InputIterator __first, _InputIterator __last)
• void assign (size_type __n, const _Tp &__val)
• void assign (std::initializer_list< _Tp > __il)
• const_iterator before_begin () const noexcept
• iterator before_begin () noexcept
• const_iterator begin () const noexcept
• iterator begin () noexcept
• const_iterator cbefore_begin () const noexcept
• const_iterator cbegin () const noexcept
• const_iterator cend () const noexcept
• void clear () noexcept
• template<typename... _Args>
iterator emplace_after (const_iterator __pos, _Args &&... __args)
• template<typename... _Args>
reference emplace_front (_Args &&... __args)
• bool empty () const noexcept
• const_iterator end () const noexcept
• iterator end () noexcept
• iterator erase_after (const_iterator __pos)
• iterator erase_after (const_iterator __pos, const_iterator __last)
• reference front ()
• const_reference front () const
• allocator_type get_allocator () const noexcept
• template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator insert_after (const_iterator __pos, _InputIterator __first, _InputIterator __last)
• iterator insert_after (const_iterator __pos, _Tp &&__val)
• iterator insert_after (const_iterator __pos, const _Tp &__val)
• iterator insert_after (const_iterator __pos, size_type __n, const _Tp &__val)
• iterator insert_after (const_iterator __pos, std::initializer_list< _Tp > __il)
• size_type max_size () const noexcept
• void merge (forward_list &&__list)
• template<typename _Comp >
void merge (forward_list &&__list, _Comp __comp)
• void merge (forward_list &__list)
• template<typename _Comp >
void merge (forward_list &__list, _Comp __comp)
• forward_list & operator= (const forward_list &__list)
• forward_list & operator= (forward_list &&__list) noexcept(_Node_alloc_traits::_S_nothrow_move())
• forward_list & operator= (std::initializer_list< _Tp > __il)
• void pop_front ()
• void push_front (_Tp &&__val)
• void push_front (const _Tp &__val)
• __remove_return_type remove (const _Tp &__val)

Generated by Doxygen
2014

• template<typename _Pred >


__remove_return_type remove_if (_Pred __pred)
• template<typename _Pred >
auto remove_if (_Pred __pred) -> __remove_return_type
• void resize (size_type __sz)
• void resize (size_type __sz, const value_type &__val)
• void reverse () noexcept
• void sort ()
• template<typename _Comp >
void sort (_Comp __comp)
• void splice_after (const_iterator __pos, forward_list &&__list) noexcept
• void splice_after (const_iterator __pos, forward_list &&__list, const_iterator __i) noexcept
• void splice_after (const_iterator __pos, forward_list &__list) noexcept
• void splice_after (const_iterator __pos, forward_list &__list, const_iterator __i) noexcept
• void swap (forward_list &__list) noexcept
• __remove_return_type unique ()
• template<typename _BinPred >
__remove_return_type unique (_BinPred __binary_pred)
• template<typename _BinPred >
auto unique (_BinPred __binary_pred) -> __remove_return_type

• void splice_after (const_iterator __pos, forward_list &&, const_iterator __before, const_iterator __last) noexcept
• void splice_after (const_iterator __pos, forward_list &, const_iterator __before, const_iterator __last) noexcept

5.448.1 Detailed Description

template<typename _Tp, typename _Alloc = allocator<_Tp>>


class std::forward_list< _Tp, _Alloc >

A standard container with linear time access to elements, and fixed time insertion/deletion at any point in the sequence.
Since

C++11

Template Parameters

_Tp Type of element.


_Alloc Allocator type, defaults to allocator<_Tp>.

Meets the requirements of a container, a sequence, including the optional sequence requirements
with the exception of at and operator[].
This is a singly linked list. Traversal up the list requires linear time, but adding and removing elements (or nodes) is
done in constant time, regardless of where the change takes place. Unlike std::vector and std::deque, random-access
iterators are not provided, so subscripting ([]) access is not allowed. For algorithms which only need sequential access,
this lack makes no difference.
Also unlike the other standard containers, std::forward_list provides specialized algorithms unique to linked lists, such
as splicing, sorting, and in-place reversal.

5.448.2 Constructor & Destructor Documentation

forward_list() [1/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list () [default]
Creates a forward_list with no elements.

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2015

forward_list() [2/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
const _Alloc & __al) [inline], [explicit], [noexcept]
Creates a forward_list with no elements.

Parameters
_←- An allocator object.
_al

forward_list() [3/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
const forward_list< _Tp, _Alloc > & __list,
const __type_identity_t< _Alloc > & __al) [inline]
Copy constructor with allocator argument.

Parameters
__list Input list to copy.
__al An allocator object.

References std::forward_list< _Tp, _Alloc >::begin(), and std::forward_list< _Tp, _Alloc >::end().

forward_list() [4/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
forward_list< _Tp, _Alloc > && __list,
const __type_identity_t< _Alloc > & __al) [inline], [noexcept]
Move constructor with allocator argument.

Parameters
__list Input list to move.
__al An allocator object.

forward_list() [5/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
size_type __n,
const _Alloc & __al = _Alloc()) [inline], [explicit]
Creates a forward_list with default constructed elements.

Parameters

_←- The number of elements to initially create.


_n

Generated by Doxygen
2016

_←- An allocator object.


_al

This constructor creates the forward_list with __n default constructed elements.

forward_list() [6/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
size_type __n,
const _Tp & __value,
const _Alloc & __al = _Alloc()) [inline]
Creates a forward_list with copies of an exemplar element.

Parameters

__n The number of elements to initially create.


__value An element to copy.
__al An allocator object.

This constructor fills the forward_list with __n copies of __value.

forward_list() [7/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
std::forward_list< _Tp, _Alloc >::forward_list (
_InputIterator __first,
_InputIterator __last,
const _Alloc & __al = _Alloc()) [inline]
Builds a forward_list from a range.

Parameters

__first An input iterator.


__last An input iterator.
__al An allocator object.

Create a forward_list consisting of copies of the elements from [__first,__last). This is linear in N (where N is
distance(__first,__last)).

forward_list() [8/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
const forward_list< _Tp, _Alloc > & __list) [inline]
The forward_list copy constructor.

Parameters

__list A forward_list of identical element and allocator types.

References std::forward_list< _Tp, _Alloc >::begin(), and std::forward_list< _Tp, _Alloc >::end().

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2017

forward_list() [9/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
forward_list< _Tp, _Alloc > && ) [default]
The forward_list move constructor.

Parameters

__list A forward_list of identical element and allocator types.

The newly-created forward_list contains the exact contents of the moved instance. The contents of the moved instance
are a valid, but unspecified forward_list.

forward_list() [10/10]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


std::forward_list< _Tp, _Alloc >::forward_list (
std::initializer_list< _Tp > __il,
const _Alloc & __al = _Alloc()) [inline]
Builds a forward_list from an initializer_list.

Parameters

_←- An initializer_list of value_type.


_il
_←- An allocator object.
_al

Create a forward_list consisting of copies of the elements in the initializer_list __il. This is linear in __il.size().

∼forward_list()
template<typename _Tp , typename _Alloc = allocator<_Tp>>
std::forward_list< _Tp, _Alloc >::∼forward_list () [inline], [noexcept]
The forward_list dtor.

5.448.3 Member Function Documentation

assign() [1/3]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
void std::forward_list< _Tp, _Alloc >::assign (
_InputIterator __first,
_InputIterator __last) [inline]
Assigns a range to a forward_list.

Parameters

__first An input iterator.


__last An input iterator.

This function fills a forward_list with copies of the elements in the range [ __first,__last).

Generated by Doxygen
2018

Note that the assignment completely changes the forward_list and that the number of elements of the resulting forward←-
_list is the same as the number of elements assigned.
References std::forward_list< _Tp, _Alloc >::before_begin(), std::forward_list< _Tp, _Alloc >::begin(), std::forward_list< _Tp, _Alloc >::c
std::forward_list< _Tp, _Alloc >::clear(), std::forward_list< _Tp, _Alloc >::end(), std::forward_list< _Tp, _Alloc >::erase_after(),
and std::forward_list< _Tp, _Alloc >::insert_after().
Referenced by std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::operator=(), and std::forward_list< _Tp, _Alloc

assign() [2/3]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::assign (
size_type __n,
const _Tp & __val) [inline]
Assigns a given value to a forward_list.

Parameters

__n Number of elements to be assigned.


__val Value to be assigned.

This function fills a forward_list with __n copies of the given value. Note that the assignment completely changes the
forward_list, and that the resulting forward_list has __n elements.
References std::forward_list< _Tp, _Alloc >::before_begin(), std::forward_list< _Tp, _Alloc >::begin(), std::forward_list< _Tp, _Alloc >::c
std::forward_list< _Tp, _Alloc >::clear(), std::forward_list< _Tp, _Alloc >::end(), std::forward_list< _Tp, _Alloc >::erase_after(),
and std::forward_list< _Tp, _Alloc >::insert_after().

assign() [3/3]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::assign (
std::initializer_list< _Tp > __il) [inline]
Assigns an initializer_list to a forward_list.

Parameters

_←- An initializer_list of value_type.


_il

Replace the contents of the forward_list with copies of the elements in the initializer_list __il. This is linear in __←-
il.size().
References std::forward_list< _Tp, _Alloc >::assign().

before_begin() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


const_iterator std::forward_list< _Tp, _Alloc >::before_begin () const [inline], [noexcept]
Returns a read-only (constant) iterator that points before the first element in the forward_list. Iteration is done in ordinary
element order.

before_begin() [2/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


iterator std::forward_list< _Tp, _Alloc >::before_begin () [inline], [noexcept]

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2019

Returns a read/write iterator that points before the first element in the forward_list. Iteration is done in ordinary element
order.
Referenced by std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::inse
and std::forward_list< _Tp, _Alloc >::insert_after().

begin() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


const_iterator std::forward_list< _Tp, _Alloc >::begin () const [inline], [noexcept]
Returns a read-only (constant) iterator that points to the first element in the forward_list. Iteration is done in ordinary
element order.

begin() [2/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


iterator std::forward_list< _Tp, _Alloc >::begin () [inline], [noexcept]
Returns a read/write iterator that points to the first element in the forward_list. Iteration is done in ordinary element
order.
Referenced by std::forward_list< _Tp, _Alloc >::forward_list(), std::forward_list< _Tp, _Alloc >::forward_list(),
std::forward_list< _Tp, _Alloc >::assign(), and std::forward_list< _Tp, _Alloc >::assign().

cbefore_begin()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


const_iterator std::forward_list< _Tp, _Alloc >::cbefore_begin () const [inline], [noexcept]
Returns a read-only (constant) iterator that points before the first element in the forward_list. Iteration is done in ordinary
element order.
Referenced by std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::em
std::forward_list< _Tp, _Alloc >::push_front(), and std::forward_list< _Tp, _Alloc >::remove().

cbegin()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


const_iterator std::forward_list< _Tp, _Alloc >::cbegin () const [inline], [noexcept]
Returns a read-only (constant) iterator that points to the first element in the forward_list. Iteration is done in ordinary
element order.
Referenced by std::forward_list< _Tp, _Alloc >::operator=(), and std::operator==().

cend()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


const_iterator std::forward_list< _Tp, _Alloc >::cend () const [inline], [noexcept]
Returns a read-only (constant) iterator that points one past the last element in the forward_list. Iteration is done in
ordinary element order.
Referenced by std::forward_list< _Tp, _Alloc >::operator=(), and std::operator==().

clear()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::clear () [inline], [noexcept]
Erases all the elements.
Note that this function only erases the elements, and that if the elements themselves are pointers, the pointed-to memory
is not touched in any way. Managing the pointer is the user's responsibility.
Referenced by std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::assign(), and std::forward_list< _Tp, _Alloc >:

Generated by Doxygen
2020

emplace_after()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


template<typename... _Args>
iterator std::forward_list< _Tp, _Alloc >::emplace_after (
const_iterator __pos,
_Args &&... __args) [inline]
Constructs object in forward_list after the specified iterator.

Parameters

__pos A const_iterator into the forward_list.


__args Arguments.

Returns

An iterator that points to the inserted data.

This function will insert an object of type T constructed with T(std::forward<Args>(args)...) after the
specified location. Due to the nature of a forward_list this operation can be done in constant time, and does not
invalidate iterators and references.
References std::forward().

emplace_front()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


template<typename... _Args>
reference std::forward_list< _Tp, _Alloc >::emplace_front (
_Args &&... __args) [inline]
Constructs object in forward_list at the front of the list.

Parameters
__args Arguments.

This function will insert an object of type Tp constructed with Tp(std::forward<Args>(args)...) at the
front of the list Due to the nature of a forward_list this operation can be done in constant time, and does not invalidate
iterators and references.
References std::forward_list< _Tp, _Alloc >::cbefore_begin(), std::forward(), and std::forward_list< _Tp, _Alloc >::front().

empty()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


bool std::forward_list< _Tp, _Alloc >::empty () const [inline], [noexcept]
Returns true if the forward_list is empty. (Thus begin() would equal end().)
Referenced by std::forward_list< _Tp, _Alloc >::insert_after().

end() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


const_iterator std::forward_list< _Tp, _Alloc >::end () const [inline], [noexcept]
Returns a read-only iterator that points one past the last element in the forward_list. Iteration is done in ordinary element
order.

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2021

end() [2/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


iterator std::forward_list< _Tp, _Alloc >::end () [inline], [noexcept]
Returns a read/write iterator that points one past the last element in the forward_list. Iteration is done in ordinary element
order.
Referenced by std::forward_list< _Tp, _Alloc >::forward_list(), std::forward_list< _Tp, _Alloc >::forward_list(),
std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::insert_after(),
and std::forward_list< _Tp, _Alloc >::insert_after().

erase_after() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


iterator std::forward_list< _Tp, _Alloc >::erase_after (
const_iterator __pos) [inline]
Removes the element pointed to by the iterator following pos.

Parameters

__pos Iterator pointing before element to be erased.

Returns

An iterator pointing to the element following the one that was erased, or end() if no such element exists.

This function will erase the element at the given position and thus shorten the forward_list by one.
Due to the nature of a forward_list this operation can be done in constant time, and only invalidates iterators/references to
the element being removed. The user is also cautioned that this function only erases the element, and that if the element
is itself a pointer, the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibility.
Referenced by std::forward_list< _Tp, _Alloc >::assign(), and std::forward_list< _Tp, _Alloc >::assign().

erase_after() [2/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


iterator std::forward_list< _Tp, _Alloc >::erase_after (
const_iterator __pos,
const_iterator __last) [inline]
Remove a range of elements.

Parameters

__pos Iterator pointing before the first element to be erased.


__last Iterator pointing to one past the last element to be erased.

Returns

__last

This function will erase the elements in the range (__pos,__last) and shorten the forward_list accordingly.
This operation is linear time in the size of the range and only invalidates iterators/references to the element being
removed.
The user is also cautioned that this function only erases the elements, and that if the elements themselves are pointers,
the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibility.

Generated by Doxygen
2022

front() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


reference std::forward_list< _Tp, _Alloc >::front () [inline]
Returns a read/write reference to the data at the first element of the forward_list.
Referenced by std::forward_list< _Tp, _Alloc >::emplace_front().

front() [2/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


const_reference std::forward_list< _Tp, _Alloc >::front () const [inline]
Returns a read-only (constant) reference to the data at the first element of the forward_list.

get_allocator()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


allocator_type std::forward_list< _Tp, _Alloc >::get_allocator () const [inline], [noexcept]
Get a copy of the memory allocation object.

insert_after() [1/4]

template<typename _Tp , typename _Alloc >


template<typename _InputIterator , typename >
forward_list< _Tp, _Alloc >::iterator forward_list::insert_after (
const_iterator __pos,
_InputIterator __first,
_InputIterator __last)
Inserts a range into the forward_list.

Parameters

__pos An iterator into the forward_list.


__first An input iterator.
__last An input iterator.

Returns

An iterator pointing to the last inserted element or __pos if __first == __last.

This function will insert copies of the data in the range [ __first, __last) into the forward_list after the location
specified by `__pos.
This operation is linear in the number of elements inserted and does not invalidate iterators and references.
References std::forward_list< _Tp, _Alloc >::before_begin(), std::forward_list< _Tp, _Alloc >::empty(), and std::forward_list< _Tp, _Alloc

insert_after() [2/4]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


iterator std::forward_list< _Tp, _Alloc >::insert_after (
const_iterator __pos,
const _Tp & __val) [inline]
Inserts given value into forward_list after specified iterator.

Parameters

__pos An iterator into the forward_list.

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2023

__val Data to be inserted.

Returns

An iterator that points to the inserted data.

This function will insert a copy of the given value after the specified location. Due to the nature of a forward_list this
operation can be done in constant time, and does not invalidate iterators and references.
Referenced by std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::assign(), and std::forward_list< _Tp, _Alloc >:

insert_after() [3/4]

template<typename _Tp , typename _Alloc >


forward_list< _Tp, _Alloc >::iterator forward_list::insert_after (
const_iterator __pos,
size_type __n,
const _Tp & __val)
Inserts a number of copies of given data into the forward_list.

Parameters

__pos An iterator into the forward_list.


__n Number of elements to be inserted.
__val Data to be inserted.

Returns

An iterator pointing to the last inserted copy of val or pos if n == 0.

This function will insert a specified number of copies of the given data after the location specified by pos.
This operation is linear in the number of elements inserted and does not invalidate iterators and references.
References std::forward_list< _Tp, _Alloc >::before_begin(), and std::forward_list< _Tp, _Alloc >::end().

insert_after() [4/4]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


iterator std::forward_list< _Tp, _Alloc >::insert_after (
const_iterator __pos,
std::initializer_list< _Tp > __il) [inline]
Inserts the contents of an initializer_list into forward_list after the specified iterator.

Parameters

__pos An iterator into the forward_list.


__il An initializer_list of value_type.

Returns

An iterator pointing to the last inserted element or __pos if __il is empty.

This function will insert copies of the data in the initializer_list __il into the forward_list before the location specified by
__pos.
This operation is linear in the number of elements inserted and does not invalidate iterators and references.
References std::forward_list< _Tp, _Alloc >::insert_after().

Generated by Doxygen
2024

max_size()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


size_type std::forward_list< _Tp, _Alloc >::max_size () const [inline], [noexcept]
Returns the largest possible number of elements of forward_list.
References std::allocator_traits< _Alloc >::max_size().

merge() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::merge (
forward_list< _Tp, _Alloc > && __list) [inline]
Merge sorted lists.

Parameters

__list Sorted list to merge.

Assumes that both __list and this list are sorted according to operator<(). Merges elements of __list into this
list in sorted order, leaving __list empty when complete. Elements in this list precede elements in __list that are
equal.
References std::forward_list< _Tp, _Alloc >::merge(), and std::move().
Referenced by std::forward_list< _Tp, _Alloc >::merge().

merge() [2/2]

template<typename _Tp , typename _Alloc >


template<typename _Comp >
void forward_list::merge (
forward_list< _Tp, _Alloc > && __list,
_Comp __comp)
Merge sorted lists according to comparison function.

Parameters

__list Sorted list to merge.


__comp Comparison function defining sort order.

Assumes that both __list and this list are sorted according to comp. Merges elements of __list into this list
in sorted order, leaving __list empty when complete. Elements in this list precede elements in __list that are
equivalent according to comp().
References std::__addressof(), and std::move().

operator=() [1/3]

template<typename _Tp , typename _Alloc >


forward_list< _Tp, _Alloc > & forward_list::operator= (
const forward_list< _Tp, _Alloc > & __list)
The forward_list assignment operator.

Parameters

__list A forward_list of identical element and allocator types.

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2025

All the elements of __list are copied.


Whether the allocator is copied depends on the allocator traits.
References std::__addressof(), std::forward_list< _Tp, _Alloc >::cbegin(), and std::forward_list< _Tp, _Alloc >::cend().

operator=() [2/3]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


forward_list & std::forward_list< _Tp, _Alloc >::operator= (
forward_list< _Tp, _Alloc > && __list) [inline], [noexcept]
The forward_list move assignment operator.

Parameters

__list A forward_list of identical element and allocator types.

The contents of __list are moved into this forward_list (without copying, if the allocators permit it).
Afterwards __list is a valid, but unspecified forward_list
Whether the allocator is moved depends on the allocator traits.
References std::forward_list< _Tp, _Alloc >::assign(), std::forward_list< _Tp, _Alloc >::clear(), and std::move().

operator=() [3/3]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


forward_list & std::forward_list< _Tp, _Alloc >::operator= (
std::initializer_list< _Tp > __il) [inline]
The forward_list initializer list assignment operator.

Parameters

_←- An initializer_list of value_type.


_il

Replace the contents of the forward_list with copies of the elements in the initializer_list __il. This is linear in __←-
il.size().
References std::forward_list< _Tp, _Alloc >::assign().

pop_front()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::pop_front () [inline]
Removes first element.
This is a typical stack operation. It shrinks the forward_list by one. Due to the nature of a forward_list this operation can
be done in constant time, and only invalidates iterators/references to the element being removed.
Note that no data is returned, and if the first element's data is needed, it should be retrieved before pop_front() is
called.

push_front()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::push_front (
const _Tp & __val) [inline]
Add data to the front of the forward_list.

Generated by Doxygen
2026

Parameters
__val Data to be added.

This is a typical stack operation. The function creates an element at the front of the forward_list and assigns the given
data to it. Due to the nature of a forward_list this operation can be done in constant time, and does not invalidate iterators
and references.
References std::forward_list< _Tp, _Alloc >::cbefore_begin().

remove()

template<typename _Tp , typename _Alloc >


auto forward_list::remove (
const _Tp & __val)
Remove all elements equal to value.

Parameters
__val The value to remove.

Removes every element in the list equal to __val. Remaining elements stay in list order. Note that this function only
erases the elements, and that if the elements themselves are pointers, the pointed-to memory is not touched in any way.
Managing the pointer is the user's responsibility.
References std::forward_list< _Tp, _Alloc >::cbefore_begin(), and std::forward_list< _Tp, _Alloc >::splice_after().

remove_if()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


template<typename _Pred >
__remove_return_type std::forward_list< _Tp, _Alloc >::remove_if (
_Pred __pred)
Remove all elements satisfying a predicate.

Parameters

__pred Unary predicate function or object.

Removes every element in the list for which the predicate returns true. Remaining elements stay in list order. Note that
this function only erases the elements, and that if the elements themselves are pointers, the pointed-to memory is not
touched in any way. Managing the pointer is the user's responsibility.

resize() [1/2]

template<typename _Tp , typename _Alloc >


void forward_list::resize (
size_type __sz)
Resizes the forward_list to the specified number of elements.

Parameters

__sz Number of elements the forward_list should contain.

This function will resize the forward_list to the specified number of elements. If the number is smaller than the forward←-
_list's current number of elements the forward_list is truncated, otherwise the forward_list is extended and the new
elements are default constructed.
References std::end().

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2027

resize() [2/2]

template<typename _Tp , typename _Alloc >


void forward_list::resize (
size_type __sz,
const value_type & __val)
Resizes the forward_list to the specified number of elements.

Parameters

__sz Number of elements the forward_list should contain.


__val Data with which new elements should be populated.

This function will resize the forward_list to the specified number of elements. If the number is smaller than the forward←-
_list's current number of elements the forward_list is truncated, otherwise the forward_list is extended and new elements
are populated with given data.
References std::end().

reverse()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::reverse () [inline], [noexcept]
Reverse the elements in list.
Reverse the order of elements in the list in linear time.

sort() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::sort () [inline]
Sort the elements of the list.
Sorts the elements of this list in NlogN time. Equivalent elements remain in list order.
References std::forward_list< _Tp, _Alloc >::sort().
Referenced by std::forward_list< _Tp, _Alloc >::sort().

sort() [2/2]

template<typename _Tp , class _Alloc >


template<typename _Comp >
void forward_list::sort (
_Comp __comp)
Sort the forward_list using a comparison function.
Sorts the elements of this list in NlogN time. Equivalent elements remain in list order.
References std::empty().

splice_after() [1/4]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::splice_after (
const_iterator __pos,
forward_list< _Tp, _Alloc > && ,
const_iterator __before,
const_iterator __last) [inline], [noexcept]
Insert range from another forward_list.

Generated by Doxygen
2028

Parameters

__pos Iterator referencing the element to insert after.


__list Source list.
__before Iterator referencing before the start of range in __list.
__last Iterator referencing the end of range in __list.

Removes elements in the range (__before,__last) and inserts them after __pos in constant time.
Undefined if __pos is in (__before,__last).

splice_after() [2/4]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::splice_after (
const_iterator __pos,
forward_list< _Tp, _Alloc > && __list) [inline], [noexcept]
Insert contents of another forward_list.

Parameters

__pos Iterator referencing the element to insert after.


__list Source list.

The elements of list are inserted in constant time after the element referenced by pos. list becomes an empty
list.
Requires this != &x.
Referenced by std::forward_list< _Tp, _Alloc >::remove().

splice_after() [3/4]

template<typename _Tp , typename _Alloc >


void forward_list::splice_after (
const_iterator __pos,
forward_list< _Tp, _Alloc > && __list,
const_iterator __i) [noexcept]
Insert element from another forward_list.

Parameters

__pos Iterator referencing the element to insert after.


__list Source list.
__i Iterator referencing the element before the element to move.

Removes the element in list __list referenced by __i and inserts it into the current list after __pos.

splice_after() [4/4]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::splice_after (
const_iterator __pos,
forward_list< _Tp, _Alloc > & ,
const_iterator __before,
const_iterator __last) [inline], [noexcept]

Generated by Doxygen
5.448 std::forward_list< _Tp, _Alloc > Class Template Reference 2029

Insert range from another forward_list.

Generated by Doxygen
2030

Parameters

__pos Iterator referencing the element to insert after.


__list Source list.
__before Iterator referencing before the start of range in __list.
__last Iterator referencing the end of range in __list.

Removes elements in the range (__before,__last) and inserts them after __pos in constant time.
Undefined if __pos is in (__before,__last).

swap()

template<typename _Tp , typename _Alloc = allocator<_Tp>>


void std::forward_list< _Tp, _Alloc >::swap (
forward_list< _Tp, _Alloc > & __list) [inline], [noexcept]
Swaps data with another forward_list.

Parameters

__list A forward_list of the same element and allocator types.

This exchanges the elements between two lists in constant time. Note that the global std::swap() function is
overloaded such that std::swap(l1, l2) will feed to this function.
Whether the allocators are swapped depends on the allocator traits.

unique() [1/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


__remove_return_type std::forward_list< _Tp, _Alloc >::unique () [inline]
Remove consecutive duplicate elements.
For each consecutive set of elements with the same value, remove all but the first one. Remaining elements stay in list
order. Note that this function only erases the elements, and that if the elements themselves are pointers, the pointed-to
memory is not touched in any way. Managing the pointer is the user's responsibility.
References std::forward_list< _Tp, _Alloc >::unique().
Referenced by std::forward_list< _Tp, _Alloc >::unique().

unique() [2/2]

template<typename _Tp , typename _Alloc = allocator<_Tp>>


template<typename _BinPred >
__remove_return_type std::forward_list< _Tp, _Alloc >::unique (
_BinPred __binary_pred)
Remove consecutive elements satisfying a predicate.

Parameters

__binary_pred Binary predicate function or object.

For each consecutive set of elements [first,last) that satisfy predicate(first,i) where i is an iterator in [first,last), remove all
but the first one. Remaining elements stay in list order. Note that this function only erases the elements, and that if the
elements themselves are pointers, the pointed-to memory is not touched in any way. Managing the pointer is the user's
responsibility.
The documentation for this class was generated from the following files:

Generated by Doxygen
5.449 std::fpos< _StateT > Class Template Reference 2031

• forward_list.h
• forward_list.tcc

5.449 std::fpos< _StateT > Class Template Reference


#include <postypes.h>

Public Member Functions

• fpos (const fpos &)=default


• fpos (streamoff __off)
• operator streamoff () const
• fpos operator+ (streamoff __off) const
• fpos & operator+= (streamoff __off)
• streamoff operator- (const fpos &__other) const
• fpos operator- (streamoff __off) const
• fpos & operator-= (streamoff __off)
• fpos & operator= (const fpos &)=default
• _StateT state () const
• void state (_StateT __st)

5.449.1 Detailed Description

template<typename _StateT>
class std::fpos< _StateT >

Class representing stream positions.


The standard places no requirements upon the template parameter StateT. In this implementation StateT must be
DefaultConstructible, CopyConstructible and Assignable. The standard only requires that fpos should contain a member
of type StateT. In this implementation it also contains an offset stored as a signed integer.

Parameters

StateT Type passed to and returned from state().

5.449.2 Constructor & Destructor Documentation

fpos()

template<typename _StateT >


std::fpos< _StateT >::fpos (
streamoff __off) [inline]
Construct position from offset.

5.449.3 Member Function Documentation

operator streamoff()

template<typename _StateT >


std::fpos< _StateT >::operator streamoff () const [inline]
Convert to streamoff.

Generated by Doxygen
2032

operator+()

template<typename _StateT >


fpos std::fpos< _StateT >::operator+ (
streamoff __off) const [inline]
Add position and offset.

operator+=()

template<typename _StateT >


fpos & std::fpos< _StateT >::operator+= (
streamoff __off) [inline]
Add offset to this position.

operator-() [1/2]

template<typename _StateT >


streamoff std::fpos< _StateT >::operator- (
const fpos< _StateT > & __other) const [inline]
Subtract position to return offset.

operator-() [2/2]

template<typename _StateT >


fpos std::fpos< _StateT >::operator- (
streamoff __off) const [inline]
Subtract offset from position.

operator-=()

template<typename _StateT >


fpos & std::fpos< _StateT >::operator-= (
streamoff __off) [inline]
Subtract offset from this position.

state() [1/2]

template<typename _StateT >


_StateT std::fpos< _StateT >::state () const [inline]
Return the last set value of st.

state() [2/2]

template<typename _StateT >


void std::fpos< _StateT >::state (
_StateT __st) [inline]
Remember the value of st.
The documentation for this class was generated from the following file:

• postypes.h

5.450 __gnu_cxx::free_list Class Reference


#include <bitmap_allocator.h>

Generated by Doxygen
5.450 __gnu_cxx::free_list Class Reference 2033

Inheritance diagram for __gnu_cxx::free_list:

__gnu_cxx::free_list

__gnu_cxx::bitmap_allocator
< _Tp >

Public Types

• typedef __mutex __mutex_type


• typedef vector_type::iterator iterator
• typedef std::size_t ∗ value_type
• typedef __detail::__mini_vector< value_type > vector_type

Public Member Functions

• void _M_clear ()
• std::size_t ∗ _M_get (std::size_t __sz)
• void _M_insert (std::size_t ∗__addr) throw ()

5.450.1 Detailed Description

The free list class for managing chunks of memory to be given to and returned by the bitmap_allocator.

5.450.2 Member Function Documentation

_M_clear()

void __gnu_cxx::free_list::_M_clear ()
This function just clears the internal Free List, and gives back all the memory to the OS.

_M_get()

std::size_t ∗ __gnu_cxx::free_list::_M_get (
std::size_t __sz)
This function gets a block of memory of the specified size from the free list.

Parameters

__sz The size in bytes of the memory required.

Returns

A pointer to the new memory block of size at least equal to that requested.

Generated by Doxygen
2034

_M_insert()

void __gnu_cxx::free_list::_M_insert (
std::size_t ∗ __addr) throw ( ) [inline]
This function returns the block of memory to the internal free list.

Parameters

__addr The pointer to the memory block that was given by a call to the _M_get function.

Referenced by __gnu_cxx::bitmap_allocator< _Tp >::_M_deallocate_single_object().


The documentation for this class was generated from the following file:
• bitmap_allocator.h

5.451 std::from_chars_result Struct Reference


#include <charconv>

Public Attributes

• errc ec
• const char ∗ ptr

Friends

• bool operator== (const from_chars_result &, const from_chars_result &)=default

5.451.1 Detailed Description

Result type of std::from_chars.


The documentation for this struct was generated from the following file:
• charconv

5.452 std::front_insert_iterator< _Container > Class Template Reference


#include <stl_iterator.h>
Inheritance diagram for std::front_insert_iterator< _Container >:

std::iterator< output
_iterator_tag, void,
void, void, void >

std::front_insert_iterator
< _Container >

Generated by Doxygen
5.452 std::front_insert_iterator< _Container > Class Template Reference 2035

Public Types

• typedef _Container container_type


• using difference_type
• typedef output_iterator_tag iterator_category
• typedef void pointer
• typedef void reference
• typedef void value_type

Public Member Functions

• constexpr front_insert_iterator (_Container &__x)


• constexpr front_insert_iterator & operator∗ ()
• constexpr front_insert_iterator & operator++ ()
• constexpr front_insert_iterator operator++ (int)
• constexpr front_insert_iterator & operator= (const typename _Container::value_type &__value)
• constexpr front_insert_iterator & operator= (typename _Container::value_type &&__value)

Protected Attributes

• _Container ∗ container

5.452.1 Detailed Description

template<typename _Container>
class std::front_insert_iterator< _Container >

Turns assignment into insertion.


These are output iterators, constructed from a container-of-T. Assigning a T to the iterator prepends it to the container
using push_front.
Tip: Using the front_inserter function to create these iterators can save typing.

5.452.2 Member Typedef Documentation

container_type

template<typename _Container >


_Container std::front_insert_iterator< _Container >::container_type
A nested typedef for the type of whatever container you used.

iterator_category

output_iterator_tag std::iterator< output_iterator_tag, void, void, void, void >::iterator_←-


category [inherited]
One of the tag types.

pointer

void std::iterator< output_iterator_tag, void, void, void, void >::pointer [inherited]


This type represents a pointer-to-value_type.

reference

void std::iterator< output_iterator_tag, void, void, void, void >::reference [inherited]


This type represents a reference-to-value_type.

Generated by Doxygen
2036

value_type

void std::iterator< output_iterator_tag, void, void, void, void >::value_type [inherited]


The type "pointed to" by the iterator.

5.452.3 Constructor & Destructor Documentation

front_insert_iterator()

template<typename _Container >


std::front_insert_iterator< _Container >::front_insert_iterator (
_Container & __x) [inline], [explicit], [constexpr]
The only way to create this iterator is with a container.

5.452.4 Member Function Documentation

operator∗()

template<typename _Container >


front_insert_iterator & std::front_insert_iterator< _Container >::operator∗ () [inline], [nodiscard],
[constexpr]
Simply returns ∗this.

operator++() [1/2]

template<typename _Container >


front_insert_iterator & std::front_insert_iterator< _Container >::operator++ () [inline], [constexpr]
Simply returns ∗this. (This iterator does not move.)

operator++() [2/2]

template<typename _Container >


front_insert_iterator std::front_insert_iterator< _Container >::operator++ (
int ) [inline], [constexpr]
Simply returns ∗this. (This iterator does not move.)

operator=()

template<typename _Container >


front_insert_iterator & std::front_insert_iterator< _Container >::operator= (
const typename _Container::value_type & __value) [inline], [constexpr]

Parameters

__value An instance of whatever type container_type::const_reference is; presumably a reference-to-const T for


container<T>.

Returns

This iterator, for chained operations.

This kind of iterator doesn't really have a position in the container (you can think of the position as being permanently at
the front, if you like). Assigning a value to the iterator will always prepend the value to the front of the container.
The documentation for this class was generated from the following file:

• bits/stl_iterator.h

Generated by Doxygen
5.453 std::function< _Res(_ArgTypes...)> Class Template Reference 2037

5.453 std::function< _Res(_ArgTypes...)> Class Template Reference


#include <std_function.h>
Inheritance diagram for std::function< _Res(_ArgTypes...)>:

std::_Function_base

std::function< _Res
(_ArgTypes...)>

Public Types

• typedef _Res result_type

Public Member Functions

• function () noexcept
• template<typename _Functor , typename _Constraints = _Requires<_Callable<_Functor>>>
function (_Functor &&__f) noexcept(_Handler< _Functor >::template _S_nothrow_init< _Functor >())
• function (const function &__x)
• function (function &&__x) noexcept
• function (nullptr_t) noexcept
• operator bool () const noexcept
• _Res operator() (_ArgTypes... __args) const
• template<typename _Functor >
_Requires< _Callable< _Functor >, function & > operator= (_Functor &&__f) noexcept(_Handler< _Functor
>::template _S_nothrow_init< _Functor >())
• function & operator= (const function &__x)
• function & operator= (function &&__x) noexcept
• function & operator= (nullptr_t) noexcept
• template<typename _Functor >
function & operator= (reference_wrapper< _Functor > __f) noexcept
• void swap (function &__x) noexcept
• const type_info & target_type () const noexcept

• template<typename _Functor >


_Functor ∗ target () noexcept
• template<typename _Functor >
const _Functor ∗ target () const noexcept

Generated by Doxygen
2038

5.453.1 Detailed Description

template<typename _Res, typename... _ArgTypes>


class std::function< _Res(_ArgTypes...)>

Polymorphic function wrapper.


Since

C++11

5.453.2 Constructor & Destructor Documentation

function() [1/5]

template<typename _Res , typename... _ArgTypes>


std::function< _Res(_ArgTypes...)>::function () [inline], [noexcept]
Default construct creates an empty function call wrapper.
Postcondition

!(bool)∗this

function() [2/5]

template<typename _Res , typename... _ArgTypes>


std::function< _Res(_ArgTypes...)>::function (
nullptr_t ) [inline], [noexcept]
Creates an empty function call wrapper.
Postcondition

!(bool)∗this

function() [3/5]

template<typename _Res , typename... _ArgTypes>


std::function< _Res(_ArgTypes...)>::function (
const function< _Res(_ArgTypes...)> & __x) [inline]
Function copy constructor.

Parameters

_←- A function object with identical call signature.


_x

Postcondition

bool(∗this) == bool(__x)
The newly-created function contains a copy of the target of __x (if it has one).

function() [4/5]

template<typename _Res , typename... _ArgTypes>


std::function< _Res(_ArgTypes...)>::function (
function< _Res(_ArgTypes...)> && __x) [inline], [noexcept]
Function move constructor.

Generated by Doxygen
5.453 std::function< _Res(_ArgTypes...)> Class Template Reference 2039

Parameters

_←- A function object rvalue with identical call signature.


_x

The newly-created function contains the target of __x (if it has one).

function() [5/5]

template<typename _Res , typename... _ArgTypes>


template<typename _Functor , typename _Constraints = _Requires<_Callable<_Functor>>>
std::function< _Res(_ArgTypes...)>::function (
_Functor && __f) [inline], [noexcept]
Builds a function that targets a copy of the incoming function object.

Parameters

←- A function object that is callable with parameters of type ArgTypes... and returns a value convertible to Res.
_←-
←-
_←-
f

The newly-created function object will target a copy of __f. If __f is reference_wrapper<F>, then this function
object will contain a reference to the function object __f.get(). If __f is a null function pointer, null pointer-to-
member, or empty std::function, the newly-created object will be empty.
If __f is a non-null function pointer or an object of type reference_wrapper<F>, this function will not throw.
References std::forward().

5.453.3 Member Function Documentation

operator bool()

template<typename _Res , typename... _ArgTypes>


std::function< _Res(_ArgTypes...)>::operator bool () const [inline], [explicit], [noexcept]
Determine if the function wrapper has a target.

Returns

true when this function object contains a target, or false when it is empty.

This function will not throw exceptions.

operator()()

template<typename _Res , typename... _ArgTypes>


_Res std::function< _Res(_ArgTypes...)>::operator() (
_ArgTypes... __args) const [inline]
Invokes the function targeted by ∗this.

Returns

the result of the target.

Generated by Doxygen
2040

Exceptions

`bad_function_call` when !(bool)∗this

The function call operator invokes the target function object stored by this.
References std::forward().

operator=() [1/5]

template<typename _Res , typename... _ArgTypes>


template<typename _Functor >
_Requires< _Callable< _Functor >, function & > std::function< _Res(_ArgTypes...)>::operator= (
_Functor && __f) [inline], [noexcept]
Function assignment to a new target.

Parameters

←- A function object that is callable with parameters of type _ArgTypes... and returns a value convertible to
_←- _Res.
←-
_←-
f

Returns

∗this
Since

C++11
This function object wrapper will target a copy of __f. If __f is reference_wrapper<F>, then this function object
will contain a reference to the function object __f.get(). If __f is a null function pointer or null pointer-to-member,
this object will be empty.
If __f is a non-null function pointer or an object of type reference_wrapper<F>, this function will not throw.
References std::forward().

operator=() [2/5]

template<typename _Res , typename... _ArgTypes>


function & std::function< _Res(_ArgTypes...)>::operator= (
const function< _Res(_ArgTypes...)> & __x) [inline]
Function assignment operator.

Parameters

_←- A function with identical call signature.


_x

Postcondition

(bool)∗this == (bool)x
Returns

∗this
The target of __x is copied to ∗this. If __x has no target, then ∗this will be empty.
If __x targets a function pointer or a reference to a function object, then this operation will not throw an exception.

Generated by Doxygen
5.453 std::function< _Res(_ArgTypes...)> Class Template Reference 2041

operator=() [3/5]

template<typename _Res , typename... _ArgTypes>


function & std::function< _Res(_ArgTypes...)>::operator= (
function< _Res(_ArgTypes...)> && __x) [inline], [noexcept]
Function move-assignment operator.

Parameters

_←- A function rvalue with identical call signature.


_x

Returns

∗this
The target of __x is moved to ∗this. If __x has no target, then ∗this will be empty.
If __x targets a function pointer or a reference to a function object, then this operation will not throw an exception.
References std::move().

operator=() [4/5]

template<typename _Res , typename... _ArgTypes>


function & std::function< _Res(_ArgTypes...)>::operator= (
nullptr_t ) [inline], [noexcept]
Function assignment to empty.
Postcondition

!(bool)∗this

Returns

∗this
The target of ∗this is deallocated, leaving it empty.

operator=() [5/5]

template<typename _Res , typename... _ArgTypes>


template<typename _Functor >
function & std::function< _Res(_ArgTypes...)>::operator= (
reference_wrapper< _Functor > __f) [inline], [noexcept]
This is an overloaded member function, provided for convenience. It differs from the above function only in what argu-
ment(s) it accepts.

swap()

template<typename _Res , typename... _ArgTypes>


void std::function< _Res(_ArgTypes...)>::swap (
function< _Res(_ArgTypes...)> & __x) [inline], [noexcept]
Swap the targets of two function objects.

Parameters

_←- A function with identical call signature.


_x

Swap the targets of this function object and __f. This function will not throw exceptions.

Generated by Doxygen
2042

target() [1/2]

template<typename _Res , typename... _ArgTypes>


template<typename _Functor >
const _Functor ∗ std::function< _Res(_ArgTypes...)>::target () const [inline], [noexcept]
Access the stored target function object.

Returns

Returns a pointer to the stored target function object, if typeid(_Functor).equals(target_type());


otherwise, a null pointer.

This function does not throw exceptions.

target() [2/2]

template<typename _Res , typename... _ArgTypes>


template<typename _Functor >
_Functor ∗ std::function< _Res(_ArgTypes...)>::target () [inline], [noexcept]
Access the stored target function object.

Returns

Returns a pointer to the stored target function object, if typeid(_Functor).equals(target_type());


otherwise, a null pointer.

This function does not throw exceptions.

target_type()

template<typename _Res , typename... _ArgTypes>


const type_info & std::function< _Res(_ArgTypes...)>::target_type () const [inline], [noexcept]
Determine the type of the target of this function object wrapper.

Generated by Doxygen
5.454 std::future< _Res > Class Template Reference 2043

Returns

the type identifier of the target function object, or typeid(void) if !(bool)∗this.

This function will not throw exceptions.


The documentation for this class was generated from the following file:

• std_function.h

5.454 std::future< _Res > Class Template Reference


#include <future>
Inheritance diagram for std::future< _Res >:

std::__basic_future
< _Res >

std::future< _Res >

Public Member Functions

• future (const future &)=delete


• future (future &&__uf) noexcept
• _Res get ()
• future & operator= (const future &)=delete
• future & operator= (future &&__fut) noexcept
• shared_future< _Res > share () noexcept
• bool valid () const noexcept
• void wait () const
• template<typename _Rep , typename _Period >
future_status wait_for (const chrono::duration< _Rep, _Period > &__rel) const
• template<typename _Clock , typename _Duration >
future_status wait_until (const chrono::time_point< _Clock, _Duration > &__abs) const

Protected Types

• typedef __future_base::_Result< _Res > & __result_type

Protected Member Functions

• __result_type _M_get_result () const


• void _M_swap (__basic_future &__that) noexcept

Generated by Doxygen
2044

Friends

• template<typename _Fn , typename... _Args>


future< __async_result_of< _Fn, _Args... > > async (launch, _Fn &&, _Args &&...)
• template<typename >
class packaged_task
• class promise< _Res >

5.454.1 Detailed Description

template<typename _Res>
class std::future< _Res >

Primary template for future.

5.454.2 Constructor & Destructor Documentation

future()

template<typename _Res >


std::future< _Res >::future (
future< _Res > && __uf) [inline], [noexcept]
Move constructor.

5.454.3 Member Function Documentation

_M_get_result()

template<typename _Res >


__result_type std::__basic_future< _Res >::_M_get_result () const [inline], [protected], [inherited]
Wait for the state to be ready and rethrow any stored exception.

get()

template<typename _Res >


_Res std::future< _Res >::get () [inline]
Retrieving the value.
The documentation for this class was generated from the following file:

• future

5.455 std::future< _Res & > Class Template Reference


#include <future>

Generated by Doxygen
5.455 std::future< _Res & > Class Template Reference 2045

Inheritance diagram for std::future< _Res & >:

std::__basic_future
< _Res & >

std::future< _Res & >

Public Member Functions

• future (const future &)=delete


• future (future &&__uf) noexcept
• _Res & get ()
• future & operator= (const future &)=delete
• future & operator= (future &&__fut) noexcept
• shared_future< _Res & > share () noexcept
• bool valid () const noexcept
• void wait () const
• future_status wait_for (const chrono::duration< _Rep, _Period > &__rel) const
• future_status wait_until (const chrono::time_point< _Clock, _Duration > &__abs) const

Protected Types

• typedef __future_base::_Result< _Res > & __result_type

Protected Member Functions

• __result_type _M_get_result () const


• void _M_swap (__basic_future &__that) noexcept

Friends

• template<typename _Fn , typename... _Args>


future< __async_result_of< _Fn, _Args... > > async (launch, _Fn &&, _Args &&...)
• template<typename >
class packaged_task
• class promise< _Res & >

5.455.1 Detailed Description

template<typename _Res>
class std::future< _Res & >

Partial specialization for future<R&>

Generated by Doxygen
2046

5.455.2 Constructor & Destructor Documentation

future()

template<typename _Res >


std::future< _Res & >::future (
future< _Res & > && __uf) [inline], [noexcept]
Move constructor.

5.455.3 Member Function Documentation

_M_get_result()

__result_type std::__basic_future< _Res >::_M_get_result () const [inline], [protected], [inherited]


Wait for the state to be ready and rethrow any stored exception.

get()

template<typename _Res >


_Res & std::future< _Res & >::get () [inline]
Retrieving the value.
The documentation for this class was generated from the following file:

• future

5.456 std::future< void > Class Reference


#include <future>
Inheritance diagram for std::future< void >:

std::__basic_future
< void >

std::future< void >

Public Member Functions

• future (const future &)=delete


• future (future &&__uf) noexcept
• void get ()
• future & operator= (const future &)=delete
• future & operator= (future &&__fut) noexcept
• shared_future< void > share () noexcept
• bool valid () const noexcept
• void wait () const

Generated by Doxygen
5.457 std::future_error Class Reference 2047

• future_status wait_for (const chrono::duration< _Rep, _Period > &__rel) const


• future_status wait_until (const chrono::time_point< _Clock, _Duration > &__abs) const

Protected Types

• typedef __future_base::_Result< void > & __result_type

Protected Member Functions

• __result_type _M_get_result () const


• void _M_swap (__basic_future &__that) noexcept

Friends

• template<typename _Fn , typename... _Args>


future< __async_result_of< _Fn, _Args... > > async (launch, _Fn &&, _Args &&...)
• template<typename >
class packaged_task
• class promise< void >

5.456.1 Detailed Description

Explicit specialization for future<void>

5.456.2 Constructor & Destructor Documentation

future()

std::future< void >::future (


future< void > && __uf) [inline], [noexcept]
Move constructor.

5.456.3 Member Function Documentation

_M_get_result()

__result_type std::__basic_future< void >::_M_get_result () const [inline], [protected], [inherited]


Wait for the state to be ready and rethrow any stored exception.

get()

void std::future< void >::get () [inline]


Retrieving the value.
The documentation for this class was generated from the following file:

• future

5.457 std::future_error Class Reference


#include <future>

Generated by Doxygen
2048

Inheritance diagram for std::future_error:

std::exception

std::logic_error

std::future_error

Public Member Functions

• future_error (future_errc __errc)


• const error_code & code () const noexcept
• virtual const char ∗ what () const noexcept

Friends

• void __throw_future_error (int)

5.457.1 Detailed Description

Exception type thrown by futures.

Since

C++11

5.457.2 Member Function Documentation

what()

virtual const char ∗ std::future_error::what () const [virtual], [noexcept]


Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::logic_error.


The documentation for this class was generated from the following file:

• future

5.458 std::gamma_distribution< _RealType > Class Template Reference


#include <random>

Generated by Doxygen
5.458 std::gamma_distribution< _RealType > Class Template Reference 2049

Classes

• struct param_type

Public Types

• typedef _RealType result_type

Public Member Functions

• gamma_distribution ()
• gamma_distribution (_RealType __alpha_val, _RealType __beta_val=_RealType(1))
• gamma_distribution (const param_type &__p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• _RealType alpha () const
• _RealType beta () const
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• template<typename _UniformRandomNumberGenerator >
gamma_distribution< _RealType >::result_type operator() (_UniformRandomNumberGenerator &__urng, const
param_type &__param)
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Friends

• template<typename _RealType1 , typename _CharT , typename _Traits >


std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const
std::gamma_distribution< _RealType1 > &__x)
• bool operator== (const gamma_distribution &__d1, const gamma_distribution &__d2)
• template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::gamma_distribution< _RealType1 > &__x)

5.458.1 Detailed Description

template<typename _RealType = double>


class std::gamma_distribution< _RealType >

A gamma continuous distribution for random numbers.


The formula for the gamma probability density function is:
1
p(x|α, β) = (x/β)α−1 e−x/β
βΓ(α)

Generated by Doxygen
2050

Since

C++11

5.458.2 Member Typedef Documentation

result_type

template<typename _RealType = double>


_RealType std::gamma_distribution< _RealType >::result_type
The type of the range of the distribution.

5.458.3 Constructor & Destructor Documentation

gamma_distribution() [1/2]

template<typename _RealType = double>


std::gamma_distribution< _RealType >::gamma_distribution () [inline]
Constructs a gamma distribution with parameters 1 and 1.

gamma_distribution() [2/2]

template<typename _RealType = double>


std::gamma_distribution< _RealType >::gamma_distribution (
_RealType __alpha_val,
_RealType __beta_val = _RealType(1)) [inline], [explicit]
Constructs a gamma distribution with parameters α and β .

5.458.4 Member Function Documentation

alpha()

template<typename _RealType = double>


_RealType std::gamma_distribution< _RealType >::alpha () const [inline]
Returns the α of the distribution.

beta()

template<typename _RealType = double>


_RealType std::gamma_distribution< _RealType >::beta () const [inline]
Returns the β of the distribution.

max()

template<typename _RealType = double>


result_type std::gamma_distribution< _RealType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

min()

template<typename _RealType = double>


result_type std::gamma_distribution< _RealType >::min () const [inline]
Returns the greatest lower bound value of the distribution.

Generated by Doxygen
5.458 std::gamma_distribution< _RealType > Class Template Reference 2051

operator()() [1/2]

template<typename _RealType = double>


template<typename _UniformRandomNumberGenerator >
result_type std::gamma_distribution< _RealType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References std::gamma_distribution< _RealType >::operator()().
Referenced by std::gamma_distribution< _RealType >::operator()().

operator()() [2/2]

template<typename _RealType = double>


template<typename _UniformRandomNumberGenerator >
gamma_distribution< _RealType >::result_type std::gamma_distribution< _RealType >::operator() (
_UniformRandomNumberGenerator & __urng,
const param_type & __param)
Marsaglia, G. and Tsang, W. W. "A Simple Method for Generating Gamma Variables" ACM Transactions on Mathematical
Software, 26, 3, 363-372, 2000.
References std::log(), and std::pow().

param() [1/2]

template<typename _RealType = double>


param_type std::gamma_distribution< _RealType >::param () const [inline]
Returns the parameter set of the distribution.
Referenced by std::chi_squared_distribution< _RealType >::param().

param() [2/2]

template<typename _RealType = double>


void std::gamma_distribution< _RealType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

template<typename _RealType = double>


void std::gamma_distribution< _RealType >::reset () [inline]
Resets the distribution state.
References std::normal_distribution< _RealType >::reset().
Referenced by std::chi_squared_distribution< _RealType >::reset(), std::fisher_f_distribution< _RealType >::reset(),
std::negative_binomial_distribution< _IntType >::reset(), and std::student_t_distribution< _RealType >::reset().

5.458.5 Friends And Related Symbol Documentation

operator<<

template<typename _RealType = double>


template<typename _RealType1 , typename _CharT , typename _Traits >

Generated by Doxygen
2052

std::basic_ostream< _CharT, _Traits > & operator<< (


std::basic_ostream< _CharT, _Traits > & __os,
const std::gamma_distribution< _RealType1 > & __x) [friend]
Inserts a gamma_distribution random number distribution __x into the output stream __os.

Parameters
__os An output stream.
__x A gamma_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

operator==

template<typename _RealType = double>


bool operator== (
const gamma_distribution< _RealType > & __d1,
const gamma_distribution< _RealType > & __d2) [friend]
Return true if two gamma distributions have the same parameters and the sequences that would be generated are
equal.

operator>>

template<typename _RealType = double>


template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::gamma_distribution< _RealType1 > & __x) [friend]
Extracts a gamma_distribution random number distribution __x from the input stream __is.

Parameters
_←- An input stream.
_is
_←- A gamma_distribution random number generator engine.
_x

Returns

The input stream with __x extracted or in an error state.

The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.459 std::geometric_distribution< _IntType > Class Template Reference


#include <random>

Classes

• struct param_type

Generated by Doxygen
5.459 std::geometric_distribution< _IntType > Class Template Reference 2053

Public Types

• typedef _IntType result_type

Public Member Functions

• geometric_distribution (const param_type &__p)


• geometric_distribution (double __p)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
• template<typename _ForwardIterator , typename _UniformRandomNumberGenerator >
void __generate (_ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• template<typename _UniformRandomNumberGenerator >
void __generate (result_type ∗__f, result_type ∗__t, _UniformRandomNumberGenerator &__urng, const
param_type &__p)
• result_type max () const
• result_type min () const
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
• template<typename _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng, const param_type &__p)
• double p () const
• param_type param () const
• void param (const param_type &__param)
• void reset ()

Friends

• bool operator== (const geometric_distribution &__d1, const geometric_distribution &__d2)

5.459.1 Detailed Description

template<typename _IntType = int>


class std::geometric_distribution< _IntType >

A discrete geometric random number distribution.


The formula for the geometric probability density function is p(i|p) = p(1 − p)i where p is the parameter of the
distribution.
Since

C++11

5.459.2 Member Typedef Documentation

result_type

template<typename _IntType = int>


_IntType std::geometric_distribution< _IntType >::result_type
The type of the range of the distribution.

Generated by Doxygen
2054

5.459.3 Member Function Documentation

max()

template<typename _IntType = int>


result_type std::geometric_distribution< _IntType >::max () const [inline]
Returns the least upper bound value of the distribution.
References std::numeric_limits< _Tp >::max().

min()

template<typename _IntType = int>


result_type std::geometric_distribution< _IntType >::min () const [inline]
Returns the greatest lower bound value of the distribution.

operator()()

template<typename _IntType = int>


template<typename _UniformRandomNumberGenerator >
result_type std::geometric_distribution< _IntType >::operator() (
_UniformRandomNumberGenerator & __urng) [inline]
Generating functions.
References std::geometric_distribution< _IntType >::operator()().
Referenced by std::geometric_distribution< _IntType >::operator()().

p()

template<typename _IntType = int>


double std::geometric_distribution< _IntType >::p () const [inline]
Returns the distribution parameter p.

param() [1/2]

template<typename _IntType = int>


param_type std::geometric_distribution< _IntType >::param () const [inline]
Returns the parameter set of the distribution.
Referenced by std::operator>>().

param() [2/2]

template<typename _IntType = int>


void std::geometric_distribution< _IntType >::param (
const param_type & __param) [inline]
Sets the parameter set of the distribution.

Parameters

__param The new parameter set of the distribution.

reset()

template<typename _IntType = int>


void std::geometric_distribution< _IntType >::reset () [inline]
Resets the distribution state.
Does nothing for the geometric distribution.

Generated by Doxygen
5.460 __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn,
Resize_Policy, Store_Hash, _Alloc > Class Template Reference 2055

5.459.4 Friends And Related Symbol Documentation

operator==

template<typename _IntType = int>


bool operator== (
const geometric_distribution< _IntType > & __d1,
const geometric_distribution< _IntType > & __d2) [friend]
Return true if two geometric distributions have the same parameters.
The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

5.460 __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,


Probe_Fn, Resize_Policy, Store_Hash, _Alloc > Class Template Reference
#include <assoc_container.hpp>
Inheritance diagram for __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn,
Resize_Policy, Store_Hash, _Alloc >:

__gnu_pbds::basic_hash __gnu_pbds::gp_hash
_table< Key, Mapped, Hash _table< Key, Mapped,
_Fn, Eq_Fn, Resize_Policy, Hash_Fn, Eq_Fn, Comb
Store_Hash, Tag, Policy_Tl, _Probe_Fn, Probe_Fn, Resize
_Alloc > _Policy, Store_Hash, _Alloc >

Public Types

• typedef Comb_Probe_Fn comb_probe_fn


• typedef gp_hash_tag container_category
• typedef Eq_Fn eq_fn
• typedef Hash_Fn hash_fn
• typedef Probe_Fn probe_fn
• typedef Resize_Policy resize_policy

Public Member Functions

• gp_hash_table ()
• gp_hash_table (const gp_hash_table &other)
• gp_hash_table (const hash_fn &h)
• gp_hash_table (const hash_fn &h, const eq_fn &e)
• gp_hash_table (const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp)
• gp_hash_table (const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p)
• gp_hash_table (const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p, const resize←-
_policy &rp)
• template<typename It >
gp_hash_table (It first, It last)

Generated by Doxygen
2056

• template<typename It >
gp_hash_table (It first, It last, const hash_fn &h)
• template<typename It >
gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e)
• template<typename It >
gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp)
• template<typename It >
gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p)
• template<typename It >
gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p,
const resize_policy &rp)
• gp_hash_table & operator= (const gp_hash_table &other)
• void swap (gp_hash_table &other)

5.460.1 Detailed Description

template<typename Key, typename Mapped, typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_Probe←-
_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
class __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_←-
Policy, Store_Hash, _Alloc >

A general-probing hash-based associative container.

Template Parameters

Key Key type.


Mapped Map type.
Hash_Fn Hashing functor.
Eq_Fn Equal functor.
Comb_Probe_Fn Combining probe functor. If Hash_Fn is not null_type, then this is the ranged-probe functor;
otherwise, this is the range-hashing functor. XXX See Design::Hash-Based Containers::Hash
Policies.
Probe_Fn Probe functor.
Resize_Policy Resizes hash.
Store_Hash Indicates whether the hash value will be stored along with each key. If Hash_Fn is null_type,
then the container will not compile if this value is true
_Alloc Allocator type.

Base tag choices are: gp_hash_tag.


Base is basic_hash_table.

5.460.2 Constructor & Destructor Documentation

gp_hash_table() [1/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>

Generated by Doxygen
5.460 __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn,
Resize_Policy, Store_Hash, _Alloc > Class Template Reference 2057

__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,


Store_Hash, _Alloc >::gp_hash_table () [inline]
Default constructor.

gp_hash_table() [2/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
const hash_fn & h) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object.

gp_hash_table() [3/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
const hash_fn & h,
const eq_fn & e) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, and
r_eq_fn will be copied by the eq_fn object of the container object.

gp_hash_table() [4/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
const hash_fn & h,
const eq_fn & e,
const comb_probe_fn & cp) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn
will be copied by the eq_fn object of the container object, and r_comb_probe_fn will be copied by the comb_probe_fn
object of the container object.

gp_hash_table() [5/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (

Generated by Doxygen
2058

const hash_fn & h,


const eq_fn & e,
const comb_probe_fn & cp,
const probe_fn & p) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn
will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_probe_fn object
of the container object, and r_probe_fn will be copied by the probe_fn object of the container object.

gp_hash_table() [6/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
const hash_fn & h,
const eq_fn & e,
const comb_probe_fn & cp,
const probe_fn & p,
const resize_policy & rp) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn
will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_probe_fn object
of the container object, r_probe_fn will be copied by the probe_fn object of the container object, and r_resize_policy will
be copied by the Resize_Policy object of the container object.

gp_hash_table() [7/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
template<typename It >
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
It first,
It last) [inline]
Constructor taking __iterators to a range of value_types. The value_types between first_it and last_it will be inserted
into the container object.

gp_hash_table() [8/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
template<typename It >
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
It first,
It last,
const hash_fn & h) [inline]

Generated by Doxygen
5.460 __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn,
Resize_Policy, Store_Hash, _Alloc > Class Template Reference 2059

Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it and
last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container object.

gp_hash_table() [9/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
template<typename It >
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
It first,
It last,
const hash_fn & h,
const eq_fn & e) [inline]
Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it and
last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container object,
and r_eq_fn will be copied by the eq_fn object of the container object.

gp_hash_table() [10/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
template<typename It >
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
It first,
It last,
const hash_fn & h,
const eq_fn & e,
const comb_probe_fn & cp) [inline]
Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it
and last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container
object, r_eq_fn will be copied by the eq_fn object of the container object, and r_comb_probe_fn will be copied by the
comb_probe_fn object of the container object.

gp_hash_table() [11/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
template<typename It >
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
It first,
It last,
const hash_fn & h,
const eq_fn & e,

Generated by Doxygen
2060

const comb_probe_fn & cp,


const probe_fn & p) [inline]
Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it and
last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container object,
r_eq_fn will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_probe_fn
object of the container object, and r_probe_fn will be copied by the probe_fn object of the container object.

gp_hash_table() [12/12]

template<typename Key , typename Mapped , typename Hash_Fn = typename detail::default_hash_fn<←-


Key>::type, typename Eq_Fn = typename detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename detail::default_probe_fn<Comb_←-
Probe_Fn>::type, typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>←-
::type, bool Store_Hash = detail::default_store_hash, typename _Alloc = std::allocator<char>>
template<typename It >
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy,
Store_Hash, _Alloc >::gp_hash_table (
It first,
It last,
const hash_fn & h,
const eq_fn & e,
const comb_probe_fn & cp,
const probe_fn & p,
const resize_policy & rp) [inline]
Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it and
last_it will be inserted into the container object. r_hash_fn will be copied by the hash_fn object of the container object,
r_eq_fn will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_←-
probe_fn object of the container object, r_probe_fn will be copied by the probe_fn object of the container object, and
r_resize_policy will be copied by the resize_policy object of the container object.
The documentation for this class was generated from the following file:

• assoc_container.hpp

5.461 __gnu_pbds::gp_hash_tag Struct Reference


#include <tag_and_trait.hpp>

Generated by Doxygen
5.462 __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy > Class Template Reference 2061

Inheritance diagram for __gnu_pbds::gp_hash_tag:

__gnu_pbds::container_tag

__gnu_pbds::associative_tag

__gnu_pbds::basic_hash_tag

__gnu_pbds::gp_hash_tag

5.461.1 Detailed Description

General-probing hash.
The documentation for this struct was generated from the following file:

• tag_and_trait.hpp

5.462 __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc,


Store_Hash, Comb_Probe_Fn, Probe_Fn, Resize_Policy > Class Template Reference
#include <gp_ht_map_.hpp>
Inheritance diagram for __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb←-
_Probe_Fn, Probe_Fn, Resize_Policy >:

__gnu_pbds::detail
::hash_eq_fn< Key, Eq
_Fn, _Alloc, Store_Hash >

__gnu_pbds::detail
__gnu_pbds::detail
::gp_ht_map< Key, Mapped,
::ranged_probe_fn< Key,
Hash_Fn, Eq_Fn, _Alloc,
Hash_Fn, _Alloc, Comb
Store_Hash, Comb_Probe
_Probe_Fn, Probe_Fn, Store_Hash >
_Fn, Probe_Fn, Resize_Policy >

__gnu_pbds::detail __gnu_pbds::detail
::maybe_null_type< Key, ::types_traits< Key,
Mapped, _Alloc, Store Mapped, _Alloc, Store
_Hash > _Hash >

Generated by Doxygen
2062

Public Types

• enum { store_hash }
• typedef _Alloc allocator_type
• typedef Comb_Probe_Fn comb_probe_fn
• typedef const_iterator_ const_iterator
• typedef traits_base::const_pointer const_pointer
• typedef traits_base::const_reference const_reference
• typedef _Alloc::difference_type difference_type
• typedef Eq_Fn eq_fn
• typedef Hash_Fn hash_fn
• typedef iterator_ iterator
• typedef traits_base::key_const_pointer key_const_pointer
• typedef traits_base::key_const_reference key_const_reference
• typedef traits_base::key_pointer key_pointer
• typedef traits_base::key_reference key_reference
• typedef traits_base::key_type key_type
• typedef traits_base::mapped_const_pointer mapped_const_pointer
• typedef traits_base::mapped_const_reference mapped_const_reference
• typedef traits_base::mapped_pointer mapped_pointer
• typedef traits_base::mapped_reference mapped_reference
• typedef traits_base::mapped_type mapped_type
• typedef __nothrowcopy::indicator no_throw_indicator
• typedef point_const_iterator_ point_const_iterator
• typedef point_iterator_ point_iterator
• typedef traits_base::pointer pointer
• typedef Probe_Fn probe_fn
• typedef traits_base::reference reference
• typedef Resize_Policy resize_policy
• typedef _Alloc::size_type size_type
• typedef integral_constant< int, Store_Hash > store_extra
• typedef stored_data< value_type, size_type, Store_Hash > stored_data_type
• typedef traits_base::value_type value_type

Public Member Functions

• gp_ht_map (const gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe_Fn, Probe←-
_Fn, Resize_Policy > &)
• gp_ht_map (const Hash_Fn &)
• gp_ht_map (const Hash_Fn &, const Eq_Fn &)
• gp_ht_map (const Hash_Fn &, const Eq_Fn &, const Comb_Probe_Fn &)
• gp_ht_map (const Hash_Fn &, const Eq_Fn &, const Comb_Probe_Fn &, const Probe_Fn &)
• gp_ht_map (const Hash_Fn &, const Eq_Fn &, const Comb_Probe_Fn &, const Probe_Fn &, const Resize_←-
Policy &)
• iterator begin ()
• const_iterator begin () const
• void clear ()
• template<typename It >
void copy_from_range (It, It)
• bool empty () const
• iterator end ()
• const_iterator end () const

Generated by Doxygen
5.462 __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy > Class Template Reference 2063

• bool erase (key_const_reference)


• template<typename Pred >
size_type erase_if (Pred)
• point_iterator find (key_const_reference)
• point_const_iterator find (key_const_reference) const
• point_iterator find_end ()
• point_const_iterator find_end () const
• Comb_Probe_Fn & get_comb_probe_fn ()
• const Comb_Probe_Fn & get_comb_probe_fn () const
• Eq_Fn & get_eq_fn ()
• const Eq_Fn & get_eq_fn () const
• Hash_Fn & get_hash_fn ()
• const Hash_Fn & get_hash_fn () const
• Probe_Fn & get_probe_fn ()
• const Probe_Fn & get_probe_fn () const
• Resize_Policy & get_resize_policy ()
• const Resize_Policy & get_resize_policy () const
• std::pair< point_iterator, bool > insert (const_reference r_val)
• size_type max_size () const
• mapped_reference operator[ ] (key_const_reference r_key)
• size_type size () const
• void swap (gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe_Fn, Probe_Fn,
Resize_Policy > &)

Public Attributes

• no_throw_indicator m_no_throw_copies_indicator
• store_extra m_store_extra_indicator

Friends

• class const_iterator_
• class iterator_

5.462.1 Detailed Description

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn, typename _Alloc, bool
Store_Hash, typename Comb_Probe_Fn, typename Probe_Fn, typename Resize_Policy>
class __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe_Fn,
Probe_Fn, Resize_Policy >

A general-probing hash-based container.

Template Parameters

Key Key type.


Mapped Map type.
Hash_Fn Hashing functor. Default is __gnu_cxx::hash.
Eq_Fn Equal functor. Default std::equal_to<Key>
_Alloc Allocator type.
Store_Hash If key type stores extra metadata. Defaults to false.

Generated by Doxygen
2064

Template Parameters

Comb_Probe_Fn Combining probe functor. If Hash_Fn is not null_type, then this is the ranged-probe functor;
otherwise, this is the range-hashing functor. XXX See Design::Hash-Based Containers::Hash
Policies. Default direct_mask_range_hashing.
Probe_Fn Probe functor. Defaults to linear_probe_fn, also quadratic_probe_fn.
Resize_Policy Resizes hash. Defaults to hash_standard_resize_policy, using hash_exponential_size_policy
and hash_load_check_resize_trigger.

Bases are: detail::hash_eq_fn, Resize_Policy, detail::ranged_probe_fn, detail::types_traits. (Optional: detail::debug_←-


map_base.)

5.462.2 Member Enumeration Documentation

anonymous enum

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
anonymous enum
Value stores hash, true or false.

5.462.3 Member Function Documentation

empty()

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
bool __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe_←-
Fn, Probe_Fn, Resize_Policy >::empty () const [inline], [nodiscard]
True if size() == 0.

get_comb_probe_fn() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
Comb_Probe_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy >::get_comb_probe_fn ()
Return current comb_probe_fn.

get_comb_probe_fn() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
const Comb_Probe_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_←-
Hash, Comb_Probe_Fn, Probe_Fn, Resize_Policy >::get_comb_probe_fn () const
Return current const comb_probe_fn.

get_eq_fn() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
Eq_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_←-
Probe_Fn, Probe_Fn, Resize_Policy >::get_eq_fn ()
Return current eq_fn.

Generated by Doxygen
5.462 __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy > Class Template Reference 2065

get_eq_fn() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
const Eq_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy >::get_eq_fn () const
Return current const eq_fn.

get_hash_fn() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
Hash_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_←-
Probe_Fn, Probe_Fn, Resize_Policy >::get_hash_fn ()
Return current hash_fn.

get_hash_fn() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
const Hash_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy >::get_hash_fn () const
Return current const hash_fn.

get_probe_fn() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
Probe_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_←-
Probe_Fn, Probe_Fn, Resize_Policy >::get_probe_fn ()
Return current probe_fn.

get_probe_fn() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
const Probe_Fn & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy >::get_probe_fn () const
Return current const probe_fn.

get_resize_policy() [1/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
Resize_Policy & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash,
Comb_Probe_Fn, Probe_Fn, Resize_Policy >::get_resize_policy ()
Return current resize_policy.

get_resize_policy() [2/2]

template<typename Key , typename Mapped , typename Hash_Fn , typename Eq_Fn , typename _Alloc ,
bool Store_Hash, typename Comb_Probe_Fn , typename Probe_Fn , typename Resize_Policy >
const Resize_Policy & __gnu_pbds::detail::gp_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_←-
Hash, Comb_Probe_Fn, Probe_Fn, Resize_Policy >::get_resize_policy () const
Return current const resize_policy.
The documentation for this class was generated from the following file:

Generated by Doxygen
2066

• gp_ht_map_.hpp

5.463 std::chrono::gps_clock Class Reference


#include <chrono>

Public Types

• using duration
• using period
• using rep
• using time_point

Static Public Member Functions

• template<typename _Duration >


static gps_time< common_type_t< _Duration, seconds > > from_utc (const utc_time< _Duration > &__t)
• static time_point now ()
• template<typename _Duration >
static utc_time< common_type_t< _Duration, seconds > > to_utc (const gps_time< _Duration > &__t)

Static Public Attributes

• static constexpr bool is_steady

5.463.1 Detailed Description

A clock that measures GPS time.


The epoch is 1980-01-06 00:00:00.

Since

C++20

The documentation for this class was generated from the following file:

• chrono

5.464 std::greater< _Tp > Struct Template Reference


#include <stl_function.h>

Generated by Doxygen
5.464 std::greater< _Tp > Struct Template Reference 2067

Inheritance diagram for std::greater< _Tp >:

std::binary_function
< _Tp, _Tp, bool >

std::greater< _Tp >

Public Types

• typedef _Tp first_argument_type


• typedef bool result_type
• typedef _Tp second_argument_type

Public Member Functions

• constexpr bool operator() (const _Tp &__x, const _Tp &__y) const

5.464.1 Detailed Description

template<typename _Tp>
struct std::greater< _Tp >

One of the comparison functors.

5.464.2 Member Typedef Documentation

first_argument_type

_Tp std::binary_function< _Tp, _Tp, bool >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

bool std::binary_function< _Tp, _Tp, bool >::result_type [inherited]


result_type is the return type

second_argument_type

_Tp std::binary_function< _Tp, _Tp, bool >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

• stl_function.h

Generated by Doxygen
2068

5.465 std::ranges::greater Struct Reference


#include <ranges_cmp.h>

Public Types

• using is_transparent

Public Member Functions

• template<typename _Tp , typename _Up >


requires totally_ordered_with<_Tp, _Up>
constexpr bool operator() (_Tp &&__t, _Up &&__u) const noexcept(noexcept(std::declval< _Up >()<
std::declval< _Tp >()))

5.465.1 Detailed Description

ranges::greater function object type.


The documentation for this struct was generated from the following file:

• ranges_cmp.h

5.466 std::greater< void > Struct Reference


#include <stl_function.h>

Public Types

• typedef __is_transparent is_transparent

Public Member Functions

• template<typename _Tp , typename _Up >


constexpr auto operator() (_Tp &&__t, _Up &&__u) const noexcept(noexcept(std::forward< _Tp >(__t) >
std::forward< _Up >(__u))) -> decltype(std::forward< _Tp >(__t) > std::forward< _Up >(__u))
• template<typename _Tp , typename _Up >
constexpr bool operator() (_Tp ∗__t, _Up ∗__u) const noexcept

5.466.1 Detailed Description

One of the comparison functors.


The documentation for this struct was generated from the following file:

• stl_function.h

5.467 std::greater_equal< _Tp > Struct Template Reference


#include <stl_function.h>

Generated by Doxygen
5.467 std::greater_equal< _Tp > Struct Template Reference 2069

Inheritance diagram for std::greater_equal< _Tp >:

std::binary_function
< _Tp, _Tp, bool >

std::greater_equal
< _Tp >

Public Types

• typedef _Tp first_argument_type


• typedef bool result_type
• typedef _Tp second_argument_type

Public Member Functions

• constexpr bool operator() (const _Tp &__x, const _Tp &__y) const

5.467.1 Detailed Description

template<typename _Tp>
struct std::greater_equal< _Tp >

One of the comparison functors.

5.467.2 Member Typedef Documentation

first_argument_type

_Tp std::binary_function< _Tp, _Tp, bool >::first_argument_type [inherited]


first_argument_type is the type of the first argument

result_type

bool std::binary_function< _Tp, _Tp, bool >::result_type [inherited]


result_type is the return type

second_argument_type

_Tp std::binary_function< _Tp, _Tp, bool >::second_argument_type [inherited]


second_argument_type is the type of the second argument
The documentation for this struct was generated from the following file:

• stl_function.h

Generated by Doxygen
2070

5.468 std::ranges::greater_equal Struct Reference


#include <ranges_cmp.h>

Public Types

• using is_transparent

Public Member Functions

• template<typename _Tp , typename _Up >


requires totally_ordered_with<_Tp, _Up>
constexpr bool operator() (_Tp &&__t, _Up &&__u) const noexcept(noexcept(std::declval< _Tp >()<
std::declval< _Up >()))

5.468.1 Detailed Description

ranges::greater_equal function object type.


The documentation for this struct was generated from the following file:

• ranges_cmp.h

5.469 std::greater_equal< void > Struct Reference


#include <stl_function.h>

Public Types

• typedef __is_transparent is_transparent

Public Member Functions

• template<typename _Tp , typename _Up >


constexpr auto operator() (_Tp &&__t, _Up &&__u) const noexcept(noexcept(std::forward< _Tp >(__←-
t) >=std::forward< _Up >(__u))) -> decltype(std::forward< _Tp >(__t) >=std::forward< _Up >(__u))
• template<typename _Tp , typename _Up >
constexpr bool operator() (_Tp ∗__t, _Up ∗__u) const noexcept

5.469.1 Detailed Description

One of the comparison functors.


The documentation for this struct was generated from the following file:

• stl_function.h

5.470 __gnu_cxx::random_condition::group_adjustor Struct Reference


#include <throw_allocator.h>

Public Member Functions

• group_adjustor (size_t size)

Generated by Doxygen
5.471 __gnu_parallel::growing_blocks_tag Struct Reference 2071

5.470.1 Detailed Description

Group condition.
The documentation for this struct was generated from the following file:

• throw_allocator.h

5.471 __gnu_parallel::growing_blocks_tag Struct Reference


#include <tags.h>
Inheritance diagram for __gnu_parallel::growing_blocks_tag:

__gnu_parallel::find_tag

__gnu_parallel::growing
_blocks_tag

5.471.1 Detailed Description

Selects the growing block size variant for std::find().

See also

_GLIBCXX_FIND_GROWING_BLOCKS

The documentation for this struct was generated from the following file:

• tags.h

5.472 std::gslice Class Reference


#include <gslice.h>

Public Member Functions

• gslice ()
• gslice (const gslice &)
• gslice (size_t __o, const valarray< size_t > &__l, const valarray< size_t > &__s)
• ∼gslice ()
• gslice & operator= (const gslice &)
• valarray< size_t > size () const
• size_t start () const
• valarray< size_t > stride () const

Generated by Doxygen
2072

Friends

• template<typename _Tp >


class valarray

5.472.1 Detailed Description

Class defining multi-dimensional subset of an array.


The slice class represents a multi-dimensional subset of an array, specified by three parameter sets: start offset, size
array, and stride array. The start offset is the index of the first element of the array that is part of the subset. The size
and stride array describe each dimension of the slice. Size is the number of elements in that dimension, and stride is
the distance in the array between successive elements in that dimension. Each dimension's size and stride is taken to
begin at an array element described by the previous dimension. The size array and stride array must be the same size.
For example, if you have offset==3, stride[0]==11, size[1]==3, stride[1]==3, then slice[0,0]==array[3], slice[0,1]==array[6],
slice[0,2]==array[9], slice[1,0]==array[14], slice[1,1]==array[17], slice[1,2]==array[20].
The documentation for this class was generated from the following file:

• gslice.h

5.473 std::gslice_array< _Tp > Class Template Reference


#include <gslice_array.h>

Public Types

• typedef _Tp value_type

Public Member Functions

• gslice_array (const gslice_array &)


• template<class _Dom >
void operator%= (const _Expr< _Dom, _Tp > &) const
• void operator%= (const valarray< _Tp > &) const
• template<class _Dom >
void operator&= (const _Expr< _Dom, _Tp > &) const
• void operator&= (const valarray< _Tp > &) const
• template<class _Dom >
void operator∗= (const _Expr< _Dom, _Tp > &) const
• void operator∗= (const valarray< _Tp > &) const
• template<class _Dom >
void operator+= (const _Expr< _Dom, _Tp > &) const
• void operator+= (const valarray< _Tp > &) const
• template<class _Dom >
void operator-= (const _Expr< _Dom, _Tp > &) const
• void operator-= (const valarray< _Tp > &) const
• template<class _Dom >
void operator/= (const _Expr< _Dom, _Tp > &) const
• void operator/= (const valarray< _Tp > &) const
• template<class _Dom >
void operator<<= (const _Expr< _Dom, _Tp > &) const
• void operator<<= (const valarray< _Tp > &) const
• template<class _Dom >
void operator= (const _Expr< _Dom, _Tp > &) const
• void operator= (const _Tp &) const

Generated by Doxygen
5.473 std::gslice_array< _Tp > Class Template Reference 2073

• gslice_array & operator= (const gslice_array &)


• template<typename _Tp >
gslice_array< _Tp > & operator= (const gslice_array< _Tp > &__a)
• void operator= (const valarray< _Tp > &) const
• template<class _Dom >
void operator>>= (const _Expr< _Dom, _Tp > &) const
• void operator>>= (const valarray< _Tp > &) const
• template<class _Dom >
void operator∧ = (const _Expr< _Dom, _Tp > &) const
• void operator∧ = (const valarray< _Tp > &) const
• template<class _Dom >
void operator|= (const _Expr< _Dom, _Tp > &) const
• void operator|= (const valarray< _Tp > &) const

Friends

• class valarray< _Tp >

5.473.1 Detailed Description

template<typename _Tp>
class std::gslice_array< _Tp >

Reference to multi-dimensional subset of an array.


A gslice_array is a reference to the actual elements of an array specified by a gslice. The way to get a gslice_array is to
call operator[ ](gslice) on a valarray. The returned gslice_array then permits carrying operations out on the referenced
subset of elements in the original valarray. For example, operator+=(valarray) will add values to the subset of elements
in the underlying valarray this gslice_array refers to.

Parameters
Tp Element type.

5.473.2 Constructor & Destructor Documentation

gslice_array()

template<typename _Tp >


std::gslice_array< _Tp >::gslice_array (
const gslice_array< _Tp > & )
Copy constructor. Both slices refer to the same underlying array.

5.473.3 Member Function Documentation

operator%=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator%= (
const valarray< _Tp > & ) const
Modulo slice elements by corresponding elements of v.

Generated by Doxygen
2074

operator&=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator&= (
const valarray< _Tp > & ) const
Logical and slice elements with corresponding elements of v.

operator∗=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator∗= (
const valarray< _Tp > & ) const
Multiply slice elements by corresponding elements of v.

operator+=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator+= (
const valarray< _Tp > & ) const
Add corresponding elements of v to slice elements.

operator-=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator-= (
const valarray< _Tp > & ) const
Subtract corresponding elements of v from slice elements.

operator/=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator/= (
const valarray< _Tp > & ) const
Divide slice elements by corresponding elements of v.

operator<<=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator<<= (
const valarray< _Tp > & ) const
Left shift slice elements by corresponding elements of v.

operator=()

template<typename _Tp >


gslice_array & std::gslice_array< _Tp >::operator= (
const gslice_array< _Tp > & )
Assignment operator. Assigns slice elements to corresponding elements of a.

operator>>=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator>>= (
const valarray< _Tp > & ) const
Right shift slice elements by corresponding elements of v.

Generated by Doxygen
5.474 std::has_virtual_destructor< _Tp > Struct Template Reference 2075

operator∧ =()

template<typename _Tp >


void std::gslice_array< _Tp >::operator∧ = (
const valarray< _Tp > & ) const
Logical xor slice elements with corresponding elements of v.

operator"|=()

template<typename _Tp >


void std::gslice_array< _Tp >::operator|= (
const valarray< _Tp > & ) const
Logical or slice elements with corresponding elements of v.
The documentation for this class was generated from the following files:

• valarray
• gslice_array.h

5.474 std::has_virtual_destructor< _Tp > Struct Template Reference


#include <type_traits>

5.474.1 Detailed Description

template<typename _Tp>
struct std::has_virtual_destructor< _Tp >

has_virtual_destructor
The documentation for this struct was generated from the following file:

• type_traits

5.475 std::hash< _Tp > Struct Template Reference


#include <functional_hash.h>

5.475.1 Detailed Description

template<typename _Tp>
struct std::hash< _Tp >

Primary class template hash.


Primary class template hash, usable for enum types only.
The documentation for this struct was generated from the following files:

• string_view
• typeindex
• functional_hash.h
• experimental/string_view

5.476 std::hash< __debug::bitset< _Nb > > Struct Template Reference


#include <bitset>

Public Member Functions

• size_t operator() (const __debug::bitset< _Nb > &__b) const noexcept

Generated by Doxygen
2076

5.476.1 Detailed Description

template<size_t _Nb>
struct std::hash< __debug::bitset< _Nb > >

std::hash specialization for bitset.


The documentation for this struct was generated from the following file:

• debug/bitset

5.477 std::hash< __debug::vector< bool, _Alloc > > Struct Template Reference
#include <vector>

Public Member Functions

• size_t operator() (const __debug::vector< bool, _Alloc > &__b) const noexcept

5.477.1 Detailed Description

template<typename _Alloc>
struct std::hash< __debug::vector< bool, _Alloc > >

std::hash specialization for vector<bool>.


The documentation for this struct was generated from the following file:

• debug/vector

5.478 std::hash< __gnu_cxx::__u16vstring > Struct Reference


#include <vstring.h>

Public Member Functions

• size_t operator() (const __gnu_cxx::__u16vstring &__s) const noexcept

5.478.1 Detailed Description

std::hash specialization for __u16vstring.


The documentation for this struct was generated from the following file:

• vstring.h

5.479 std::hash< __gnu_cxx::__u32vstring > Struct Reference


#include <vstring.h>

Public Member Functions

• size_t operator() (const __gnu_cxx::__u32vstring &__s) const noexcept

5.479.1 Detailed Description

std::hash specialization for __u32vstring.


The documentation for this struct was generated from the following file:

• vstring.h

Generated by Doxygen
5.480 std::hash< __gnu_cxx::__vstring > Struct Reference 2077

5.480 std::hash< __gnu_cxx::__vstring > Struct Reference


#include <vstring.h>

Public Member Functions

• size_t operator() (const __gnu_cxx::__vstring &__s) const noexcept

5.480.1 Detailed Description

std::hash specialization for __vstring.


The documentation for this struct was generated from the following file:
• vstring.h

5.481 std::hash< __gnu_cxx::__wvstring > Struct Reference


#include <vstring.h>

Public Member Functions

• size_t operator() (const __gnu_cxx::__wvstring &__s) const noexcept

5.481.1 Detailed Description

std::hash specialization for __wvstring.


The documentation for this struct was generated from the following file:
• vstring.h

5.482 std::hash< __gnu_cxx::throw_value_limit > Struct Reference


#include <throw_allocator.h>
Inheritance diagram for std::hash< __gnu_cxx::throw_value_limit >:

std::unary_function
< __gnu_cxx::throw_value
_limit, size_t >

std::hash< __gnu_cxx
::throw_value_limit >

Public Types

• typedef __gnu_cxx::throw_value_limit argument_type


• typedef size_t result_type

Generated by Doxygen
2078

Public Member Functions

• size_t operator() (const __gnu_cxx::throw_value_limit &__val) const

5.482.1 Detailed Description

Explicit specialization of std::hash for __gnu_cxx::throw_value_limit.

5.482.2 Member Typedef Documentation

argument_type

__gnu_cxx::throw_value_limit std::unary_function< __gnu_cxx::throw_value_limit, size_t >::argument←-


_type [inherited]
argument_type is the type of the argument

result_type

size_t std::unary_function< __gnu_cxx::throw_value_limit, size_t >::result_type [inherited]


result_type is the return type
The documentation for this struct was generated from the following file:

• throw_allocator.h

5.483 std::hash< __gnu_cxx::throw_value_random > Struct Reference


#include <throw_allocator.h>
Inheritance diagram for std::hash< __gnu_cxx::throw_value_random >:

std::unary_function
< __gnu_cxx::throw_value
_random, size_t >

std::hash< __gnu_cxx
::throw_value_random >

Public Types

• typedef __gnu_cxx::throw_value_random argument_type


• typedef size_t result_type

Public Member Functions

• size_t operator() (const __gnu_cxx::throw_value_random &__val) const

Generated by Doxygen
5.484 std::hash< __gnu_debug::basic_string< _CharT > > Struct Template Reference 2079

5.483.1 Detailed Description

Explicit specialization of std::hash for __gnu_cxx::throw_value_random.

5.483.2 Member Typedef Documentation

argument_type

__gnu_cxx::throw_value_random std::unary_function< __gnu_cxx::throw_value_random, size_t >←-


::argument_type [inherited]
argument_type is the type of the argument

result_type

size_t std::unary_function< __gnu_cxx::throw_value_random, size_t >::result_type [inherited]


result_type is the return type
The documentation for this struct was generated from the following file:

• throw_allocator.h

5.484 std::hash< __gnu_debug::basic_string< _CharT > > Struct Template Reference


#include <string>
Inheritance diagram for std::hash< __gnu_debug::basic_string< _CharT > >:

std::hash< std::basic
_string< _CharT > >

std::hash< __gnu_debug
::basic_string< _CharT > >

5.484.1 Detailed Description

template<typename _CharT>
struct std::hash< __gnu_debug::basic_string< _CharT > >

std::hash specialization for __gnu_debug::basic_string.


The documentation for this struct was generated from the following file:

• debug/string

5.485 std::hash< __shared_ptr< _Tp, _Lp > > Struct Template Reference
#include <shared_ptr_base.h>

Generated by Doxygen
2080

Public Member Functions

• size_t operator() (const __shared_ptr< _Tp, _Lp > &__s) const noexcept

5.485.1 Detailed Description

template<typename _Tp, _Lock_policy _Lp>


struct std::hash< __shared_ptr< _Tp, _Lp > >

std::hash specialization for __shared_ptr.


The documentation for this struct was generated from the following file:

• shared_ptr_base.h

5.486 std::hash< _Tp ∗ > Struct Template Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (_Tp ∗__p) const noexcept

5.486.1 Detailed Description

template<typename _Tp>
struct std::hash< _Tp ∗ >

Partial specializations for pointer types.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.487 std::hash< basic_string< char, char_traits< char >, _Alloc > > Struct Template
Reference
#include <basic_string.h>

Public Member Functions

• size_t operator() (const _StrT &__s) const noexcept

5.487.1 Detailed Description

template<typename _Alloc>
struct std::hash< basic_string< char, char_traits< char >, _Alloc > >

std::hash specialization for string.


The documentation for this struct was generated from the following file:

• basic_string.h

5.488 std::hash< basic_string< char16_t, char_traits< char16_t >, _Alloc > > Struct
Template Reference
#include <basic_string.h>

Generated by Doxygen
5.489 std::hash< basic_string< char32_t, char_traits< char32_t >, _Alloc > > Struct Template Reference
2081

Public Member Functions

• size_t operator() (const _StrT &__s) const noexcept

5.488.1 Detailed Description

template<typename _Alloc>
struct std::hash< basic_string< char16_t, char_traits< char16_t >, _Alloc > >

std::hash specialization for u16string.


The documentation for this struct was generated from the following file:

• basic_string.h

5.489 std::hash< basic_string< char32_t, char_traits< char32_t >, _Alloc > > Struct
Template Reference
#include <basic_string.h>

Public Member Functions

• size_t operator() (const _StrT &__s) const noexcept

5.489.1 Detailed Description

template<typename _Alloc>
struct std::hash< basic_string< char32_t, char_traits< char32_t >, _Alloc > >

std::hash specialization for u32string.


The documentation for this struct was generated from the following file:

• basic_string.h

5.490 std::hash< basic_string< wchar_t, char_traits< wchar_t >, _Alloc > > Struct
Template Reference
#include <basic_string.h>

Public Member Functions

• size_t operator() (const _StrT &__s) const noexcept

5.490.1 Detailed Description

template<typename _Alloc>
struct std::hash< basic_string< wchar_t, char_traits< wchar_t >, _Alloc > >

std::hash specialization for wstring.


The documentation for this struct was generated from the following file:

• basic_string.h

5.491 std::hash< bool > Struct Reference


#include <functional_hash.h>

Generated by Doxygen
2082

Public Member Functions

• size_t operator() (bool __val) const noexcept

5.491.1 Detailed Description

Explicit specialization for bool.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.492 std::hash< char > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (char __val) const noexcept

5.492.1 Detailed Description

Explicit specialization for char.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.493 std::hash< char16_t > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (char16_t __val) const noexcept

5.493.1 Detailed Description

Explicit specialization for char16_t.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.494 std::hash< char32_t > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (char32_t __val) const noexcept

5.494.1 Detailed Description

Explicit specialization for char32_t.


The documentation for this struct was generated from the following file:

• functional_hash.h

Generated by Doxygen
5.495 std::hash< double > Struct Reference 2083

5.495 std::hash< double > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (double __val) const noexcept

5.495.1 Detailed Description

Specialization for double.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.496 std::hash< error_code > Struct Reference


#include <system_error>

Public Member Functions

• size_t operator() (const error_code &__e) const noexcept

5.496.1 Detailed Description

std::hash specialization for error_code.


The documentation for this struct was generated from the following file:

• system_error

5.497 std::hash< error_condition > Struct Reference


#include <system_error>

Public Member Functions

• size_t operator() (const error_condition &__e) const noexcept

5.497.1 Detailed Description

std::hash specialization for error_condition.


The documentation for this struct was generated from the following file:

• system_error

5.498 std::hash< experimental::optional< _Tp > > Struct Template Reference


#include <optional>

Public Types

• using argument_type
• using result_type

Public Member Functions

• size_t operator() (const experimental::optional< _Tp > &__t) const noexcept(noexcept(hash< _Tp > {}(∗__t)))

Generated by Doxygen
2084

5.498.1 Detailed Description

template<typename _Tp>
struct std::hash< experimental::optional< _Tp > >

std::hash partial specialization for experimental::optional


The documentation for this struct was generated from the following file:

• experimental/optional

5.499 std::hash< experimental::shared_ptr< _Tp > > Struct Template Reference


#include <shared_ptr.h>

Public Member Functions

• size_t operator() (const experimental::shared_ptr< _Tp > &__s) const noexcept

5.499.1 Detailed Description

template<typename _Tp>
struct std::hash< experimental::shared_ptr< _Tp > >

std::hash specialization for shared_ptr.


The documentation for this struct was generated from the following file:

• experimental/bits/shared_ptr.h

5.500 std::hash< float > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (float __val) const noexcept

5.500.1 Detailed Description

Specialization for float.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.501 std::hash< int > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (int __val) const noexcept

5.501.1 Detailed Description

Explicit specialization for int.


The documentation for this struct was generated from the following file:

• functional_hash.h

Generated by Doxygen
5.502 std::hash< long > Struct Reference 2085

5.502 std::hash< long > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (long __val) const noexcept

5.502.1 Detailed Description

Explicit specialization for long.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.503 std::hash< long double > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (long double __val) const noexcept

5.503.1 Detailed Description

Specialization for long double.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.504 std::hash< long long > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (long long __val) const noexcept

5.504.1 Detailed Description

Explicit specialization for long long.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.505 std::hash< shared_ptr< _Tp > > Struct Template Reference


#include <shared_ptr.h>

Public Member Functions

• size_t operator() (const shared_ptr< _Tp > &__s) const noexcept

Generated by Doxygen
2086

5.505.1 Detailed Description

template<typename _Tp>
struct std::hash< shared_ptr< _Tp > >

std::hash specialization for shared_ptr.


The documentation for this struct was generated from the following file:

• bits/shared_ptr.h

5.506 std::hash< short > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (short __val) const noexcept

5.506.1 Detailed Description

Explicit specialization for short.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.507 std::hash< signed char > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (signed char __val) const noexcept

5.507.1 Detailed Description

Explicit specialization for signed char.


The documentation for this struct was generated from the following file:

• functional_hash.h

5.508 std::hash< thread::id > Struct Reference


#include <std_thread.h>

Public Member Functions

• size_t operator() (const thread::id &__id) const noexcept

5.508.1 Detailed Description

std::hash specialization for thread::id.


The documentation for this struct was generated from the following file:

• std_thread.h

5.509 std::hash< type_index > Struct Reference


#include <typeindex>

Generated by Doxygen
5.510 std::hash< unique_ptr< _Tp, _Dp > > Struct Template Reference 2087

Public Types

• typedef type_index argument_type


• typedef size_t result_type

Public Member Functions

• size_t operator() (const type_index &__ti) const noexcept

5.509.1 Detailed Description

std::hash specialization for type_index.


The documentation for this struct was generated from the following file:
• typeindex

5.510 std::hash< unique_ptr< _Tp, _Dp > > Struct Template Reference
#include <unique_ptr.h>

5.510.1 Detailed Description

template<typename _Tp, typename _Dp>


struct std::hash< unique_ptr< _Tp, _Dp > >

std::hash specialization for unique_ptr.


The documentation for this struct was generated from the following file:
• unique_ptr.h

5.511 std::hash< unsigned char > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (unsigned char __val) const noexcept

5.511.1 Detailed Description

Explicit specialization for unsigned char.


The documentation for this struct was generated from the following file:
• functional_hash.h

5.512 std::hash< unsigned int > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (unsigned int __val) const noexcept

5.512.1 Detailed Description

Explicit specialization for unsigned int.


The documentation for this struct was generated from the following file:
• functional_hash.h

Generated by Doxygen
2088

5.513 std::hash< unsigned long > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (unsigned long __val) const noexcept

5.513.1 Detailed Description

Explicit specialization for unsigned long.


The documentation for this struct was generated from the following file:
• functional_hash.h

5.514 std::hash< unsigned long long > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (unsigned long long __val) const noexcept

5.514.1 Detailed Description

Explicit specialization for unsigned long long.


The documentation for this struct was generated from the following file:
• functional_hash.h

5.515 std::hash< unsigned short > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (unsigned short __val) const noexcept

5.515.1 Detailed Description

Explicit specialization for unsigned short.


The documentation for this struct was generated from the following file:
• functional_hash.h

5.516 std::hash< wchar_t > Struct Reference


#include <functional_hash.h>

Public Member Functions

• size_t operator() (wchar_t __val) const noexcept

5.516.1 Detailed Description

Explicit specialization for wchar_t.


The documentation for this struct was generated from the following file:
• functional_hash.h

Generated by Doxygen
5.517 std::hash<::bitset< _Nb > > Struct Template Reference 2089

5.517 std::hash<::bitset< _Nb > > Struct Template Reference


#include <bitset>

Public Member Functions

• size_t operator() (const ::bitset< _Nb > &__b) const noexcept

5.517.1 Detailed Description

template<size_t _Nb>
struct std::hash<::bitset< _Nb > >

std::hash specialization for bitset.


The documentation for this struct was generated from the following file:

• bitset

5.518 std::hash<::vector< bool, _Alloc > > Struct Template Reference


#include <stl_bvector.h>

Public Member Functions

• size_t operator() (const ::vector< bool, _Alloc > &) const noexcept

5.518.1 Detailed Description

template<typename _Alloc>
struct std::hash<::vector< bool, _Alloc > >

std::hash specialization for vector<bool>.


The documentation for this struct was generated from the following files:

• stl_bvector.h
• vector.tcc

Generated by Doxygen
2090

5.519 __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, Store_Hash > Struct


Template Reference
Inheritance diagram for __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, Store_Hash >:

__gnu_pbds::detail
::cc_ht_map< Key, Mapped,
Hash_Fn, Eq_Fn, _Alloc,
Store_Hash, Comb_Hash_Fn,
Resize_Policy >
__gnu_pbds::detail
::hash_eq_fn< Key, Eq
_Fn, _Alloc, Store_Hash >
__gnu_pbds::detail
::gp_ht_map< Key, Mapped,
Hash_Fn, Eq_Fn, _Alloc,
Store_Hash, Comb_Probe
_Fn, Probe_Fn, Resize_Policy >

5.519.1 Detailed Description

template<typename Key, typename Eq_Fn, typename _Alloc, bool Store_Hash>


struct __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, Store_Hash >

Primary template.
The documentation for this struct was generated from the following file:
• hash_eq_fn.hpp

5.520 __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, false > Struct Template


Reference
#include <hash_eq_fn.hpp>

Public Types

• typedef Eq_Fn eq_fn_base


• typedef rebind_traits< _Alloc, Key >::const_reference key_const_reference

Public Member Functions

• hash_eq_fn (const Eq_Fn &r_eq_fn)


• bool operator() (key_const_reference r_lhs_key, key_const_reference r_rhs_key) const
• void swap (const hash_eq_fn &other)

5.520.1 Detailed Description

template<typename Key, typename Eq_Fn, typename _Alloc>


struct __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, false >

Specialization 1 - The client requests that hash values not be stored.


The documentation for this struct was generated from the following file:

Generated by Doxygen
5.521 __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, true > Struct Template Reference 2091

• hash_eq_fn.hpp

5.521 __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, true > Struct Template


Reference
#include <hash_eq_fn.hpp>

Public Types

• typedef Eq_Fn eq_fn_base


• typedef rebind_traits< _Alloc, Key >::const_reference key_const_reference
• typedef _Alloc::size_type size_type

Public Member Functions

• hash_eq_fn (const Eq_Fn &r_eq_fn)


• bool operator() (key_const_reference r_lhs_key, size_type lhs_hash, key_const_reference r_rhs_key, size_type
rhs_hash) const
• void swap (const hash_eq_fn &other)

5.521.1 Detailed Description

template<typename Key, class Eq_Fn, class _Alloc>


struct __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, true >

Specialization 2 - The client requests that hash values be stored.


The documentation for this struct was generated from the following file:

• hash_eq_fn.hpp

5.522 __gnu_pbds::hash_exponential_size_policy< Size_Type > Class Template


Reference
#include <hash_policy.hpp>
Inheritance diagram for __gnu_pbds::hash_exponential_size_policy< Size_Type >:

__gnu_pbds::hash_standard
__gnu_pbds::hash_exponential _resize_policy< Size_Policy,
_size_policy< Size_Type > Trigger_Policy, External
_Size_Access, Size_Type >

Public Types

• typedef Size_Type size_type

Public Member Functions

• hash_exponential_size_policy (size_type start_size=8, size_type grow_factor=2)


• void swap (hash_exponential_size_policy< Size_Type > &other)

Generated by Doxygen
2092

Protected Member Functions

• size_type get_nearest_larger_size (size_type size) const


• size_type get_nearest_smaller_size (size_type size) const

5.522.1 Detailed Description

template<typename Size_Type = std::size_t>


class __gnu_pbds::hash_exponential_size_policy< Size_Type >

A size policy whose sequence of sizes form an exponential sequence (typically powers of 2.

5.522.2 Constructor & Destructor Documentation

hash_exponential_size_policy()

template<typename Size_Type >


__gnu_pbds::hash_exponential_size_policy< Size_Type >::hash_exponential_size_policy (
size_type start_size = 8,
size_type grow_factor = 2)
Default constructor, or onstructor taking a start_size, or constructor taking a start size and grow_factor. The policy will
use the sequence of sizes start_size, start_size∗ grow_factor, start_size∗ grow_factor∧ 2, ...
The documentation for this class was generated from the following file:

• hash_policy.hpp

5.523 __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type


> Class Template Reference
#include <hash_policy.hpp>
Inheritance diagram for __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >:

__gnu_pbds::detail __gnu_pbds::hash_load __gnu_pbds::hash_standard


::hash_load_check_resize _check_resize_trigger _resize_policy< Size_Policy,
_trigger_size_base< std < External_Load_Access, Trigger_Policy, External
::size_t, false > Size_Type > _Size_Access, Size_Type >

Public Types

• enum { external_load_access }
• typedef Size_Type size_type

Public Member Functions

• hash_load_check_resize_trigger (float load_min=0.125, float load_max=0.5)


• std::pair< float, float > get_loads () const
• void set_loads (std::pair< float, float > load_pair)
• void swap (hash_load_check_resize_trigger &other)

Generated by Doxygen
5.523 __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type > Class Template
Reference 2093

Protected Member Functions

• bool is_grow_needed (size_type size, size_type num_entries) const


• bool is_resize_needed () const
• void notify_cleared ()
• void notify_erase_search_collision ()
• void notify_erase_search_end ()
• void notify_erase_search_start ()
• void notify_erased (size_type num_entries)
• void notify_externally_resized (size_type new_size)
• void notify_find_search_collision ()
• void notify_find_search_end ()
• void notify_find_search_start ()
• void notify_insert_search_collision ()
• void notify_insert_search_end ()
• void notify_insert_search_start ()
• void notify_inserted (size_type num_entries)
• void notify_resized (size_type new_size)

5.523.1 Detailed Description

template<bool External_Load_Access = false, typename Size_Type = std::size_t>


class __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >

A resize trigger policy based on a load check. It keeps the load factor between some load factors load_min and load←-
_max.

5.523.2 Member Enumeration Documentation

anonymous enum

template<bool External_Load_Access = false, typename Size_Type = std::size_t>


anonymous enum

Enumerator

external_load_access Specifies whether the load factor can be accessed externally. The two options have
different trade-offs in terms of flexibility, genericity, and encapsulation.

5.523.3 Constructor & Destructor Documentation

hash_load_check_resize_trigger()

template<bool External_Load_Access, typename Size_Type >


__gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::hash_load_check_←-
resize_trigger (
float load_min = 0.125,
float load_max = 0.5)
Default constructor, or constructor taking load_min and load_max load factors between which this policy will keep the
actual load.

Generated by Doxygen
2094

5.523.4 Member Function Documentation

get_loads()

template<bool External_Load_Access, typename Size_Type >


std::pair< float, float > __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size←-
_Type >::get_loads () const [inline]
Returns a pair of the minimal and maximal loads, respectively.

notify_cleared()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::notify_←-
cleared () [protected]
Notifies the table was cleared.

notify_inserted()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::notify_←-
inserted (
size_type num_entries) [inline], [protected]
Notifies an element was inserted. The total number of entries in the table is num_entries.

notify_resized()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::notify_←-
resized (
size_type new_size) [protected]
Notifies the table was resized as a result of this object's signifying that a resize is needed.

set_loads()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::set_loads (
std::pair< float, float > load_pair)
Sets the loads through a pair of the minimal and maximal loads, respectively.
The documentation for this class was generated from the following file:

• hash_policy.hpp

5.524 __gnu_pbds::detail::hash_load_check_resize_trigger_size_base< Size_Type,


Hold_Size > Class Template Reference
5.524.1 Detailed Description

template<typename Size_Type, bool Hold_Size>


class __gnu_pbds::detail::hash_load_check_resize_trigger_size_base< Size_Type, Hold_Size >

Primary template.
The documentation for this class was generated from the following file:

• hash_load_check_resize_trigger_size_base.hpp

Generated by Doxygen
5.525 __gnu_pbds::detail::hash_load_check_resize_trigger_size_base< Size_Type, true > Class Template
Reference 2095

5.525 __gnu_pbds::detail::hash_load_check_resize_trigger_size_base< Size_Type, true >


Class Template Reference
#include <hash_load_check_resize_trigger_size_base.hpp>

Protected Types

• typedef Size_Type size_type

Protected Member Functions

• size_type get_size () const


• void set_size (size_type size)
• void swap (hash_load_check_resize_trigger_size_base &other)

5.525.1 Detailed Description

template<typename Size_Type>
class __gnu_pbds::detail::hash_load_check_resize_trigger_size_base< Size_Type, true >

Specializations.
The documentation for this class was generated from the following file:

• hash_load_check_resize_trigger_size_base.hpp

5.526 __gnu_cxx::hash_map< _Key, _Tp, _HashFn, _EqualKey, _Alloc > Class Template
Reference
#include <hash_map>

Public Types

• typedef _Ht::allocator_type allocator_type


• typedef _Ht::const_iterator const_iterator
• typedef _Ht::const_pointer const_pointer
• typedef _Ht::const_reference const_reference
• typedef _Tp data_type
• typedef _Ht::difference_type difference_type
• typedef _Ht::hasher hasher
• typedef _Ht::iterator iterator
• typedef _Ht::key_equal key_equal
• typedef _Ht::key_type key_type
• typedef _Tp mapped_type
• typedef _Ht::pointer pointer
• typedef _Ht::reference reference
• typedef _Ht::size_type size_type
• typedef _Ht::value_type value_type

Public Member Functions

• template<class _InputIterator >


hash_map (_InputIterator __f, _InputIterator __l)
• template<class _InputIterator >
hash_map (_InputIterator __f, _InputIterator __l, size_type __n)

Generated by Doxygen
2096

• template<class _InputIterator >


hash_map (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf)
• template<class _InputIterator >
hash_map (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf, const key_equal &__eql,
const allocator_type &__a=allocator_type())
• hash_map (size_type __n)
• hash_map (size_type __n, const hasher &__hf)
• hash_map (size_type __n, const hasher &__hf, const key_equal &__eql, const allocator_type &__a=allocator←-
_type())
• iterator begin ()
• const_iterator begin () const
• size_type bucket_count () const
• void clear ()
• size_type count (const key_type &__key) const
• size_type elems_in_bucket (size_type __n) const
• bool empty () const
• iterator end ()
• const_iterator end () const
• pair< iterator, iterator > equal_range (const key_type &__key)
• pair< const_iterator, const_iterator > equal_range (const key_type &__key) const
• size_type erase (const key_type &__key)
• void erase (iterator __f, iterator __l)
• void erase (iterator __it)
• iterator find (const key_type &__key)
• const_iterator find (const key_type &__key) const
• allocator_type get_allocator () const
• hasher hash_funct () const
• template<class _InputIterator >
void insert (_InputIterator __f, _InputIterator __l)
• pair< iterator, bool > insert (const value_type &__obj)
• pair< iterator, bool > insert_noresize (const value_type &__obj)
• key_equal key_eq () const
• size_type max_bucket_count () const
• size_type max_size () const
• _Tp & operator[ ] (const key_type &__key)
• void resize (size_type __hint)
• size_type size () const
• void swap (hash_map &__hs)

Friends

• template<class _K1 , class _T1 , class _HF , class _EqK , class _Al >
bool operator== (const hash_map< _K1, _T1, _HF, _EqK, _Al > &, const hash_map< _K1, _T1, _HF, _EqK,
_Al > &)

5.526.1 Detailed Description

template<class _Key, class _Tp, class _HashFn = hash<_Key>, class _EqualKey = equal_to<_Key>, class
_Alloc = allocator<_Tp>>
class __gnu_cxx::hash_map< _Key, _Tp, _HashFn, _EqualKey, _Alloc >

This is an SGI extension.

Generated by Doxygen
5.527 __gnu_cxx::hash_multimap< _Key, _Tp, _HashFn, _EqualKey, _Alloc > Class Template Reference 2097

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

The documentation for this class was generated from the following file:

• hash_map

5.527 __gnu_cxx::hash_multimap< _Key, _Tp, _HashFn, _EqualKey, _Alloc > Class


Template Reference
#include <hash_map>

Public Types

• typedef _Ht::allocator_type allocator_type


• typedef _Ht::const_iterator const_iterator
• typedef _Ht::const_pointer const_pointer
• typedef _Ht::const_reference const_reference
• typedef _Tp data_type
• typedef _Ht::difference_type difference_type
• typedef _Ht::hasher hasher
• typedef _Ht::iterator iterator
• typedef _Ht::key_equal key_equal
• typedef _Ht::key_type key_type
• typedef _Tp mapped_type
• typedef _Ht::pointer pointer
• typedef _Ht::reference reference
• typedef _Ht::size_type size_type
• typedef _Ht::value_type value_type

Public Member Functions

• template<class _InputIterator >


hash_multimap (_InputIterator __f, _InputIterator __l)
• template<class _InputIterator >
hash_multimap (_InputIterator __f, _InputIterator __l, size_type __n)
• template<class _InputIterator >
hash_multimap (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf)
• template<class _InputIterator >
hash_multimap (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf, const key_equal &_←-
_eql, const allocator_type &__a=allocator_type())
• hash_multimap (size_type __n)
• hash_multimap (size_type __n, const hasher &__hf)
• hash_multimap (size_type __n, const hasher &__hf, const key_equal &__eql, const allocator_type &__←-
a=allocator_type())
• iterator begin ()
• const_iterator begin () const
• size_type bucket_count () const
• void clear ()
• size_type count (const key_type &__key) const
• size_type elems_in_bucket (size_type __n) const
• bool empty () const
• iterator end ()

Generated by Doxygen
2098

• const_iterator end () const


• pair< iterator, iterator > equal_range (const key_type &__key)
• pair< const_iterator, const_iterator > equal_range (const key_type &__key) const
• size_type erase (const key_type &__key)
• void erase (iterator __f, iterator __l)
• void erase (iterator __it)
• iterator find (const key_type &__key)
• const_iterator find (const key_type &__key) const
• allocator_type get_allocator () const
• hasher hash_funct () const
• template<class _InputIterator >
void insert (_InputIterator __f, _InputIterator __l)
• iterator insert (const value_type &__obj)
• iterator insert_noresize (const value_type &__obj)
• key_equal key_eq () const
• size_type max_bucket_count () const
• size_type max_size () const
• void resize (size_type __hint)
• size_type size () const
• void swap (hash_multimap &__hs)

Friends

• template<class _K1 , class _T1 , class _HF , class _EqK , class _Al >
bool operator== (const hash_multimap< _K1, _T1, _HF, _EqK, _Al > &, const hash_multimap< _K1, _T1, _HF,
_EqK, _Al > &)

5.527.1 Detailed Description

template<class _Key, class _Tp, class _HashFn = hash<_Key>, class _EqualKey = equal_to<_Key>, class
_Alloc = allocator<_Tp>>
class __gnu_cxx::hash_multimap< _Key, _Tp, _HashFn, _EqualKey, _Alloc >

This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html

The documentation for this class was generated from the following file:

• hash_map

5.528 __gnu_cxx::hash_multiset< _Value, _HashFcn, _EqualKey, _Alloc > Class Template


Reference
#include <hash_set>

Public Types

• typedef _Ht::allocator_type allocator_type


• typedef _Ht::const_iterator const_iterator
• typedef _Alloc::const_pointer const_pointer
• typedef _Alloc::const_reference const_reference
• typedef _Ht::difference_type difference_type

Generated by Doxygen
5.528 __gnu_cxx::hash_multiset< _Value, _HashFcn, _EqualKey, _Alloc > Class Template Reference 2099

• typedef _Ht::hasher hasher


• typedef _Ht::const_iterator iterator
• typedef _Ht::key_equal key_equal
• typedef _Ht::key_type key_type
• typedef _Alloc::pointer pointer
• typedef _Alloc::reference reference
• typedef _Ht::size_type size_type
• typedef _Ht::value_type value_type

Public Member Functions

• template<class _InputIterator >


hash_multiset (_InputIterator __f, _InputIterator __l)
• template<class _InputIterator >
hash_multiset (_InputIterator __f, _InputIterator __l, size_type __n)
• template<class _InputIterator >
hash_multiset (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf)
• template<class _InputIterator >
hash_multiset (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf, const key_equal &__eql,
const allocator_type &__a=allocator_type())
• hash_multiset (size_type __n)
• hash_multiset (size_type __n, const hasher &__hf)
• hash_multiset (size_type __n, const hasher &__hf, const key_equal &__eql, const allocator_type &__←-
a=allocator_type())
• iterator begin () const
• size_type bucket_count () const
• void clear ()
• size_type count (const key_type &__key) const
• size_type elems_in_bucket (size_type __n) const
• bool empty () const
• iterator end () const
• pair< iterator, iterator > equal_range (const key_type &__key) const
• size_type erase (const key_type &__key)
• void erase (iterator __f, iterator __l)
• void erase (iterator __it)
• iterator find (const key_type &__key) const
• allocator_type get_allocator () const
• hasher hash_funct () const
• template<class _InputIterator >
void insert (_InputIterator __f, _InputIterator __l)
• iterator insert (const value_type &__obj)
• iterator insert_noresize (const value_type &__obj)
• key_equal key_eq () const
• size_type max_bucket_count () const
• size_type max_size () const
• void resize (size_type __hint)
• size_type size () const
• void swap (hash_multiset &hs)

Generated by Doxygen
2100

Friends

• template<class _Val , class _HF , class _EqK , class _Al >


bool operator== (const hash_multiset< _Val, _HF, _EqK, _Al > &, const hash_multiset< _Val, _HF, _EqK, _Al
> &)

5.528.1 Detailed Description

template<class _Value, class _HashFcn = hash<_Value>, class _EqualKey = equal_to<_Value>, class _Alloc
= allocator<_Value>>
class __gnu_cxx::hash_multiset< _Value, _HashFcn, _EqualKey, _Alloc >

This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
The documentation for this class was generated from the following file:
• hash_set

5.529 __gnu_pbds::hash_prime_size_policy Class Reference


#include <hash_policy.hpp>

Public Types

• typedef std::size_t size_type

Public Member Functions

• hash_prime_size_policy (size_type start_size=8)


• void swap (hash_prime_size_policy &other)

Protected Member Functions

• size_type get_nearest_larger_size (size_type size) const


• size_type get_nearest_smaller_size (size_type size) const

5.529.1 Detailed Description

A size policy whose sequence of sizes form a nearly-exponential sequence of primes.

5.529.2 Member Typedef Documentation

size_type

std::size_t __gnu_pbds::hash_prime_size_policy::size_type
Size type.

5.529.3 Constructor & Destructor Documentation

hash_prime_size_policy()

__gnu_pbds::hash_prime_size_policy::hash_prime_size_policy (
size_type start_size = 8) [inline]
Default constructor, or onstructor taking a start_size The policy will use the sequence of sizes approximately start_size,
start_size∗ 2, start_size∗ 2∧ 2, ...
The documentation for this class was generated from the following file:

Generated by Doxygen
5.530 __gnu_cxx::hash_set< _Value, _HashFcn, _EqualKey, _Alloc > Class Template Reference 2101

• hash_policy.hpp

5.530 __gnu_cxx::hash_set< _Value, _HashFcn, _EqualKey, _Alloc > Class Template


Reference
#include <hash_set>

Public Types

• typedef _Ht::allocator_type allocator_type


• typedef _Ht::const_iterator const_iterator
• typedef _Alloc_traits::const_pointer const_pointer
• typedef _Alloc_traits::const_reference const_reference
• typedef _Ht::difference_type difference_type
• typedef _Ht::hasher hasher
• typedef _Ht::const_iterator iterator
• typedef _Ht::key_equal key_equal
• typedef _Ht::key_type key_type
• typedef _Alloc_traits::pointer pointer
• typedef _Alloc_traits::reference reference
• typedef _Ht::size_type size_type
• typedef _Ht::value_type value_type

Public Member Functions

• template<class _InputIterator >


hash_set (_InputIterator __f, _InputIterator __l)
• template<class _InputIterator >
hash_set (_InputIterator __f, _InputIterator __l, size_type __n)
• template<class _InputIterator >
hash_set (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf)
• template<class _InputIterator >
hash_set (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf, const key_equal &__eql,
const allocator_type &__a=allocator_type())
• hash_set (size_type __n)
• hash_set (size_type __n, const hasher &__hf)
• hash_set (size_type __n, const hasher &__hf, const key_equal &__eql, const allocator_type &__a=allocator_←-
type())
• iterator begin () const
• size_type bucket_count () const
• void clear ()
• size_type count (const key_type &__key) const
• size_type elems_in_bucket (size_type __n) const
• bool empty () const
• iterator end () const
• pair< iterator, iterator > equal_range (const key_type &__key) const
• size_type erase (const key_type &__key)
• void erase (iterator __f, iterator __l)
• void erase (iterator __it)
• iterator find (const key_type &__key) const
• allocator_type get_allocator () const
• hasher hash_funct () const

Generated by Doxygen
2102

• template<class _InputIterator >


void insert (_InputIterator __f, _InputIterator __l)
• pair< iterator, bool > insert (const value_type &__obj)
• pair< iterator, bool > insert_noresize (const value_type &__obj)
• key_equal key_eq () const
• size_type max_bucket_count () const
• size_type max_size () const
• void resize (size_type __hint)
• size_type size () const
• void swap (hash_set &__hs)

Friends

• template<class _Val , class _HF , class _EqK , class _Al >


bool operator== (const hash_set< _Val, _HF, _EqK, _Al > &, const hash_set< _Val, _HF, _EqK, _Al > &)

5.530.1 Detailed Description

template<class _Value, class _HashFcn = hash<_Value>, class _EqualKey = equal_to<_Value>, class _Alloc
= allocator<_Value>>
class __gnu_cxx::hash_set< _Value, _HashFcn, _EqualKey, _Alloc >

This is an SGI extension.

Todo Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation←-


_style.html
The documentation for this class was generated from the following file:

• hash_set

5.531 __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy,


External_Size_Access, Size_Type > Class Template Reference
#include <hash_policy.hpp>
Inheritance diagram for __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_←-
Access, Size_Type >:

__gnu_pbds::hash_exponential
_size_policy< Size_Type >
__gnu_pbds::hash_standard
_resize_policy< Size_Policy,
Trigger_Policy, External
__gnu_pbds::detail __gnu_pbds::hash_load
_Size_Access, Size_Type >
::hash_load_check_resize _check_resize_trigger
_trigger_size_base< std < External_Load_Access,
::size_t, false > Size_Type >

Public Types

• enum { external_load_access }
• enum { external_size_access }
• typedef Size_Policy size_policy
• typedef Size_Type size_type
• typedef Trigger_Policy trigger_policy

Generated by Doxygen
5.531 __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access,
Size_Type > Class Template Reference 2103

Public Member Functions

• hash_standard_resize_policy ()
• hash_standard_resize_policy (const Size_Policy &r_size_policy)
• hash_standard_resize_policy (const Size_Policy &r_size_policy, const Trigger_Policy &r_trigger_policy)
• size_type get_actual_size () const
• std::pair< float, float > get_loads () const
• Size_Policy & get_size_policy ()
• const Size_Policy & get_size_policy () const
• Trigger_Policy & get_trigger_policy ()
• const Trigger_Policy & get_trigger_policy () const
• void resize (size_type suggested_new_size)
• void set_loads (std::pair< float, float > load_pair)
• void swap (hash_exponential_size_policy< Size_Type > &other)
• void swap (hash_load_check_resize_trigger &other)
• void swap (hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >
&other)

Protected Member Functions

• size_type get_nearest_larger_size (size_type size) const


• size_type get_nearest_smaller_size (size_type size) const
• size_type get_new_size (size_type size, size_type num_used_e) const
• bool is_grow_needed (size_type size, size_type num_entries) const
• bool is_resize_needed () const
• void notify_cleared ()
• void notify_erase_search_collision ()
• void notify_erase_search_end ()
• void notify_erase_search_start ()
• void notify_erased (size_type num_e)
• void notify_externally_resized (size_type new_size)
• void notify_find_search_collision ()
• void notify_find_search_end ()
• void notify_find_search_start ()
• void notify_insert_search_collision ()
• void notify_insert_search_end ()
• void notify_insert_search_start ()
• void notify_inserted (size_type num_e)
• void notify_resized (size_type new_size)

5.531.1 Detailed Description

template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_←-


check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t>
class __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_←-
Type >

A resize policy which delegates operations to size and trigger policies.

5.531.2 Member Enumeration Documentation

anonymous enum

template<bool External_Load_Access = false, typename Size_Type = std::size_t>


anonymous enum [inherited]

Generated by Doxygen
2104

Enumerator

external_load_access Specifies whether the load factor can be accessed externally. The two options have
different trade-offs in terms of flexibility, genericity, and encapsulation.

5.531.3 Constructor & Destructor Documentation

hash_standard_resize_policy() [1/3]

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
__gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size←-
_Type >::hash_standard_resize_policy ()
Default constructor.

hash_standard_resize_policy() [2/3]

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
__gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size←-
_Type >::hash_standard_resize_policy (
const Size_Policy & r_size_policy)
constructor taking some policies r_size_policy will be copied by the Size_Policy object of this object.

hash_standard_resize_policy() [3/3]

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
__gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size←-
_Type >::hash_standard_resize_policy (
const Size_Policy & r_size_policy,
const Trigger_Policy & r_trigger_policy)
constructor taking some policies. r_size_policy will be copied by the Size_Policy object of this object. r_trigger_policy
will be copied by the Trigger_Policy object of this object.

5.531.4 Member Function Documentation

get_actual_size()

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >←-
::size_type __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_←-
Access, Size_Type >::get_actual_size () const [inline]
Returns the actual size of the container.
References __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::external_load_access.

get_loads()

template<bool External_Load_Access, typename Size_Type >


std::pair< float, float > __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size←-
_Type >::get_loads () const [inline], [inherited]
Returns a pair of the minimal and maximal loads, respectively.

Generated by Doxygen
5.531 __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access,
Size_Type > Class Template Reference 2105

get_new_size()

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >←-
::size_type __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_←-
Access, Size_Type >::get_new_size (
size_type size,
size_type num_used_e) const [protected]
Queries what the new size should be, when the container is resized naturally. The current __size of the container is
size, and the number of used entries within the container is num_used_e.

get_size_policy() [1/2]

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
Size_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_←-
Size_Access, Size_Type >::get_size_policy ()
Access to the Size_Policy object used.

get_size_policy() [2/2]

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
const Size_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External←-
_Size_Access, Size_Type >::get_size_policy () const
Const access to the Size_Policy object used.

get_trigger_policy() [1/2]

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
Trigger_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_←-
Size_Access, Size_Type >::get_trigger_policy ()
Access to the Trigger_Policy object used.

get_trigger_policy() [2/2]

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
const Trigger_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy,
External_Size_Access, Size_Type >::get_trigger_policy () const
Access to the Trigger_Policy object used.

resize()

template<typename Size_Policy , typename Trigger_Policy , bool External_Size_Access, typename


Size_Type >
void __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access,
Size_Type >::resize (
size_type suggested_new_size)
Resizes the container to suggested_new_size, a suggested size (the actual size will be determined by the Size_Policy
object).

Generated by Doxygen
2106

set_loads()

template<bool External_Load_Access, typename Size_Type >


void __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::set_loads (
std::pair< float, float > load_pair) [inherited]
Sets the loads through a pair of the minimal and maximal loads, respectively.
The documentation for this class was generated from the following file:

• hash_policy.hpp

5.532 std::chrono::hh_mm_ss< _Duration > Class Template Reference


#include <chrono>

Public Types

• using precision

Public Member Functions

• constexpr hh_mm_ss (_Duration __d)


• constexpr chrono::hours hours () const noexcept
• constexpr bool is_negative () const noexcept
• constexpr chrono::minutes minutes () const noexcept
• constexpr operator precision () const noexcept
• constexpr chrono::seconds seconds () const noexcept
• constexpr precision subseconds () const noexcept
• constexpr precision to_duration () const noexcept

Static Public Attributes

• static constexpr unsigned fractional_width

Friends

• template<typename >
struct __detail::__utc_leap_second

5.532.1 Detailed Description

template<typename _Duration>
class std::chrono::hh_mm_ss< _Duration >

Utility for splitting a duration into hours, minutes, and seconds


This is a convenience type that provides accessors for the constituent parts (hours, minutes, seconds and subseconds)
of a duration.
Since

C++20

The documentation for this class was generated from the following file:

• chrono

5.533 std::locale::id Class Reference


#include <locale_classes.h>

Generated by Doxygen
5.533 std::locale::id Class Reference 2107

Public Member Functions

• id ()
• size_t _M_id () const throw ()

Friends

• template<typename _Facet >


const _Facet ∗ __try_use_facet (const locale &__loc)
• template<typename _Facet >
bool has_facet (const locale &__loc) throw ()
• class locale
• class locale::_Impl
• template<typename _Facet >
const _Facet & use_facet (const locale &__loc)

5.533.1 Detailed Description

Facet ID class.
The ID class provides facets with an index used to identify them. Every facet class must define a public static member
locale::id, or be derived from a facet that provides this member, otherwise the facet cannot be used in a locale. The
locale::id ensures that each class type gets a unique identifier.

5.533.2 Constructor & Destructor Documentation

id()

std::locale::id::id () [inline]
Constructor.

5.533.3 Friends And Related Symbol Documentation

has_facet

template<typename _Facet >


bool has_facet (
const locale & __loc) throw ( ) [friend]
Test for the presence of a facet.
has_facet tests the locale argument for the presence of the facet type provided as the template parameter. Facets
derived from the facet parameter will also return true.

Template Parameters

_Facet The facet type to test the presence of.

Parameters
__loc The locale to test.

Returns

true if __loc contains a facet of type _Facet, else false.

Generated by Doxygen
2108

use_facet

template<typename _Facet >


const _Facet & use_facet (
const locale & __loc) [friend]
Return a facet.
use_facet looks for and returns a reference to a facet of type Facet where Facet is the template parameter. If has_←-
facet(locale) is true, there is a suitable facet to return. It throws std::bad_cast if the locale doesn't contain a facet of type
Facet.

Template Parameters

_Facet The facet type to access.

Parameters
__loc The locale to use.

Returns

Reference to facet of type Facet.

Exceptions

std::bad_cast if __loc doesn't contain a facet of type _Facet.

The documentation for this class was generated from the following file:
• locale_classes.h

5.534 std::thread::id Class Reference


#include <thread>

Public Member Functions

• id (native_handle_type __id)

Friends

• struct hash< id >


• template<class _CharT , class _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__out, id __id)
• strong_ordering operator<=> (id __x, id __y) noexcept
• bool operator== (id __x, id __y) noexcept
• class thread

Related Symbols

(Note that these are not member symbols.)


• bool operator== (thread::id __x, thread::id __y) noexcept

• strong_ordering operator (thread::id __x, thread::id __y) noexcept


• template<class _CharT , class _Traits >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__out, thread::id __id)

Generated by Doxygen
5.535 std::identity Struct Reference 2109

5.534.1 Detailed Description

A std::thread::id is a unique identifier for a thread.

Since

C++11

The documentation for this class was generated from the following files:

• std_thread.h
• thread

5.535 std::identity Struct Reference


#include <ranges_cmp.h>

Public Types

• using is_transparent

Public Member Functions

• template<typename _Tp >


constexpr _Tp && operator() (_Tp &&__t) const noexcept

5.535.1 Detailed Description

[func.identity] The identity function.


The documentation for this struct was generated from the following file:

• ranges_cmp.h

5.536 std::experimental::fundamentals_v1::in_place_t Struct Reference


#include <optional>

5.536.1 Detailed Description

Tag type for in-place construction.


The documentation for this struct was generated from the following file:

• experimental/optional

5.537 std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > Class


Template Reference
#include <random>

Public Types

• typedef _UIntType result_type

Generated by Doxygen
2110

Public Member Functions

• independent_bits_engine ()
• independent_bits_engine (_RandomNumberEngine &&__rng)
• template<typename _Sseq , typename = _If_seed_seq<_Sseq>>
independent_bits_engine (_Sseq &__q)
• independent_bits_engine (const _RandomNumberEngine &__rng)
• independent_bits_engine (result_type __s)
• const _RandomNumberEngine & base () const noexcept
• void discard (unsigned long long __z)
• result_type operator() ()
• void seed ()
• template<typename _Sseq >
_If_seed_seq< _Sseq > seed (_Sseq &__q)
• void seed (result_type __s)

Static Public Member Functions

• static constexpr result_type max ()


• static constexpr result_type min ()

Friends

• bool operator== (const independent_bits_engine &__lhs, const independent_bits_engine &__rhs)


• template<typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is,
std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > &__x)

5.537.1 Detailed Description

template<typename _RandomNumberEngine, size_t __w, typename _UIntType>


class std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >

Produces random numbers by combining random numbers from some base engine to produce random numbers with a
specified number of bits __w.

Since

C++11

5.537.2 Member Typedef Documentation

result_type

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


_UIntType std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::result_type
The type of the generated random value.

5.537.3 Constructor & Destructor Documentation

independent_bits_engine() [1/5]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::independent_bits_engine ()
[inline]
Constructs a default independent_bits_engine engine.
The underlying engine is default constructed as well.

Generated by Doxygen
5.537 std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > Class Template Reference
2111

independent_bits_engine() [2/5]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::independent_bits_engine (
const _RandomNumberEngine & __rng) [inline], [explicit]
Copy constructs a independent_bits_engine engine.
Copies an existing base class random number generator.

Parameters

__rng An existing (base class) engine object.

independent_bits_engine() [3/5]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::independent_bits_engine (
_RandomNumberEngine && __rng) [inline], [explicit]
Move constructs a independent_bits_engine engine.
Copies an existing base class random number generator.

Parameters

__rng An existing (base class) engine object.

independent_bits_engine() [4/5]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::independent_bits_engine (
result_type __s) [inline], [explicit]
Seed constructs a independent_bits_engine engine.
Constructs the underlying generator engine seeded with __s.

Parameters

_←- A seed value for the base class engine.


_s

independent_bits_engine() [5/5]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


template<typename _Sseq , typename = _If_seed_seq<_Sseq>>
std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::independent_bits_engine (
_Sseq & __q) [inline], [explicit]
Generator construct a independent_bits_engine engine.

Parameters
_←- A seed sequence.
_q

Generated by Doxygen
2112

5.537.4 Member Function Documentation

base()

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


const _RandomNumberEngine & std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >←-
::base () const [inline], [noexcept]
Gets a const reference to the underlying generator engine object.

discard()

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


void std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::discard (
unsigned long long __z) [inline]
Discard a sequence of random numbers.

max()

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


static constexpr result_type std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType
>::max () [inline], [static], [constexpr]
Gets the maximum value in the generated random number range.

min()

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


static constexpr result_type std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType
>::min () [inline], [static], [constexpr]
Gets the minimum value in the generated random number range.

operator()()

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::result_type std::independent_bits_engine<
_RandomNumberEngine, __w, _UIntType >::operator() ()
Gets the next value in the generated random number sequence.
References std::__lg(), and std::numeric_limits< _Tp >::max().

seed() [1/3]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


void std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::seed () [inline]
Reseeds the independent_bits_engine object with the default seed for the underlying base class generator engine.

seed() [2/3]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


template<typename _Sseq >
_If_seed_seq< _Sseq > std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::seed
(
_Sseq & __q) [inline]
Reseeds the independent_bits_engine object with the given seed sequence.

Parameters

_←- A seed generator function.


_q

Generated by Doxygen
5.537 std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > Class Template Reference
2113

seed() [3/3]

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


void std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::seed (
result_type __s) [inline]
Reseeds the independent_bits_engine object with the default seed for the underlying base class generator engine.

5.537.5 Friends And Related Symbol Documentation

operator==

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


bool operator== (
const independent_bits_engine< _RandomNumberEngine, __w, _UIntType > & __lhs,
const independent_bits_engine< _RandomNumberEngine, __w, _UIntType > & __rhs) [friend]
Compares two independent_bits_engine random number generator objects of the same type for equality.

Parameters
__lhs A independent_bits_engine random number generator object.
__rhs Another independent_bits_engine random number generator object.

Returns

true if the infinite sequences of generated values would be equal, false otherwise.

operator>>

template<typename _RandomNumberEngine , size_t __w, typename _UIntType >


template<typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (
std::basic_istream< _CharT, _Traits > & __is,
std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > & __x) [friend]
Extracts the current state of a % subtract_with_carry_engine random number generator engine __x from the input
stream __is.

Parameters
_←- An input stream.
_is
_←- A independent_bits_engine random number generator engine.
_x

Returns

The input stream with the state of __x extracted or in an error state.

The documentation for this class was generated from the following files:

• random.h
• bits/random.tcc

Generated by Doxygen
2114

5.538 std::indirect_array< _Tp > Class Template Reference


#include <indirect_array.h>

Public Types

• typedef _Tp value_type

Public Member Functions

• indirect_array (const indirect_array &)


• template<class _Dom >
void operator%= (const _Expr< _Dom, _Tp > &) const
• void operator%= (const valarray< _Tp > &) const
• template<class _Dom >
void operator&= (const _Expr< _Dom, _Tp > &) const
• void operator&= (const valarray< _Tp > &) const
• template<class _Dom >
void operator∗= (const _Expr< _Dom, _Tp > &) const
• void operator∗= (const valarray< _Tp > &) const
• template<class _Dom >
void operator+= (const _Expr< _Dom, _Tp > &) const
• void operator+= (const valarray< _Tp > &) const
• template<class _Dom >
void operator-= (const _Expr< _Dom, _Tp > &) const
• void operator-= (const valarray< _Tp > &) const
• template<class _Dom >
void operator/= (const _Expr< _Dom, _Tp > &) const
• void operator/= (const valarray< _Tp > &) const
• template<class _Dom >
void operator<<= (const _Expr< _Dom, _Tp > &) const
• void operator<<= (const valarray< _Tp > &) const
• template<class _Dom >
void operator= (const _Expr< _Dom, _Tp > &) const
• void operator= (const _Tp &) const
• indirect_array & operator= (const indirect_array &)
• template<typename _Tp >
indirect_array< _Tp > & operator= (const indirect_array< _Tp > &__a)
• void operator= (const valarray< _Tp > &) const
• template<class _Dom >
void operator>>= (const _Expr< _Dom, _Tp > &) const
• void operator>>= (const valarray< _Tp > &) const
• template<class _Dom >
void operator∧ = (const _Expr< _Dom, _Tp > &) const
• void operator∧ = (const valarray< _Tp > &) const
• template<class _Dom >
void operator|= (const _Expr< _Dom, _Tp > &) const
• void operator|= (const valarray< _Tp > &) const

Friends

• class gslice_array< _Tp >


• class valarray< _Tp >

Generated by Doxygen
5.538 std::indirect_array< _Tp > Class Template Reference 2115

5.538.1 Detailed Description

template<class _Tp>
class std::indirect_array< _Tp >

Reference to arbitrary subset of an array.


An indirect_array is a reference to the actual elements of an array specified by an ordered array of indices. The way
to get an indirect_array is to call operator[ ](valarray<size_t>) on a valarray. The returned indirect_array then permits
carrying operations out on the referenced subset of elements in the original valarray.
For example, if an indirect_array is obtained using the array (4,2,0) as an argument, and then assigned to an array
containing (1,2,3), then the underlying array will have array[0]==3, array[2]==2, and array[4]==1.

Parameters
Tp Element type.

5.538.2 Constructor & Destructor Documentation

indirect_array()

template<class _Tp >


std::indirect_array< _Tp >::indirect_array (
const indirect_array< _Tp > & )
Copy constructor. Both slices refer to the same underlying array.

5.538.3 Member Function Documentation

operator%=()

template<class _Tp >


void std::indirect_array< _Tp >::operator%= (
const valarray< _Tp > & ) const
Modulo slice elements by corresponding elements of v.

operator&=()

template<class _Tp >


void std::indirect_array< _Tp >::operator&= (
const valarray< _Tp > & ) const
Logical and slice elements with corresponding elements of v.

operator∗=()

template<class _Tp >


void std::indirect_array< _Tp >::operator∗= (
const valarray< _Tp > & ) const
Multiply slice elements by corresponding elements of v.

operator+=()

template<class _Tp >


void std::indirect_array< _Tp >::operator+= (
const valarray< _Tp > & ) const
Add corresponding elements of v to slice elements.

Generated by Doxygen
2116

operator-=()

template<class _Tp >


void std::indirect_array< _Tp >::operator-= (
const valarray< _Tp > & ) const
Subtract corresponding elements of v from slice elements.

operator/=()

template<class _Tp >


void std::indirect_array< _Tp >::operator/= (
const valarray< _Tp > & ) const
Divide slice elements by corresponding elements of v.

operator<<=()

template<class _Tp >


void std::indirect_array< _Tp >::operator<<= (
const valarray< _Tp > & ) const
Left shift slice elements by corresponding elements of v.

operator=()

template<class _Tp >


indirect_array & std::indirect_array< _Tp >::operator= (
const indirect_array< _Tp > & )
Assignment operator. Assigns elements to corresponding elements of a.

operator>>=()

template<class _Tp >


void std::indirect_array< _Tp >::operator>>= (
const valarray< _Tp > & ) const
Right shift slice elements by corresponding elements of v.

operator∧ =()

template<class _Tp >


void std::indirect_array< _Tp >::operator∧ = (
const valarray< _Tp > & ) const
Logical xor slice elements with corresponding elements of v.

operator"|=()

template<class _Tp >


void std::indirect_array< _Tp >::operator|= (
const valarray< _Tp > & ) const
Logical or slice elements with corresponding elements of v.
The documentation for this class was generated from the following files:

• valarray
• indirect_array.h

5.539 std::initializer_list< _E > Class Template Reference


#include <initializer_list>

Generated by Doxygen
5.539 std::initializer_list< _E > Class Template Reference 2117

Public Types

• typedef const _E ∗ const_iterator


• typedef const _E & const_reference
• typedef const _E ∗ iterator
• typedef const _E & reference
• typedef size_t size_type
• typedef _E value_type

Public Member Functions

• constexpr const_iterator begin () const noexcept


• constexpr const_iterator end () const noexcept
• constexpr size_type size () const noexcept

Related Symbols

(Note that these are not member symbols.)

• template<class _Tp >


constexpr const _Tp ∗ begin (initializer_list< _Tp > __ils) noexcept
• template<class _Tp >
constexpr const _Tp ∗ end (initializer_list< _Tp > __ils) noexcept

5.539.1 Detailed Description

template<class _E>
class std::initializer_list< _E >

initializer_list

5.539.2 Friends And Related Symbol Documentation

begin()

template<class _Tp >


const _Tp ∗ begin (
initializer_list< _Tp > __ils) [related]
Return an iterator pointing to the first element of the initializer_list.

Parameters
_←- Initializer list.
_ils

end()

template<class _Tp >


const _Tp ∗ end (
initializer_list< _Tp > __ils) [related]
Return an iterator pointing to one past the last element of the initializer_list.

Generated by Doxygen
2118

Parameters
_←- Initializer list.
_ils

The documentation for this class was generated from the following file:

• initializer_list

5.540 std::input_iterator_tag Struct Reference


#include <stl_iterator_base_types.h>
Inheritance diagram for std::input_iterator_tag:

std::input_iterator_tag

std::forward_iterator_tag

std::bidirectional
_iterator_tag

std::random_access
_iterator_tag

std::contiguous_iterator_tag

5.540.1 Detailed Description

Marking input iterators.


The documentation for this struct was generated from the following file:

• stl_iterator_base_types.h

5.541 __gnu_pbds::insert_error Struct Reference


#include <exception.hpp>

Generated by Doxygen
5.542 std::insert_iterator< _Container > Class Template Reference 2119

Inheritance diagram for __gnu_pbds::insert_error:

std::exception

std::logic_error

__gnu_pbds::container
_error

__gnu_pbds::insert
_error

Public Member Functions

• virtual const char ∗ what () const noexcept

5.541.1 Detailed Description

An entry cannot be inserted into a container object for logical reasons (not, e.g., if memory is unabvailable, in which
case the allocator_type's exception will be thrown).

5.541.2 Member Function Documentation

what()

virtual const char ∗ std::logic_error::what () const [virtual], [noexcept], [inherited]


Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::exception.


Reimplemented in std::future_error.
The documentation for this struct was generated from the following file:

• exception.hpp

5.542 std::insert_iterator< _Container > Class Template Reference


#include <stl_iterator.h>

Generated by Doxygen
2120

Inheritance diagram for std::insert_iterator< _Container >:

std::iterator< output
_iterator_tag, void,
void, void, void >

std::insert_iterator
< _Container >

Public Types

• typedef _Container container_type


• using difference_type
• typedef output_iterator_tag iterator_category
• typedef void pointer
• typedef void reference
• typedef void value_type

Public Member Functions

• constexpr insert_iterator (_Container &__x, _Iter __i)


• constexpr insert_iterator & operator∗ ()
• constexpr insert_iterator & operator++ ()
• constexpr insert_iterator & operator++ (int)
• constexpr insert_iterator & operator= (const typename _Container::value_type &__value)
• constexpr insert_iterator & operator= (typename _Container::value_type &&__value)

Protected Attributes

• _Container ∗ container
• _Iter iter

5.542.1 Detailed Description

template<typename _Container>
class std::insert_iterator< _Container >

Turns assignment into insertion.


These are output iterators, constructed from a container-of-T. Assigning a T to the iterator inserts it in the container at
the iterator's position, rather than overwriting the value at that position.
(Sequences will actually insert a copy of the value before the iterator's position.)
Tip: Using the inserter function to create these iterators can save typing.

Generated by Doxygen
5.542 std::insert_iterator< _Container > Class Template Reference 2121

5.542.2 Member Typedef Documentation

container_type

template<typename _Container >


_Container std::insert_iterator< _Container >::container_type
A nested typedef for the type of whatever container you used.

iterator_category

output_iterator_tag std::iterator< output_iterator_tag, void, void, void, void >::iterator_←-


category [inherited]
One of the tag types.

pointer

void std::iterator< output_iterator_tag, void, void, void, void >::pointer [inherited]


This type represents a pointer-to-value_type.

reference

void std::iterator< output_iterator_tag, void, void, void, void >::reference [inherited]


This type represents a reference-to-value_type.

value_type

void std::iterator< output_iterator_tag, void, void, void, void >::value_type [inherited]


The type "pointed to" by the iterator.

5.542.3 Constructor & Destructor Documentation

insert_iterator()

template<typename _Container >


std::insert_iterator< _Container >::insert_iterator (
_Container & __x,
_Iter __i) [inline], [constexpr]
The only way to create this iterator is with a container and an initial position (a normal iterator into the container).

5.542.4 Member Function Documentation

operator∗()

template<typename _Container >


insert_iterator & std::insert_iterator< _Container >::operator∗ () [inline], [nodiscard], [constexpr]
Simply returns ∗this.

operator++() [1/2]

template<typename _Container >


insert_iterator & std::insert_iterator< _Container >::operator++ () [inline], [constexpr]
Simply returns ∗this. (This iterator does not move.)

Generated by Doxygen
2122

operator++() [2/2]

template<typename _Container >


insert_iterator & std::insert_iterator< _Container >::operator++ (
int ) [inline], [constexpr]
Simply returns ∗this. (This iterator does not move.)

operator=()

template<typename _Container >


insert_iterator & std::insert_iterator< _Container >::operator= (
const typename _Container::value_type & __value) [inline], [constexpr]

Parameters

__value An instance of whatever type container_type::const_reference is; presumably a reference-to-const T for


container<T>.

Returns

This iterator, for chained operations.

This kind of iterator maintains its own position in the container. Assigning a value to the iterator will insert the value into
the container at the place before the iterator.
The position is maintained such that subsequent assignments will insert values immediately after one another. For
example,
// vector v contains A and Z

insert_iterator i (v, ++v.begin());


i = 1;
i = 2;
i = 3;

// vector v contains A, 1, 2, 3, and Z


The documentation for this class was generated from the following file:

• bits/stl_iterator.h

5.543 std::integer_sequence< _Tp, _Idx > Struct Template Reference


#include <utility.h>

Public Types

• typedef _Tp value_type

Static Public Member Functions

• static constexpr size_t size () noexcept

5.543.1 Detailed Description

template<typename _Tp, _Tp... _Idx>


struct std::integer_sequence< _Tp, _Idx >

Class template integer_sequence.


The documentation for this struct was generated from the following file:

• utility.h

Generated by Doxygen
5.544 std::integral_constant< _Tp, __v > Struct Template Reference 2123

5.544 std::integral_constant< _Tp, __v > Struct Template Reference


#include <type_traits>

Public Types

• using type
• using value_type

Public Member Functions

• constexpr operator value_type () const noexcept

Static Public Attributes

• static constexpr _Tp value

5.544.1 Detailed Description

template<typename _Tp, _Tp __v>


struct std::integral_constant< _Tp, __v >

integral_constant
The documentation for this struct was generated from the following file:

• type_traits

5.545 std::invalid_argument Class Reference


#include <stdexcept>
Inheritance diagram for std::invalid_argument:

std::exception

std::logic_error

std::invalid_argument

Public Member Functions

• invalid_argument (const char ∗)


• invalid_argument (const invalid_argument &)=default

Generated by Doxygen
2124

• invalid_argument (const string &__arg)


• invalid_argument (invalid_argument &&)=default
• invalid_argument & operator= (const invalid_argument &)=default
• invalid_argument & operator= (invalid_argument &&)=default
• virtual const char ∗ what () const noexcept

5.545.1 Detailed Description

Thrown to report invalid arguments to functions.

5.545.2 Member Function Documentation

what()

virtual const char ∗ std::logic_error::what () const [virtual], [noexcept], [inherited]


Returns a C-style character string describing the general cause of the current error (the same string passed to the ctor).

Reimplemented from std::exception.


Reimplemented in std::future_error.
The documentation for this class was generated from the following file:

• stdexcept

5.546 std::ios_base Class Reference


#include <ios_base.h>
Inheritance diagram for std::ios_base:

std::basic_istream
< _CharT, char_traits
< _CharT > >
std::basic_iostream
< _CharT, char_traits
< _CharT > >
std::basic_ostream
std::basic_ios< _CharT,
< _CharT, char_traits
char_traits< _CharT > >
< _CharT > >

std::basic_istream
< char >

std::basic_istream std::basic_iostream
< char, _Traits > < char >
std::basic_ios< char,
std::ios_base
_Traits >
std::basic_ostream
< char, _Traits >
std::basic_ifstream
< _CharT, _Traits >
std::basic_ostream
< char >
std::basic_istringstream
< _CharT, _Traits, _Alloc >
std::basic_ios< _CharT, std::basic_istream std::basic_fstream
_Traits > < _CharT, _Traits > < _CharT, _Traits >
std::basic_iostream
< _CharT, _Traits >
std::basic_ostream std::basic_stringstream
< _CharT, _Traits > < _CharT, _Traits, _Alloc >
std::basic_ofstream
< _CharT, _Traits >

std::basic_ostringstream
< _CharT, _Traits, _Alloc >

Public Types

• enum event { erase_event , imbue_event , copyfmt_event }


• typedef void(∗) event_callback(event __e, ios_base &__b, int __i)

Generated by Doxygen
5.546 std::ios_base Class Reference 2125

• typedef class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags


• typedef _Ios_Iostate iostate
• typedef _Ios_Openmode openmode
• typedef _Ios_Seekdir seekdir

Public Member Functions

• ios_base (const ios_base &)=delete


• virtual ∼ios_base ()
• const locale & _M_getloc () const
• fmtflags flags () const
• fmtflags flags (fmtflags __fmtfl)
• locale getloc () const
• locale imbue (const locale &__loc) throw ()
• long & iword (int __ix)
• ios_base & operator= (const ios_base &)=delete
• streamsize precision () const
• streamsize precision (streamsize __prec)
• void ∗& pword (int __ix)
• void register_callback (event_callback __fn, int __index)
• fmtflags setf (fmtflags __fmtfl)
• fmtflags setf (fmtflags __fmtfl, fmtflags __mask)
• void unsetf (fmtflags __mask)
• streamsize width () const
• streamsize width (streamsize __wide)

Static Public Member Functions

• static bool sync_with_stdio (bool __sync=true)


• static int xalloc () throw ()

Static Public Attributes

• static const openmode __noreplace


• static const fmtflags adjustfield
• static const openmode app
• static const openmode ate
• static const iostate badbit
• static const fmtflags basefield
• static const seekdir beg
• static const openmode binary
• static const fmtflags boolalpha
• static const seekdir cur
• static const fmtflags dec
• static const seekdir end
• static const iostate eofbit
• static const iostate failbit
• static const fmtflags fixed
• static const fmtflags floatfield
• static const iostate goodbit
• static const fmtflags hex
• static const openmode in

Generated by Doxygen
2126

• static const fmtflags internal


• static const fmtflags left
• static const fmtflags oct
• static const openmode out
• static const fmtflags right
• static const fmtflags scientific
• static const fmtflags showbase
• static const fmtflags showpoint
• static const fmtflags showpos
• static const fmtflags skipws
• static const openmode trunc
• static const fmtflags unitbuf
• static const fmtflags uppercase

Protected Types

• enum { _S_local_word_size }

Protected Member Functions

• void _M_call_callbacks (event __ev) throw ()


• void _M_dispose_callbacks (void) throw ()
• _Words & _M_grow_words (int __index, bool __iword)
• void _M_init () throw ()
• void _M_move (ios_base &) noexcept
• void _M_swap (ios_base &__rhs) noexcept

Protected Attributes

• _Callback_list ∗ _M_callbacks
• iostate _M_exception
• fmtflags _M_flags
• locale _M_ios_locale
• _Words _M_local_word [_S_local_word_size]
• streamsize _M_precision
• iostate _M_streambuf_state
• streamsize _M_width
• _Words ∗ _M_word
• int _M_word_size
• _Words _M_word_zero

5.546.1 Detailed Description

The base of the I/O class hierarchy.


This class defines everything that can be defined about I/O that does not depend on the type of characters being input
or output. Most people will only see ios_base when they need to specify the full name of the various I/O flags (e.g.,
the openmodes).

5.546.2 Member Typedef Documentation

event_callback

void(∗) std::ios_base::event_callback(event __e, ios_base &__b, int __i)


The type of an event callback function.

Generated by Doxygen
5.546 std::ios_base Class Reference 2127

Parameters

_←- One of the members of the event enum.


_e
_←- Reference to the ios_base object.
_b
_←- The integer provided when the callback was registered.
_i

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically
imbue(), copyfmt(), and ∼ios().

iostate

_Ios_Iostate std::ios_base::iostate
This is a bitmask type.
_Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type iostate are:

• badbit

• eofbit

• failbit

• goodbit

openmode

_Ios_Openmode std::ios_base::openmode
This is a bitmask type.
_Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect
the Right Thing to happen. Defined objects of type openmode are:

• app

• ate

• binary

• in

• out

• trunc

seekdir

_Ios_Seekdir std::ios_base::seekdir
This is an enumerated type.
_Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

• beg

• cur, equivalent to SEEK_CUR in the C standard library.

• end, equivalent to SEEK_END in the C standard library.

Generated by Doxygen
2128

5.546.3 Member Enumeration Documentation

event

enum std::ios_base::event
The set of events that may be passed to an event callback.
erase_event is used during ∼ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during
copyfmt().

5.546.4 Constructor & Destructor Documentation

∼ios_base()
virtual std::ios_base::∼ios_base () [virtual]
Invokes each callback with erase_event. Destroys local storage.
Note that the ios_base object for the standard streams never gets destroyed. As a result, any callbacks registered with
the standard streams will not get invoked with erase_event (unless copyfmt is used).

5.546.5 Member Function Documentation

_M_getloc()

const locale & std::ios_base::_M_getloc () const [inline]


Locale access.
Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy.


Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >
std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter
std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, istreambuf_iterator< _CharT > >::do_get_weekday(),
std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_pu
std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

flags() [1/2]

fmtflags std::ios_base::flags () const [inline], [nodiscard]


Access to format flags.

Returns

The format control flags for both input and output.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::∼sentry(), std::basic_ios< _CharT, _Traits >::copyfmt(),


std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(),
std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::operator<<(), std::__detail::operator>>(),
std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(),
and std::operator>>().

flags() [2/2]

fmtflags std::ios_base::flags (
fmtflags __fmtfl) [inline]
Setting new format flags all at once.

Generated by Doxygen
5.546 std::ios_base Class Reference 2129

Parameters

__fmtfl The new flags to set.

Returns

The previous format control flags.

This function overwrites all the format flags with __fmtfl.

getloc()

locale std::ios_base::getloc () const [inline], [nodiscard]


Locale access.
Returns

A copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std←-
::locale(), the global C++ locale.
Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(),
std::operator>>(), std::operator>>(), and std::ws().

imbue()

locale std::ios_base::imbue (
const locale & __loc) throw ( )
Setting a new locale.

Parameters
__loc The new locale.

Returns

The previous locale.

Sets the new locale for this stream, and then invokes each callback with imbue_event.
Referenced by std::basic_ios< _CharT, _Traits >::imbue().

iword()

long & std::ios_base::iword (


int __ix) [inline]
Access to integer array.

Parameters
_←- Index into the array.
_ix

Returns

A reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required
to hold the supplied index. All integers in the array are initialized to 0.
The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that
since the array can grow dynamically, it is not safe to hold onto the reference.

Generated by Doxygen
2130

precision() [1/2]

streamsize std::ios_base::precision () const [inline], [nodiscard]


Flags access.

Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189.


Referenced by std::b

You might also like