status_cxx2011.xml revision 1.10
1<section xmlns="http://docbook.org/ns/docbook" version="5.0" 2 xml:id="status.iso.2011" xreflabel="Status C++ 2011"> 3<?dbhtml filename="status_iso_cxx2011.html"?> 4 5<info><title>C++ 2011</title> 6 <keywordset> 7 <keyword>ISO C++</keyword> 8 <keyword>2011</keyword> 9 </keywordset> 10</info> 11 12<para> 13<anchor xml:id="status.iso.200x" /> <!-- preserve links to old section ID --> 14This table is based on the table of contents of ISO/IEC 15JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11 16Final Draft International Standard, Standard for Programming Language C++ 17</para> 18 19<para> 20In this implementation the <literal>-std=gnu++11</literal> or 21<literal>-std=c++11</literal> flag must be used to enable language 22and library 23features. See <link linkend="manual.intro.using.flags">dialect</link> 24options. The pre-defined symbol 25<constant>__cplusplus</constant> is used to check for the 26presence of the required flag. 27GCC 5.1 was the first release with non-experimental C++11 support, 28so the API and ABI of features added in C++11 is only stable 29since that release. 30</para> 31 32<para> 33This status table is based on the table of contents of ISO/IEC 14882:2011. 34</para> 35 36<para> 37This section describes the C++11 support in the GCC 10 release series. 38</para> 39 40<!-- Status is Yes or No, Broken/Partial--> 41<!-- 42 Yes 43 44 No 45 <?dbhtml bgcolor="#C8B0B0" ?> 46 Broken/Partial 47 <?dbhtml bgcolor="#B0B0B0" ?> 48--> 49<table frame="all" xml:id="table.cxx11_status"> 50<title>C++ 2011 Implementation Status</title> 51 52<tgroup cols="4" align="left" colsep="0" rowsep="1"> 53<colspec colname="c1"/> 54<colspec colname="c2"/> 55<colspec colname="c3"/> 56<colspec colname="c4"/> 57 <thead> 58 <row> 59 <entry>Section</entry> 60 <entry>Description</entry> 61 <entry>Status</entry> 62 <entry>Comments</entry> 63 </row> 64 </thead> 65 66 <tbody> 67 68 <row> 69 <entry> 70 <emphasis>18</emphasis> 71 </entry> 72 <entry namest="c2" nameend="c4" align="left"> 73 <emphasis>Language support</emphasis> 74 </entry> 75 </row> 76 77 <row> 78 <entry>18.1</entry> 79 <entry>General</entry> 80 <entry/> 81 <entry/> 82 </row> 83 <row> 84 <entry>18.2</entry> 85 <entry>Types</entry> 86 <entry>Y</entry> 87 <entry/> 88 </row> 89 <row> 90 <entry>18.3</entry> 91 <entry>Implementation properties</entry> 92 <entry/> 93 <entry/> 94 </row> 95 96 <row> 97 <entry>18.3.2</entry> 98 <entry>Numeric Limits</entry> 99 <entry/> 100 <entry/> 101 </row> 102 <row> 103 <entry>18.3.2.3</entry> 104 <entry>Class template <code>numeric_limits</code></entry> 105 <entry>Y</entry> 106 <entry/> 107 </row> 108 <row> 109 <entry>18.3.2.4</entry> 110 <entry><code>numeric_limits</code> members</entry> 111 <entry>Y</entry> 112 <entry/> 113 </row> 114 <row> 115 <?dbhtml bgcolor="#C8B0B0" ?> 116 <entry>18.3.2.5</entry> 117 <entry><code>float_round_style</code></entry> 118 <entry>N</entry> 119 <entry/> 120 </row> 121 <row> 122 <?dbhtml bgcolor="#C8B0B0" ?> 123 <entry>18.3.2.6</entry> 124 <entry><code>float_denorm_style</code></entry> 125 <entry>N</entry> 126 <entry/> 127 </row> 128 <row> 129 <entry>18.3.2.7</entry> 130 <entry><code>numeric_limits</code> specializations</entry> 131 <entry>Y</entry> 132 <entry/> 133 </row> 134 135 <row> 136 <entry>18.3.3</entry> 137 <entry>C Library</entry> 138 <entry>Y</entry> 139 <entry/> 140 </row> 141 142 <row> 143 <entry>18.4</entry> 144 <entry>Integer types</entry> 145 <entry/> 146 <entry/> 147 </row> 148 <row> 149 <entry>18.4.1</entry> 150 <entry>Header <code><cstdint></code> synopsis</entry> 151 <entry>Y</entry> 152 <entry/> 153 </row> 154 <row> 155 <?dbhtml bgcolor="#B0B0B0" ?> 156 <entry>18.5</entry> 157 <entry>Start and termination</entry> 158 <entry>Partial</entry> 159 <entry>C library dependency for quick_exit, at_quick_exit</entry> 160 </row> 161 <row> 162 <entry>18.6</entry> 163 <entry>Dynamic memory management</entry> 164 <entry>Y</entry> 165 <entry/> 166 </row> 167 <row> 168 <entry>18.7</entry> 169 <entry>Type identification</entry> 170 <entry/> 171 <entry/> 172 </row> 173 <row> 174 <entry>18.7.1</entry> 175 <entry>Class type_info</entry> 176 <entry>Y</entry> 177 <entry/> 178 </row> 179 <row> 180 <entry>18.7.2</entry> 181 <entry>Class bad_cast</entry> 182 <entry>Y</entry> 183 <entry/> 184 </row> 185 <row> 186 <entry>18.7.3</entry> 187 <entry>Class bad_typeid</entry> 188 <entry>Y</entry> 189 <entry/> 190 </row> 191 <row> 192 <entry>18.8</entry> 193 <entry>Exception handling</entry> 194 <entry/> 195 <entry/> 196 </row> 197 <row> 198 <entry>18.8.1</entry> 199 <entry>Class exception</entry> 200 <entry>Y</entry> 201 <entry/> 202 </row> 203 <row> 204 <entry>18.8.2</entry> 205 <entry>Class bad_exception</entry> 206 <entry>Y</entry> 207 <entry/> 208 </row> 209 <row> 210 <entry>18.8.3</entry> 211 <entry>Abnormal termination</entry> 212 <entry>Y</entry> 213 <entry/> 214 </row> 215 <row> 216 <entry>18.8.4</entry> 217 <entry><code>uncaught_exception</code></entry> 218 <entry>Y</entry> 219 <entry/> 220 </row> 221 <row> 222 <entry>18.8.5</entry> 223 <entry>Exception Propagation</entry> 224 <entry>Y</entry> 225 <entry/> 226 </row> 227 <row> 228 <entry>18.8.6</entry> 229 <entry><code>nested_exception</code></entry> 230 <entry>Y</entry> 231 <entry/> 232 </row> 233 <row> 234 <entry>18.9</entry> 235 <entry>Initializer lists</entry> 236 <entry/> 237 <entry/> 238 </row> 239 <row> 240 <entry>18.9.1</entry> 241 <entry>Initializer list constructors</entry> 242 <entry>Y</entry> 243 <entry/> 244 </row> 245 <row> 246 <entry>18.9.2</entry> 247 <entry>Initializer list access</entry> 248 <entry>Y</entry> 249 <entry/> 250 </row> 251 <row> 252 <entry>18.9.3</entry> 253 <entry>Initializer list range access</entry> 254 <entry>Y</entry> 255 <entry/> 256 </row> 257 <row> 258 <entry>18.10</entry> 259 <entry>Other runtime support</entry> 260 <entry>Y</entry> 261 <entry/> 262 </row> 263 <row> 264 <entry> 265 <emphasis>19</emphasis> 266 </entry> 267 <entry namest="c2" nameend="c4" align="left"> 268 <emphasis>Diagnostics</emphasis> 269 </entry> 270 </row> 271 <row> 272 <entry>19.1</entry> 273 <entry>General</entry> 274 <entry/> 275 <entry/> 276 </row> 277 <row> 278 <entry>19.2</entry> 279 <entry>Exception classes</entry> 280 <entry>Y</entry> 281 <entry/> 282 </row> 283 <row> 284 <entry>19.3</entry> 285 <entry>Assertions</entry> 286 <entry>Y</entry> 287 <entry/> 288 </row> 289 <row> 290 <entry>19.4</entry> 291 <entry>Error numbers</entry> 292 <entry>Y</entry> 293 <entry/> 294 </row> 295 <row> 296 <entry>19.5</entry> 297 <entry>System error support</entry> 298 <entry/> 299 <entry/> 300 </row> 301 <row> 302 <entry>19.5.1</entry> 303 <entry>Class <code>error_category</code></entry> 304 <entry>Y</entry> 305 <entry/> 306 </row> 307 <row> 308 <entry>19.5.2</entry> 309 <entry>Class <code>error_code</code></entry> 310 <entry>Y</entry> 311 <entry/> 312 </row> 313 <row> 314 <entry>19.5.3</entry> 315 <entry>Class <code>error_condition</code></entry> 316 <entry>Y</entry> 317 <entry/> 318 </row> 319 <row> 320 <entry>19.5.4</entry> 321 <entry>Comparison operators</entry> 322 <entry>Y</entry> 323 <entry/> 324 </row> 325 <row> 326 <entry>19.5.5</entry> 327 <entry>Class <code>system_error</code></entry> 328 <entry>Y</entry> 329 <entry/> 330 </row> 331 <row> 332 <entry> 333 <emphasis>20</emphasis> 334 </entry> 335 <entry namest="c2" nameend="c4" align="left"> 336 <emphasis>General utilities</emphasis> 337 </entry> 338 </row> 339 <row> 340 <entry>20.1</entry> 341 <entry>General</entry> 342 <entry/> 343 <entry/> 344 </row> 345 <row> 346 <entry>20.2</entry> 347 <entry>Utility components</entry> 348 <entry/> 349 <entry/> 350 </row> 351 <row> 352 <entry>20.2.1</entry> 353 <entry>Operators</entry> 354 <entry>Y</entry> 355 <entry/> 356 </row> 357 <row> 358 <entry>20.2.2</entry> 359 <entry>swap</entry> 360 <entry>Y</entry> 361 <entry/> 362 </row> 363 <row> 364 <entry>20.2.3</entry> 365 <entry>forward/move helpers</entry> 366 <entry>Y</entry> 367 <entry/> 368 </row> 369 <row> 370 <entry>20.2.4</entry> 371 <entry>Function template <code>declval</code></entry> 372 <entry>Y</entry> 373 <entry/> 374 </row> 375 <row> 376 <entry>20.3</entry> 377 <entry>Pairs</entry> 378 <entry/> 379 <entry/> 380 </row> 381 <row> 382 <entry>20.3.1</entry> 383 <entry>In general</entry> 384 <entry/> 385 <entry/> 386 </row> 387 <row> 388 <entry>20.3.2</entry> 389 <entry>Class template <code>pair</code></entry> 390 <entry>Y</entry> 391 <entry/> 392 </row> 393 <row> 394 <entry>20.3.3</entry> 395 <entry>Specialized algorithms</entry> 396 <entry>Y</entry> 397 <entry/> 398 </row> 399 <row> 400 <entry>20.3.4</entry> 401 <entry>Tuple-like access to <code>pair</code></entry> 402 <entry>Y</entry> 403 <entry/> 404 </row> 405 <row> 406 <entry>20.3.5</entry> 407 <entry>Piecewise construction</entry> 408 <entry>Y</entry> 409 <entry/> 410 </row> 411 <row> 412 <entry>20.4</entry> 413 <entry>Tuples</entry> 414 <entry/> 415 <entry/> 416 </row> 417 <row> 418 <entry>20.4.1</entry> 419 <entry>In general</entry> 420 <entry/> 421 <entry/> 422 </row> 423 <row> 424 <entry>20.4.2</entry> 425 <entry>Class template <code>tuple</code></entry> 426 <entry/> 427 <entry/> 428 </row> 429 <row> 430 <entry>20.4.2.1</entry> 431 <entry>Construction</entry> 432 <entry>Y</entry> 433 <entry/> 434 </row> 435 <row> 436 <entry>20.4.2.2</entry> 437 <entry>Assignment</entry> 438 <entry>Y</entry> 439 <entry/> 440 </row> 441 <row> 442 <entry>20.4.2.3</entry> 443 <entry>Swap</entry> 444 <entry>Y</entry> 445 <entry/> 446 </row> 447 <row> 448 <entry>20.4.2.4</entry> 449 <entry>Tuple creation functions</entry> 450 <entry>Y</entry> 451 <entry/> 452 </row> 453 <row> 454 <entry>20.4.2.5</entry> 455 <entry>Tuple helper classes</entry> 456 <entry>Y</entry> 457 <entry/> 458 </row> 459 <row> 460 <entry>20.4.2.6</entry> 461 <entry>Element access</entry> 462 <entry>Y</entry> 463 <entry/> 464 </row> 465 <row> 466 <entry>20.4.2.7</entry> 467 <entry>Relational operators</entry> 468 <entry>Y</entry> 469 <entry/> 470 </row> 471 <row> 472 <entry>20.4.2.8</entry> 473 <entry>Tuple traits</entry> 474 <entry>Y</entry> 475 <entry/> 476 </row> 477 <row> 478 <entry>20.4.2.9</entry> 479 <entry>Tuple specialized algorithms</entry> 480 <entry>Y</entry> 481 <entry/> 482 </row> 483 <row> 484 <entry>20.5</entry> 485 <entry>Class template <code>bitset</code></entry> 486 <entry>Y</entry> 487 <entry/> 488 </row> 489 <row> 490 <entry>20.5.1</entry> 491 <entry><code>bitset</code> constructors</entry> 492 <entry>Y</entry> 493 <entry/> 494 </row> 495 <row> 496 <entry>20.5.2</entry> 497 <entry><code>bitset</code> members</entry> 498 <entry>Y</entry> 499 <entry/> 500 </row> 501 <row> 502 <entry>20.5.3</entry> 503 <entry><code>bitset</code> hash support</entry> 504 <entry>Y</entry> 505 <entry/> 506 </row> 507 <row> 508 <entry>20.5.4</entry> 509 <entry><code>bitset</code> operators</entry> 510 <entry>Y</entry> 511 <entry/> 512 </row> 513 <row> 514 <entry>20.6</entry> 515 <entry>Memory</entry> 516 <entry/> 517 <entry/> 518 </row> 519 <row> 520 <entry>20.6.1</entry> 521 <entry>In general</entry> 522 <entry/> 523 <entry/> 524 </row> 525 <row> 526 <entry>20.6.2</entry> 527 <entry>Header <code><memory></code> synopsis</entry> 528 <entry/> 529 <entry/> 530 </row> 531 <row> 532 <entry>20.6.3</entry> 533 <entry>Pointer traits</entry> 534 <entry>Y</entry> 535 <entry/> 536 </row> 537 <row> 538 <entry>20.6.4</entry> 539 <entry>Pointer safety</entry> 540 <entry>Y</entry> 541 <entry/> 542 </row> 543 <row> 544 <entry>20.6.5</entry> 545 <entry>Align</entry> 546 <entry>Y</entry> 547 <entry/> 548 </row> 549 <row> 550 <entry>20.6.6</entry> 551 <entry>Allocator argument tag</entry> 552 <entry>Y</entry> 553 <entry/> 554 </row> 555 <row> 556 <entry>20.6.7</entry> 557 <entry><code>uses_allocator</code></entry> 558 <entry>Y</entry> 559 <entry/> 560 </row> 561 <row> 562 <entry>20.6.8</entry> 563 <entry>Allocator traits</entry> 564 <entry>Y</entry> 565 <entry/> 566 </row> 567 <row> 568 <entry>20.6.9</entry> 569 <entry>The default allocator</entry> 570 <entry>Y</entry> 571 <entry/> 572 </row> 573 <row> 574 <entry>20.6.10</entry> 575 <entry>Raw storage iterator</entry> 576 <entry>Y</entry> 577 <entry/> 578 </row> 579 <row> 580 <entry>20.6.11</entry> 581 <entry>Temporary buffers</entry> 582 <entry>Y</entry> 583 <entry/> 584 </row> 585 <row> 586 <entry>20.6.12</entry> 587 <entry>Specialized algorithms</entry> 588 <entry/> 589 <entry/> 590 </row> 591 <row> 592 <entry>20.6.12.1</entry> 593 <entry><code>addressof</code></entry> 594 <entry>Y</entry> 595 <entry/> 596 </row> 597 <row> 598 <entry>20.6.12.2</entry> 599 <entry><code>uninitialized_copy</code></entry> 600 <entry>Y</entry> 601 <entry/> 602 </row> 603 <row> 604 <entry>20.6.12.3</entry> 605 <entry><code>uninitialized_fill</code></entry> 606 <entry>Y</entry> 607 <entry/> 608 </row> 609 <row> 610 <entry>20.6.12.4</entry> 611 <entry><code>uninitialized_fill_n</code></entry> 612 <entry>Y</entry> 613 <entry/> 614 </row> 615 <row> 616 <entry>20.6.13</entry> 617 <entry>C library</entry> 618 <entry>Y</entry> 619 <entry/> 620 </row> 621 <row> 622 <entry>20.7</entry> 623 <entry>Smart pointers</entry> 624 <entry/> 625 <entry/> 626 </row> 627 <row> 628 <entry>20.7.1</entry> 629 <entry>Class template <code>unique_ptr</code></entry> 630 <entry>Y</entry> 631 <entry/> 632 </row> 633 <row> 634 <entry>20.7.2</entry> 635 <entry>Shared-ownership pointers</entry> 636 <entry/> 637 <entry/> 638 </row> 639 <row> 640 <entry>20.7.2.1</entry> 641 <entry>Class <code>bad_weak_ptr</code></entry> 642 <entry>Y</entry> 643 <entry/> 644 </row> 645 <row> 646 <entry>20.7.2.2</entry> 647 <entry>Class template <code>shared_ptr</code></entry> 648 <entry>Y</entry> 649 <entry> 650 Uses code from 651 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</link>. 652 </entry> 653 </row> 654 <row> 655 <entry>20.7.2.3</entry> 656 <entry>Class template <code>weak_ptr</code></entry> 657 <entry>Y</entry> 658 <entry/> 659 </row> 660 <row> 661 <entry>20.7.2.4</entry> 662 <entry>Class template <code>enable_shared_from_this</code></entry> 663 <entry>Y</entry> 664 <entry/> 665 </row> 666 <row> 667 <entry>20.7.2.5</entry> 668 <entry><code>shared_ptr</code> atomic access</entry> 669 <entry>Y</entry> 670 <entry/> 671 </row> 672 <row> 673 <entry>20.7.2.6</entry> 674 <entry>Smart pointer hash support</entry> 675 <entry>Y</entry> 676 <entry/> 677 </row> 678 <row> 679 <entry>20.8</entry> 680 <entry>Function objects</entry> 681 <entry/> 682 <entry/> 683 </row> 684 <row> 685 <entry>20.8.1</entry> 686 <entry>Definitions</entry> 687 <entry/> 688 <entry/> 689 </row> 690 <row> 691 <entry>20.8.2</entry> 692 <entry>Requirements</entry> 693 <entry/> 694 <entry/> 695 </row> 696 <row> 697 <entry>20.8.3</entry> 698 <entry>Class template <code>reference_wrapper</code></entry> 699 <entry>Y</entry> 700 <entry/> 701 </row> 702 <row> 703 <entry>20.8.4</entry> 704 <entry>Arithmetic operation</entry> 705 <entry>Y</entry> 706 <entry/> 707 </row> 708 <row> 709 <entry>20.8.5</entry> 710 <entry>Comparisons</entry> 711 <entry>Y</entry> 712 <entry/> 713 </row> 714 <row> 715 <entry>20.8.6</entry> 716 <entry>Logical operations</entry> 717 <entry>Y</entry> 718 <entry/> 719 </row> 720 <row> 721 <entry>20.8.7</entry> 722 <entry>Bitwise operations</entry> 723 <entry>Y</entry> 724 <entry/> 725 </row> 726 <row> 727 <entry>20.8.8</entry> 728 <entry>Negators</entry> 729 <entry>Y</entry> 730 <entry/> 731 </row> 732 <row> 733 <entry>20.8.9</entry> 734 <entry>Function template <code>bind</code></entry> 735 <entry>Y</entry> 736 <entry/> 737 </row> 738 <row> 739 <entry>20.8.10</entry> 740 <entry>Function template <code>mem_fn</code></entry> 741 <entry>Y</entry> 742 <entry/> 743 </row> 744 <row> 745 <entry>20.8.11</entry> 746 <entry>Polymorphic function wrappers</entry> 747 <entry/> 748 <entry/> 749 </row> 750 <row> 751 <entry>20.8.11.1</entry> 752 <entry>Class <code>bad_function_call</code></entry> 753 <entry>Y</entry> 754 <entry/> 755 </row> 756 <row> 757 <?dbhtml bgcolor="#B0B0B0" ?> 758 <entry>20.8.11.2</entry> 759 <entry>Class template <code>function</code></entry> 760 <entry>Partial</entry> 761 <entry>Missing allocator support</entry> 762 </row> 763 <row> 764 <entry>20.8.12</entry> 765 <entry>Class template <code>hash</code></entry> 766 <entry>Y</entry> 767 <entry/> 768 </row> 769 <row> 770 <entry>20.9</entry> 771 <entry>Metaprogramming and type traits</entry> 772 <entry/> 773 <entry/> 774 </row> 775 <row> 776 <entry>20.9.1</entry> 777 <entry>Requirements</entry> 778 <entry>Y</entry> 779 <entry/> 780 </row> 781 <row> 782 <entry>20.9.2</entry> 783 <entry>Header <code><type_traits></code> synopsis</entry> 784 <entry/> 785 <entry/> 786 </row> 787 <row> 788 <entry>20.9.3</entry> 789 <entry>Helper classes</entry> 790 <entry>Y</entry> 791 <entry/> 792 </row> 793 <row> 794 <entry>20.9.4</entry> 795 <entry>Unary Type Traits</entry> 796 <entry>Y</entry> 797 <entry/> 798 </row> 799 <row> 800 <entry>20.9.4.1</entry> 801 <entry>Primary type categories</entry> 802 <entry>Y</entry> 803 <entry/> 804 </row> 805 <row> 806 <entry>20.9.4.2</entry> 807 <entry>Composite type traits</entry> 808 <entry>Y</entry> 809 <entry/> 810 </row> 811 <row> 812 <entry>20.9.4.3</entry> 813 <entry>Type properties</entry> 814 <entry>Y</entry> 815 <entry/> 816 </row> 817 <row> 818 <entry>20.9.5</entry> 819 <entry>Type property queries</entry> 820 <entry>Y</entry> 821 <entry/> 822 </row> 823 <row> 824 <entry>20.9.6</entry> 825 <entry>Relationships between types</entry> 826 <entry>Y</entry> 827 <entry/> 828 </row> 829 <row> 830 <entry>20.9.7</entry> 831 <entry>Transformations between types</entry> 832 <entry/> 833 <entry/> 834 </row> 835 <row> 836 <entry>20.9.7.1</entry> 837 <entry>Const-volatile modifications</entry> 838 <entry>Y</entry> 839 <entry/> 840 </row> 841 <row> 842 <entry>20.9.7.2</entry> 843 <entry>Reference modifications</entry> 844 <entry>Y</entry> 845 <entry/> 846 </row> 847 <row> 848 <entry>20.9.7.3</entry> 849 <entry>Sign modifications</entry> 850 <entry>Y</entry> 851 <entry/> 852 </row> 853 <row> 854 <entry>20.9.7.4</entry> 855 <entry>Array modifications</entry> 856 <entry>Y</entry> 857 <entry/> 858 </row> 859 <row> 860 <entry>20.9.7.5</entry> 861 <entry>Pointer modifications</entry> 862 <entry>Y</entry> 863 <entry/> 864 </row> 865 <row> 866 <entry>20.9.7.6</entry> 867 <entry>Other transformations</entry> 868 <entry>Y</entry> 869 <entry/> 870 </row> 871 <row> 872 <entry>20.10</entry> 873 <entry>Compile-time rational arithmetic</entry> 874 <entry/> 875 <entry/> 876 </row> 877 <row> 878 <entry>20.10.1</entry> 879 <entry>In general</entry> 880 <entry/> 881 <entry/> 882 </row> 883 <row> 884 <entry>20.10.2</entry> 885 <entry>Header <code><ratio></code> synopsis</entry> 886 <entry/> 887 <entry/> 888 </row> 889 <row> 890 <entry>20.10.3</entry> 891 <entry>Class template <code>ratio</code></entry> 892 <entry>Y</entry> 893 <entry/> 894 </row> 895 <row> 896 <entry>20.10.4</entry> 897 <entry>Arithmetic on <code>ratio</code>s</entry> 898 <entry>Y</entry> 899 <entry/> 900 </row> 901 <row> 902 <entry>20.10.5</entry> 903 <entry>Comparison of <code>ratio</code>s</entry> 904 <entry>Y</entry> 905 <entry/> 906 </row> 907 <row> 908 <entry>20.10.6</entry> 909 <entry>SI types for <code>ratio</code></entry> 910 <entry>Y</entry> 911 <entry/> 912 </row> 913 <row> 914 <entry>20.11</entry> 915 <entry>Time utilities</entry> 916 <entry/> 917 <entry/> 918 </row> 919 <row> 920 <entry>20.11.3</entry> 921 <entry>Clock requirements</entry> 922 <entry>Y</entry> 923 <entry/> 924 </row> 925 <row> 926 <entry>20.11.4</entry> 927 <entry>Time-related traits</entry> 928 <entry/> 929 <entry/> 930 </row> 931 <row> 932 <entry>20.11.4.1</entry> 933 <entry><code>treat_as_floating_point</code></entry> 934 <entry>Y</entry> 935 <entry/> 936 </row> 937 <row> 938 <entry>20.11.4.2</entry> 939 <entry><code>duration_values</code></entry> 940 <entry>Y</entry> 941 <entry/> 942 </row> 943 <row> 944 <entry>20.11.4.3</entry> 945 <entry>Specializations of <code>common_type</code></entry> 946 <entry>Y</entry> 947 <entry/> 948 </row> 949 <row> 950 <entry>20.11.5</entry> 951 <entry>Class template <code>duration</code></entry> 952 <entry>Y</entry> 953 <entry/> 954 </row> 955 <row> 956 <entry>20.11.6</entry> 957 <entry>Class template <code>time_point</code></entry> 958 <entry>Y</entry> 959 <entry/> 960 </row> 961 <row> 962 <entry>20.11.7</entry> 963 <entry>Clocks</entry> 964 <entry/> 965 <entry/> 966 </row> 967 <row> 968 <entry>20.11.7.1</entry> 969 <entry>Class <code>system_clock</code></entry> 970 <entry>Y</entry> 971 <entry/> 972 </row> 973 <row> 974 <entry>20.11.7.2</entry> 975 <entry>Class <code>steady_clock</code></entry> 976 <entry>Y</entry> 977 <entry/> 978 </row> 979 <row> 980 <entry>20.11.7.3</entry> 981 <entry>Class <code>high_resolution_clock</code></entry> 982 <entry>Y</entry> 983 <entry/> 984 </row> 985 <row> 986 <entry>20.11.8</entry> 987 <entry>Date and time functions</entry> 988 <entry>Y</entry> 989 <entry/> 990 </row> 991 <row> 992 <entry>20.12</entry> 993 <entry>Scoped allocator adaptor</entry> 994 <entry>Y</entry> 995 <entry/> 996 </row> 997 <row> 998 <entry>20.12.1</entry> 999 <entry>Header <code><scoped_allocator></code> synopsis</entry> 1000 <entry/> 1001 <entry/> 1002 </row> 1003 <row> 1004 <entry>20.12.2</entry> 1005 <entry>Scoped allocator adaptor member types</entry> 1006 <entry>Y</entry> 1007 <entry/> 1008 </row> 1009 <row> 1010 <entry>20.12.3</entry> 1011 <entry>Scoped allocator adaptor constructors</entry> 1012 <entry>Y</entry> 1013 <entry/> 1014 </row> 1015 <row> 1016 <entry>20.12.4</entry> 1017 <entry>Scoped allocator adaptor members</entry> 1018 <entry>Y</entry> 1019 <entry/> 1020 </row> 1021 <row> 1022 <entry>20.12.5</entry> 1023 <entry>Scoped allocator operators</entry> 1024 <entry>Y</entry> 1025 <entry/> 1026 </row> 1027 <row> 1028 <entry>20.13</entry> 1029 <entry>Class <code>type_index</code></entry> 1030 <entry>Y</entry> 1031 <entry/> 1032 </row> 1033 <row> 1034 <entry> 1035 <emphasis>21</emphasis> 1036 </entry> 1037 <entry namest="c2" nameend="c4" align="left"> 1038 <emphasis>Strings</emphasis> 1039 </entry> 1040 </row> 1041 <row> 1042 <entry>21.1</entry> 1043 <entry>General</entry> 1044 <entry>Y</entry> 1045 <entry/> 1046 </row> 1047 <row> 1048 <entry>21.2</entry> 1049 <entry>Character traits</entry> 1050 <entry/> 1051 <entry/> 1052 </row> 1053 <row> 1054 <entry>21.2.1</entry> 1055 <entry>Character traits requirements</entry> 1056 <entry>Y</entry> 1057 <entry/> 1058 </row> 1059 <row> 1060 <entry>21.2.2</entry> 1061 <entry>traits typedefs</entry> 1062 <entry>Y</entry> 1063 <entry/> 1064 </row> 1065 <row> 1066 <entry>21.2.3</entry> 1067 <entry><code>char_traits</code> specializations</entry> 1068 <entry/> 1069 <entry/> 1070 </row> 1071 <row> 1072 <entry>21.2.3.1</entry> 1073 <entry>struct <code>char_traits<char></code></entry> 1074 <entry>Y</entry> 1075 <entry/> 1076 </row> 1077 <row> 1078 <entry>21.2.3.2</entry> 1079 <entry>struct <code>char_traits<char16_t></code></entry> 1080 <entry>Y</entry> 1081 <entry/> 1082 </row> 1083 <row> 1084 <entry>21.2.3.3</entry> 1085 <entry>struct <code>char_traits<char32_t></code></entry> 1086 <entry>Y</entry> 1087 <entry/> 1088 </row> 1089 <row> 1090 <entry>21.2.3.4</entry> 1091 <entry>struct <code>char_traits<wchar_t></code></entry> 1092 <entry>Y</entry> 1093 <entry/> 1094 </row> 1095 <row> 1096 <entry>21.3</entry> 1097 <entry>String classes</entry> 1098 <entry>Y</entry> 1099 <entry/> 1100 </row> 1101 <row> 1102 <entry>21.4</entry> 1103 <entry>Class template <code>basic_string</code></entry> 1104 <entry>Y</entry> 1105 <entry/> 1106 </row> 1107 <row> 1108 <entry>21.5</entry> 1109 <entry>Numeric Conversions</entry> 1110 <entry>Y</entry> 1111 <entry/> 1112 </row> 1113 <row> 1114 <entry>21.6</entry> 1115 <entry>Hash support</entry> 1116 <entry>Y</entry> 1117 <entry/> 1118 </row> 1119 <row> 1120 <?dbhtml bgcolor="#B0B0B0" ?> 1121 <entry>21.7</entry> 1122 <entry>Null-terminated sequence utilities</entry> 1123 <entry>Partial</entry> 1124 <entry>C library dependency. </entry> 1125 </row> 1126 <row> 1127 <entry> 1128 <emphasis>22</emphasis> 1129 </entry> 1130 <entry namest="c2" nameend="c4" align="left"> 1131 <emphasis>Localization</emphasis> 1132 </entry> 1133 </row> 1134 <row> 1135 <entry>22.1</entry> 1136 <entry>General</entry> 1137 <entry>Y</entry> 1138 <entry/> 1139 </row> 1140 <row> 1141 <entry>22.2</entry> 1142 <entry>Header <code><locale></code> synopsis</entry> 1143 <entry>Y</entry> 1144 <entry/> 1145 </row> 1146 <row> 1147 <entry>22.3</entry> 1148 <entry>Locales</entry> 1149 <entry/> 1150 <entry/> 1151 </row> 1152 <row> 1153 <entry>22.3.1</entry> 1154 <entry>Class <code>locale</code></entry> 1155 <entry>Y</entry> 1156 <entry/> 1157 </row> 1158 <row> 1159 <entry>22.3.2</entry> 1160 <entry><code>locale</code> globals</entry> 1161 <entry>Y</entry> 1162 <entry/> 1163 </row> 1164 <row> 1165 <entry>22.3.3</entry> 1166 <entry>Convenience interfaces</entry> 1167 <entry/> 1168 <entry/> 1169 </row> 1170 <row> 1171 <entry>22.3.3.1</entry> 1172 <entry>Character classification</entry> 1173 <entry>Y</entry> 1174 <entry/> 1175 </row> 1176 <row> 1177 <entry>22.3.3.2</entry> 1178 <entry>Conversions</entry> 1179 <entry/> 1180 <entry/> 1181 </row> 1182 <row> 1183 <entry>22.3.3.2.1</entry> 1184 <entry>Character conversions</entry> 1185 <entry>Y</entry> 1186 <entry/> 1187 </row> 1188 <row> 1189 <entry>22.3.3.2.2</entry> 1190 <entry><code>string</code> conversions</entry> 1191 <entry>Y</entry> 1192 <entry/> 1193 </row> 1194 <row> 1195 <entry>22.3.3.2.3</entry> 1196 <entry>Buffer conversions</entry> 1197 <entry>Y</entry> 1198 <entry/> 1199 </row> 1200 <row> 1201 <entry>22.4</entry> 1202 <entry>Standard <code>locale</code> categories</entry> 1203 <entry/> 1204 <entry/> 1205 </row> 1206 <row> 1207 <entry>22.4.1</entry> 1208 <entry>The <code>ctype</code> category</entry> 1209 <entry>Y</entry> 1210 <entry/> 1211 </row> 1212 <row> 1213 <entry>22.4.2</entry> 1214 <entry>The numeric category</entry> 1215 <entry/> 1216 <entry/> 1217 </row> 1218 <row> 1219 <entry>22.4.2.1</entry> 1220 <entry><code>num_get</code></entry> 1221 <entry>Y</entry> 1222 <entry/> 1223 </row> 1224 <row> 1225 <entry>22.4.2.2</entry> 1226 <entry><code>num_put</code></entry> 1227 <entry>Y</entry> 1228 <entry/> 1229 </row> 1230 <row> 1231 <entry>22.4.3</entry> 1232 <entry>The numeric punctuation facet</entry> 1233 <entry>Y</entry> 1234 <entry/> 1235 </row> 1236 <row> 1237 <entry>22.4.4</entry> 1238 <entry>The collate category</entry> 1239 <entry>Y</entry> 1240 <entry/> 1241 </row> 1242 <row> 1243 <entry>22.4.5</entry> 1244 <entry>The time category</entry> 1245 <entry/> 1246 <entry/> 1247 </row> 1248 <row> 1249 <entry>22.4.5.1</entry> 1250 <entry>Class template <code>time_get</code></entry> 1251 <entry>Y</entry> 1252 <entry/> 1253 </row> 1254 <row> 1255 <entry>22.4.5.2</entry> 1256 <entry>Class template <code>time_get_byname</code></entry> 1257 <entry>Y</entry> 1258 <entry/> 1259 </row> 1260 <row> 1261 <entry>22.4.5.3</entry> 1262 <entry>Class template <code>time_put</code></entry> 1263 <entry>Y</entry> 1264 <entry/> 1265 </row> 1266 <row> 1267 <entry>22.4.5.3</entry> 1268 <entry>Class template <code>time_put_byname</code></entry> 1269 <entry>Y</entry> 1270 <entry/> 1271 </row> 1272 <row> 1273 <entry>22.4.6</entry> 1274 <entry>The monetary category</entry> 1275 <entry/> 1276 <entry/> 1277 </row> 1278 <row> 1279 <entry>22.4.6.1</entry> 1280 <entry>Class template <code>money_get</code></entry> 1281 <entry>Y</entry> 1282 <entry/> 1283 </row> 1284 <row> 1285 <entry>22.4.6.2</entry> 1286 <entry>Class template <code>money_put</code></entry> 1287 <entry>Y</entry> 1288 <entry/> 1289 </row> 1290 <row> 1291 <entry>22.4.6.3</entry> 1292 <entry>Class template <code>money_punct</code></entry> 1293 <entry>Y</entry> 1294 <entry/> 1295 </row> 1296 <row> 1297 <entry>22.4.6.4</entry> 1298 <entry>Class template <code>money_punct_byname</code></entry> 1299 <entry>Y</entry> 1300 <entry/> 1301 </row> 1302 <row> 1303 <entry>22.4.7</entry> 1304 <entry>The message retrieval category</entry> 1305 <entry>Y</entry> 1306 <entry/> 1307 </row> 1308 <row> 1309 <entry>22.4.8</entry> 1310 <entry>Program-defined facets</entry> 1311 <entry>Y</entry> 1312 <entry/> 1313 </row> 1314 <row> 1315 <entry>22.5</entry> 1316 <entry>Standard code conversion facets</entry> 1317 <entry>Y</entry> 1318 <entry/> 1319 </row> 1320 <row> 1321 <entry>22.6</entry> 1322 <entry>C Library Locales</entry> 1323 <entry>Y</entry> 1324 <entry/> 1325 </row> 1326 <row> 1327 <entry> 1328 <emphasis>23</emphasis> 1329 </entry> 1330 <entry namest="c2" nameend="c4" align="left"> 1331 <emphasis>Containers</emphasis> 1332 </entry> 1333 </row> 1334 <row> 1335 <entry>23.1</entry> 1336 <entry>General</entry> 1337 <entry/> 1338 <entry/> 1339 </row> 1340 <row> 1341 <entry>23.2</entry> 1342 <entry>Container requirements</entry> 1343 <entry/> 1344 <entry/> 1345 </row> 1346 <row> 1347 <entry>23.2.1</entry> 1348 <entry>General container requirements</entry> 1349 <entry>Y</entry> 1350 <entry/> 1351 </row> 1352 <row> 1353 <entry>23.2.2</entry> 1354 <entry>Container data races</entry> 1355 <entry>Y</entry> 1356 <entry/> 1357 </row> 1358 <row> 1359 <entry>23.2.3</entry> 1360 <entry>Sequence containers</entry> 1361 <entry>Y</entry> 1362 <entry/> 1363 </row> 1364 <row> 1365 <entry>23.2.4</entry> 1366 <entry>Associative containers</entry> 1367 <entry>Y</entry> 1368 <entry/> 1369 </row> 1370 <row> 1371 <entry>23.2.5</entry> 1372 <entry>Unordered associative containers</entry> 1373 <entry>Y</entry> 1374 <entry/> 1375 </row> 1376 <row> 1377 <entry>23.3</entry> 1378 <entry>Sequence containers</entry> 1379 <entry/> 1380 <entry/> 1381 </row> 1382 <row> 1383 <entry>23.3.2</entry> 1384 <entry>Class template <code>array</code></entry> 1385 <entry>Y</entry> 1386 <entry/> 1387 </row> 1388 <row> 1389 <entry>23.3.3</entry> 1390 <entry>Class template <code>deque</code></entry> 1391 <entry>Y</entry> 1392 <entry/> 1393 </row> 1394 <row> 1395 <entry>23.3.4</entry> 1396 <entry>Class template <code>forward_list</code></entry> 1397 <entry>Y</entry> 1398 <entry/> 1399 </row> 1400 <row> 1401 <entry>23.3.5</entry> 1402 <entry>Class template <code>list</code></entry> 1403 <entry>Y</entry> 1404 <entry/> 1405 </row> 1406 <row> 1407 <entry>23.3.6</entry> 1408 <entry>Class template <code>vector</code></entry> 1409 <entry>Y</entry> 1410 <entry/> 1411 </row> 1412 <row> 1413 <entry>23.3.7</entry> 1414 <entry>Class <code>vector<bool></code></entry> 1415 <entry>Y</entry> 1416 <entry/> 1417 </row> 1418 <row> 1419 <entry>23.4</entry> 1420 <entry>Associative containers</entry> 1421 <entry/> 1422 <entry/> 1423 </row> 1424 <row> 1425 <entry>23.4.4</entry> 1426 <entry>Class template <code>map</code></entry> 1427 <entry>Y</entry> 1428 <entry/> 1429 </row> 1430 <row> 1431 <entry>23.4.5</entry> 1432 <entry>Class template <code>multimap</code></entry> 1433 <entry>Y</entry> 1434 <entry/> 1435 </row> 1436 <row> 1437 <entry>23.4.6</entry> 1438 <entry>Class template <code>set</code></entry> 1439 <entry>Y</entry> 1440 <entry/> 1441 </row> 1442 <row> 1443 <entry>23.4.7</entry> 1444 <entry>Class template <code>multiset</code></entry> 1445 <entry>Y</entry> 1446 <entry/> 1447 </row> 1448 <row> 1449 <entry>23.5</entry> 1450 <entry>Unordered associative containers</entry> 1451 <entry/> 1452 <entry/> 1453 </row> 1454 <row> 1455 <entry>23.5.4</entry> 1456 <entry>Class template <code>unordered_map</code></entry> 1457 <entry>Y</entry> 1458 <entry/> 1459 </row> 1460 <row> 1461 <entry>23.5.5</entry> 1462 <entry>Class template <code>unordered_multimap</code></entry> 1463 <entry>Y</entry> 1464 <entry/> 1465 </row> 1466 <row> 1467 <entry>23.5.6</entry> 1468 <entry>Class template <code>unordered_set</code></entry> 1469 <entry>Y</entry> 1470 <entry/> 1471 </row> 1472 <row> 1473 <entry>23.5.7</entry> 1474 <entry>Class template <code>unordered_multiset</code></entry> 1475 <entry>Y</entry> 1476 <entry/> 1477 </row> 1478 <row> 1479 <entry>23.6</entry> 1480 <entry>Container adaptors</entry> 1481 <entry/> 1482 <entry/> 1483 </row> 1484 <row> 1485 <entry>23.6.1</entry> 1486 <entry>Class template <code>queue</code></entry> 1487 <entry>Y</entry> 1488 <entry/> 1489 </row> 1490 <row> 1491 <entry>23.6.2</entry> 1492 <entry>Class template <code>priority_queue</code></entry> 1493 <entry>Y</entry> 1494 <entry/> 1495 </row> 1496 <row> 1497 <entry>23.6.3</entry> 1498 <entry>Class template <code>stack</code></entry> 1499 <entry>Y</entry> 1500 <entry/> 1501 </row> 1502 <row> 1503 <entry> 1504 <emphasis>24</emphasis> 1505 </entry> 1506 <entry namest="c2" nameend="c4" align="left"> 1507 <emphasis>Iterators</emphasis> 1508 </entry> 1509 </row> 1510 <row> 1511 <entry>24.1</entry> 1512 <entry>General</entry> 1513 <entry>Y</entry> 1514 <entry/> 1515 </row> 1516 <row> 1517 <entry>24.2</entry> 1518 <entry>Iterator requirements</entry> 1519 <entry>Y</entry> 1520 <entry/> 1521 </row> 1522 <row> 1523 <entry>24.3</entry> 1524 <entry>Header <code><iterator></code> synopsis</entry> 1525 <entry>Y</entry> 1526 <entry/> 1527 </row> 1528 <row> 1529 <entry>24.4</entry> 1530 <entry>Iterator primitives</entry> 1531 <entry>Y</entry> 1532 <entry/> 1533 </row> 1534 <row> 1535 <entry>24.5</entry> 1536 <entry>Iterator adaptors</entry> 1537 <entry/> 1538 <entry/> 1539 </row> 1540 <row> 1541 <entry>24.5.1</entry> 1542 <entry>Reverse iterators</entry> 1543 <entry>Y</entry> 1544 <entry/> 1545 </row> 1546 <row> 1547 <entry>24.5.2</entry> 1548 <entry>Insert iterators</entry> 1549 <entry>Y</entry> 1550 <entry/> 1551 </row> 1552 <row> 1553 <entry>24.5.3</entry> 1554 <entry>Move iterators</entry> 1555 <entry>Y</entry> 1556 <entry/> 1557 </row> 1558 <row> 1559 <entry>24.6</entry> 1560 <entry>Stream iterators</entry> 1561 <entry/> 1562 <entry/> 1563 </row> 1564 <row> 1565 <entry>24.6.1</entry> 1566 <entry>Class template <code>istream_iterator</code></entry> 1567 <entry>Y</entry> 1568 <entry/> 1569 </row> 1570 <row> 1571 <entry>24.6.2</entry> 1572 <entry>Class template <code>ostream_iterator</code></entry> 1573 <entry>Y</entry> 1574 <entry/> 1575 </row> 1576 <row> 1577 <entry>24.6.3</entry> 1578 <entry>Class template <code>istreambuf_iterator</code></entry> 1579 <entry>Y</entry> 1580 <entry/> 1581 </row> 1582 <row> 1583 <entry>24.6.4</entry> 1584 <entry>Class template <code>ostreambuf_iterator</code></entry> 1585 <entry>Y</entry> 1586 <entry/> 1587 </row> 1588 <row> 1589 <entry>24.6.5</entry> 1590 <entry>range access</entry> 1591 <entry>Y</entry> 1592 <entry/> 1593 </row> 1594 <row> 1595 <entry> 1596 <emphasis>25</emphasis> 1597 </entry> 1598 <entry namest="c2" nameend="c4" align="left"> 1599 <emphasis>Algorithms</emphasis> 1600 </entry> 1601 </row> 1602 <row> 1603 <entry>25.1</entry> 1604 <entry>General</entry> 1605 <entry/> 1606 <entry/> 1607 </row> 1608 <row> 1609 <entry>25.2</entry> 1610 <entry>Non-modifying sequence operations</entry> 1611 <entry>Y</entry> 1612 <entry/> 1613 </row> 1614 <row> 1615 <entry>25.3</entry> 1616 <entry>Mutating sequence operations</entry> 1617 <entry>Y</entry> 1618 <entry/> 1619 </row> 1620 <row> 1621 <entry>25.4</entry> 1622 <entry>Sorting and related operations</entry> 1623 <entry>Y</entry> 1624 <entry/> 1625 </row> 1626 <row> 1627 <entry>25.5</entry> 1628 <entry>C library algorithms</entry> 1629 <entry>Y</entry> 1630 <entry/> 1631 </row> 1632 <row> 1633 <entry> 1634 <emphasis>26</emphasis> 1635 </entry> 1636 <entry namest="c2" nameend="c4" align="left"> 1637 <emphasis>Numerics</emphasis> 1638 </entry> 1639 </row> 1640 <row> 1641 <entry>26.1</entry> 1642 <entry>General</entry> 1643 <entry/> 1644 <entry/> 1645 </row> 1646 <row> 1647 <entry>26.2</entry> 1648 <entry>Numeric type requirements</entry> 1649 <entry>Y</entry> 1650 <entry/> 1651 </row> 1652 <row> 1653 <entry>26.3</entry> 1654 <entry>The floating-point environment</entry> 1655 <entry>Y</entry> 1656 <entry/> 1657 </row> 1658 <row> 1659 <entry>26.4</entry> 1660 <entry>Complex numbers</entry> 1661 <entry>Y</entry> 1662 <entry/> 1663 </row> 1664 <row> 1665 <entry>26.5</entry> 1666 <entry>Random number generation</entry> 1667 <entry/> 1668 <entry/> 1669 </row> 1670 <row> 1671 <entry>26.5.1</entry> 1672 <entry>Requirements</entry> 1673 <entry/> 1674 <entry/> 1675 </row> 1676 <row> 1677 <entry>26.5.2</entry> 1678 <entry>Header <code><random></code> synopsis</entry> 1679 <entry/> 1680 <entry/> 1681 </row> 1682 <row> 1683 <entry>26.5.3</entry> 1684 <entry>Random number engine class templates</entry> 1685 <entry/> 1686 <entry/> 1687 </row> 1688 <row> 1689 <entry>26.5.3.1</entry> 1690 <entry>Class template <code>linear_congruential_engine</code></entry> 1691 <entry>Y</entry> 1692 <entry/> 1693 </row> 1694 <row> 1695 <entry>26.5.3.2</entry> 1696 <entry>Class template <code>mersenne_twister_engine</code></entry> 1697 <entry>Y</entry> 1698 <entry/> 1699 </row> 1700 <row> 1701 <entry>26.5.3.3</entry> 1702 <entry>Class template <code>subtract_with_carry_engine</code></entry> 1703 <entry>Y</entry> 1704 <entry/> 1705 </row> 1706 <row> 1707 <entry>26.5.4</entry> 1708 <entry>Random number engine adaptor class templates</entry> 1709 <entry/> 1710 <entry/> 1711 </row> 1712 <row> 1713 <entry>26.5.4.2</entry> 1714 <entry>Class template <code>discard_block_engine</code></entry> 1715 <entry>Y</entry> 1716 <entry/> 1717 </row> 1718 <row> 1719 <entry>26.5.4.3</entry> 1720 <entry>Class template <code>independent_bits_engine</code></entry> 1721 <entry>Y</entry> 1722 <entry/> 1723 </row> 1724 <row> 1725 <entry>26.5.4.4</entry> 1726 <entry>Class template <code>shuffle_order_engine</code></entry> 1727 <entry>Y</entry> 1728 <entry/> 1729 </row> 1730 <row> 1731 <entry>26.5.5</entry> 1732 <entry>Engines and engine adaptors with predefined parameters</entry> 1733 <entry>Y</entry> 1734 <entry/> 1735 </row> 1736 <row> 1737 <entry>26.5.6</entry> 1738 <entry>Class <code>random_device</code></entry> 1739 <entry>Y</entry> 1740 <entry/> 1741 </row> 1742 <row> 1743 <entry>26.5.7</entry> 1744 <entry>Utilities</entry> 1745 <entry/> 1746 <entry/> 1747 </row> 1748 <row> 1749 <entry>26.5.7.1</entry> 1750 <entry>Class <code>seed_seq</code></entry> 1751 <entry>Y</entry> 1752 <entry/> 1753 </row> 1754 <row> 1755 <entry>26.5.7.2</entry> 1756 <entry>Function template <code>generate_canonical</code></entry> 1757 <entry>Y</entry> 1758 <entry/> 1759 </row> 1760 <row> 1761 <entry>26.5.8</entry> 1762 <entry>Random number distribution class templates</entry> 1763 <entry/> 1764 <entry/> 1765 </row> 1766 <row> 1767 <entry>26.5.8.2</entry> 1768 <entry>Uniform distributions</entry> 1769 <entry/> 1770 <entry/> 1771 </row> 1772 <row> 1773 <entry>26.5.8.2.1</entry> 1774 <entry>Class template <code>uniform_int_distribution</code></entry> 1775 <entry>Y</entry> 1776 <entry/> 1777 </row> 1778 <row> 1779 <entry>26.5.8.2.2</entry> 1780 <entry>Class template <code>uniform_real_distribution</code></entry> 1781 <entry>Y</entry> 1782 <entry/> 1783 </row> 1784 <row> 1785 <entry>26.5.8.3</entry> 1786 <entry>Bernoulli distributions</entry> 1787 <entry/> 1788 <entry/> 1789 </row> 1790 <row> 1791 <entry>26.5.8.3.1</entry> 1792 <entry>Class <code>bernoulli_distribution</code></entry> 1793 <entry>Y</entry> 1794 <entry/> 1795 </row> 1796 <row> 1797 <entry>26.5.8.3.2</entry> 1798 <entry>Class template <code>binomial_distribution</code></entry> 1799 <entry>Y</entry> 1800 <entry/> 1801 </row> 1802 <row> 1803 <entry>26.5.8.3.3</entry> 1804 <entry>Class template <code>geometric_distribution</code></entry> 1805 <entry>Y</entry> 1806 <entry/> 1807 </row> 1808 <row> 1809 <entry>26.5.8.3.4</entry> 1810 <entry>Class template <code>negative_binomial_distribution</code></entry> 1811 <entry>Y</entry> 1812 <entry/> 1813 </row> 1814 <row> 1815 <entry>26.5.8.4</entry> 1816 <entry>Poisson distributions</entry> 1817 <entry/> 1818 <entry/> 1819 </row> 1820 <row> 1821 <entry>26.5.8.4.1</entry> 1822 <entry>Class template <code>poisson_distribution</code></entry> 1823 <entry>Y</entry> 1824 <entry/> 1825 </row> 1826 <row> 1827 <entry>26.5.8.4.2</entry> 1828 <entry>Class template <code>exponential_distribution</code></entry> 1829 <entry>Y</entry> 1830 <entry/> 1831 </row> 1832 <row> 1833 <entry>26.5.8.4.3</entry> 1834 <entry>Class template <code>gamma_distribution</code></entry> 1835 <entry>Y</entry> 1836 <entry/> 1837 </row> 1838 <row> 1839 <entry>26.5.8.4.4</entry> 1840 <entry>Class template <code>weibull_distribution</code></entry> 1841 <entry>Y</entry> 1842 <entry/> 1843 </row> 1844 <row> 1845 <entry>26.5.8.4.5</entry> 1846 <entry>Class template <code>extreme_value_distribution</code></entry> 1847 <entry>Y</entry> 1848 <entry/> 1849 </row> 1850 <row> 1851 <entry>26.5.8.5</entry> 1852 <entry>Normal distributions</entry> 1853 <entry/> 1854 <entry/> 1855 </row> 1856 <row> 1857 <entry>26.5.8.5.1</entry> 1858 <entry>Class template <code>normal_distribution</code></entry> 1859 <entry>Y</entry> 1860 <entry/> 1861 </row> 1862 <row> 1863 <entry>26.5.8.5.2</entry> 1864 <entry>Class template <code>lognormal_distribution</code></entry> 1865 <entry>Y</entry> 1866 <entry/> 1867 </row> 1868 <row> 1869 <entry>26.5.8.5.3</entry> 1870 <entry>Class template <code>chi_squared_distribution</code></entry> 1871 <entry>Y</entry> 1872 <entry/> 1873 </row> 1874 <row> 1875 <entry>26.5.8.5.4</entry> 1876 <entry>Class template <code>cauchy_distribution</code></entry> 1877 <entry>Y</entry> 1878 <entry/> 1879 </row> 1880 <row> 1881 <entry>26.5.8.5.5</entry> 1882 <entry>Class template <code>fisher_f_distribution</code></entry> 1883 <entry>Y</entry> 1884 <entry/> 1885 </row> 1886 <row> 1887 <entry>26.5.8.5.6</entry> 1888 <entry>Class template <code>student_t_distribution</code></entry> 1889 <entry>Y</entry> 1890 <entry/> 1891 </row> 1892 <row> 1893 <entry>26.5.8.6</entry> 1894 <entry>Sampling distributions</entry> 1895 <entry/> 1896 <entry/> 1897 </row> 1898 <row> 1899 <entry>26.5.8.6.1</entry> 1900 <entry>Class template <code>discrete_distribution</code></entry> 1901 <entry>Y</entry> 1902 <entry/> 1903 </row> 1904 <row> 1905 <entry>26.5.8.6.2</entry> 1906 <entry>Class template <code>piecewise_constant_distribution</code></entry> 1907 <entry>Y</entry> 1908 <entry/> 1909 </row> 1910 <row> 1911 <entry>26.5.8.6.3</entry> 1912 <entry>Class template <code>piecewise_linear_distribution</code></entry> 1913 <entry>Y</entry> 1914 <entry/> 1915 </row> 1916 <row> 1917 <entry>26.6</entry> 1918 <entry>Numeric arrays</entry> 1919 <entry/> 1920 <entry/> 1921 </row> 1922 <row> 1923 <entry>26.6.1</entry> 1924 <entry>Header <code><valarray></code> synopsis</entry> 1925 <entry>Y</entry> 1926 <entry/> 1927 </row> 1928 <row> 1929 <entry>26.6.2</entry> 1930 <entry>Class template <code>valarray</code></entry> 1931 <entry>Y</entry> 1932 <entry/> 1933 </row> 1934 <row> 1935 <entry>26.6.3</entry> 1936 <entry><code>valarray</code> non-member operations</entry> 1937 <entry>Y</entry> 1938 <entry/> 1939 </row> 1940 <row> 1941 <entry>26.6.4</entry> 1942 <entry>Class <code>slice</code></entry> 1943 <entry>Y</entry> 1944 <entry/> 1945 </row> 1946 <row> 1947 <entry>26.6.5</entry> 1948 <entry>Class template <code>slice_array</code></entry> 1949 <entry>Y</entry> 1950 <entry/> 1951 </row> 1952 <row> 1953 <entry>26.6.6</entry> 1954 <entry>The <code>gslice</code> class</entry> 1955 <entry>Y</entry> 1956 <entry/> 1957 </row> 1958 <row> 1959 <entry>26.6.7</entry> 1960 <entry>Class template <code>gslice_array</code></entry> 1961 <entry>Y</entry> 1962 <entry/> 1963 </row> 1964 <row> 1965 <entry>26.6.8</entry> 1966 <entry>Class template <code>mask_array</code></entry> 1967 <entry>Y</entry> 1968 <entry/> 1969 </row> 1970 <row> 1971 <entry>26.6.9</entry> 1972 <entry>Class template <code>indirect_array</code></entry> 1973 <entry>Y</entry> 1974 <entry/> 1975 </row> 1976 <row> 1977 <entry>26.6.10</entry> 1978 <entry><code>valarray</code> range access</entry> 1979 <entry>Y</entry> 1980 <entry/> 1981 </row> 1982 <row> 1983 <entry>26.7</entry> 1984 <entry>Generalized numeric operations</entry> 1985 <entry/> 1986 <entry/> 1987 </row> 1988 <row> 1989 <entry>26.7.1</entry> 1990 <entry>Header <code><numeric></code> synopsis</entry> 1991 <entry>Y</entry> 1992 <entry/> 1993 </row> 1994 <row> 1995 <entry>26.7.2</entry> 1996 <entry>Accumulate></entry> 1997 <entry>Y</entry> 1998 <entry/> 1999 </row> 2000 <row> 2001 <entry>26.7.3</entry> 2002 <entry>Inner product</entry> 2003 <entry>Y</entry> 2004 <entry/> 2005 </row> 2006 <row> 2007 <entry>26.7.4</entry> 2008 <entry>Partial sum</entry> 2009 <entry>Y</entry> 2010 <entry/> 2011 </row> 2012 <row> 2013 <entry>26.7.5</entry> 2014 <entry>Adjacent difference</entry> 2015 <entry>Y</entry> 2016 <entry/> 2017 </row> 2018 <row> 2019 <entry>26.7.6</entry> 2020 <entry>Iota</entry> 2021 <entry>Y</entry> 2022 <entry/> 2023 </row> 2024 <row> 2025 <entry>26.8</entry> 2026 <entry>C Library</entry> 2027 <entry>Y</entry> 2028 <entry/> 2029 </row> 2030 <row> 2031 <entry> 2032 <emphasis>27</emphasis> 2033 </entry> 2034 <entry namest="c2" nameend="c4" align="left"> 2035 <emphasis>Input/output library</emphasis> 2036 </entry> 2037 </row> 2038 <row> 2039 <entry>27.1</entry> 2040 <entry>General</entry> 2041 <entry>Y</entry> 2042 <entry/> 2043 </row> 2044 <row> 2045 <entry>27.2</entry> 2046 <entry>Iostreams requirements</entry> 2047 <entry>Y</entry> 2048 <entry/> 2049 </row> 2050 <row> 2051 <entry>27.2.1</entry> 2052 <entry>Imbue Limitations</entry> 2053 <entry>Y</entry> 2054 <entry/> 2055 </row> 2056 <row> 2057 <entry>27.2.2</entry> 2058 <entry>Positioning Type Limitations</entry> 2059 <entry>Y</entry> 2060 <entry/> 2061 </row> 2062 <row> 2063 <?dbhtml bgcolor="#B0B0B0" ?> 2064 <entry>27.2.3</entry> 2065 <entry>Thread safety</entry> 2066 <entry>Partial</entry> 2067 <entry/> 2068 </row> 2069 <row> 2070 <entry>27.3</entry> 2071 <entry>Forward declarations</entry> 2072 <entry>Y</entry> 2073 <entry/> 2074 </row> 2075 <row> 2076 <entry>27.4</entry> 2077 <entry>Standard iostream objects</entry> 2078 <entry>Y</entry> 2079 <entry/> 2080 </row> 2081 <row> 2082 <entry>27.4.1</entry> 2083 <entry>Overview</entry> 2084 <entry>Y</entry> 2085 <entry/> 2086 </row> 2087 <row> 2088 <entry>27.4.2</entry> 2089 <entry>Narrow stream objects</entry> 2090 <entry>Y</entry> 2091 <entry/> 2092 </row> 2093 <row> 2094 <entry>27.4.3</entry> 2095 <entry>Wide stream objects</entry> 2096 <entry>Y</entry> 2097 <entry/> 2098 </row> 2099 <row> 2100 <entry>27.5</entry> 2101 <entry>Iostreams base classes</entry> 2102 <entry>Y</entry> 2103 <entry/> 2104 </row> 2105 <row> 2106 <entry>27.6</entry> 2107 <entry>Stream buffers</entry> 2108 <entry>Y</entry> 2109 <entry/> 2110 </row> 2111 <row> 2112 <entry>27.7</entry> 2113 <entry>Formatting and manipulators</entry> 2114 <entry>Y</entry> 2115 <entry/> 2116 </row> 2117 <row> 2118 <entry>27.8</entry> 2119 <entry>String-based streams</entry> 2120 <entry>Y</entry> 2121 <entry/> 2122 </row> 2123 <row> 2124 <entry>27.9</entry> 2125 <entry>File-based streams</entry> 2126 <entry>Y</entry> 2127 <entry/> 2128 </row> 2129 <row> 2130 <entry> 2131 <emphasis>28</emphasis> 2132 </entry> 2133 <entry namest="c2" nameend="c4" align="left"> 2134 <emphasis>Regular expressions</emphasis> 2135 </entry> 2136 </row> 2137 <row> 2138 <entry>28.1</entry> 2139 <entry>General</entry> 2140 <entry>Y</entry> 2141 <entry/> 2142 </row> 2143 <row> 2144 <entry>28.2</entry> 2145 <entry>Definitions</entry> 2146 <entry>Y</entry> 2147 <entry/> 2148 </row> 2149 <row> 2150 <entry>28.3</entry> 2151 <entry>Requirements</entry> 2152 <entry>Y</entry> 2153 <entry/> 2154 </row> 2155 <row> 2156 <entry>28.4</entry> 2157 <entry>Header <code><regex></code> synopsis</entry> 2158 <entry>Y</entry> 2159 <entry/> 2160 </row> 2161 <row> 2162 <entry>28.5</entry> 2163 <entry>Namespace <code>std::regex_constants</code></entry> 2164 <entry>Y</entry> 2165 <entry/> 2166 </row> 2167 <row> 2168 <entry>28.6</entry> 2169 <entry>Class <code>regex_error</code></entry> 2170 <entry>Y</entry> 2171 <entry/> 2172 </row> 2173 <row> 2174 <?dbhtml bgcolor="#B0B0B0" ?> 2175 <entry>28.7</entry> 2176 <entry>Class template <code>regex_traits</code></entry> 2177 <entry>Partial</entry> 2178 <entry><code>transform_primary</code> is not correctly implemented</entry> 2179 <entry/> 2180 </row> 2181 <row> 2182 <entry>28.8</entry> 2183 <entry>Class template <code>basic_regex</code></entry> 2184 <entry>Y</entry> 2185 <entry/> 2186 </row> 2187 <row> 2188 <entry>28.9</entry> 2189 <entry>Class template <code>sub_match</code></entry> 2190 <entry>Y</entry> 2191 <entry/> 2192 </row> 2193 <row> 2194 <entry>28.10</entry> 2195 <entry>Class template <code>match_results</code></entry> 2196 <entry>Y</entry> 2197 <entry/> 2198 </row> 2199 <row> 2200 <entry>28.11</entry> 2201 <entry>Regular expression algorithms</entry> 2202 <entry>Y</entry> 2203 <entry/> 2204 </row> 2205 <row> 2206 <entry>28.12</entry> 2207 <entry>Regular expression Iterators</entry> 2208 <entry>Y</entry> 2209 <entry/> 2210 </row> 2211 <row> 2212 <entry>28.13</entry> 2213 <entry>Modified ECMAScript regular expression grammar</entry> 2214 <entry>Y</entry> 2215 <entry/> 2216 </row> 2217 <row> 2218 <entry> 2219 <emphasis>29</emphasis> 2220 </entry> 2221 <entry namest="c2" nameend="c4" align="left"> 2222 <emphasis>Atomic operations</emphasis> 2223 </entry> 2224 </row> 2225 <row> 2226 <entry>29.1</entry> 2227 <entry>General</entry> 2228 <entry>Y</entry> 2229 <entry/> 2230 </row> 2231 <row> 2232 <entry>29.2</entry> 2233 <entry>Header <code><atomic></code> synopsis</entry> 2234 <entry>Y</entry> 2235 <entry/> 2236 </row> 2237 <row> 2238 <entry>29.3</entry> 2239 <entry>Order and consistency</entry> 2240 <entry>Y</entry> 2241 <entry/> 2242 </row> 2243 <row> 2244 <entry>29.4</entry> 2245 <entry>Lock-free property</entry> 2246 <entry>Y</entry> 2247 <entry/> 2248 </row> 2249 <row> 2250 <entry>29.5</entry> 2251 <entry>Atomic types</entry> 2252 <entry>Y</entry> 2253 <entry/> 2254 </row> 2255 <row> 2256 <entry>29.6</entry> 2257 <entry>Operations on atomic types</entry> 2258 <entry>Y</entry> 2259 <entry/> 2260 </row> 2261 <row> 2262 <entry>29.7</entry> 2263 <entry>Flag Type and operations</entry> 2264 <entry>Y</entry> 2265 <entry/> 2266 </row> 2267 <row> 2268 <entry>29.8</entry> 2269 <entry>Fences</entry> 2270 <entry>Y</entry> 2271 <entry/> 2272 </row> 2273 <row> 2274 <entry> 2275 <emphasis>30</emphasis> 2276 </entry> 2277 <entry namest="c2" nameend="c4" align="left"> 2278 <emphasis>Thread support</emphasis> 2279 </entry> 2280 </row> 2281 <row> 2282 <entry>30.1</entry> 2283 <entry>General</entry> 2284 <entry>Y</entry> 2285 <entry/> 2286 </row> 2287 <row> 2288 <entry>30.2</entry> 2289 <entry>Requirements</entry> 2290 <entry>Y</entry> 2291 <entry/> 2292 </row> 2293 <row> 2294 <entry>30.3</entry> 2295 <entry>Threads</entry> 2296 <entry/> 2297 <entry/> 2298 </row> 2299 <row> 2300 <?dbhtml bgcolor="#B0B0B0" ?> 2301 <entry>30.3.1</entry> 2302 <entry>Class <code>thread</code></entry> 2303 <entry>Partial</entry> 2304 <entry><code>thread::id</code> comparisons not well-defined</entry> 2305 </row> 2306 <row> 2307 <entry>30.3.2</entry> 2308 <entry>Namespace <code>this_thread</code></entry> 2309 <entry>Y</entry> 2310 <entry/> 2311 </row> 2312 <row> 2313 <entry>30.4</entry> 2314 <entry>Mutual exclusion</entry> 2315 <entry/> 2316 <entry/> 2317 </row> 2318 <row> 2319 <entry>30.4.1</entry> 2320 <entry>Mutex requirements</entry> 2321 <entry/> 2322 <entry/> 2323 </row> 2324 <row> 2325 <entry>30.4.1.1</entry> 2326 <entry>In general</entry> 2327 <entry/> 2328 <entry/> 2329 </row> 2330 <row> 2331 <entry>30.4.1.2</entry> 2332 <entry>Mutex types</entry> 2333 <entry/> 2334 <entry/> 2335 </row> 2336 <row> 2337 <entry>30.4.1.2.1</entry> 2338 <entry>Class <code>mutex</code></entry> 2339 <entry>Y</entry> 2340 <entry/> 2341 </row> 2342 <row> 2343 <entry>30.4.1.2.2</entry> 2344 <entry>Class <code>recursive_mutex</code></entry> 2345 <entry>Y</entry> 2346 <entry/> 2347 </row> 2348 <row> 2349 <entry>30.4.1.3</entry> 2350 <entry>Timed mutex types</entry> 2351 <entry/> 2352 <entry/> 2353 </row> 2354 <row> 2355 <entry>30.4.1.3.1</entry> 2356 <entry>Class <code>timed_mutex</code></entry> 2357 <entry>Y</entry> 2358 <entry/> 2359 </row> 2360 <row> 2361 <entry>30.4.1.3.2</entry> 2362 <entry>Class <code>recursive_timed_mutex</code></entry> 2363 <entry>Y</entry> 2364 <entry/> 2365 </row> 2366 <row> 2367 <entry>30.4.2</entry> 2368 <entry>Locks</entry> 2369 <entry/> 2370 <entry/> 2371 </row> 2372 <row> 2373 <entry>30.4.2.1</entry> 2374 <entry>Class template <code>lock_guard</code></entry> 2375 <entry>Y</entry> 2376 <entry/> 2377 </row> 2378 <row> 2379 <entry>30.4.2.2</entry> 2380 <entry>Class template <code>unique_lock</code></entry> 2381 <entry>Y</entry> 2382 <entry/> 2383 </row> 2384 <row> 2385 <entry>30.4.3</entry> 2386 <entry>Generic locking algorithms</entry> 2387 <entry>Y</entry> 2388 <entry/> 2389 </row> 2390 <row> 2391 <entry>30.4.4</entry> 2392 <entry>Call once</entry> 2393 <entry/> 2394 <entry/> 2395 </row> 2396 <row> 2397 <entry>30.4.4.1</entry> 2398 <entry>Struct <code>once_flag</code></entry> 2399 <entry>Y</entry> 2400 <entry/> 2401 </row> 2402 <row> 2403 <?dbhtml bgcolor="#B0B0B0" ?> 2404 <entry>30.4.4.2</entry> 2405 <entry>Function <code>call_once</code></entry> 2406 <entry>Broken</entry> 2407 <entry>See <link xmlns:xlink="http://www.w3.org/1999/xlink" 2408 xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR 2409 66146</link> 2410 </entry> 2411 </row> 2412 <row> 2413 <entry>30.5</entry> 2414 <entry>Condition variables</entry> 2415 <entry>Y</entry> 2416 <entry/> 2417 </row> 2418 <row> 2419 <entry>30.5.1</entry> 2420 <entry>Class <code>condition_variable</code></entry> 2421 <entry>Y</entry> 2422 <entry/> 2423 </row> 2424 <row> 2425 <entry>30.5.2</entry> 2426 <entry>Class <code>condition_variable_any</code></entry> 2427 <entry>Y</entry> 2428 <entry/> 2429 </row> 2430 <row> 2431 <entry>30.6</entry> 2432 <entry>Futures</entry> 2433 <entry/> 2434 <entry/> 2435 </row> 2436 <row> 2437 <entry>30.6.1</entry> 2438 <entry>Overview</entry> 2439 <entry/> 2440 <entry/> 2441 </row> 2442 <row> 2443 <entry>30.6.2</entry> 2444 <entry>Error handling</entry> 2445 <entry>Y</entry> 2446 <entry/> 2447 </row> 2448 <row> 2449 <entry>30.6.3</entry> 2450 <entry>Class <code>future_error</code></entry> 2451 <entry>Y</entry> 2452 <entry/> 2453 </row> 2454 <row> 2455 <entry>30.6.4</entry> 2456 <entry>Shared state</entry> 2457 <entry>Y</entry> 2458 <entry/> 2459 </row> 2460 <row> 2461 <entry>30.6.5</entry> 2462 <entry>Class template <code>promise</code></entry> 2463 <entry>Y</entry> 2464 <entry/> 2465 </row> 2466 <row> 2467 <entry>30.6.6</entry> 2468 <entry>Class template <code>future</code></entry> 2469 <entry>Y</entry> 2470 <entry/> 2471 </row> 2472 <row> 2473 <entry>30.6.7</entry> 2474 <entry>Class template <code>shared_future</code></entry> 2475 <entry>Y</entry> 2476 <entry/> 2477 </row> 2478 <row> 2479 <entry>30.6.8</entry> 2480 <entry>Function template <code>async</code></entry> 2481 <entry>Y</entry> 2482 <entry/> 2483 </row> 2484 <row> 2485 <entry>30.6.9</entry> 2486 <entry>Class template <code>packaged_task</code></entry> 2487 <entry>Y</entry> 2488 <entry/> 2489 </row> 2490 <row> 2491 <entry> 2492 <emphasis>Appendix D</emphasis> 2493 </entry> 2494 <entry namest="c2" nameend="c4" align="left"> 2495 <emphasis>Compatibility features</emphasis> 2496 </entry> 2497 </row> 2498 <row> 2499 <entry>D.1</entry> 2500 <entry>Increment operator with <code>bool</code> operand</entry> 2501 <entry/> 2502 <entry/> 2503 </row> 2504 <row> 2505 <entry>D.2</entry> 2506 <entry><code>register</code> keyword</entry> 2507 <entry/> 2508 <entry/> 2509 </row> 2510 <row> 2511 <entry>D.3</entry> 2512 <entry>Implicit declaration of copy functions</entry> 2513 <entry/> 2514 <entry/> 2515 </row> 2516 <row> 2517 <entry>D.4</entry> 2518 <entry>Dynamic exception specifications</entry> 2519 <entry/> 2520 <entry/> 2521 </row> 2522 <row> 2523 <entry>D.5</entry> 2524 <entry>C standard library headers</entry> 2525 <entry>Y</entry> 2526 <entry/> 2527 </row> 2528 <row> 2529 <entry>D.6</entry> 2530 <entry>Old iostreams members</entry> 2531 <entry>Y</entry> 2532 <entry/> 2533 </row> 2534 <row> 2535 <entry>D.7</entry> 2536 <entry><code>char*</code> streams</entry> 2537 <entry>Y</entry> 2538 <entry/> 2539 </row> 2540 <row> 2541 <entry>D.8</entry> 2542 <entry>Function objects</entry> 2543 <entry>Y</entry> 2544 <entry/> 2545 </row> 2546 <row> 2547 <entry>D.9</entry> 2548 <entry>Binders</entry> 2549 <entry>Y</entry> 2550 <entry/> 2551 </row> 2552 <row> 2553 <entry>D.10</entry> 2554 <entry><code>auto_ptr</code></entry> 2555 <entry>Y</entry> 2556 <entry/> 2557 </row> 2558 <row> 2559 <entry>D.11</entry> 2560 <entry>Violating exception-specifications</entry> 2561 <entry>Y</entry> 2562 <entry/> 2563 </row> 2564 2565 </tbody> 2566</tgroup> 2567</table> 2568 2569<section xml:id="iso.2011.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info> 2570 2571 <para>For behaviour which is also specified by the 1998 and 2003 standards, 2572 see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation 2573 Specific Behavior</link>. This section only documents behaviour which 2574 is new in the 2011 standard. 2575 </para> 2576 2577 <para> 2578 <emphasis>17.6.5.12 [res.on.exception.handling]</emphasis> 2579 There are no implementation-defined exception classes, only standard 2580 exception classes (or classes derived from them) will be thrown. 2581 </para> 2582 2583 <para> 2584 <emphasis>17.6.5.14 [value.error.codes]</emphasis> 2585 The <classname>error_category</classname> for errors originating outside 2586 the OS, and the possible error code values for each error category, 2587 should be documented here. 2588 </para> 2589 2590 <para> 2591 <emphasis>18.6.2.2 [new.badlength]</emphasis> 2592 <function>what()</function> returns 2593 <literal>"std::bad_array_new_length"</literal>. 2594 </para> 2595 2596 <para> 2597 <emphasis>20.6.9.1 [allocator.member]/5</emphasis> 2598 Over-aligned types are not supported by 2599 <classname>std::allocator</classname>. 2600 </para> 2601 2602 <para> 2603 <emphasis>20.7.2.2.1 [util.smartptr.shared.const]</emphasis> 2604 When a <classname>shared_ptr</classname> constructor fails 2605 <classname>bad_alloc</classname> (or types derived from it) will 2606 be thrown, or when an allocator is passed to the constructor then any 2607 exceptions thrown by the allocator. 2608 </para> 2609 2610 <para> 2611 <emphasis>20.7.2.0 [util.smartptr.weakptr]</emphasis> 2612 <code>what()</code> returns <literal>"bad_weak_ptr"</literal>. 2613 </para> 2614 2615 <para> 2616 <emphasis>20.8.9.1.3 [func.bind.place]/1</emphasis> There are 29 2617 placeholders defined and the placeholder types are 2618 <literal>CopyAssignable</literal>. 2619 </para> 2620 2621 <para> 2622 <emphasis>20.11.7.1 [time.clock.system]/3, /4</emphasis> 2623 Time point values are truncated to <code>time_t</code> values. 2624 There is no loss of precision for conversions in the other direction. 2625 </para> 2626 2627 <para> 2628 <emphasis>20.15.7 [meta.trans]/2</emphasis> 2629 <classname>aligned_storage</classname> does not support extended 2630 alignment. 2631 </para> 2632 2633 <para> 2634 <emphasis>21.2.3.2 [char.traits.specializations.char16_t]</emphasis>, 2635 <emphasis>21.2.3.3 [char.traits.specializations.char32_t]</emphasis> 2636 The types <classname>u16streampos</classname> and 2637 <classname>u32streampos</classname> are both synonyms for 2638 <classname>fpos<mbstate_t></classname>. 2639 The function <function>eof</function> returns <code>int_type(-1)</code>. 2640 <function>char_traits<char16_t>::to_int_type</function> will 2641 transform the "noncharacter" U+FFFF to U+FFFD (REPLACEMENT CHARACTER). 2642 This is done to ensure that <function>to_int_type</function> never 2643 returns the same value as <function>eof</function>, which is U+FFFF. 2644 </para> 2645 2646 <para> 2647 <emphasis>22.3.1 [locale]</emphasis> 2648 There is one global locale for the whole program, not per-thread. 2649 </para> 2650 2651 <para> 2652 <emphasis>22.4.5.1.2 [locale.time.get.virtuals]</emphasis>, 2653 <emphasis>22.4.5.3.2 [locale.time.put.virtuals]</emphasis> 2654 Additional supported formats should be documented here. 2655 </para> 2656 2657 <para> 2658 <emphasis> 22.4.7.1.2 [locale.messages.virtuals]</emphasis> 2659 The mapping should be documented here. 2660 </para> 2661 2662 <para> 2663 <emphasis>23.3.2.1 [array.overview]</emphasis> 2664 <classname>array<T, N>::iterator</classname> is <code>T*</code> and 2665 <classname>array<T, N>::const_iterator</classname> is 2666 <code>const T*</code>. 2667 </para> 2668 2669 <para> 2670 <emphasis>23.5.4.2 [unord.map.cnstr]</emphasis>, 2671 <emphasis>23.5.5.2 [unord.multimap.cnstr]</emphasis>, 2672 <emphasis>23.5.6.2 [unord.set.cnstr]</emphasis>, 2673 <emphasis>23.5.7.2 [unord.multiset.cnstr]</emphasis> 2674 The default minimal bucket count is 0 for the default constructors, range 2675 constructors and initializer-list constructors. 2676 </para> 2677 2678 <para> 2679 <emphasis>25.3.12 [alg.random.shuffle]</emphasis> 2680 The two-argument overload of <function>random_shuffle</function> 2681 uses <function>rand</function> as the source of randomness. 2682 </para> 2683 2684 <para> 2685 <emphasis>26.5.5 [rand.predef]</emphasis> 2686 The type <classname>default_random_engine</classname> is a synonym for 2687 <classname>minstd_rand0</classname>. 2688 </para> 2689 2690 <para> 2691 <emphasis> 26.5.6 [rand.device] </emphasis> 2692 The <code>token</code> parameter of the 2693 <classname>random_device</classname> constructor can be used to select 2694 a specific source of random bytes. The valid token values are shown 2695 in the list below. 2696 The default constructor uses the token <literal>"default"</literal>. 2697 <variablelist> 2698 <varlistentry> 2699 <term><literal>"default"</literal></term> 2700 <listitem> 2701 Select the first available source from the other entries below. 2702 This is the only token that is always valid. 2703 </listitem> 2704 </varlistentry> 2705 <varlistentry> 2706 <term><literal>"rand_s"</literal></term> 2707 <listitem> 2708 Use the MSVCRT <function>rand_s</function> function. 2709 This token is only valid for mingw-w64 targets. 2710 </listitem> 2711 </varlistentry> 2712 <varlistentry> 2713 <term><literal>"rdseed"</literal></term> 2714 <term><literal>"rdrand"</literal> or <literal>"rdrnd"</literal></term> 2715 <listitem> 2716 Use the IA-32 <literal>RDSEED</literal> or <literal>RDRAND</literal> 2717 instruction to read from an on-chip hardware random number generator. 2718 These tokens are only valid for x86 and x86_64 targets when both 2719 the assembler and CPU support the corresponding instruction. 2720 </listitem> 2721 </varlistentry> 2722 <varlistentry> 2723 <term><literal>"/dev/urandom"</literal></term> 2724 <term><literal>"/dev/random"</literal></term> 2725 <listitem> 2726 Use the named character special file to read random bytes from. 2727 These tokens are only valid when the device files are present 2728 and readable by the current user. 2729 </listitem> 2730 </varlistentry> 2731 <varlistentry> 2732 <term><literal>"mt19937"</literal></term> 2733 <term>seed value</term> 2734 <listitem> 2735 When no source of nondeterministic random numbers is available a 2736 <classname>mersenne_twister_engine</classname> will be used. 2737 An integer seed value can be used as the token and will be converted 2738 to an <code>unsigned long</code> using <function>strtoul</function>. 2739 These tokens are only valid when no other source of random bytes 2740 is available. 2741 </listitem> 2742 </varlistentry> 2743 </variablelist> 2744 An exception of type <classname>runtime_error</classname> will be 2745 thrown if a <classname>random_device</classname> object is constructed 2746 with an invalid token, or if it cannot open or read from the source 2747 of random bytes. 2748 </para> 2749 2750 <para> 2751 <emphasis>26.5.8.1 [rand.dist.general]</emphasis> 2752 The algorithms used by the distributions should be documented here. 2753 </para> 2754 2755 <para> 2756 <emphasis>26.8 [c.math]</emphasis> Whether the 2757 <function>rand</function> function introduces data races depends on 2758 the C library as the function is not provided by libstdc++. 2759 </para> 2760 2761 <para> 2762 <emphasis>27.8.2.1 [stringbuf.cons]</emphasis> 2763 Whether the sequence pointers are copied by the 2764 <classname>basic_stringbuf</classname> move constructor should be 2765 documented here. 2766 </para> 2767 2768 <para> 2769 <emphasis>27.9.1.2 [filebuf.cons]</emphasis> 2770 Whether the sequence pointers are copied by the 2771 <classname>basic_filebuf</classname> move constructor should be 2772 documented here. 2773 </para> 2774 2775 <para> 2776 <emphasis>28.5.1 [re.synopt]</emphasis>, 2777 <emphasis> 28.5.2 [re.matchflag] </emphasis>, 2778 <emphasis> 28.5.3 [re.err] </emphasis> 2779 <code>syntax_option_type</code>, <code>match_flag_type</code> 2780 and <code>error_type</code> are unscoped enumeration types. 2781 </para> 2782 2783 <para> 2784 <emphasis>28.7 [re.traits]</emphasis> 2785 The <literal>blank</literal> character class corresponds to the 2786 <code>ctype_base::blank</code> mask. 2787 </para> 2788 2789 <para> 2790 <emphasis>29.4 [atomics.lockfree]</emphasis> 2791 The values of the <code>ATOMIC_xxx_LOCK_FREE</code> macros depend on 2792 the target and cannot be listed here. 2793 </para> 2794 2795 <para> 2796 <emphasis>30.2.3 [thread.req.native]/1</emphasis> 2797 <classname>native_handle_type</classname> and 2798 <methodname>native_handle</methodname> are provided. The handle types 2799 are defined in terms of the Gthreads abstraction layer, although this 2800 is subject to change at any time. Any use of 2801 <classname>native_handle</classname> is inherently non-portable and 2802 not guaranteed to work between major releases of GCC. 2803 <variablelist> 2804 <varlistentry> 2805 <term><classname>thread</classname></term> 2806 <listitem> 2807 The native handle type is a typedef for <code>__gthread_t</code> 2808 i.e. <code>pthread_t</code> when GCC is configured with the 2809 <literal>posix</literal> thread model. 2810 The value of the native handle is undefined for a thread 2811 which is not joinable. 2812 </listitem> 2813 </varlistentry> 2814 <varlistentry> 2815 <term><classname>mutex</classname></term> 2816 <term><classname>timed_mutex</classname></term> 2817 <listitem> 2818 The native handle type is <code>__gthread_mutex_t*</code> i.e. 2819 <code>pthread_mutex_t*</code> for the <literal>posix</literal> 2820 thread model. 2821 </listitem> 2822 </varlistentry> 2823 <varlistentry> 2824 <term><classname>recursive_mutex</classname></term> 2825 <term><classname>recursive_timed_mutex</classname></term> 2826 <listitem> 2827 The native handle type is <code>__gthread_recursive_mutex_t*</code> 2828 i.e. <code>pthread_mutex_t*</code> for the <literal>posix</literal> 2829 thread model. 2830 </listitem> 2831 </varlistentry> 2832 <varlistentry> 2833 <term><classname>condition_variable</classname></term> 2834 <listitem> 2835 The native handle type is <code>__gthread_cond_t*</code> i.e. 2836 <code>pthread_cond_t*</code> for the <literal>posix</literal> 2837 thread model. 2838 </listitem> 2839 </varlistentry> 2840 </variablelist> 2841 </para> 2842 2843 <para> 2844 <emphasis>30.6.1 [futures.overview]/2</emphasis> 2845 <code>launch</code> is a scoped enumeration type with 2846 overloaded operators to support bitmask operations. There are no 2847 additional bitmask elements defined. 2848 </para> 2849 2850</section> 2851 2852</section> 2853