1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5<title>Conformance and Extension</title> 6<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> 7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 8<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> 9<link rel="up" href="../thread.html" title="Chapter 39. Thread 4.8.0"> 10<link rel="prev" href="acknowledgements.html" title="Acknowledgments"> 11<link rel="next" href="../boost_typeerasure.html" title="Chapter 40. Boost.TypeErasure"> 12</head> 13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 14<table cellpadding="2" width="100%"><tr> 15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td> 16<td align="center"><a href="../../../index.html">Home</a></td> 17<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td> 18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 20<td align="center"><a href="../../../more/index.htm">More</a></td> 21</tr></table> 22<hr> 23<div class="spirit-nav"> 24<a accesskey="p" href="acknowledgements.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../boost_typeerasure.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 25</div> 26<div class="section"> 27<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 28<a name="thread.compliance"></a><a class="link" href="compliance.html" title="Conformance and Extension">Conformance and Extension</a> 29</h2></div></div></div> 30<div class="toc"><dl class="toc"> 31<dt><span class="section"><a href="compliance.html#thread.compliance.cpp11">C++11 standard Thread library</a></span></dt> 32<dt><span class="section"><a href="compliance.html#thread.compliance.cxx14">C++14 standard Thread library 33 - accepted changes</a></span></dt> 34<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y">C++14 TS Extensions for Concurrency 35 V1 </a></span></dt> 36<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y0">C++1z TS Concurrency - On going 37 proposals</a></span></dt> 38</dl></div> 39<div class="section"> 40<div class="titlepage"><div><div><h3 class="title"> 41<a name="thread.compliance.cpp11"></a><a class="link" href="compliance.html#thread.compliance.cpp11" title="C++11 standard Thread library">C++11 standard Thread library</a> 42</h3></div></div></div> 43<div class="note"><table border="0" summary="Note"> 44<tr> 45<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 46<th align="left">Note</th> 47</tr> 48<tr><td align="left" valign="top"><p> 49 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.html" target="_top">C++11 50 - Standard for Programming Language C++</a> 51 </p></td></tr> 52</table></div> 53<p> 54 ] 55 </p> 56<div class="table"> 57<a name="thread.compliance.cpp11.c__11_standard_conformance"></a><p class="title"><b>Table 39.2. C++11 standard Conformance</b></p> 58<div class="table-contents"><table class="table" summary="C++11 standard Conformance"> 59<colgroup> 60<col> 61<col> 62<col> 63<col> 64<col> 65</colgroup> 66<thead><tr> 67<th> 68 <p> 69 Section 70 </p> 71 </th> 72<th> 73 <p> 74 Description 75 </p> 76 </th> 77<th> 78 <p> 79 Status 80 </p> 81 </th> 82<th> 83 <p> 84 Comments 85 </p> 86 </th> 87<th> 88 <p> 89 Ticket 90 </p> 91 </th> 92</tr></thead> 93<tbody> 94<tr> 95<td> 96 <p> 97 30 98 </p> 99 </td> 100<td> 101 <p> 102 Thread support library 103 </p> 104 </td> 105<td> 106 <p> 107 Yes 108 </p> 109 </td> 110<td> 111 <p> 112 - 113 </p> 114 </td> 115<td> 116 <p> 117 - 118 </p> 119 </td> 120</tr> 121<tr> 122<td> 123 <p> 124 30.1 125 </p> 126 </td> 127<td> 128 <p> 129 General 130 </p> 131 </td> 132<td> 133 <p> 134 - 135 </p> 136 </td> 137<td> 138 <p> 139 - 140 </p> 141 </td> 142<td> 143 <p> 144 - 145 </p> 146 </td> 147</tr> 148<tr> 149<td> 150 <p> 151 30.2 152 </p> 153 </td> 154<td> 155 <p> 156 Requirements 157 </p> 158 </td> 159<td> 160 <p> 161 - 162 </p> 163 </td> 164<td> 165 <p> 166 - 167 </p> 168 </td> 169<td> 170 <p> 171 - 172 </p> 173 </td> 174</tr> 175<tr> 176<td> 177 <p> 178 30.2.1 179 </p> 180 </td> 181<td> 182 <p> 183 Template parameter names 184 </p> 185 </td> 186<td> 187 <p> 188 - 189 </p> 190 </td> 191<td> 192 <p> 193 - 194 </p> 195 </td> 196<td> 197 <p> 198 - 199 </p> 200 </td> 201</tr> 202<tr> 203<td> 204 <p> 205 30.2.2 206 </p> 207 </td> 208<td> 209 <p> 210 Exceptions 211 </p> 212 </td> 213<td> 214 <p> 215 Yes 216 </p> 217 </td> 218<td> 219 <p> 220 - 221 </p> 222 </td> 223<td> 224 <p> 225 - 226 </p> 227 </td> 228</tr> 229<tr> 230<td> 231 <p> 232 30.2.3 233 </p> 234 </td> 235<td> 236 <p> 237 Native handles 238 </p> 239 </td> 240<td> 241 <p> 242 Yes 243 </p> 244 </td> 245<td> 246 <p> 247 - 248 </p> 249 </td> 250<td> 251 <p> 252 - 253 </p> 254 </td> 255</tr> 256<tr> 257<td> 258 <p> 259 30.2.4 260 </p> 261 </td> 262<td> 263 <p> 264 Timing specifications 265 </p> 266 </td> 267<td> 268 <p> 269 Yes 270 </p> 271 </td> 272<td> 273 <p> 274 - 275 </p> 276 </td> 277<td> 278 <p> 279 - 280 </p> 281 </td> 282</tr> 283<tr> 284<td> 285 <p> 286 30.2.5 287 </p> 288 </td> 289<td> 290 <p> 291 Requirements for Lockable types 292 </p> 293 </td> 294<td> 295 <p> 296 Yes 297 </p> 298 </td> 299<td> 300 <p> 301 - 302 </p> 303 </td> 304<td> 305 <p> 306 - 307 </p> 308 </td> 309</tr> 310<tr> 311<td> 312 <p> 313 30.2.5.1 314 </p> 315 </td> 316<td> 317 <p> 318 In general 319 </p> 320 </td> 321<td> 322 <p> 323 - 324 </p> 325 </td> 326<td> 327 <p> 328 - 329 </p> 330 </td> 331<td> 332 <p> 333 - 334 </p> 335 </td> 336</tr> 337<tr> 338<td> 339 <p> 340 30.2.5.2 341 </p> 342 </td> 343<td> 344 <p> 345 BasicLockable requirements 346 </p> 347 </td> 348<td> 349 <p> 350 Yes 351 </p> 352 </td> 353<td> 354 <p> 355 - 356 </p> 357 </td> 358<td> 359 <p> 360 - 361 </p> 362 </td> 363</tr> 364<tr> 365<td> 366 <p> 367 30.2.5.3 368 </p> 369 </td> 370<td> 371 <p> 372 Lockable requirements 373 </p> 374 </td> 375<td> 376 <p> 377 yes 378 </p> 379 </td> 380<td> 381 <p> 382 - 383 </p> 384 </td> 385<td> 386 <p> 387 - 388 </p> 389 </td> 390</tr> 391<tr> 392<td> 393 <p> 394 30.2.5.4 395 </p> 396 </td> 397<td> 398 <p> 399 TimedLockable requirements 400 </p> 401 </td> 402<td> 403 <p> 404 Yes 405 </p> 406 </td> 407<td> 408 <p> 409 - 410 </p> 411 </td> 412<td> 413 <p> 414 - 415 </p> 416 </td> 417</tr> 418<tr> 419<td> 420 <p> 421 30.2.6 422 </p> 423 </td> 424<td> 425 <p> 426 decay_copy 427 </p> 428 </td> 429<td> 430 <p> 431 - 432 </p> 433 </td> 434<td> 435 <p> 436 - 437 </p> 438 </td> 439<td> 440 <p> 441 - 442 </p> 443 </td> 444</tr> 445<tr> 446<td> 447 <p> 448 30.3 449 </p> 450 </td> 451<td> 452 <p> 453 Threads 454 </p> 455 </td> 456<td> 457 <p> 458 Yes 459 </p> 460 </td> 461<td> 462 <p> 463 - 464 </p> 465 </td> 466<td> 467 <p> 468 - 469 </p> 470 </td> 471</tr> 472<tr> 473<td> 474 <p> 475 30.3.1 476 </p> 477 </td> 478<td> 479 <p> 480 Class thread 481 </p> 482 </td> 483<td> 484 <p> 485 Yes 486 </p> 487 </td> 488<td> 489 <p> 490 - 491 </p> 492 </td> 493<td> 494 <p> 495 - 496 </p> 497 </td> 498</tr> 499<tr> 500<td> 501 <p> 502 30.3.1.1 503 </p> 504 </td> 505<td> 506 <p> 507 Class thread::id 508 </p> 509 </td> 510<td> 511 <p> 512 Yes 513 </p> 514 </td> 515<td> 516 <p> 517 - 518 </p> 519 </td> 520<td> 521 <p> 522 - 523 </p> 524 </td> 525</tr> 526<tr> 527<td> 528 <p> 529 30.3.1.2 530 </p> 531 </td> 532<td> 533 <p> 534 thread constructors 535 </p> 536 </td> 537<td> 538 <p> 539 Partial 540 </p> 541 </td> 542<td> 543 <p> 544 - 545 </p> 546 </td> 547<td> 548 <p> 549 - 550 </p> 551 </td> 552</tr> 553<tr> 554<td> 555 <p> 556 30.3.1.3 557 </p> 558 </td> 559<td> 560 <p> 561 thread destructor 562 </p> 563 </td> 564<td> 565 <p> 566 Yes 567 </p> 568 </td> 569<td> 570 <p> 571 - 572 </p> 573 </td> 574<td> 575 <p> 576 - 577 </p> 578 </td> 579</tr> 580<tr> 581<td> 582 <p> 583 30.3.1.4 584 </p> 585 </td> 586<td> 587 <p> 588 thread assignment 589 </p> 590 </td> 591<td> 592 <p> 593 Yes 594 </p> 595 </td> 596<td> 597 <p> 598 - 599 </p> 600 </td> 601<td> 602 <p> 603 - 604 </p> 605 </td> 606</tr> 607<tr> 608<td> 609 <p> 610 30.3.1.5 611 </p> 612 </td> 613<td> 614 <p> 615 thread members 616 </p> 617 </td> 618<td> 619 <p> 620 Yes 621 </p> 622 </td> 623<td> 624 <p> 625 - 626 </p> 627 </td> 628<td> 629 <p> 630 - 631 </p> 632 </td> 633</tr> 634<tr> 635<td> 636 <p> 637 30.3.1.6 638 </p> 639 </td> 640<td> 641 <p> 642 thread static members 643 </p> 644 </td> 645<td> 646 <p> 647 Yes 648 </p> 649 </td> 650<td> 651 <p> 652 - 653 </p> 654 </td> 655<td> 656 <p> 657 - 658 </p> 659 </td> 660</tr> 661<tr> 662<td> 663 <p> 664 30.3.1.7 665 </p> 666 </td> 667<td> 668 <p> 669 thread specialized algorithms 670 </p> 671 </td> 672<td> 673 <p> 674 Yes 675 </p> 676 </td> 677<td> 678 <p> 679 - 680 </p> 681 </td> 682<td> 683 <p> 684 - 685 </p> 686 </td> 687</tr> 688<tr> 689<td> 690 <p> 691 30.3.2 692 </p> 693 </td> 694<td> 695 <p> 696 Namespace this_thread 697 </p> 698 </td> 699<td> 700 <p> 701 Yes 702 </p> 703 </td> 704<td> 705 <p> 706 - 707 </p> 708 </td> 709<td> 710 <p> 711 - 712 </p> 713 </td> 714</tr> 715<tr> 716<td> 717 <p> 718 30.4 719 </p> 720 </td> 721<td> 722 <p> 723 Mutual exclusion 724 </p> 725 </td> 726<td> 727 <p> 728 Partial 729 </p> 730 </td> 731<td> 732 <p> 733 - 734 </p> 735 </td> 736<td> 737 <p> 738 - 739 </p> 740 </td> 741</tr> 742<tr> 743<td> 744 <p> 745 30.4.1 746 </p> 747 </td> 748<td> 749 <p> 750 Mutex requirements 751 </p> 752 </td> 753<td> 754 <p> 755 Yes 756 </p> 757 </td> 758<td> 759 <p> 760 - 761 </p> 762 </td> 763<td> 764 <p> 765 - 766 </p> 767 </td> 768</tr> 769<tr> 770<td> 771 <p> 772 30.4.1.1 773 </p> 774 </td> 775<td> 776 <p> 777 In general 778 </p> 779 </td> 780<td> 781 <p> 782 Yes 783 </p> 784 </td> 785<td> 786 <p> 787 - 788 </p> 789 </td> 790<td> 791 <p> 792 - 793 </p> 794 </td> 795</tr> 796<tr> 797<td> 798 <p> 799 30.4.1.2 800 </p> 801 </td> 802<td> 803 <p> 804 Mutex types 805 </p> 806 </td> 807<td> 808 <p> 809 Yes 810 </p> 811 </td> 812<td> 813 <p> 814 - 815 </p> 816 </td> 817<td> 818 <p> 819 - 820 </p> 821 </td> 822</tr> 823<tr> 824<td> 825 <p> 826 30.4.1.2.1 827 </p> 828 </td> 829<td> 830 <p> 831 Class mutex 832 </p> 833 </td> 834<td> 835 <p> 836 Yes 837 </p> 838 </td> 839<td> 840 <p> 841 - 842 </p> 843 </td> 844<td> 845 <p> 846 - 847 </p> 848 </td> 849</tr> 850<tr> 851<td> 852 <p> 853 30.4.1.2.2 854 </p> 855 </td> 856<td> 857 <p> 858 Class recursive_mutex 859 </p> 860 </td> 861<td> 862 <p> 863 Yes 864 </p> 865 </td> 866<td> 867 <p> 868 - 869 </p> 870 </td> 871<td> 872 <p> 873 - 874 </p> 875 </td> 876</tr> 877<tr> 878<td> 879 <p> 880 30.4.1.3 881 </p> 882 </td> 883<td> 884 <p> 885 Timed mutex types 886 </p> 887 </td> 888<td> 889 <p> 890 Yes 891 </p> 892 </td> 893<td> 894 <p> 895 - 896 </p> 897 </td> 898<td> 899 <p> 900 - 901 </p> 902 </td> 903</tr> 904<tr> 905<td> 906 <p> 907 30.4.1.3.1 908 </p> 909 </td> 910<td> 911 <p> 912 Class timed_mutex 913 </p> 914 </td> 915<td> 916 <p> 917 Yes 918 </p> 919 </td> 920<td> 921 <p> 922 - 923 </p> 924 </td> 925<td> 926 <p> 927 - 928 </p> 929 </td> 930</tr> 931<tr> 932<td> 933 <p> 934 30.4.1.3.1 935 </p> 936 </td> 937<td> 938 <p> 939 Class recursive_timed_mutex 940 </p> 941 </td> 942<td> 943 <p> 944 Yes 945 </p> 946 </td> 947<td> 948 <p> 949 - 950 </p> 951 </td> 952<td> 953 <p> 954 - 955 </p> 956 </td> 957</tr> 958<tr> 959<td> 960 <p> 961 30.4.2 962 </p> 963 </td> 964<td> 965 <p> 966 Locks 967 </p> 968 </td> 969<td> 970 <p> 971 Yes 972 </p> 973 </td> 974<td> 975 <p> 976 - 977 </p> 978 </td> 979<td> 980 <p> 981 - 982 </p> 983 </td> 984</tr> 985<tr> 986<td> 987 <p> 988 30.4.2.1 989 </p> 990 </td> 991<td> 992 <p> 993 Class template lock_guard 994 </p> 995 </td> 996<td> 997 <p> 998 Yes 999 </p> 1000 </td> 1001<td> 1002 <p> 1003 - 1004 </p> 1005 </td> 1006<td> 1007 <p> 1008 - 1009 </p> 1010 </td> 1011</tr> 1012<tr> 1013<td> 1014 <p> 1015 30.4.2.2 1016 </p> 1017 </td> 1018<td> 1019 <p> 1020 Class template unique_lock 1021 </p> 1022 </td> 1023<td> 1024 <p> 1025 Yes 1026 </p> 1027 </td> 1028<td> 1029 <p> 1030 - 1031 </p> 1032 </td> 1033<td> 1034 <p> 1035 - 1036 </p> 1037 </td> 1038</tr> 1039<tr> 1040<td> 1041 <p> 1042 30.4.2.2.1 1043 </p> 1044 </td> 1045<td> 1046 <p> 1047 unique_lock constructors, destructor, and assignment 1048 </p> 1049 </td> 1050<td> 1051 <p> 1052 Yes 1053 </p> 1054 </td> 1055<td> 1056 <p> 1057 - 1058 </p> 1059 </td> 1060<td> 1061 <p> 1062 - 1063 </p> 1064 </td> 1065</tr> 1066<tr> 1067<td> 1068 <p> 1069 30.4.2.2.2 1070 </p> 1071 </td> 1072<td> 1073 <p> 1074 unique_lock locking 1075 </p> 1076 </td> 1077<td> 1078 <p> 1079 Yes 1080 </p> 1081 </td> 1082<td> 1083 <p> 1084 - 1085 </p> 1086 </td> 1087<td> 1088 <p> 1089 - 1090 </p> 1091 </td> 1092</tr> 1093<tr> 1094<td> 1095 <p> 1096 30.4.2.2.3 1097 </p> 1098 </td> 1099<td> 1100 <p> 1101 unique_lock modifiers 1102 </p> 1103 </td> 1104<td> 1105 <p> 1106 Yes 1107 </p> 1108 </td> 1109<td> 1110 <p> 1111 - 1112 </p> 1113 </td> 1114<td> 1115 <p> 1116 - 1117 </p> 1118 </td> 1119</tr> 1120<tr> 1121<td> 1122 <p> 1123 30.4.2.2.4 1124 </p> 1125 </td> 1126<td> 1127 <p> 1128 unique_lock observers 1129 </p> 1130 </td> 1131<td> 1132 <p> 1133 Yes 1134 </p> 1135 </td> 1136<td> 1137 <p> 1138 - 1139 </p> 1140 </td> 1141<td> 1142 <p> 1143 - 1144 </p> 1145 </td> 1146</tr> 1147<tr> 1148<td> 1149 <p> 1150 30.4.3 1151 </p> 1152 </td> 1153<td> 1154 <p> 1155 Generic locking algorithms 1156 </p> 1157 </td> 1158<td> 1159 <p> 1160 Partial 1161 </p> 1162 </td> 1163<td> 1164 <p> 1165 variadic 1166 </p> 1167 </td> 1168<td> 1169 <p> 1170 #6227 1171 </p> 1172 </td> 1173</tr> 1174<tr> 1175<td> 1176 <p> 1177 30.4.4 1178 </p> 1179 </td> 1180<td> 1181 <p> 1182 Call once 1183 </p> 1184 </td> 1185<td> 1186 <p> 1187 Yes 1188 </p> 1189 </td> 1190<td> 1191 <p> 1192 - 1193 </p> 1194 </td> 1195<td> 1196 <p> 1197 - 1198 </p> 1199 </td> 1200</tr> 1201<tr> 1202<td> 1203 <p> 1204 30.4.4.1 1205 </p> 1206 </td> 1207<td> 1208 <p> 1209 Struct once_flag 1210 </p> 1211 </td> 1212<td> 1213 <p> 1214 Yes 1215 </p> 1216 </td> 1217<td> 1218 <p> 1219 - 1220 </p> 1221 </td> 1222<td> 1223 <p> 1224 - 1225 </p> 1226 </td> 1227</tr> 1228<tr> 1229<td> 1230 <p> 1231 30.4.4.2 1232 </p> 1233 </td> 1234<td> 1235 <p> 1236 Function call_once 1237 </p> 1238 </td> 1239<td> 1240 <p> 1241 Yes 1242 </p> 1243 </td> 1244<td> 1245 <p> 1246 - 1247 </p> 1248 </td> 1249<td> 1250 <p> 1251 - 1252 </p> 1253 </td> 1254</tr> 1255<tr> 1256<td> 1257 <p> 1258 30.5 1259 </p> 1260 </td> 1261<td> 1262 <p> 1263 Condition variables 1264 </p> 1265 </td> 1266<td> 1267 <p> 1268 Yes 1269 </p> 1270 </td> 1271<td> 1272 <p> 1273 - 1274 </p> 1275 </td> 1276<td> 1277 <p> 1278 - 1279 </p> 1280 </td> 1281</tr> 1282<tr> 1283<td> 1284 <p> 1285 30.5.1 1286 </p> 1287 </td> 1288<td> 1289 <p> 1290 Class condition_variable 1291 </p> 1292 </td> 1293<td> 1294 <p> 1295 Yes 1296 </p> 1297 </td> 1298<td> 1299 <p> 1300 - 1301 </p> 1302 </td> 1303<td> 1304 <p> 1305 - 1306 </p> 1307 </td> 1308</tr> 1309<tr> 1310<td> 1311 <p> 1312 30.5.2 1313 </p> 1314 </td> 1315<td> 1316 <p> 1317 Class condition_variable_any 1318 </p> 1319 </td> 1320<td> 1321 <p> 1322 Yes 1323 </p> 1324 </td> 1325<td> 1326 <p> 1327 - 1328 </p> 1329 </td> 1330<td> 1331 <p> 1332 - 1333 </p> 1334 </td> 1335</tr> 1336<tr> 1337<td> 1338 <p> 1339 30.6 1340 </p> 1341 </td> 1342<td> 1343 <p> 1344 Futures 1345 </p> 1346 </td> 1347<td> 1348 <p> 1349 Yes 1350 </p> 1351 </td> 1352<td> 1353 <p> 1354 - 1355 </p> 1356 </td> 1357<td> 1358 <p> 1359 - 1360 </p> 1361 </td> 1362</tr> 1363<tr> 1364<td> 1365 <p> 1366 30.6.1 1367 </p> 1368 </td> 1369<td> 1370 <p> 1371 Overview 1372 </p> 1373 </td> 1374<td> 1375 <p> 1376 Partial 1377 </p> 1378 </td> 1379<td> 1380 <p> 1381 - 1382 </p> 1383 </td> 1384<td> 1385 <p> 1386 - 1387 </p> 1388 </td> 1389</tr> 1390<tr> 1391<td> 1392 <p> 1393 30.6.2 1394 </p> 1395 </td> 1396<td> 1397 <p> 1398 Error handling 1399 </p> 1400 </td> 1401<td> 1402 <p> 1403 Yes 1404 </p> 1405 </td> 1406<td> 1407 <p> 1408 - 1409 </p> 1410 </td> 1411<td> 1412 <p> 1413 - 1414 </p> 1415 </td> 1416</tr> 1417<tr> 1418<td> 1419 <p> 1420 30.6.3 1421 </p> 1422 </td> 1423<td> 1424 <p> 1425 Class future_error 1426 </p> 1427 </td> 1428<td> 1429 <p> 1430 - 1431 </p> 1432 </td> 1433<td> 1434 <p> 1435 - 1436 </p> 1437 </td> 1438<td> 1439 <p> 1440 - 1441 </p> 1442 </td> 1443</tr> 1444<tr> 1445<td> 1446 <p> 1447 30.6.4 1448 </p> 1449 </td> 1450<td> 1451 <p> 1452 Shared state 1453 </p> 1454 </td> 1455<td> 1456 <p> 1457 - 1458 </p> 1459 </td> 1460<td> 1461 <p> 1462 - 1463 </p> 1464 </td> 1465<td> 1466 <p> 1467 - 1468 </p> 1469 </td> 1470</tr> 1471<tr> 1472<td> 1473 <p> 1474 30.6.5 1475 </p> 1476 </td> 1477<td> 1478 <p> 1479 Class template promise 1480 </p> 1481 </td> 1482<td> 1483 <p> 1484 Yes 1485 </p> 1486 </td> 1487<td> 1488 <p> 1489 - 1490 </p> 1491 </td> 1492<td> 1493 <p> 1494 - 1495 </p> 1496 </td> 1497</tr> 1498<tr> 1499<td> 1500 <p> 1501 30.6.6 1502 </p> 1503 </td> 1504<td> 1505 <p> 1506 Class template future 1507 </p> 1508 </td> 1509<td> 1510 <p> 1511 Yes 1512 </p> 1513 </td> 1514<td> 1515 <p> 1516 - 1517 </p> 1518 </td> 1519<td> 1520 <p> 1521 - 1522 </p> 1523 </td> 1524</tr> 1525<tr> 1526<td> 1527 <p> 1528 30.6.7 1529 </p> 1530 </td> 1531<td> 1532 <p> 1533 Class template shared_future 1534 </p> 1535 </td> 1536<td> 1537 <p> 1538 Yes 1539 </p> 1540 </td> 1541<td> 1542 <p> 1543 - 1544 </p> 1545 </td> 1546<td> 1547 <p> 1548 - 1549 </p> 1550 </td> 1551</tr> 1552<tr> 1553<td> 1554 <p> 1555 30.6.8 1556 </p> 1557 </td> 1558<td> 1559 <p> 1560 Function template async 1561 </p> 1562 </td> 1563<td> 1564 <p> 1565 Yes 1566 </p> 1567 </td> 1568<td> 1569 <p> 1570 - 1571 </p> 1572 </td> 1573<td> 1574 <p> 1575 - 1576 </p> 1577 </td> 1578</tr> 1579<tr> 1580<td> 1581 <p> 1582 30.6.9 1583 </p> 1584 </td> 1585<td> 1586 <p> 1587 Class template packaged_task 1588 </p> 1589 </td> 1590<td> 1591 <p> 1592 Yes 1593 </p> 1594 </td> 1595<td> 1596 <p> 1597 - 1598 </p> 1599 </td> 1600<td> 1601 <p> 1602 - 1603 </p> 1604 </td> 1605</tr> 1606</tbody> 1607</table></div> 1608</div> 1609<br class="table-break"><div class="table"> 1610<a name="thread.compliance.cpp11.extension"></a><p class="title"><b>Table 39.3. Extension</b></p> 1611<div class="table-contents"><table class="table" summary="Extension"> 1612<colgroup> 1613<col> 1614<col> 1615<col> 1616</colgroup> 1617<thead><tr> 1618<th> 1619 <p> 1620 Section 1621 </p> 1622 </th> 1623<th> 1624 <p> 1625 Description 1626 </p> 1627 </th> 1628<th> 1629 <p> 1630 Comments 1631 </p> 1632 </th> 1633</tr></thead> 1634<tbody> 1635<tr> 1636<td> 1637 <p> 1638 30.3.1.5.x 1639 </p> 1640 </td> 1641<td> 1642 <p> 1643 interrupt 1644 </p> 1645 </td> 1646<td> 1647 <p> 1648 - 1649 </p> 1650 </td> 1651</tr> 1652<tr> 1653<td> 1654 <p> 1655 30.3.2.x 1656 </p> 1657 </td> 1658<td> 1659 <p> 1660 Interruption 1661 </p> 1662 </td> 1663<td> 1664 <p> 1665 - 1666 </p> 1667 </td> 1668</tr> 1669<tr> 1670<td> 1671 <p> 1672 30.3.2.y 1673 </p> 1674 </td> 1675<td> 1676 <p> 1677 at_thread_exit 1678 </p> 1679 </td> 1680<td> 1681 <p> 1682 - 1683 </p> 1684 </td> 1685</tr> 1686<tr> 1687<td> 1688 <p> 1689 30.4.3.x 1690 </p> 1691 </td> 1692<td> 1693 <p> 1694 Generic locking algorithms begin/end 1695 </p> 1696 </td> 1697<td> 1698 <p> 1699 - 1700 </p> 1701 </td> 1702</tr> 1703</tbody> 1704</table></div> 1705</div> 1706<br class="table-break"> 1707</div> 1708<div class="section"> 1709<div class="titlepage"><div><div><h3 class="title"> 1710<a name="thread.compliance.cxx14"></a><a class="link" href="compliance.html#thread.compliance.cxx14" title="C++14 standard Thread library - accepted changes">C++14 standard Thread library 1711 - accepted changes</a> 1712</h3></div></div></div> 1713<div class="note"><table border="0" summary="Note"> 1714<tr> 1715<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 1716<th align="left">Note</th> 1717</tr> 1718<tr><td align="left" valign="top"><p> 1719 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3797.html" target="_top">Working 1720 Draft, Standard for Programming Language C++</a> 1721 </p></td></tr> 1722</table></div> 1723<div class="table"> 1724<a name="thread.compliance.cxx14.__http___isocpp_org_files_papers_n3659_html_n3659_shared_locking_in_c___revision_2__conformance"></a><p class="title"><b>Table 39.4. [@http://isocpp.org/files/papers/N3659.html N3659 Shared locking in 1725 C++ revision 2] Conformance</b></p> 1726<div class="table-contents"><table class="table" summary="[@http://isocpp.org/files/papers/N3659.html N3659 Shared locking in 1727 C++ revision 2] Conformance"> 1728<colgroup> 1729<col> 1730<col> 1731<col> 1732<col> 1733</colgroup> 1734<thead><tr> 1735<th> 1736 <p> 1737 Section 1738 </p> 1739 </th> 1740<th> 1741 <p> 1742 Description 1743 </p> 1744 </th> 1745<th> 1746 <p> 1747 Status 1748 </p> 1749 </th> 1750<th> 1751 <p> 1752 Comments 1753 </p> 1754 </th> 1755</tr></thead> 1756<tbody> 1757<tr> 1758<td> 1759 <p> 1760 30.4.1.4 1761 </p> 1762 </td> 1763<td> 1764 <p> 1765 Shared Lockables Types 1766 </p> 1767 </td> 1768<td> 1769 <p> 1770 Yes 1771 </p> 1772 </td> 1773<td> 1774 <p> 1775 - 1776 </p> 1777 </td> 1778</tr> 1779<tr> 1780<td> 1781 <p> 1782 30.4.1.4.1 1783 </p> 1784 </td> 1785<td> 1786 <p> 1787 shared_mutex class 1788 </p> 1789 </td> 1790<td> 1791 <p> 1792 Yes 1793 </p> 1794 </td> 1795<td> 1796 <p> 1797 - 1798 </p> 1799 </td> 1800</tr> 1801<tr> 1802<td> 1803 <p> 1804 30.4.2.3 1805 </p> 1806 </td> 1807<td> 1808 <p> 1809 Class template shared_lock 1810 </p> 1811 </td> 1812<td> 1813 <p> 1814 Yes 1815 </p> 1816 </td> 1817<td> 1818 <p> 1819 - 1820 </p> 1821 </td> 1822</tr> 1823</tbody> 1824</table></div> 1825</div> 1826<br class="table-break"> 1827</div> 1828<div class="section"> 1829<div class="titlepage"><div><div><h3 class="title"> 1830<a name="thread.compliance.cxx1y"></a><a class="link" href="compliance.html#thread.compliance.cxx1y" title="C++14 TS Extensions for Concurrency V1">C++14 TS Extensions for Concurrency 1831 V1 </a> 1832</h3></div></div></div> 1833<div class="note"><table border="0" summary="Note"> 1834<tr> 1835<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 1836<th align="left">Note</th> 1837</tr> 1838<tr><td align="left" valign="top"><p> 1839 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4107.html" target="_top">N4107-Extensions 1840 for Concurrency</a> 1841 </p></td></tr> 1842</table></div> 1843<div class="table"> 1844<a name="thread.compliance.cxx1y.improvements_to_std__future_t__and_related_apis_"></a><p class="title"><b>Table 39.5. Improvements to std::future<T> and related APIs]</b></p> 1845<div class="table-contents"><table class="table" summary="Improvements to std::future<T> and related APIs]"> 1846<colgroup> 1847<col> 1848<col> 1849<col> 1850<col> 1851</colgroup> 1852<thead><tr> 1853<th> 1854 <p> 1855 Section 1856 </p> 1857 </th> 1858<th> 1859 <p> 1860 Description 1861 </p> 1862 </th> 1863<th> 1864 <p> 1865 Status 1866 </p> 1867 </th> 1868<th> 1869 <p> 1870 Comments 1871 </p> 1872 </th> 1873</tr></thead> 1874<tbody> 1875<tr> 1876<td> 1877 <p> 1878 2.1 1879 </p> 1880 </td> 1881<td> 1882 <p> 1883 - 1884 </p> 1885 </td> 1886<td> 1887 <p> 1888 - 1889 </p> 1890 </td> 1891<td> 1892 <p> 1893 - 1894 </p> 1895 </td> 1896</tr> 1897<tr> 1898<td> 1899 <p> 1900 2.2 1901 </p> 1902 </td> 1903<td> 1904 <p> 1905 Class template future 1906 </p> 1907 </td> 1908<td> 1909 <p> 1910 Partial 1911 </p> 1912 </td> 1913<td> 1914 <p> 1915 - 1916 </p> 1917 </td> 1918</tr> 1919<tr> 1920<td> 1921 <p> 1922 2.2 1923 </p> 1924 </td> 1925<td> 1926 <p> 1927 then 1928 </p> 1929 </td> 1930<td> 1931 <p> 1932 Partial 1933 </p> 1934 </td> 1935<td> 1936 <p> 1937 without implicit unwrapping #10550 and blocking #10551 1938 </p> 1939 </td> 1940</tr> 1941<tr> 1942<td> 1943 <p> 1944 2.2 1945 </p> 1946 </td> 1947<td> 1948 <p> 1949 is_ready 1950 </p> 1951 </td> 1952<td> 1953 <p> 1954 Yes 1955 </p> 1956 </td> 1957<td> 1958 <p> 1959 - 1960 </p> 1961 </td> 1962</tr> 1963<tr> 1964<td> 1965 <p> 1966 2.3 1967 </p> 1968 </td> 1969<td> 1970 <p> 1971 Class template shared_future 1972 </p> 1973 </td> 1974<td> 1975 <p> 1976 Partial 1977 </p> 1978 </td> 1979<td> 1980 <p> 1981 - 1982 </p> 1983 </td> 1984</tr> 1985<tr> 1986<td> 1987 <p> 1988 2.3 1989 </p> 1990 </td> 1991<td> 1992 <p> 1993 then 1994 </p> 1995 </td> 1996<td> 1997 <p> 1998 Partial 1999 </p> 2000 </td> 2001<td> 2002 <p> 2003 Without implicit unwrapping #10550 and blocking #10551 2004 </p> 2005 </td> 2006</tr> 2007<tr> 2008<td> 2009 <p> 2010 2.3 2011 </p> 2012 </td> 2013<td> 2014 <p> 2015 is_ready 2016 </p> 2017 </td> 2018<td> 2019 <p> 2020 Yes 2021 </p> 2022 </td> 2023<td> 2024 <p> 2025 - 2026 </p> 2027 </td> 2028</tr> 2029<tr> 2030<td> 2031 <p> 2032 2.4 2033 </p> 2034 </td> 2035<td> 2036 <p> 2037 Function template when_all 2038 </p> 2039 </td> 2040<td> 2041 <p> 2042 Partial 2043 </p> 2044 </td> 2045<td> 2046 <p> 2047 interface not complete #10426 and blocking #10551 2048 </p> 2049 </td> 2050</tr> 2051<tr> 2052<td> 2053 <p> 2054 2.5 2055 </p> 2056 </td> 2057<td> 2058 <p> 2059 Function template when_any 2060 </p> 2061 </td> 2062<td> 2063 <p> 2064 Partial 2065 </p> 2066 </td> 2067<td> 2068 <p> 2069 interface not complete #10427 and blocking #10551 2070 </p> 2071 </td> 2072</tr> 2073<tr> 2074<td> 2075 <p> 2076 2.6 2077 </p> 2078 </td> 2079<td> 2080 <p> 2081 Function template when_any_back 2082 </p> 2083 </td> 2084<td> 2085 <p> 2086 No 2087 </p> 2088 </td> 2089<td> 2090 <p> 2091 #XXXX 2092 </p> 2093 </td> 2094</tr> 2095<tr> 2096<td> 2097 <p> 2098 2.7 2099 </p> 2100 </td> 2101<td> 2102 <p> 2103 Function template make_ready_future 2104 </p> 2105 </td> 2106<td> 2107 <p> 2108 Yes 2109 </p> 2110 </td> 2111<td> 2112 <p> 2113 - 2114 </p> 2115 </td> 2116</tr> 2117</tbody> 2118</table></div> 2119</div> 2120<br class="table-break"> 2121</div> 2122<div class="section"> 2123<div class="titlepage"><div><div><h3 class="title"> 2124<a name="thread.compliance.cxx1y0"></a><a class="link" href="compliance.html#thread.compliance.cxx1y0" title="C++1z TS Concurrency - On going proposals">C++1z TS Concurrency - On going 2125 proposals</a> 2126</h3></div></div></div> 2127<div class="toc"><dl class="toc"> 2128<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.latch">C++ Latches and Barriers</a></span></dt> 2129<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.queue">C++ Concurrent Queues</a></span></dt> 2130<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.executors">Executors and Schedulers</a></span></dt> 2131</dl></div> 2132<div class="section"> 2133<div class="titlepage"><div><div><h4 class="title"> 2134<a name="thread.compliance.cxx1y.latch"></a><a class="link" href="compliance.html#thread.compliance.cxx1y.latch" title="C++ Latches and Barriers">C++ Latches and Barriers</a> 2135</h4></div></div></div> 2136<div class="note"><table border="0" summary="Note"> 2137<tr> 2138<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 2139<th align="left">Note</th> 2140</tr> 2141<tr><td align="left" valign="top"><p> 2142 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3600.html" target="_top">N3600 2143 C++ Latches and Barriers</a> 2144 </p></td></tr> 2145</table></div> 2146<div class="note"><table border="0" summary="Note"> 2147<tr> 2148<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 2149<th align="left">Note</th> 2150</tr> 2151<tr><td align="left" valign="top"><p> 2152 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3817.html" target="_top">N3817 2153 C++ Latches and Barriers</a> 2154 </p></td></tr> 2155</table></div> 2156<div class="table"> 2157<a name="thread.compliance.cxx1y.latch.c___latches_and_barriers_conformance"></a><p class="title"><b>Table 39.6. C++ Latches and Barriers Conformance</b></p> 2158<div class="table-contents"><table class="table" summary="C++ Latches and Barriers Conformance"> 2159<colgroup> 2160<col> 2161<col> 2162<col> 2163<col> 2164</colgroup> 2165<thead><tr> 2166<th> 2167 <p> 2168 Section 2169 </p> 2170 </th> 2171<th> 2172 <p> 2173 Description 2174 </p> 2175 </th> 2176<th> 2177 <p> 2178 Status 2179 </p> 2180 </th> 2181<th> 2182 <p> 2183 Comments 2184 </p> 2185 </th> 2186</tr></thead> 2187<tbody> 2188<tr> 2189<td> 2190 <p> 2191 X.1 2192 </p> 2193 </td> 2194<td> 2195 <p> 2196 Class latch 2197 </p> 2198 </td> 2199<td> 2200 <p> 2201 Partial 2202 </p> 2203 </td> 2204<td> 2205 <p> 2206 A new class latch has been added. The interface is a super set 2207 of the one of the proposal, taking some of the functions of the 2208 class barrier. 2209 </p> 2210 </td> 2211</tr> 2212<tr> 2213<td> 2214 <p> 2215 X.2 2216 </p> 2217 </td> 2218<td> 2219 <p> 2220 Class barrier 2221 </p> 2222 </td> 2223<td> 2224 <p> 2225 No 2226 </p> 2227 </td> 2228<td> 2229 <p> 2230 Even if Boost.Thread has a class boost:barrier it doesn't provides 2231 the same kind of services. There is an experimental completion_latch 2232 that could be used instead. 2233 </p> 2234 </td> 2235</tr> 2236</tbody> 2237</table></div> 2238</div> 2239<br class="table-break"> 2240</div> 2241<div class="section"> 2242<div class="titlepage"><div><div><h4 class="title"> 2243<a name="thread.compliance.cxx1y.queue"></a><a class="link" href="compliance.html#thread.compliance.cxx1y.queue" title="C++ Concurrent Queues">C++ Concurrent Queues</a> 2244</h4></div></div></div> 2245<div class="note"><table border="0" summary="Note"> 2246<tr> 2247<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 2248<th align="left">Note</th> 2249</tr> 2250<tr><td align="left" valign="top"><p> 2251 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3533.html" target="_top">N3533 2252 C++ Concurrent Queues</a> 2253 </p></td></tr> 2254</table></div> 2255<div class="table"> 2256<a name="thread.compliance.cxx1y.queue.c___concurrent_queues_conformance"></a><p class="title"><b>Table 39.7. C++ Concurrent Queues Conformance</b></p> 2257<div class="table-contents"><table class="table" summary="C++ Concurrent Queues Conformance"> 2258<colgroup> 2259<col> 2260<col> 2261<col> 2262<col> 2263</colgroup> 2264<thead><tr> 2265<th> 2266 <p> 2267 Section 2268 </p> 2269 </th> 2270<th> 2271 <p> 2272 Description 2273 </p> 2274 </th> 2275<th> 2276 <p> 2277 Status 2278 </p> 2279 </th> 2280<th> 2281 <p> 2282 Comments 2283 </p> 2284 </th> 2285</tr></thead> 2286<tbody> 2287<tr> 2288<td> 2289 <p> 2290 X.1 2291 </p> 2292 </td> 2293<td> 2294 <p> 2295 Conceptual interface 2296 </p> 2297 </td> 2298<td> 2299 <p> 2300 Partial 2301 </p> 2302 </td> 2303<td> 2304 <p> 2305 The interface provided has some differences respect to this proposal. 2306 All the functions having a queue_op_status are not provided. 2307 No lock-free concrete classes 2308 </p> 2309 </td> 2310</tr> 2311<tr> 2312<td> 2313 <p> 2314 X.1.1 2315 </p> 2316 </td> 2317<td> 2318 <p> 2319 Basic Operations 2320 </p> 2321 </td> 2322<td> 2323 <p> 2324 Partial 2325 </p> 2326 </td> 2327<td> 2328 <p> 2329 - 2330 </p> 2331 </td> 2332</tr> 2333<tr> 2334<td> 2335 <p> 2336 X.1.1.1 2337 </p> 2338 </td> 2339<td> 2340 <p> 2341 push 2342 </p> 2343 </td> 2344<td> 2345 <p> 2346 yes 2347 </p> 2348 </td> 2349<td> 2350 <p> 2351 renamed push_back. 2352 </p> 2353 </td> 2354</tr> 2355<tr> 2356<td> 2357 <p> 2358 X.1.1.2 2359 </p> 2360 </td> 2361<td> 2362 <p> 2363 value_pop 2364 </p> 2365 </td> 2366<td> 2367 <p> 2368 no 2369 </p> 2370 </td> 2371<td> 2372 <p> 2373 renamed pull_front with two flavors. 2374 </p> 2375 </td> 2376</tr> 2377<tr> 2378<td> 2379 <p> 2380 X.1.2 2381 </p> 2382 </td> 2383<td> 2384 <p> 2385 Non-waiting operations 2386 </p> 2387 </td> 2388<td> 2389 <p> 2390 - 2391 </p> 2392 </td> 2393<td> 2394 <p> 2395 - 2396 </p> 2397 </td> 2398</tr> 2399<tr> 2400<td> 2401 <p> 2402 X.1.2.1 2403 </p> 2404 </td> 2405<td> 2406 <p> 2407 try_push 2408 </p> 2409 </td> 2410<td> 2411 <p> 2412 yes 2413 </p> 2414 </td> 2415<td> 2416 <p> 2417 renamed try_push_back 2418 </p> 2419 </td> 2420</tr> 2421<tr> 2422<td> 2423 <p> 2424 X.1.2.2 2425 </p> 2426 </td> 2427<td> 2428 <p> 2429 try_pop 2430 </p> 2431 </td> 2432<td> 2433 <p> 2434 yes 2435 </p> 2436 </td> 2437<td> 2438 <p> 2439 renamed try_pull_back 2440 </p> 2441 </td> 2442</tr> 2443<tr> 2444<td> 2445 <p> 2446 X.1.3 2447 </p> 2448 </td> 2449<td> 2450 <p> 2451 Non-blocking operations 2452 </p> 2453 </td> 2454<td> 2455 <p> 2456 - 2457 </p> 2458 </td> 2459<td> 2460 <p> 2461 - 2462 </p> 2463 </td> 2464</tr> 2465<tr> 2466<td> 2467 <p> 2468 X.1.3.1 2469 </p> 2470 </td> 2471<td> 2472 <p> 2473 nonblocking_push 2474 </p> 2475 </td> 2476<td> 2477 <p> 2478 Yes 2479 </p> 2480 </td> 2481<td> 2482 <p> 2483 renamed nonblocking_push_back 2484 </p> 2485 </td> 2486</tr> 2487<tr> 2488<td> 2489 <p> 2490 X.1.3.2 2491 </p> 2492 </td> 2493<td> 2494 <p> 2495 nonblocking_pop 2496 </p> 2497 </td> 2498<td> 2499 <p> 2500 Yes 2501 </p> 2502 </td> 2503<td> 2504 <p> 2505 renamed nonblocking_pull_front 2506 </p> 2507 </td> 2508</tr> 2509<tr> 2510<td> 2511 <p> 2512 X.1.4 2513 </p> 2514 </td> 2515<td> 2516 <p> 2517 Push-front operations 2518 </p> 2519 </td> 2520<td> 2521 <p> 2522 No 2523 </p> 2524 </td> 2525<td> 2526 <p> 2527 - 2528 </p> 2529 </td> 2530</tr> 2531<tr> 2532<td> 2533 <p> 2534 X.1.5 2535 </p> 2536 </td> 2537<td> 2538 <p> 2539 Closed queues 2540 </p> 2541 </td> 2542<td> 2543 <p> 2544 Partial 2545 </p> 2546 </td> 2547<td> 2548 <p> 2549 - 2550 </p> 2551 </td> 2552</tr> 2553<tr> 2554<td> 2555 <p> 2556 X.1.5.1 2557 </p> 2558 </td> 2559<td> 2560 <p> 2561 close 2562 </p> 2563 </td> 2564<td> 2565 <p> 2566 Yes 2567 </p> 2568 </td> 2569<td> 2570 <p> 2571 - 2572 </p> 2573 </td> 2574</tr> 2575<tr> 2576<td> 2577 <p> 2578 X.1.5.2 2579 </p> 2580 </td> 2581<td> 2582 <p> 2583 is_closed 2584 </p> 2585 </td> 2586<td> 2587 <p> 2588 Yes 2589 </p> 2590 </td> 2591<td> 2592 <p> 2593 renamed closed 2594 </p> 2595 </td> 2596</tr> 2597<tr> 2598<td> 2599 <p> 2600 X.1.5.3 2601 </p> 2602 </td> 2603<td> 2604 <p> 2605 wait_push 2606 </p> 2607 </td> 2608<td> 2609 <p> 2610 Yes 2611 </p> 2612 </td> 2613<td> 2614 <p> 2615 renamed wait_push_back 2616 </p> 2617 </td> 2618</tr> 2619<tr> 2620<td> 2621 <p> 2622 X.1.5.4 2623 </p> 2624 </td> 2625<td> 2626 <p> 2627 wait_pop 2628 </p> 2629 </td> 2630<td> 2631 <p> 2632 Yes 2633 </p> 2634 </td> 2635<td> 2636 <p> 2637 renamed wait_pull_front 2638 </p> 2639 </td> 2640</tr> 2641<tr> 2642<td> 2643 <p> 2644 X.1.5.5 2645 </p> 2646 </td> 2647<td> 2648 <p> 2649 wait_push_front 2650 </p> 2651 </td> 2652<td> 2653 <p> 2654 no 2655 </p> 2656 </td> 2657<td> 2658 <p> 2659 - 2660 </p> 2661 </td> 2662</tr> 2663<tr> 2664<td> 2665 <p> 2666 X.1.5.6 2667 </p> 2668 </td> 2669<td> 2670 <p> 2671 wait_pop_back 2672 </p> 2673 </td> 2674<td> 2675 <p> 2676 no 2677 </p> 2678 </td> 2679<td> 2680 <p> 2681 - 2682 </p> 2683 </td> 2684</tr> 2685<tr> 2686<td> 2687 <p> 2688 X.1.5.6 2689 </p> 2690 </td> 2691<td> 2692 <p> 2693 open 2694 </p> 2695 </td> 2696<td> 2697 <p> 2698 no 2699 </p> 2700 </td> 2701<td> 2702 <p> 2703 - 2704 </p> 2705 </td> 2706</tr> 2707<tr> 2708<td> 2709 <p> 2710 X.1.6 2711 </p> 2712 </td> 2713<td> 2714 <p> 2715 Empty and Full Queues 2716 </p> 2717 </td> 2718<td> 2719 <p> 2720 Yes 2721 </p> 2722 </td> 2723<td> 2724 <p> 2725 - 2726 </p> 2727 </td> 2728</tr> 2729<tr> 2730<td> 2731 <p> 2732 X.1.6.1 2733 </p> 2734 </td> 2735<td> 2736 <p> 2737 is_empty 2738 </p> 2739 </td> 2740<td> 2741 <p> 2742 Yes 2743 </p> 2744 </td> 2745<td> 2746 <p> 2747 - 2748 </p> 2749 </td> 2750</tr> 2751<tr> 2752<td> 2753 <p> 2754 X.1.6.2 2755 </p> 2756 </td> 2757<td> 2758 <p> 2759 is_full 2760 </p> 2761 </td> 2762<td> 2763 <p> 2764 Yes 2765 </p> 2766 </td> 2767<td> 2768 <p> 2769 Added capacity 2770 </p> 2771 </td> 2772</tr> 2773<tr> 2774<td> 2775 <p> 2776 X.1.7 2777 </p> 2778 </td> 2779<td> 2780 <p> 2781 Queue Names 2782 </p> 2783 </td> 2784<td> 2785 <p> 2786 No 2787 </p> 2788 </td> 2789<td> 2790 <p> 2791 Not considered a must for the time been. 2792 </p> 2793 </td> 2794</tr> 2795<tr> 2796<td> 2797 <p> 2798 X.1.8 2799 </p> 2800 </td> 2801<td> 2802 <p> 2803 Element Type Requirements 2804 </p> 2805 </td> 2806<td> 2807 <p> 2808 Yes? 2809 </p> 2810 </td> 2811<td> 2812 <p> 2813 - 2814 </p> 2815 </td> 2816</tr> 2817<tr> 2818<td> 2819 <p> 2820 X.1.9 2821 </p> 2822 </td> 2823<td> 2824 <p> 2825 Exception Handling 2826 </p> 2827 </td> 2828<td> 2829 <p> 2830 Yes? 2831 </p> 2832 </td> 2833<td> 2834 <p> 2835 - 2836 </p> 2837 </td> 2838</tr> 2839<tr> 2840<td> 2841 <p> 2842 X.1.10 2843 </p> 2844 </td> 2845<td> 2846 <p> 2847 Queue Ordering 2848 </p> 2849 </td> 2850<td> 2851 <p> 2852 Yes? 2853 </p> 2854 </td> 2855<td> 2856 <p> 2857 - 2858 </p> 2859 </td> 2860</tr> 2861<tr> 2862<td> 2863 <p> 2864 X.1.11 2865 </p> 2866 </td> 2867<td> 2868 <p> 2869 Lock-Free Implementations 2870 </p> 2871 </td> 2872<td> 2873 <p> 2874 No 2875 </p> 2876 </td> 2877<td> 2878 <p> 2879 waiting to stabilize the lock-based interface. Will use Boost.LockFree 2880 once it is Boost.Move aware. 2881 </p> 2882 </td> 2883</tr> 2884<tr> 2885<td> 2886 <p> 2887 X.2 2888 </p> 2889 </td> 2890<td> 2891 <p> 2892 Concrete queues 2893 </p> 2894 </td> 2895<td> 2896 <p> 2897 Partial 2898 </p> 2899 </td> 2900<td> 2901 <p> 2902 - 2903 </p> 2904 </td> 2905</tr> 2906<tr> 2907<td> 2908 <p> 2909 X.2.1 2910 </p> 2911 </td> 2912<td> 2913 <p> 2914 Locking Buffer Queue 2915 </p> 2916 </td> 2917<td> 2918 <p> 2919 Partial 2920 </p> 2921 </td> 2922<td> 2923 <p> 2924 classes sync_queue and a sync_bounded_queue. 2925 </p> 2926 </td> 2927</tr> 2928<tr> 2929<td> 2930 <p> 2931 X.2.1 2932 </p> 2933 </td> 2934<td> 2935 <p> 2936 Lock-Free Buffer Queue 2937 </p> 2938 </td> 2939<td> 2940 <p> 2941 No 2942 </p> 2943 </td> 2944<td> 2945 <p> 2946 waiting to stabilize the lock-based interface. Will use Boost.LockFree 2947 once it is Boost.Move aware. 2948 </p> 2949 </td> 2950</tr> 2951<tr> 2952<td> 2953 <p> 2954 X.3 2955 </p> 2956 </td> 2957<td> 2958 <p> 2959 Additional Conceptual Tools 2960 </p> 2961 </td> 2962<td> 2963 <p> 2964 No 2965 </p> 2966 </td> 2967<td> 2968 <p> 2969 - 2970 </p> 2971 </td> 2972</tr> 2973<tr> 2974<td> 2975 <p> 2976 X.3.1 2977 </p> 2978 </td> 2979<td> 2980 <p> 2981 Fronts and Backs 2982 </p> 2983 </td> 2984<td> 2985 <p> 2986 No 2987 </p> 2988 </td> 2989<td> 2990 <p> 2991 - 2992 </p> 2993 </td> 2994</tr> 2995<tr> 2996<td> 2997 <p> 2998 X.3.2 2999 </p> 3000 </td> 3001<td> 3002 <p> 3003 Streaming Iterators 3004 </p> 3005 </td> 3006<td> 3007 <p> 3008 No 3009 </p> 3010 </td> 3011<td> 3012 <p> 3013 - 3014 </p> 3015 </td> 3016</tr> 3017<tr> 3018<td> 3019 <p> 3020 X.3.3 3021 </p> 3022 </td> 3023<td> 3024 <p> 3025 Storage Iterators 3026 </p> 3027 </td> 3028<td> 3029 <p> 3030 No 3031 </p> 3032 </td> 3033<td> 3034 <p> 3035 - 3036 </p> 3037 </td> 3038</tr> 3039<tr> 3040<td> 3041 <p> 3042 X.3.4 3043 </p> 3044 </td> 3045<td> 3046 <p> 3047 Binary Interfaces 3048 </p> 3049 </td> 3050<td> 3051 <p> 3052 No 3053 </p> 3054 </td> 3055<td> 3056 <p> 3057 - 3058 </p> 3059 </td> 3060</tr> 3061<tr> 3062<td> 3063 <p> 3064 X.3.4 3065 </p> 3066 </td> 3067<td> 3068 <p> 3069 Managed Indirection 3070 </p> 3071 </td> 3072<td> 3073 <p> 3074 No 3075 </p> 3076 </td> 3077<td> 3078 <p> 3079 - 3080 </p> 3081 </td> 3082</tr> 3083</tbody> 3084</table></div> 3085</div> 3086<br class="table-break"> 3087</div> 3088<div class="section"> 3089<div class="titlepage"><div><div><h4 class="title"> 3090<a name="thread.compliance.cxx1y.executors"></a><a class="link" href="compliance.html#thread.compliance.cxx1y.executors" title="Executors and Schedulers">Executors and Schedulers</a> 3091</h4></div></div></div> 3092<div class="note"><table border="0" summary="Note"> 3093<tr> 3094<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 3095<th align="left">Note</th> 3096</tr> 3097<tr><td align="left" valign="top"><p> 3098 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3785.pdf" target="_top">N3785 3099 Executors and Schedulers</a> 3100 </p></td></tr> 3101</table></div> 3102<div class="table"> 3103<a name="thread.compliance.cxx1y.executors.executors_and_schedulers"></a><p class="title"><b>Table 39.8. Executors and Schedulers</b></p> 3104<div class="table-contents"><table class="table" summary="Executors and Schedulers"> 3105<colgroup> 3106<col> 3107<col> 3108<col> 3109<col> 3110</colgroup> 3111<thead><tr> 3112<th> 3113 <p> 3114 Section 3115 </p> 3116 </th> 3117<th> 3118 <p> 3119 Description 3120 </p> 3121 </th> 3122<th> 3123 <p> 3124 Status 3125 </p> 3126 </th> 3127<th> 3128 <p> 3129 Comments 3130 </p> 3131 </th> 3132</tr></thead> 3133<tbody> 3134<tr> 3135<td> 3136 <p> 3137 V.1.1 3138 </p> 3139 </td> 3140<td> 3141 <p> 3142 Class <code class="computeroutput"><span class="identifier">executor</span></code> 3143 </p> 3144 </td> 3145<td> 3146 <p> 3147 Yes 3148 </p> 3149 </td> 3150<td> 3151 <p> 3152 - 3153 </p> 3154 </td> 3155</tr> 3156<tr> 3157<td> 3158 <p> 3159 V.1.1 3160 </p> 3161 </td> 3162<td> 3163 <p> 3164 <code class="computeroutput"><span class="identifier">add</span></code> 3165 </p> 3166 </td> 3167<td> 3168 <p> 3169 Yes 3170 </p> 3171 </td> 3172<td> 3173 <p> 3174 renamed with a function template <code class="computeroutput"><span class="identifier">submit</span></code> 3175 </p> 3176 </td> 3177</tr> 3178<tr> 3179<td> 3180 <p> 3181 V.1.1 3182 </p> 3183 </td> 3184<td> 3185 <p> 3186 <code class="computeroutput"><span class="identifier">num_of_pendin_closures</span></code> 3187 </p> 3188 </td> 3189<td> 3190 <p> 3191 No 3192 </p> 3193 </td> 3194<td> 3195 </td> 3196</tr> 3197<tr> 3198<td> 3199 <p> 3200 V.1.2 3201 </p> 3202 </td> 3203<td> 3204 <p> 3205 Class sceduled_executor 3206 </p> 3207 </td> 3208<td> 3209 <p> 3210 No 3211 </p> 3212 </td> 3213<td> 3214 <p> 3215 - 3216 </p> 3217 </td> 3218</tr> 3219<tr> 3220<td> 3221 <p> 3222 V.1.2 3223 </p> 3224 </td> 3225<td> 3226 <p> 3227 <code class="computeroutput"><span class="identifier">add_at</span></code> 3228 </p> 3229 </td> 3230<td> 3231 <p> 3232 No 3233 </p> 3234 </td> 3235<td> 3236 <p> 3237 renamed with a function template <code class="computeroutput"><span class="identifier">scheduler</span><span class="special">::</span><span class="identifier">submit_at</span></code> 3238 </p> 3239 </td> 3240</tr> 3241<tr> 3242<td> 3243 <p> 3244 V.1.2 3245 </p> 3246 </td> 3247<td> 3248 <p> 3249 <code class="computeroutput"><span class="identifier">add_after</span></code> 3250 </p> 3251 </td> 3252<td> 3253 <p> 3254 No 3255 </p> 3256 </td> 3257<td> 3258 <p> 3259 renamed with a function template <code class="computeroutput"><span class="identifier">scheduler</span><span class="special">::</span><span class="identifier">submit_after</span></code> 3260 </p> 3261 </td> 3262</tr> 3263<tr> 3264<td> 3265 <p> 3266 V.2 3267 </p> 3268 </td> 3269<td> 3270 <p> 3271 Concrete executor classes 3272 </p> 3273 </td> 3274<td> 3275 <p> 3276 No 3277 </p> 3278 </td> 3279<td> 3280 <p> 3281 - 3282 </p> 3283 </td> 3284</tr> 3285<tr> 3286<td> 3287 <p> 3288 V.2.1 3289 </p> 3290 </td> 3291<td> 3292 <p> 3293 <code class="computeroutput"><span class="identifier">thread_pool</span></code> 3294 </p> 3295 </td> 3296<td> 3297 <p> 3298 Yes 3299 </p> 3300 </td> 3301<td> 3302 <p> 3303 static version <code class="computeroutput"><span class="identifier">basic_thread_pool</span></code>, 3304 dynamic one <code class="computeroutput"><span class="identifier">execduler_adaptor</span><span class="special"><</span><span class="identifier">basic_thread_pool</span><span class="special">></span></code> 3305 </p> 3306 </td> 3307</tr> 3308<tr> 3309<td> 3310 <p> 3311 V.2.2 3312 </p> 3313 </td> 3314<td> 3315 <p> 3316 <code class="computeroutput"><span class="identifier">serial_executor</span></code> 3317 </p> 3318 </td> 3319<td> 3320 <p> 3321 yes 3322 </p> 3323 </td> 3324<td> 3325 <p> 3326 - 3327 </p> 3328 </td> 3329</tr> 3330<tr> 3331<td> 3332 <p> 3333 V.2.3 3334 </p> 3335 </td> 3336<td> 3337 <p> 3338 <code class="computeroutput"><span class="identifier">loop_executor</span></code> 3339 </p> 3340 </td> 3341<td> 3342 <p> 3343 Yes 3344 </p> 3345 </td> 3346<td> 3347 <p> 3348 static version loop_scheduler, dynamic one <code class="computeroutput"><span class="identifier">execduler_adaptor</span><span class="special"><</span><span class="identifier">loop_scheduler</span><span class="special">></span></code> 3349 </p> 3350 </td> 3351</tr> 3352<tr> 3353<td> 3354 <p> 3355 V.2.4 3356 </p> 3357 </td> 3358<td> 3359 <p> 3360 <code class="computeroutput"><span class="identifier">inline_executor</span></code> 3361 </p> 3362 </td> 3363<td> 3364 <p> 3365 Yes 3366 </p> 3367 </td> 3368<td> 3369 <p> 3370 static version <code class="computeroutput"><span class="identifier">inline_executor</span></code>, 3371 dynamic one <code class="computeroutput"><span class="identifier">execduler_adaptor</span><span class="special"><</span><span class="identifier">inline_executor</span><span class="special">></span></code> 3372 </p> 3373 </td> 3374</tr> 3375<tr> 3376<td> 3377 <p> 3378 V.2.5 3379 </p> 3380 </td> 3381<td> 3382 <p> 3383 <code class="computeroutput"><span class="identifier">thread_executor</span></code> 3384 </p> 3385 </td> 3386<td> 3387 <p> 3388 Yes 3389 </p> 3390 </td> 3391<td> 3392 <p> 3393 static version <code class="computeroutput"><span class="identifier">thread_executor</span></code>, 3394 dynamic one <code class="computeroutput"><span class="identifier">execduler_adaptor</span><span class="special"><</span><span class="identifier">thread_executor</span><span class="special">></span></code> 3395 </p> 3396 </td> 3397</tr> 3398</tbody> 3399</table></div> 3400</div> 3401<br class="table-break"><div class="note"><table border="0" summary="Note"> 3402<tr> 3403<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 3404<th align="left">Note</th> 3405</tr> 3406<tr><td align="left" valign="top"><p> 3407 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3784.pdf" target="_top">N3784-Improvements 3408 to `std::future<T> and Related APIs</a> 3409 </p></td></tr> 3410</table></div> 3411<div class="table"> 3412<a name="thread.compliance.cxx1y.executors._async__future_shared_future__then_and_executors"></a><p class="title"><b>Table 39.9. `async, future/shared_future::then`and Executors</b></p> 3413<div class="table-contents"><table class="table" summary="`async, future/shared_future::then`and Executors"> 3414<colgroup> 3415<col> 3416<col> 3417<col> 3418<col> 3419</colgroup> 3420<thead><tr> 3421<th> 3422 <p> 3423 Section 3424 </p> 3425 </th> 3426<th> 3427 <p> 3428 Description 3429 </p> 3430 </th> 3431<th> 3432 <p> 3433 Status 3434 </p> 3435 </th> 3436<th> 3437 <p> 3438 Comments 3439 </p> 3440 </th> 3441</tr></thead> 3442<tbody> 3443<tr> 3444<td> 3445 <p> 3446 30.6.6 3447 </p> 3448 </td> 3449<td> 3450 <p> 3451 <code class="computeroutput"><span class="identifier">future</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">then</span></code> 3452 </p> 3453 </td> 3454<td> 3455 <p> 3456 Yes 3457 </p> 3458 </td> 3459<td> 3460 </td> 3461</tr> 3462<tr> 3463<td> 3464 <p> 3465 30.6.7 3466 </p> 3467 </td> 3468<td> 3469 <p> 3470 <code class="computeroutput"><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">then</span></code> 3471 </p> 3472 </td> 3473<td> 3474 <p> 3475 Yes 3476 </p> 3477 </td> 3478<td> 3479 </td> 3480</tr> 3481<tr> 3482<td> 3483 <p> 3484 30.6.8 3485 </p> 3486 </td> 3487<td> 3488 <p> 3489 <code class="computeroutput"><span class="identifier">async</span></code> 3490 </p> 3491 </td> 3492<td> 3493 <p> 3494 Yes 3495 </p> 3496 </td> 3497<td> 3498 <p> 3499 - 3500 </p> 3501 </td> 3502</tr> 3503</tbody> 3504</table></div> 3505</div> 3506<br class="table-break"><div class="note"><table border="0" summary="Note"> 3507<tr> 3508<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> 3509<th align="left">Note</th> 3510</tr> 3511<tr><td align="left" valign="top"><p> 3512 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4143.pdf" target="_top">N4143-Executors 3513 and schedulers, revision 4</a> 3514 </p></td></tr> 3515</table></div> 3516<div class="table"> 3517<a name="thread.compliance.cxx1y.executors.executors_and_schedulers___revision_4"></a><p class="title"><b>Table 39.10. Executors and Schedulers - revision 4</b></p> 3518<div class="table-contents"><table class="table" summary="Executors and Schedulers - revision 4"> 3519<colgroup> 3520<col> 3521<col> 3522<col> 3523<col> 3524</colgroup> 3525<thead><tr> 3526<th> 3527 <p> 3528 Section 3529 </p> 3530 </th> 3531<th> 3532 <p> 3533 Description 3534 </p> 3535 </th> 3536<th> 3537 <p> 3538 Status 3539 </p> 3540 </th> 3541<th> 3542 <p> 3543 Comments 3544 </p> 3545 </th> 3546</tr></thead> 3547<tbody> 3548<tr> 3549<td> 3550 <p> 3551 VI.A 3552 </p> 3553 </td> 3554<td> 3555 <p> 3556 Executor Concept 3557 </p> 3558 </td> 3559<td> 3560 <p> 3561 Yes 3562 </p> 3563 </td> 3564<td> 3565 <p> 3566 <code class="computeroutput"><span class="identifier">wrapper_type</span></code> 3567 renamed by <code class="computeroutput"><span class="identifier">work</span></code> 3568 and <code class="computeroutput"><span class="identifier">spawn</span> <span class="identifier">by</span> 3569 </code>submit<code class="computeroutput"> <span class="special">]]</span> <span class="special">[[</span><span class="identifier">VI</span><span class="special">.</span><span class="identifier">A</span><span class="special">.</span><span class="number">1</span><span class="special">]</span> <span class="special">[</span></code>thread_per_task_executor 3570 </p> 3571 </td> 3572<td> 3573 <p> 3574 Yes 3575 </p> 3576 </td> 3577<td> 3578 <p> 3579 renamed <code class="computeroutput"><span class="identifier">thread_executor</span></code> 3580 </p> 3581 </td> 3582</tr> 3583<tr> 3584<td> 3585 <p> 3586 VI.A.2 3587 </p> 3588 </td> 3589<td> 3590 <p> 3591 <code class="computeroutput"><span class="identifier">thread_pool_executor</span></code> 3592 </p> 3593 </td> 3594<td> 3595 <p> 3596 Yes 3597 </p> 3598 </td> 3599<td> 3600 <p> 3601 renamed <code class="computeroutput"><span class="identifier">basic_thread_pool</span></code> 3602 </p> 3603 </td> 3604</tr> 3605<tr> 3606<td> 3607 <p> 3608 VI.A.3 3609 </p> 3610 </td> 3611<td> 3612 <p> 3613 <code class="computeroutput"><span class="identifier">system_executor</span></code> 3614 </p> 3615 </td> 3616<td> 3617 <p> 3618 No 3619 </p> 3620 </td> 3621<td> 3622 <p> 3623 - 3624 </p> 3625 </td> 3626</tr> 3627<tr> 3628<td> 3629 <p> 3630 VI.A.4 3631 </p> 3632 </td> 3633<td> 3634 <p> 3635 <code class="computeroutput"><span class="identifier">loop_executor</span></code> 3636 </p> 3637 </td> 3638<td> 3639 <p> 3640 Yes 3641 </p> 3642 </td> 3643<td> 3644 <p> 3645 - 3646 </p> 3647 </td> 3648</tr> 3649<tr> 3650<td> 3651 <p> 3652 VI.A.5 3653 </p> 3654 </td> 3655<td> 3656 <p> 3657 <code class="computeroutput"><span class="identifier">serial_executor</span></code> 3658 </p> 3659 </td> 3660<td> 3661 <p> 3662 yes 3663 </p> 3664 </td> 3665<td> 3666 <p> 3667 - 3668 </p> 3669 </td> 3670</tr> 3671<tr> 3672<td> 3673 <p> 3674 VI.B 3675 </p> 3676 </td> 3677<td> 3678 <p> 3679 <code class="computeroutput"><span class="identifier">executor_ref</span></code> 3680 </p> 3681 </td> 3682<td> 3683 <p> 3684 yes 3685 </p> 3686 </td> 3687<td> 3688 <p> 3689 - 3690 </p> 3691 </td> 3692</tr> 3693<tr> 3694<td> 3695 <p> 3696 VI.C 3697 </p> 3698 </td> 3699<td> 3700 <p> 3701 <code class="computeroutput"><span class="identifier">executor</span></code> 3702 </p> 3703 </td> 3704<td> 3705 <p> 3706 yes 3707 </p> 3708 </td> 3709<td> 3710 <p> 3711 renamed <code class="computeroutput"><span class="identifier">gen_executor_ref</span></code> 3712 </p> 3713 </td> 3714</tr> 3715<tr> 3716<td> 3717 <p> 3718 VI.D 3719 </p> 3720 </td> 3721<td> 3722 <p> 3723 Free Functions and Helper Objects 3724 </p> 3725 </td> 3726<td> 3727 <p> 3728 partial 3729 </p> 3730 </td> 3731<td> 3732 <p> 3733 - 3734 </p> 3735 </td> 3736</tr> 3737<tr> 3738<td> 3739 <p> 3740 VI.D 3741 </p> 3742 </td> 3743<td> 3744 <p> 3745 <code class="computeroutput"><span class="identifier">make_package</span></code> 3746 </p> 3747 </td> 3748<td> 3749 <p> 3750 No 3751 </p> 3752 </td> 3753<td> 3754 <p> 3755 - 3756 </p> 3757 </td> 3758</tr> 3759<tr> 3760<td> 3761 <p> 3762 VI.D 3763 </p> 3764 </td> 3765<td> 3766 <p> 3767 <code class="computeroutput"><span class="identifier">spawn_future</span></code> 3768 </p> 3769 </td> 3770<td> 3771 <p> 3772 No 3773 </p> 3774 </td> 3775<td> 3776 <p> 3777 <code class="computeroutput"><span class="identifier">async</span><span class="special">(</span><span class="identifier">Ex</span><span class="special">&,</span> 3778 <span class="special">...)</span></code> is similar but returns 3779 a blocking future. 3780 </p> 3781 </td> 3782</tr> 3783<tr> 3784<td> 3785 <p> 3786 VI.D 3787 </p> 3788 </td> 3789<td> 3790 <p> 3791 <code class="computeroutput"><span class="identifier">spawn</span></code> 3792 </p> 3793 </td> 3794<td> 3795 <p> 3796 No 3797 </p> 3798 </td> 3799<td> 3800 <p> 3801 - 3802 </p> 3803 </td> 3804</tr> 3805<tr> 3806<td> 3807 <p> 3808 VI.D 3809 </p> 3810 </td> 3811<td> 3812 <p> 3813 <code class="computeroutput"><span class="identifier">task_wrapper</span></code> 3814 </p> 3815 </td> 3816<td> 3817 <p> 3818 No 3819 </p> 3820 </td> 3821<td> 3822 <p> 3823 renamed <code class="computeroutput"><span class="identifier">resubmitter</span></code> 3824 </p> 3825 </td> 3826</tr> 3827<tr> 3828<td> 3829 <p> 3830 VI.D 3831 </p> 3832 </td> 3833<td> 3834 <p> 3835 <code class="computeroutput"><span class="identifier">set_executor</span></code> 3836 </p> 3837 </td> 3838<td> 3839 <p> 3840 No 3841 </p> 3842 </td> 3843<td> 3844 <p> 3845 renamed <code class="computeroutput"><span class="identifier">resubmit</span></code> 3846 </p> 3847 </td> 3848</tr> 3849<tr> 3850<td> 3851 <p> 3852 VI.D 3853 </p> 3854 </td> 3855<td> 3856 <p> 3857 <code class="computeroutput"><span class="identifier">function_wrapper</span></code> 3858 </p> 3859 </td> 3860<td> 3861 <p> 3862 Partial 3863 </p> 3864 </td> 3865<td> 3866 <p> 3867 renamed <code class="computeroutput"><span class="identifier">work</span></code> 3868 </p> 3869 </td> 3870</tr> 3871</tbody> 3872</table></div> 3873</div> 3874<br class="table-break"> 3875</div> 3876</div> 3877</div> 3878<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 3879<td align="left"></td> 3880<td align="right"><div class="copyright-footer">Copyright © 2007 -11 Anthony Williams<br>Copyright © 2011 -17 Vicente J. Botet Escriba<p> 3881 Distributed under the Boost Software License, Version 1.0. (See accompanying 3882 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 3883 </p> 3884</div></td> 3885</tr></table> 3886<hr> 3887<div class="spirit-nav"> 3888<a accesskey="p" href="acknowledgements.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../boost_typeerasure.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 3889</div> 3890</body> 3891</html> 3892