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