1<section xmlns="http://docbook.org/ns/docbook" version="5.0" 2 xml:id="status.iso.2014" xreflabel="Status C++ 2014"> 3<?dbhtml filename="status_iso_cxx2014.html"?> 4 5<info><title>C++ 2014</title> 6 <keywordset> 7 <keyword>ISO C++</keyword> 8 <keyword>2014</keyword> 9 </keywordset> 10</info> 11 12<para> 13In this implementation the <literal>-std=gnu++14</literal> or 14<literal>-std=c++14</literal> flag must be used to enable language 15and library 16features. See <link linkend="manual.intro.using.flags">dialect</link> 17options. The pre-defined symbol 18<constant>__cplusplus</constant> is used to check for the 19presence of the required flag. 20GCC 6.1 was the first release with non-experimental C++14 support, 21so the API and ABI of features added in C++14 is only stable 22since that release. 23</para> 24 25<para> 26This status table is based on the table of contents of ISO/IEC 14882:2014. 27Some subclauses are not shown in the table where the content is unchanged 28since C++11 and the implementation is complete. 29</para> 30 31<para> 32This section describes the C++14 and library TS support in the GCC 12 release series, 33not in any particular release. 34</para> 35 36<!-- Status is Yes or No, Broken/Partial--> 37<!-- 38 Yes 39 40 No 41 <?dbhtml bgcolor="#C8B0B0" ?> 42 Broken/Partial 43 <?dbhtml bgcolor="#B0B0B0" ?> 44--> 45<table frame="all" xml:id="table.cxx14_status"> 46<title>C++ 2014 Implementation Status</title> 47 48<tgroup cols="4" align="left" colsep="0" rowsep="1"> 49<colspec colname="c1"/> 50<colspec colname="c2"/> 51<colspec colname="c3"/> 52<colspec colname="c4"/> 53<thead> 54 <row> 55 <entry>Section</entry> 56 <entry>Description</entry> 57 <entry>Status</entry> 58 <entry>Comments</entry> 59 </row> 60 </thead> 61 62 <tbody> 63 64 <row> 65 <entry> 66 <emphasis>18</emphasis> 67 </entry> 68 <entry namest="c2" nameend="c4" align="left"> 69 <emphasis>Language support</emphasis> 70 </entry> 71 </row> 72 73 <row> 74 <entry>18.1</entry> 75 <entry>General</entry> 76 <entry/> 77 <entry/> 78 </row> 79 <row> 80 <entry>18.2</entry> 81 <entry>Types</entry> 82 <entry>Y</entry> 83 <entry/> 84 </row> 85 <row> 86 <entry>18.3</entry> 87 <entry>Implementation properties</entry> 88 <entry/> 89 <entry/> 90 </row> 91 92 <row> 93 <entry>18.3.2</entry> 94 <entry>Numeric Limits</entry> 95 <entry/> 96 <entry/> 97 </row> 98 <row> 99 <entry>18.3.2.3</entry> 100 <entry>Class template <code>numeric_limits</code></entry> 101 <entry>Y</entry> 102 <entry/> 103 </row> 104 <row> 105 <entry>18.3.2.4</entry> 106 <entry><code>numeric_limits</code> members</entry> 107 <entry>Y</entry> 108 <entry/> 109 </row> 110 <row> 111 <?dbhtml bgcolor="#C8B0B0" ?> 112 <entry>18.3.2.5</entry> 113 <entry><code>float_round_style</code></entry> 114 <entry>N</entry> 115 <entry/> 116 </row> 117 <row> 118 <?dbhtml bgcolor="#C8B0B0" ?> 119 <entry>18.3.2.6</entry> 120 <entry><code>float_denorm_style</code></entry> 121 <entry>N</entry> 122 <entry/> 123 </row> 124 <row> 125 <entry>18.3.2.7</entry> 126 <entry><code>numeric_limits</code> specializations</entry> 127 <entry>Y</entry> 128 <entry/> 129 </row> 130 <row> 131 <entry>18.3.3</entry> 132 <entry>C Library</entry> 133 <entry>Y</entry> 134 <entry/> 135 </row> 136 137 <row> 138 <entry>18.4</entry> 139 <entry>Integer types</entry> 140 <entry/> 141 <entry/> 142 </row> 143 <row> 144 <entry>18.4.1</entry> 145 <entry>Header <code><cstdint></code> synopsis</entry> 146 <entry>Y</entry> 147 <entry/> 148 </row> 149 <row> 150 <?dbhtml bgcolor="#B0B0B0" ?> 151 <entry>18.5</entry> 152 <entry>Start and termination</entry> 153 <entry>Partial</entry> 154 <entry>C library dependency for quick_exit, at_quick_exit</entry> 155 </row> 156 <row> 157 <entry>18.6</entry> 158 <entry>Dynamic memory management</entry> 159 <entry>Y</entry> 160 <entry/> 161 </row> 162 <row> 163 <entry>18.7</entry> 164 <entry>Type identification</entry> 165 <entry/> 166 <entry/> 167 </row> 168 <row> 169 <entry>18.7.1</entry> 170 <entry>Class type_info</entry> 171 <entry>Y</entry> 172 <entry/> 173 </row> 174 <row> 175 <entry>18.7.2</entry> 176 <entry>Class bad_cast</entry> 177 <entry>Y</entry> 178 <entry/> 179 </row> 180 <row> 181 <entry>18.7.3</entry> 182 <entry>Class bad_typeid</entry> 183 <entry>Y</entry> 184 <entry/> 185 </row> 186 <row> 187 <entry>18.8</entry> 188 <entry>Exception handling</entry> 189 <entry/> 190 <entry/> 191 </row> 192 <row> 193 <entry>18.8.1</entry> 194 <entry>Class exception</entry> 195 <entry>Y</entry> 196 <entry/> 197 </row> 198 <row> 199 <entry>18.8.2</entry> 200 <entry>Class bad_exception</entry> 201 <entry>Y</entry> 202 <entry/> 203 </row> 204 <row> 205 <entry>18.8.3</entry> 206 <entry>Abnormal termination</entry> 207 <entry>Y</entry> 208 <entry/> 209 </row> 210 <row> 211 <entry>18.8.4</entry> 212 <entry><code>uncaught_exception</code></entry> 213 <entry>Y</entry> 214 <entry/> 215 </row> 216 <row> 217 <entry>18.8.5</entry> 218 <entry>Exception Propagation</entry> 219 <entry>Y</entry> 220 <entry/> 221 </row> 222 <row> 223 <entry>18.8.6</entry> 224 <entry><code>nested_exception</code></entry> 225 <entry>Y</entry> 226 <entry/> 227 </row> 228 <row> 229 <entry>18.9</entry> 230 <entry>Initializer lists</entry> 231 <entry/> 232 <entry/> 233 </row> 234 <row> 235 <entry>18.9.1</entry> 236 <entry>Initializer list constructors</entry> 237 <entry>Y</entry> 238 <entry/> 239 </row> 240 <row> 241 <entry>18.9.2</entry> 242 <entry>Initializer list access</entry> 243 <entry>Y</entry> 244 <entry/> 245 </row> 246 <row> 247 <entry>18.9.3</entry> 248 <entry>Initializer list range access</entry> 249 <entry>Y</entry> 250 <entry/> 251 </row> 252 <row> 253 <entry>18.10</entry> 254 <entry>Other runtime support</entry> 255 <entry>Y</entry> 256 <entry/> 257 </row> 258 <row> 259 <entry> 260 <emphasis>19</emphasis> 261 </entry> 262 <entry namest="c2" nameend="c4" align="left"> 263 <emphasis>Diagnostics</emphasis> 264 </entry> 265 </row> 266 <row> 267 <entry>19.1</entry> 268 <entry>General</entry> 269 <entry/> 270 <entry/> 271 </row> 272 <row> 273 <entry>19.2</entry> 274 <entry>Exception classes</entry> 275 <entry>Y</entry> 276 <entry/> 277 </row> 278 <row> 279 <entry>19.3</entry> 280 <entry>Assertions</entry> 281 <entry>Y</entry> 282 <entry/> 283 </row> 284 <row> 285 <entry>19.4</entry> 286 <entry>Error numbers</entry> 287 <entry>Y</entry> 288 <entry/> 289 </row> 290 <row> 291 <entry>19.5</entry> 292 <entry>System error support</entry> 293 <entry/> 294 <entry/> 295 </row> 296 <row> 297 <entry>19.5.1</entry> 298 <entry>Class <code>error_category</code></entry> 299 <entry>Y</entry> 300 <entry/> 301 </row> 302 <row> 303 <entry>19.5.2</entry> 304 <entry>Class <code>error_code</code></entry> 305 <entry>Y</entry> 306 <entry/> 307 </row> 308 <row> 309 <entry>19.5.3</entry> 310 <entry>Class <code>error_condition</code></entry> 311 <entry>Y</entry> 312 <entry/> 313 </row> 314 <row> 315 <entry>19.5.4</entry> 316 <entry>Comparison operators</entry> 317 <entry>Y</entry> 318 <entry/> 319 </row> 320 <row> 321 <entry>19.5.5</entry> 322 <entry>Class <code>system_error</code></entry> 323 <entry>Y</entry> 324 <entry/> 325 </row> 326 <row> 327 <entry> 328 <emphasis>20</emphasis> 329 </entry> 330 <entry namest="c2" nameend="c4" align="left"> 331 <emphasis>General utilities</emphasis> 332 </entry> 333 </row> 334 <row> 335 <entry>20.1</entry> 336 <entry>General</entry> 337 <entry/> 338 <entry/> 339 </row> 340 <row> 341 <entry>20.2</entry> 342 <entry>Utility components</entry> 343 <entry/> 344 <entry/> 345 </row> 346 <row> 347 <entry>20.2.1</entry> 348 <entry>Operators</entry> 349 <entry>Y</entry> 350 <entry/> 351 </row> 352 <row> 353 <entry>20.2.2</entry> 354 <entry>swap</entry> 355 <entry>Y</entry> 356 <entry/> 357 </row> 358 <row> 359 <entry>20.2.3</entry> 360 <entry>exchange</entry> 361 <entry>Y</entry> 362 <entry/> 363 </row> 364 <row> 365 <entry>20.2.4</entry> 366 <entry>forward/move helpers</entry> 367 <entry>Y</entry> 368 <entry/> 369 </row> 370 <row> 371 <entry>20.2.5</entry> 372 <entry>Function template <code>declval</code></entry> 373 <entry>Y</entry> 374 <entry/> 375 </row> 376 <row> 377 <entry>20.3</entry> 378 <entry>Pairs</entry> 379 <entry>Y</entry> 380 <entry/> 381 </row> 382 <row> 383 <entry>20.4</entry> 384 <entry>Tuples</entry> 385 <entry>Y</entry> 386 <entry/> 387 </row> 388 <row> 389 <entry>20.5</entry> 390 <entry>Compile-time integer sequences</entry> 391 <entry/> 392 <entry/> 393 </row> 394 <row> 395 <entry>20.5.2</entry> 396 <entry>Class template <code>integer_sequence</code></entry> 397 <entry>Y</entry> 398 <entry/> 399 </row> 400 <row> 401 <entry>20.5.3</entry> 402 <entry>Alias template <code>make_integer_sequence</code></entry> 403 <entry>Y</entry> 404 <entry/> 405 </row> 406 <row> 407 <entry>20.6</entry> 408 <entry>Class template <code>bitset</code></entry> 409 <entry>Y</entry> 410 <entry/> 411 </row> 412 <row> 413 <entry>20.7</entry> 414 <entry>Memory</entry> 415 <entry>Y</entry> 416 <entry/> 417 </row> 418 <row> 419 <entry>20.8</entry> 420 <entry>Smart pointers</entry> 421 <entry/> 422 <entry/> 423 </row> 424 <row> 425 <entry>20.8.1</entry> 426 <entry>Class template <code>unique_ptr</code></entry> 427 <entry>Y</entry> 428 <entry/> 429 </row> 430 <row> 431 <entry>20.8.1.1</entry> 432 <entry>Default deleters</entry> 433 <entry>Y</entry> 434 <entry/> 435 </row> 436 <row> 437 <entry>20.8.1.2</entry> 438 <entry><code>unique_ptr</code> for single objects</entry> 439 <entry>Y</entry> 440 <entry/> 441 </row> 442 <row> 443 <entry>20.8.1.3</entry> 444 <entry><code>unique_ptr</code> for array objects with a runtime length</entry> 445 <entry>Y</entry> 446 <entry/> 447 </row> 448 <row> 449 <entry>20.8.1.4</entry> 450 <entry><code>unique_ptr</code> creation</entry> 451 <entry>Y</entry> 452 <entry/> 453 </row> 454 <row> 455 <entry>20.8.1.5</entry> 456 <entry><code>unique_ptr</code> specialized algorithms</entry> 457 <entry>Y</entry> 458 <entry/> 459 </row> 460 <row> 461 <entry>20.8.2</entry> 462 <entry>Shared-ownership pointers</entry> 463 <entry/> 464 <entry/> 465 </row> 466 <row> 467 <entry>20.8.2.1</entry> 468 <entry>Class <code>bad_weak_ptr</code></entry> 469 <entry>Y</entry> 470 <entry/> 471 </row> 472 <row> 473 <entry>20.8.2.2</entry> 474 <entry>Class template <code>shared_ptr</code></entry> 475 <entry>Y</entry> 476 <entry> 477 Uses code from 478 <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>. 479 </entry> 480 </row> 481 <row> 482 <entry>20.8.2.3</entry> 483 <entry>Class template <code>weak_ptr</code></entry> 484 <entry>Y</entry> 485 <entry/> 486 </row> 487 <row> 488 <entry>20.8.2.4</entry> 489 <entry>Class template <code>owner_less</code></entry> 490 <entry>Y</entry> 491 <entry/> 492 </row> 493 <row> 494 <entry>20.8.2.5</entry> 495 <entry>Class template <code>enable_shared_from_this</code></entry> 496 <entry>Y</entry> 497 <entry/> 498 </row> 499 <row> 500 <entry>20.8.2.6</entry> 501 <entry><code>shared_ptr</code> atomic access</entry> 502 <entry>Y</entry> 503 <entry/> 504 </row> 505 <row> 506 <entry>20.8.2.7</entry> 507 <entry>Smart pointer hash support</entry> 508 <entry>Y</entry> 509 <entry/> 510 </row> 511 <row> 512 <entry>20.9</entry> 513 <entry>Function objects</entry> 514 <entry/> 515 <entry/> 516 </row> 517 <row> 518 <entry>20.9.1</entry> 519 <entry>Definitions</entry> 520 <entry/> 521 <entry/> 522 </row> 523 <row> 524 <entry>20.9.2</entry> 525 <entry>Requirements</entry> 526 <entry/> 527 <entry/> 528 </row> 529 <row> 530 <entry>20.9.3</entry> 531 <entry>Class template <code>reference_wrapper</code></entry> 532 <entry>Y</entry> 533 <entry/> 534 </row> 535 <row> 536 <entry>20.9.4</entry> 537 <entry>Arithmetic operation</entry> 538 <entry>Y</entry> 539 <entry/> 540 </row> 541 <row> 542 <entry>20.9.5</entry> 543 <entry>Comparisons</entry> 544 <entry>Y</entry> 545 <entry/> 546 </row> 547 <row> 548 <entry>20.8.6</entry> 549 <entry>Logical operations</entry> 550 <entry>Y</entry> 551 <entry/> 552 </row> 553 <row> 554 <entry>20.9.7</entry> 555 <entry>Bitwise operations</entry> 556 <entry>Y</entry> 557 <entry/> 558 </row> 559 <row> 560 <entry>20.9.8</entry> 561 <entry>Negators</entry> 562 <entry>Y</entry> 563 <entry/> 564 </row> 565 <row> 566 <entry>20.9.9</entry> 567 <entry>Function object binders</entry> 568 <entry>Y</entry> 569 <entry/> 570 </row> 571 <row> 572 <entry>20.9.10</entry> 573 <entry>Function template <code>mem_fn</code></entry> 574 <entry>Y</entry> 575 <entry/> 576 </row> 577 <row> 578 <entry>20.9.11</entry> 579 <entry>Polymorphic function wrappers</entry> 580 <entry/> 581 <entry/> 582 </row> 583 <row> 584 <entry>20.9.11.1</entry> 585 <entry>Class <code>bad_function_call</code></entry> 586 <entry>Y</entry> 587 <entry/> 588 </row> 589 <row> 590 <?dbhtml bgcolor="#B0B0B0" ?> 591 <entry>20.9.11.2</entry> 592 <entry>Class template <code>function</code></entry> 593 <entry>Partial</entry> 594 <entry>Missing allocator support</entry> 595 </row> 596 <row> 597 <entry>20.9.12</entry> 598 <entry>Class template <code>hash</code></entry> 599 <entry>Y</entry> 600 <entry/> 601 </row> 602 <row> 603 <entry>20.10</entry> 604 <entry>Metaprogramming and type traits</entry> 605 <entry/> 606 <entry/> 607 </row> 608 <row> 609 <entry>20.10.1</entry> 610 <entry>Requirements</entry> 611 <entry>Y</entry> 612 <entry/> 613 </row> 614 <row> 615 <entry>20.10.2</entry> 616 <entry>Header <code><type_traits></code> synopsis</entry> 617 <entry/> 618 <entry/> 619 </row> 620 <row> 621 <entry>20.10.3</entry> 622 <entry>Helper classes</entry> 623 <entry>Y</entry> 624 <entry/> 625 </row> 626 <row> 627 <entry>20.10.4</entry> 628 <entry>Unary Type Traits</entry> 629 <entry>Y</entry> 630 <entry/> 631 </row> 632 <row> 633 <entry>20.10.5</entry> 634 <entry>Type property queries</entry> 635 <entry>Y</entry> 636 <entry/> 637 </row> 638 <row> 639 <entry>20.10.6</entry> 640 <entry>Relationships between types</entry> 641 <entry>Y</entry> 642 <entry/> 643 </row> 644 <row> 645 <entry>20.10.7</entry> 646 <entry>Transformations between types</entry> 647 <entry>Y</entry> 648 <entry/> 649 </row> 650 <row> 651 <entry>20.11</entry> 652 <entry>Compile-time rational arithmetic</entry> 653 <entry>Y</entry> 654 <entry/> 655 </row> 656 <row> 657 <entry>20.12</entry> 658 <entry>Time utilities</entry> 659 <entry/> 660 <entry/> 661 </row> 662 <row> 663 <entry>20.12.3</entry> 664 <entry>Clock requirements</entry> 665 <entry>Y</entry> 666 <entry/> 667 </row> 668 <row> 669 <entry>20.12.4</entry> 670 <entry>Time-related traits</entry> 671 <entry>Y</entry> 672 <entry/> 673 </row> 674 <row> 675 <entry>20.12.5</entry> 676 <entry>Class template <code>duration</code></entry> 677 <entry>Y</entry> 678 <entry/> 679 </row> 680 <row> 681 <entry>20.12.5.8</entry> 682 <entry>Suffixes for duration literals</entry> 683 <entry>Y</entry> 684 <entry/> 685 </row> 686 <row> 687 <entry>20.12.6</entry> 688 <entry>Class template <code>time_point</code></entry> 689 <entry>Y</entry> 690 <entry/> 691 </row> 692 <row> 693 <entry>20.12.7</entry> 694 <entry>Clocks</entry> 695 <entry>Y</entry> 696 <entry/> 697 </row> 698 <row> 699 <entry>20.12.8</entry> 700 <entry>Date and time functions</entry> 701 <entry>Y</entry> 702 <entry/> 703 </row> 704 <row> 705 <entry>20.13</entry> 706 <entry>Scoped allocator adaptor</entry> 707 <entry>Y</entry> 708 <entry/> 709 </row> 710 <row> 711 <entry>20.14</entry> 712 <entry>Class <code>type_index</code></entry> 713 <entry>Y</entry> 714 <entry/> 715 </row> 716 <row> 717 <entry> 718 <emphasis>21</emphasis> 719 </entry> 720 <entry namest="c2" nameend="c4" align="left"> 721 <emphasis>Strings</emphasis> 722 </entry> 723 </row> 724 <row> 725 <entry>21.1</entry> 726 <entry>General</entry> 727 <entry>Y</entry> 728 <entry/> 729 </row> 730 <row> 731 <entry>21.2</entry> 732 <entry>Character traits</entry> 733 <entry>Y</entry> 734 <entry/> 735 </row> 736 <row> 737 <entry>21.3</entry> 738 <entry>String classes</entry> 739 <entry>Y</entry> 740 <entry/> 741 </row> 742 <row> 743 <entry>21.4</entry> 744 <entry>Class template <code>basic_string</code></entry> 745 <entry>Y</entry> 746 <entry/> 747 </row> 748 <row> 749 <entry>21.5</entry> 750 <entry>Numeric Conversions</entry> 751 <entry>Y</entry> 752 <entry/> 753 </row> 754 <row> 755 <entry>21.6</entry> 756 <entry>Hash support</entry> 757 <entry>Y</entry> 758 <entry/> 759 </row> 760 <row> 761 <entry>21.7</entry> 762 <entry>Suffixes for <code>basic_string</code> literals</entry> 763 <entry>Y</entry> 764 <entry/> 765 </row> 766 <row> 767 <?dbhtml bgcolor="#B0B0B0" ?> 768 <entry>21.7</entry> 769 <entry>Null-terminated sequence utilities</entry> 770 <entry>Partial</entry> 771 <entry>C library dependency. </entry> 772 </row> 773 <row> 774 <entry> 775 <emphasis>22</emphasis> 776 </entry> 777 <entry namest="c2" nameend="c4" align="left"> 778 <emphasis>Localization</emphasis> 779 </entry> 780 </row> 781 <row> 782 <entry>22.1</entry> 783 <entry>General</entry> 784 <entry>Y</entry> 785 <entry/> 786 </row> 787 <row> 788 <entry>22.2</entry> 789 <entry>Header <code><locale></code> synopsis</entry> 790 <entry>Y</entry> 791 <entry/> 792 </row> 793 <row> 794 <entry>22.3</entry> 795 <entry>Locales</entry> 796 <entry>Y</entry> 797 <entry/> 798 </row> 799 <row> 800 <entry>22.4</entry> 801 <entry>Standard <code>locale</code> categories</entry> 802 <entry>Y</entry> 803 <entry/> 804 </row> 805 <row> 806 <entry>22.5</entry> 807 <entry>Standard code conversion facets</entry> 808 <entry>Y</entry> 809 <entry/> 810 </row> 811 <row> 812 <entry>22.6</entry> 813 <entry>C Library Locales</entry> 814 <entry>Y</entry> 815 <entry/> 816 </row> 817 <row> 818 <entry> 819 <emphasis>23</emphasis> 820 </entry> 821 <entry namest="c2" nameend="c4" align="left"> 822 <emphasis>Containers</emphasis> 823 </entry> 824 </row> 825 <row> 826 <entry>23.1</entry> 827 <entry>General</entry> 828 <entry/> 829 <entry/> 830 </row> 831 <row> 832 <entry>23.2</entry> 833 <entry>Container requirements</entry> 834 <entry>Y</entry> 835 <entry/> 836 </row> 837 <row> 838 <entry>23.3</entry> 839 <entry>Sequence containers</entry> 840 <entry>Y</entry> 841 <entry/> 842 </row> 843 <row> 844 <entry>23.4</entry> 845 <entry>Associative containers</entry> 846 <entry>Y</entry> 847 <entry/> 848 </row> 849 <row> 850 <entry>23.5</entry> 851 <entry>Unordered associative containers</entry> 852 <entry>Y</entry> 853 <entry/> 854 </row> 855 <row> 856 <entry>23.6</entry> 857 <entry>Container adaptors</entry> 858 <entry>Y</entry> 859 <entry/> 860 </row> 861 <row> 862 <entry> 863 <emphasis>24</emphasis> 864 </entry> 865 <entry namest="c2" nameend="c4" align="left"> 866 <emphasis>Iterators</emphasis> 867 </entry> 868 </row> 869 <row> 870 <entry>24.1</entry> 871 <entry>General</entry> 872 <entry>Y</entry> 873 <entry/> 874 </row> 875 <row> 876 <entry>24.2</entry> 877 <entry>Iterator requirements</entry> 878 <entry>Y</entry> 879 <entry/> 880 </row> 881 <row> 882 <entry>24.3</entry> 883 <entry>Header <code><iterator></code> synopsis</entry> 884 <entry>Y</entry> 885 <entry/> 886 </row> 887 <row> 888 <entry>24.4</entry> 889 <entry>Iterator primitives</entry> 890 <entry>Y</entry> 891 <entry/> 892 </row> 893 <row> 894 <entry>24.5</entry> 895 <entry>Iterator adaptors</entry> 896 <entry>Y</entry> 897 <entry/> 898 </row> 899 <row> 900 <entry>24.6</entry> 901 <entry>Stream iterators</entry> 902 <entry>Y</entry> 903 <entry/> 904 </row> 905 <row> 906 <entry>24.7</entry> 907 <entry>range access</entry> 908 <entry>Y</entry> 909 <entry/> 910 </row> 911 <row> 912 <entry> 913 <emphasis>25</emphasis> 914 </entry> 915 <entry namest="c2" nameend="c4" align="left"> 916 <emphasis>Algorithms</emphasis> 917 </entry> 918 </row> 919 <row> 920 <entry>25.1</entry> 921 <entry>General</entry> 922 <entry/> 923 <entry/> 924 </row> 925 <row> 926 <entry>25.2</entry> 927 <entry>Non-modifying sequence operations</entry> 928 <entry>Y</entry> 929 <entry/> 930 </row> 931 <row> 932 <entry>25.3</entry> 933 <entry>Mutating sequence operations</entry> 934 <entry>Y</entry> 935 <entry/> 936 </row> 937 <row> 938 <entry>25.4</entry> 939 <entry>Sorting and related operations</entry> 940 <entry>Y</entry> 941 <entry/> 942 </row> 943 <row> 944 <entry>25.5</entry> 945 <entry>C library algorithms</entry> 946 <entry>Y</entry> 947 <entry/> 948 </row> 949 <row> 950 <entry> 951 <emphasis>26</emphasis> 952 </entry> 953 <entry namest="c2" nameend="c4" align="left"> 954 <emphasis>Numerics</emphasis> 955 </entry> 956 </row> 957 <row> 958 <entry>26.1</entry> 959 <entry>General</entry> 960 <entry/> 961 <entry/> 962 </row> 963 <row> 964 <entry>26.2</entry> 965 <entry>Numeric type requirements</entry> 966 <entry>Y</entry> 967 <entry/> 968 </row> 969 <row> 970 <entry>26.3</entry> 971 <entry>The floating-point environment</entry> 972 <entry>Y</entry> 973 <entry/> 974 </row> 975 <row> 976 <entry>26.4</entry> 977 <entry>Complex numbers</entry> 978 <entry>Y</entry> 979 <entry/> 980 </row> 981 <row> 982 <entry>26.4.10</entry> 983 <entry>Suffixes for complex number literals</entry> 984 <entry>Y</entry> 985 <entry/> 986 </row> 987 <row> 988 <entry>26.5</entry> 989 <entry>Random number generation</entry> 990 <entry>Y</entry> 991 <entry/> 992 </row> 993 <row> 994 <entry>26.6</entry> 995 <entry>Numeric arrays</entry> 996 <entry>Y</entry> 997 <entry/> 998 </row> 999 <row> 1000 <entry>26.7</entry> 1001 <entry>Generalized numeric operations</entry> 1002 <entry>Y</entry> 1003 <entry/> 1004 </row> 1005 <row> 1006 <entry>26.8</entry> 1007 <entry>C Library</entry> 1008 <entry>Y</entry> 1009 <entry/> 1010 </row> 1011 <row> 1012 <entry> 1013 <emphasis>27</emphasis> 1014 </entry> 1015 <entry namest="c2" nameend="c4" align="left"> 1016 <emphasis>Input/output library</emphasis> 1017 </entry> 1018 </row> 1019 <row> 1020 <entry>27.1</entry> 1021 <entry>General</entry> 1022 <entry>Y</entry> 1023 <entry/> 1024 </row> 1025 <row> 1026 <entry>27.2</entry> 1027 <entry>Iostreams requirements</entry> 1028 <entry>Y</entry> 1029 <entry/> 1030 </row> 1031 <row> 1032 <entry>27.2.1</entry> 1033 <entry>Imbue Limitations</entry> 1034 <entry>Y</entry> 1035 <entry/> 1036 </row> 1037 <row> 1038 <entry>27.2.2</entry> 1039 <entry>Positioning Type Limitations</entry> 1040 <entry>Y</entry> 1041 <entry/> 1042 </row> 1043 <row> 1044 <?dbhtml bgcolor="#B0B0B0" ?> 1045 <entry>27.2.3</entry> 1046 <entry>Thread safety</entry> 1047 <entry>Partial</entry> 1048 <entry/> 1049 </row> 1050 <row> 1051 <entry>27.3</entry> 1052 <entry>Forward declarations</entry> 1053 <entry>Y</entry> 1054 <entry/> 1055 </row> 1056 <row> 1057 <entry>27.4</entry> 1058 <entry>Standard iostream objects</entry> 1059 <entry>Y</entry> 1060 <entry/> 1061 </row> 1062 <row> 1063 <entry>27.5</entry> 1064 <entry>Iostreams base classes</entry> 1065 <entry>Y</entry> 1066 <entry/> 1067 </row> 1068 <row> 1069 <entry>27.6</entry> 1070 <entry>Stream buffers</entry> 1071 <entry>Y</entry> 1072 <entry/> 1073 </row> 1074 <row> 1075 <entry>27.7</entry> 1076 <entry>Formatting and manipulators</entry> 1077 <entry>Y</entry> 1078 <entry/> 1079 </row> 1080 <row> 1081 <entry>27.7.6</entry> 1082 <entry>Quoted manipulators</entry> 1083 <entry>Y</entry> 1084 <entry/> 1085 </row> 1086 <row> 1087 <entry>27.8</entry> 1088 <entry>String-based streams</entry> 1089 <entry>Y</entry> 1090 <entry/> 1091 </row> 1092 <row> 1093 <entry>27.9</entry> 1094 <entry>File-based streams</entry> 1095 <entry>Y</entry> 1096 <entry/> 1097 </row> 1098 <row> 1099 <entry> 1100 <emphasis>28</emphasis> 1101 </entry> 1102 <entry namest="c2" nameend="c4" align="left"> 1103 <emphasis>Regular expressions</emphasis> 1104 </entry> 1105 </row> 1106 <row> 1107 <entry>28.1</entry> 1108 <entry>General</entry> 1109 <entry>Y</entry> 1110 <entry/> 1111 </row> 1112 <row> 1113 <entry>28.2</entry> 1114 <entry>Definitions</entry> 1115 <entry>Y</entry> 1116 <entry/> 1117 </row> 1118 <row> 1119 <entry>28.3</entry> 1120 <entry>Requirements</entry> 1121 <entry>Y</entry> 1122 <entry/> 1123 </row> 1124 <row> 1125 <entry>28.4</entry> 1126 <entry>Header <code><regex></code> synopsis</entry> 1127 <entry>Y</entry> 1128 <entry/> 1129 </row> 1130 <row> 1131 <entry>28.5</entry> 1132 <entry>Namespace <code>std::regex_constants</code></entry> 1133 <entry>Y</entry> 1134 <entry/> 1135 </row> 1136 <row> 1137 <entry>28.6</entry> 1138 <entry>Class <code>regex_error</code></entry> 1139 <entry>Y</entry> 1140 <entry/> 1141 </row> 1142 <row> 1143 <?dbhtml bgcolor="#B0B0B0" ?> 1144 <entry>28.7</entry> 1145 <entry>Class template <code>regex_traits</code></entry> 1146 <entry>Partial</entry> 1147 <entry><code>transform_primary</code> is not correctly implemented</entry> 1148 </row> 1149 <row> 1150 <entry>28.8</entry> 1151 <entry>Class template <code>basic_regex</code></entry> 1152 <entry>Y</entry> 1153 <entry/> 1154 </row> 1155 <row> 1156 <entry>28.9</entry> 1157 <entry>Class template <code>sub_match</code></entry> 1158 <entry>Y</entry> 1159 <entry/> 1160 </row> 1161 <row> 1162 <entry>28.10</entry> 1163 <entry>Class template <code>match_results</code></entry> 1164 <entry>Y</entry> 1165 <entry/> 1166 </row> 1167 <row> 1168 <entry>28.11</entry> 1169 <entry>Regular expression algorithms</entry> 1170 <entry>Y</entry> 1171 <entry/> 1172 </row> 1173 <row> 1174 <entry>28.12</entry> 1175 <entry>Regular expression Iterators</entry> 1176 <entry>Y</entry> 1177 <entry/> 1178 </row> 1179 <row> 1180 <entry>28.13</entry> 1181 <entry>Modified ECMAScript regular expression grammar</entry> 1182 <entry>Y</entry> 1183 <entry/> 1184 </row> 1185 <row> 1186 <entry> 1187 <emphasis>29</emphasis> 1188 </entry> 1189 <entry namest="c2" nameend="c4" align="left"> 1190 <emphasis>Atomic operations</emphasis> 1191 </entry> 1192 </row> 1193 <row> 1194 <entry>29.1</entry> 1195 <entry>General</entry> 1196 <entry>Y</entry> 1197 <entry/> 1198 </row> 1199 <row> 1200 <entry>29.2</entry> 1201 <entry>Header <code><atomic></code> synopsis</entry> 1202 <entry>Y</entry> 1203 <entry/> 1204 </row> 1205 <row> 1206 <entry>29.3</entry> 1207 <entry>Order and consistency</entry> 1208 <entry>Y</entry> 1209 <entry/> 1210 </row> 1211 <row> 1212 <entry>29.4</entry> 1213 <entry>Lock-free property</entry> 1214 <entry>Y</entry> 1215 <entry/> 1216 </row> 1217 <row> 1218 <entry>29.5</entry> 1219 <entry>Atomic types</entry> 1220 <entry>Y</entry> 1221 <entry/> 1222 </row> 1223 <row> 1224 <entry>29.6</entry> 1225 <entry>Operations on atomic types</entry> 1226 <entry>Y</entry> 1227 <entry/> 1228 </row> 1229 <row> 1230 <entry>29.7</entry> 1231 <entry>Flag Type and operations</entry> 1232 <entry>Y</entry> 1233 <entry/> 1234 </row> 1235 <row> 1236 <entry>29.8</entry> 1237 <entry>Fences</entry> 1238 <entry>Y</entry> 1239 <entry/> 1240 </row> 1241 <row> 1242 <entry> 1243 <emphasis>30</emphasis> 1244 </entry> 1245 <entry namest="c2" nameend="c4" align="left"> 1246 <emphasis>Thread support</emphasis> 1247 </entry> 1248 </row> 1249 <row> 1250 <entry>30.1</entry> 1251 <entry>General</entry> 1252 <entry>Y</entry> 1253 <entry/> 1254 </row> 1255 <row> 1256 <entry>30.2</entry> 1257 <entry>Requirements</entry> 1258 <entry>Y</entry> 1259 <entry/> 1260 </row> 1261 <row> 1262 <entry>30.3</entry> 1263 <entry>Threads</entry> 1264 <entry/> 1265 <entry/> 1266 </row> 1267 <row> 1268 <?dbhtml bgcolor="#B0B0B0" ?> 1269 <entry>30.3.1</entry> 1270 <entry>Class <code>thread</code></entry> 1271 <entry>Partial</entry> 1272 <entry><code>thread::id</code> comparisons not well-defined</entry> 1273 </row> 1274 <row> 1275 <entry>30.3.2</entry> 1276 <entry>Namespace <code>this_thread</code></entry> 1277 <entry>Y</entry> 1278 <entry/> 1279 </row> 1280 <row> 1281 <entry>30.4</entry> 1282 <entry>Mutual exclusion</entry> 1283 <entry/> 1284 <entry/> 1285 </row> 1286 <row> 1287 <entry>30.4.1</entry> 1288 <entry>Mutex requirements</entry> 1289 <entry/> 1290 <entry/> 1291 </row> 1292 <row> 1293 <entry>30.4.1.1</entry> 1294 <entry>In general</entry> 1295 <entry/> 1296 <entry/> 1297 </row> 1298 <row> 1299 <entry>30.4.1.2</entry> 1300 <entry>Mutex types</entry> 1301 <entry/> 1302 <entry/> 1303 </row> 1304 <row> 1305 <entry>30.4.1.2.1</entry> 1306 <entry>Class <code>mutex</code></entry> 1307 <entry>Y</entry> 1308 <entry/> 1309 </row> 1310 <row> 1311 <entry>30.4.1.2.2</entry> 1312 <entry>Class <code>recursive_mutex</code></entry> 1313 <entry>Y</entry> 1314 <entry/> 1315 </row> 1316 <row> 1317 <entry>30.4.1.3</entry> 1318 <entry>Timed mutex types</entry> 1319 <entry/> 1320 <entry/> 1321 </row> 1322 <row> 1323 <entry>30.4.1.3.1</entry> 1324 <entry>Class <code>timed_mutex</code></entry> 1325 <entry>Y</entry> 1326 <entry/> 1327 </row> 1328 <row> 1329 <entry>30.4.1.3.2</entry> 1330 <entry>Class <code>recursive_timed_mutex</code></entry> 1331 <entry>Y</entry> 1332 <entry/> 1333 </row> 1334 <row> 1335 <entry>30.4.1.4</entry> 1336 <entry>Shared timed mutex types</entry> 1337 <entry/> 1338 <entry/> 1339 </row> 1340 <row> 1341 <entry>30.4.1.4.1</entry> 1342 <entry>Class <code>shared_timed_mutex</code></entry> 1343 <entry>Y</entry> 1344 <entry/> 1345 </row> 1346 <row> 1347 <entry>30.4.2</entry> 1348 <entry>Locks</entry> 1349 <entry/> 1350 <entry/> 1351 </row> 1352 <row> 1353 <entry>30.4.2.1</entry> 1354 <entry>Class template <code>lock_guard</code></entry> 1355 <entry>Y</entry> 1356 <entry/> 1357 </row> 1358 <row> 1359 <entry>30.4.2.2</entry> 1360 <entry>Class template <code>unique_lock</code></entry> 1361 <entry>Y</entry> 1362 <entry/> 1363 </row> 1364 <row> 1365 <entry>30.4.2.3</entry> 1366 <entry>Class template <code>shared_lock</code></entry> 1367 <entry>Y</entry> 1368 <entry/> 1369 </row> 1370 <row> 1371 <entry>30.4.3</entry> 1372 <entry>Generic locking algorithms</entry> 1373 <entry>Y</entry> 1374 <entry/> 1375 </row> 1376 <row> 1377 <entry>30.4.4</entry> 1378 <entry>Call once</entry> 1379 <entry/> 1380 <entry/> 1381 </row> 1382 <row> 1383 <entry>30.4.4.1</entry> 1384 <entry>Struct <code>once_flag</code></entry> 1385 <entry>Y</entry> 1386 <entry/> 1387 </row> 1388 <row> 1389 <?dbhtml bgcolor="#B0B0B0" ?> 1390 <entry>30.4.4.2</entry> 1391 <entry>Function <code>call_once</code></entry> 1392 <entry>Broken</entry> 1393 <entry>Exception support is broken. 1394 See <link xmlns:xlink="http://www.w3.org/1999/xlink" 1395 xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR 1396 66146</link>. 1397 </entry> 1398 </row> 1399 <row> 1400 <entry>30.5</entry> 1401 <entry>Condition variables</entry> 1402 <entry>Y</entry> 1403 <entry/> 1404 </row> 1405 <row> 1406 <entry>30.5.1</entry> 1407 <entry>Class <code>condition_variable</code></entry> 1408 <entry>Y</entry> 1409 <entry/> 1410 </row> 1411 <row> 1412 <entry>30.5.2</entry> 1413 <entry>Class <code>condition_variable_any</code></entry> 1414 <entry>Y</entry> 1415 <entry/> 1416 </row> 1417 <row> 1418 <entry>30.6</entry> 1419 <entry>Futures</entry> 1420 <entry/> 1421 <entry/> 1422 </row> 1423 <row> 1424 <entry>30.6.1</entry> 1425 <entry>Overview</entry> 1426 <entry/> 1427 <entry/> 1428 </row> 1429 <row> 1430 <entry>30.6.2</entry> 1431 <entry>Error handling</entry> 1432 <entry>Y</entry> 1433 <entry/> 1434 </row> 1435 <row> 1436 <entry>30.6.3</entry> 1437 <entry>Class <code>future_error</code></entry> 1438 <entry>Y</entry> 1439 <entry/> 1440 </row> 1441 <row> 1442 <entry>30.6.4</entry> 1443 <entry>Shared state</entry> 1444 <entry>Y</entry> 1445 <entry/> 1446 </row> 1447 <row> 1448 <entry>30.6.5</entry> 1449 <entry>Class template <code>promise</code></entry> 1450 <entry>Y</entry> 1451 <entry/> 1452 </row> 1453 <row> 1454 <entry>30.6.6</entry> 1455 <entry>Class template <code>future</code></entry> 1456 <entry>Y</entry> 1457 <entry/> 1458 </row> 1459 <row> 1460 <entry>30.6.7</entry> 1461 <entry>Class template <code>shared_future</code></entry> 1462 <entry>Y</entry> 1463 <entry/> 1464 </row> 1465 <row> 1466 <entry>30.6.8</entry> 1467 <entry>Function template <code>async</code></entry> 1468 <entry>Y</entry> 1469 <entry/> 1470 </row> 1471 <row> 1472 <entry>30.6.9</entry> 1473 <entry>Class template <code>packaged_task</code></entry> 1474 <entry>Y</entry> 1475 <entry/> 1476 </row> 1477 <row> 1478 <entry> 1479 <emphasis>Appendix D</emphasis> 1480 </entry> 1481 <entry namest="c2" nameend="c4" align="left"> 1482 <emphasis>Compatibility features</emphasis> 1483 </entry> 1484 </row> 1485 <row> 1486 <entry>D.1</entry> 1487 <entry>Increment operator with <code>bool</code> operand</entry> 1488 <entry/> 1489 <entry/> 1490 </row> 1491 <row> 1492 <entry>D.2</entry> 1493 <entry><code>register</code> keyword</entry> 1494 <entry/> 1495 <entry/> 1496 </row> 1497 <row> 1498 <entry>D.3</entry> 1499 <entry>Implicit declaration of copy functions</entry> 1500 <entry/> 1501 <entry/> 1502 </row> 1503 <row> 1504 <entry>D.4</entry> 1505 <entry>Dynamic exception specifications</entry> 1506 <entry/> 1507 <entry/> 1508 </row> 1509 <row> 1510 <entry>D.5</entry> 1511 <entry>C standard library headers</entry> 1512 <entry>Y</entry> 1513 <entry/> 1514 </row> 1515 <row> 1516 <entry>D.6</entry> 1517 <entry>Old iostreams members</entry> 1518 <entry>Y</entry> 1519 <entry/> 1520 </row> 1521 <row> 1522 <entry>D.7</entry> 1523 <entry><code>char*</code> streams</entry> 1524 <entry>Y</entry> 1525 <entry/> 1526 </row> 1527 <row> 1528 <entry>D.8</entry> 1529 <entry>Function objects</entry> 1530 <entry>Y</entry> 1531 <entry/> 1532 </row> 1533 <row> 1534 <entry>D.9</entry> 1535 <entry>Binders</entry> 1536 <entry>Y</entry> 1537 <entry/> 1538 </row> 1539 <row> 1540 <entry>D.10</entry> 1541 <entry><code>auto_ptr</code></entry> 1542 <entry>Y</entry> 1543 <entry/> 1544 </row> 1545 <row> 1546 <entry>D.11</entry> 1547 <entry>Violating exception-specifications</entry> 1548 <entry>Y</entry> 1549 <entry/> 1550 </row> 1551 <row> 1552 <entry>D.12</entry> 1553 <entry>Random shuffle</entry> 1554 <entry>Y</entry> 1555 <entry/> 1556 </row> 1557 1558 </tbody> 1559</tgroup> 1560</table> 1561 1562<table frame="all" xml:id="table.ts_status"> 1563<title>C++ Technical Specifications Implementation Status</title> 1564 1565<tgroup cols="4" align="left" colsep="0" rowsep="1"> 1566<colspec colname="c1"/> 1567<colspec colname="c2"/> 1568<colspec colname="c3"/> 1569<colspec colname="c4"/> 1570 <thead> 1571 <row> 1572 <entry>Paper</entry> 1573 <entry>Title</entry> 1574 <entry>Status</entry> 1575 <entry>Comments</entry> 1576 </row> 1577 </thead> 1578 1579 <tbody> 1580 1581 <row> 1582 <?dbhtml bgcolor="#C8B0B0" ?> 1583 <entry> 1584 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3662.html"> 1585 N3662 1586 </link> 1587 </entry> 1588 <entry>C++ Dynamic Arrays</entry> 1589 <entry>N</entry> 1590 <entry>Array Extensions TS</entry> 1591 </row> 1592 1593 <row> 1594 <entry> 1595 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3793.html"> 1596 N3793 1597 </link> 1598 </entry> 1599 <entry>A proposal to add a utility class to represent optional objects</entry> 1600 <entry>Y</entry> 1601 <entry>Library Fundamentals TS</entry> 1602 </row> 1603 1604 <row> 1605 <entry> 1606 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3804.html"> 1607 N3804 1608 </link> 1609 </entry> 1610 <entry>Any library proposal</entry> 1611 <entry>Y</entry> 1612 <entry>Library Fundamentals TS</entry> 1613 </row> 1614 1615 <row> 1616 <?dbhtml bgcolor="#C8B0B0" ?> 1617 <entry> 1618 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n3866.html"> 1619 N3866 1620 </link> 1621 </entry> 1622 <entry>Invocation type traits, but dropping function_call_operator.</entry> 1623 <entry>N</entry> 1624 <entry>Library Fundamentals TS</entry> 1625 </row> 1626 1627 <row> 1628 <entry> 1629 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href=""> 1630 N3905 1631 </link> 1632 </entry> 1633 <entry>Faster string searching (Boyer-Moore et al.)</entry> 1634 <entry>Y</entry> 1635 <entry>Library Fundamentals TS</entry> 1636 </row> 1637 1638 <row> 1639 <entry> 1640 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3915.pdf"> 1641 N3915 1642 </link> 1643 </entry> 1644 <entry>apply() call a function with arguments from a tuple</entry> 1645 <entry>Y</entry> 1646 <entry>Library Fundamentals TS</entry> 1647 </row> 1648 1649 <row> 1650 <?dbhtml bgcolor="#B0B0B0" ?> 1651 <entry> 1652 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3916.pdf"> 1653 N3916 1654 </link> 1655 </entry> 1656 <entry>Polymorphic memory resources</entry> 1657 <entry>Partial (missing pool resource and buffer resource classes)</entry> 1658 <entry>Library Fundamentals TS</entry> 1659 </row> 1660 1661 <row> 1662 <entry> 1663 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3920.html"> 1664 N3920 1665 </link> 1666 </entry> 1667 <entry>Extending shared_ptr to support arrays</entry> 1668 <entry>Y</entry> 1669 <entry>Library Fundamentals TS</entry> 1670 </row> 1671 1672 <row> 1673 <entry> 1674 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3921.html"> 1675 N3921 1676 </link> 1677 </entry> 1678 <entry><code>string_view</code>: a non-owning reference to a string</entry> 1679 <entry>Y</entry> 1680 <entry>Library Fundamentals TS</entry> 1681 </row> 1682 1683 <row> 1684 <entry> 1685 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3925.pdf"> 1686 N3925 1687 </link> 1688 </entry> 1689 <entry>A sample proposal</entry> 1690 <entry>Y</entry> 1691 <entry>Library Fundamentals TS</entry> 1692 </row> 1693 1694 <row> 1695 <entry> 1696 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3932.htm"> 1697 N3932 1698 </link> 1699 </entry> 1700 <entry>Variable Templates For Type Traits</entry> 1701 <entry>Y</entry> 1702 <entry>Library Fundamentals TS</entry> 1703 </row> 1704 1705 <row> 1706 <entry> 1707 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4100.pdf"> 1708 N4100 1709 </link> 1710 </entry> 1711 <entry>File System</entry> 1712 <entry>Y</entry> 1713 <entry> 1714 Link with 1715 <link linkend="manual.intro.using.linkage.experimental"> 1716 <option>-lstdc++fs</option></link> 1717 </entry> 1718 </row> 1719 1720 </tbody> 1721</tgroup> 1722</table> 1723 1724<section xml:id="iso.2014.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info> 1725 1726 <section xml:id="iso.2014.filesystemts" xreflabel="Implementation Specific Behavior of the Filesystem TS"><info><title>Filesystem TS</title></info> 1727 <para> 1728 <emphasis>2.1 POSIX conformance [fs.conform.9945]</emphasis> 1729 The behavior of the filesystem library implementation will depend on 1730 the target operating system. Some features will not be supported 1731 on some targets. Symbolic links and file permissions 1732 are not supported on Windows. 1733 </para> 1734 <para> 1735 <emphasis>15.30 Rename [fs.op.rename]</emphasis> 1736 On Windows, <code>experimental::filesystem::rename</code> 1737 is implemented by calling <code>MoveFileExW</code> and so 1738 does not meet the requirements of POSIX <code>rename</code> 1739 when one or both of the paths resolves to an existing directory. 1740 Specifically, it is possible to rename a directory so it replaces 1741 a non-directory (POSIX requires an error in that case), 1742 and it is not possible to rename a directory to replace another 1743 directory (POSIX requires that to work if the directory being 1744 replaced is empty). 1745 </para> 1746 </section> 1747</section> 1748 1749</section> 1750