+<tr>
+<td>
+ <p>
+ 2.5
+ </p>
+ </td>
+<td>
+ <p>
+ Function template when_any
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ interface not complete #10427 and blocking #10551
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ 2.6
+ </p>
+ </td>
+<td>
+ <p>
+ Function template when_any_back
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ #XXXX
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ 2.7
+ </p>
+ </td>
+<td>
+ <p>
+ Function template make_ready_future
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<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
+ proposals</a>
+</h3></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.latch">C++ Latches and Barriers</a></span></dt>
+<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.queue">C++ Concurrent Queues</a></span></dt>
+<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.executors">Asynchronous Executors</a></span></dt>
+<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.stream_mutex">C++ Stream Mutexes
+ - C++ Stream Guards</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<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>
+</h4></div></div></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3600.html" target="_top">N3600
+ C++ Latches and Barriers</a>
+ </p></td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3817.html" target="_top">N3817
+ C++ Latches and Barriers</a>
+ </p></td></tr>
+</table></div>
+<div class="table">
+<a name="thread.compliance.cxx1y.latch.c___latches_and_barriers_conformance"></a><p class="title"><b>Table 30.6. C++ Latches and Barriers Conformance</b></p>
+<div class="table-contents"><table class="table" summary="C++ Latches and Barriers Conformance">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Status
+ </p>
+ </th>
+<th>
+ <p>
+ Comments
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ X.1
+ </p>
+ </td>
+<td>
+ <p>
+ Class latch
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ A new class latch has been added. The interface is a super set
+ of the one of the proposal, taking some of the functions of the
+ class barrier.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2
+ </p>
+ </td>
+<td>
+ <p>
+ Class barrier
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ Even if Boost.Thread has a class boost:barrier it doesn't provides
+ the same kind of services. There is an experimental completion_latch
+ that could be used instead.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<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>
+</h4></div></div></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3533.html" target="_top">N3533
+ C++ Concurrent Queues</a>
+ </p></td></tr>
+</table></div>
+<div class="table">
+<a name="thread.compliance.cxx1y.queue.c___concurrent_queues_conformance"></a><p class="title"><b>Table 30.7. C++ Concurrent Queues Conformance</b></p>
+<div class="table-contents"><table class="table" summary="C++ Concurrent Queues Conformance">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Status
+ </p>
+ </th>
+<th>
+ <p>
+ Comments
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ X.1
+ </p>
+ </td>
+<td>
+ <p>
+ Conceptual interface
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ The interface provided has some differences respect to this proposal.
+ All the functions having a queue_op_status are not provided.
+ No lock-free concrete classes
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.1
+ </p>
+ </td>
+<td>
+ <p>
+ Basic Operations
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.1.1
+ </p>
+ </td>
+<td>
+ <p>
+ push
+ </p>
+ </td>
+<td>
+ <p>
+ yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed push_back.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.1.2
+ </p>
+ </td>
+<td>
+ <p>
+ value_pop
+ </p>
+ </td>
+<td>
+ <p>
+ no
+ </p>
+ </td>
+<td>
+ <p>
+ renamed pull_front with two flavors.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.2
+ </p>
+ </td>
+<td>
+ <p>
+ Non-waiting operations
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.2.1
+ </p>
+ </td>
+<td>
+ <p>
+ try_push
+ </p>
+ </td>
+<td>
+ <p>
+ yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed try_push_back
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.2.2
+ </p>
+ </td>
+<td>
+ <p>
+ try_pop
+ </p>
+ </td>
+<td>
+ <p>
+ yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed try_pull_back
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.3
+ </p>
+ </td>
+<td>
+ <p>
+ Non-blocking operations
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.3.1
+ </p>
+ </td>
+<td>
+ <p>
+ nonblocking_push
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed nonblocking_push_back
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.3.2
+ </p>
+ </td>
+<td>
+ <p>
+ nonblocking_pop
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed nonblocking_pull_front
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.4
+ </p>
+ </td>
+<td>
+ <p>
+ Push-front operations
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5
+ </p>
+ </td>
+<td>
+ <p>
+ Closed queues
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5.1
+ </p>
+ </td>
+<td>
+ <p>
+ close
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5.2
+ </p>
+ </td>
+<td>
+ <p>
+ is_closed
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed closed
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5.3
+ </p>
+ </td>
+<td>
+ <p>
+ wait_push
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed wait_push_back
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5.4
+ </p>
+ </td>
+<td>
+ <p>
+ wait_pop
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed wait_pull_front
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5.5
+ </p>
+ </td>
+<td>
+ <p>
+ wait_push_front
+ </p>
+ </td>
+<td>
+ <p>
+ no
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5.6
+ </p>
+ </td>
+<td>
+ <p>
+ wait_pop_back
+ </p>
+ </td>
+<td>
+ <p>
+ no
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.5.6
+ </p>
+ </td>
+<td>
+ <p>
+ open
+ </p>
+ </td>
+<td>
+ <p>
+ no
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.6
+ </p>
+ </td>
+<td>
+ <p>
+ Empty and Full Queues
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.6.1
+ </p>
+ </td>
+<td>
+ <p>
+ is_empty
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.6.2
+ </p>
+ </td>
+<td>
+ <p>
+ is_full
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ Added capacity
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.7
+ </p>
+ </td>
+<td>
+ <p>
+ Queue Names
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ Not considered a must for the time been.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.8
+ </p>
+ </td>
+<td>
+ <p>
+ Element Type Requirements
+ </p>
+ </td>
+<td>
+ <p>
+ Yes?
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.9
+ </p>
+ </td>
+<td>
+ <p>
+ Exception Handling
+ </p>
+ </td>
+<td>
+ <p>
+ Yes?
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.10
+ </p>
+ </td>
+<td>
+ <p>
+ Queue Ordering
+ </p>
+ </td>
+<td>
+ <p>
+ Yes?
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.1.11
+ </p>
+ </td>
+<td>
+ <p>
+ Lock-Free Implementations
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ waiting to stabilize the lock-based interface. Will use Boost.LockFree
+ once it is Boost.Move aware.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2
+ </p>
+ </td>
+<td>
+ <p>
+ Concrete queues
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.1
+ </p>
+ </td>
+<td>
+ <p>
+ Locking Buffer Queue
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ classes sync_queue and a sync_bounded_queue.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.1
+ </p>
+ </td>
+<td>
+ <p>
+ Lock-Free Buffer Queue
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ waiting to stabilize the lock-based interface. Will use Boost.LockFree
+ once it is Boost.Move aware.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.3
+ </p>
+ </td>
+<td>
+ <p>
+ Additional Conceptual Tools
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.3.1
+ </p>
+ </td>
+<td>
+ <p>
+ Fronts and Backs
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.3.2
+ </p>
+ </td>
+<td>
+ <p>
+ Streaming Iterators
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.3.3
+ </p>
+ </td>
+<td>
+ <p>
+ Storage Iterators
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.3.4
+ </p>
+ </td>
+<td>
+ <p>
+ Binary Interfaces
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.3.4
+ </p>
+ </td>
+<td>
+ <p>
+ Managed Indirection
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="thread.compliance.cxx1y.executors"></a><a class="link" href="compliance.html#thread.compliance.cxx1y.executors" title="Asynchronous Executors">Asynchronous Executors</a>
+</h4></div></div></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3785.pdf" target="_top">N3785
+ Executors and Schedulers</a>
+ </p></td></tr>
+</table></div>
+<div class="table">
+<a name="thread.compliance.cxx1y.executors.asynchronous_executors"></a><p class="title"><b>Table 30.8. Asynchronous Executors</b></p>
+<div class="table-contents"><table class="table" summary="Asynchronous Executors">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Status
+ </p>
+ </th>
+<th>
+ <p>
+ Comments
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ V.1.1
+ </p>
+ </td>
+<td>
+ <p>
+ Class executor
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.1.1
+ </p>
+ </td>
+<td>
+ <p>
+ add
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ renamed with a function template submit
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.1.1
+ </p>
+ </td>
+<td>
+ <p>
+ num_of_pendin_closures
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.1.2
+ </p>
+ </td>
+<td>
+ <p>
+ Class sceduled_executor
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.1.2
+ </p>
+ </td>
+<td>
+ <p>
+ add_at
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ renamed with a function template submit_at
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.1.2
+ </p>
+ </td>
+<td>
+ <p>
+ add_after
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ renamed with a function template submit_after
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.2
+ </p>
+ </td>
+<td>
+ <p>
+ Concrete executor classes
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.2.1
+ </p>
+ </td>
+<td>
+ <p>
+ thread_pool
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ static version Basic_thread_pool, dynamic one execduler_adaptor<basic_thread_pool>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.2.2
+ </p>
+ </td>
+<td>
+ <p>
+ serial_executor
+ </p>
+ </td>
+<td>
+ <p>
+ yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.2.3
+ </p>
+ </td>
+<td>
+ <p>
+ loop_executor
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ static version loop_scheduler, dynamic one execduler_adaptor<loop_scheduler>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.2.4
+ </p>
+ </td>
+<td>
+ <p>
+ inline_executor
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ static version inline_executor, dynamic one execduler_adaptor<inline_executor>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ V.2.5
+ </p>
+ </td>
+<td>
+ <p>
+ thread_executor
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ static version thread_executor, dynamic one execduler_adaptor<thread_executor>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3784.pdf" target="_top">N3784-Improvements
+ to `std::future<T> and Related APIs</a>
+ </p></td></tr>
+</table></div>
+<div class="table">
+<a name="thread.compliance.cxx1y.executors._async__future_shared_future__then_and_executors"></a><p class="title"><b>Table 30.9. `async, future/shared_future::then`and Executors</b></p>
+<div class="table-contents"><table class="table" summary="`async, future/shared_future::then`and Executors">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Status
+ </p>
+ </th>
+<th>
+ <p>
+ Comments
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ 30.6.6
+ </p>
+ </td>
+<td>
+ <p>
+ <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>
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ 30.6.7
+ </p>
+ </td>
+<td>
+ <p>
+ <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>
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ 30.6.8
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">async</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="thread.compliance.cxx1y.stream_mutex"></a><a class="link" href="compliance.html#thread.compliance.cxx1y.stream_mutex" title="C++ Stream Mutexes - C++ Stream Guards">C++ Stream Mutexes
+ - C++ Stream Guards</a>
+</h4></div></div></div>
+<p>
+ While Boost.Thread implementation of stream mutexes differ in the approach,
+ it is worth comparing with the current trend on the standard.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ These functions are based on <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3535.html" target="_top"><span class="bold"><strong>N3535 - C++ Stream Mutexes</strong></span></a> by Lawrence
+ Crowl.
+ </p></td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ This proposal has been replaced already by <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3678.html" target="_top">N3678
+ - C++ Stream Guards</a>, which has been replaced by <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3678.html" target="_top">N3665
+ - Uninterleaved String Output Streaming</a> and <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3678.html" target="_top">N3750
+ - C++ Ostream Buffers</a>
+ </p></td></tr>
+</table></div>
+<div class="table">
+<a name="thread.compliance.cxx1y.stream_mutex.c___stream_mutexes_conformance"></a><p class="title"><b>Table 30.10. C++ Stream Mutexes Conformance</b></p>
+<div class="table-contents"><table class="table" summary="C++ Stream Mutexes Conformance">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Status
+ </p>
+ </th>
+<th>
+ <p>
+ Comments
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ X.1
+ </p>
+ </td>
+<td>
+ <p>
+ Class template stream_mutex
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ Renamed externally_locked_stream<>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.1
+ </p>
+ </td>
+<td>
+ <p>
+ constructor
+ </p>
+ </td>
+<td>
+ <p>
+ Partial
+ </p>
+ </td>
+<td>
+ <p>
+ externally_locked_stream needs a mutex in addition as argument.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.2
+ </p>
+ </td>
+<td>
+ <p>
+ lock
+ </p>
+ </td>
+<td>
+ <p>
+ yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.3
+ </p>
+ </td>
+<td>
+ <p>
+ unlock
+ </p>
+ </td>
+<td>
+ <p>
+ yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.4
+ </p>
+ </td>
+<td>
+ <p>
+ try_lock
+ </p>
+ </td>
+<td>
+ <p>
+ yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.5
+ </p>
+ </td>
+<td>
+ <p>
+ hold
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.6
+ </p>
+ </td>
+<td>
+ <p>
+ bypass
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2
+ </p>
+ </td>
+<td>
+ <p>
+ Class template stream_guard
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.1
+ </p>
+ </td>
+<td>
+ <p>
+ stream_guard
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.2
+ </p>
+ </td>
+<td>
+ <p>
+ ~stream_guard
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.2.3
+ </p>
+ </td>
+<td>
+ <p>
+ bypass
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.3
+ </p>
+ </td>
+<td>
+ <p>
+ Stream Operators
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ X.4
+ </p>
+ </td>
+<td>
+ <p>
+ Predefined Objects
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ -
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>