3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Conformance and Extension</title>
5 <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7 <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
8 <link rel="up" href="../thread.html" title="Chapter 30. Thread 4.4.0">
9 <link rel="prev" href="acknowledgements.html" title="Acknowledgments">
10 <link rel="next" href="../boost_tr1.html" title="Chapter 31. Boost.TR1">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
15 <td align="center"><a href="../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <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_tr1.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
27 <a name="thread.compliance"></a><a class="link" href="compliance.html" title="Conformance and Extension">Conformance and Extension</a>
28 </h2></div></div></div>
29 <div class="toc"><dl class="toc">
30 <dt><span class="section"><a href="compliance.html#thread.compliance.cpp11">C++11 standard Thread library</a></span></dt>
31 <dt><span class="section"><a href="compliance.html#thread.compliance.cxx14">C++14 standard Thread library
32 - accepted changes</a></span></dt>
33 <dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y">C++14 TS Extensions for Concurrency
35 <dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y0">C++1z TS Concurrency - On going
36 proposals</a></span></dt>
39 <div class="titlepage"><div><div><h3 class="title">
40 <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>
41 </h3></div></div></div>
42 <div class="note"><table border="0" summary="Note">
44 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
45 <th align="left">Note</th>
47 <tr><td align="left" valign="top"><p>
48 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.html" target="_top">C++11
49 - Standard for Programming Language C++</a>
56 <a name="thread.compliance.cpp11.c__11_standard_conformance"></a><p class="title"><b>Table 30.2. C++11 standard Conformance</b></p>
57 <div class="table-contents"><table class="table" summary="C++11 standard Conformance">
101 Thread support library
182 Template parameter names
263 Timing specifications
290 Requirements for Lockable types
344 BasicLockable requirements
371 Lockable requirements
398 TimedLockable requirements
641 thread static members
668 thread specialized algorithms
695 Namespace this_thread
857 Class recursive_mutex
938 Class recursive_timed_mutex
992 Class template lock_guard
1019 Class template unique_lock
1046 unique_lock constructors, destructor, and assignment
1100 unique_lock modifiers
1127 unique_lock observers
1154 Generic locking algorithms
1289 Class condition_variable
1316 Class condition_variable_any
1478 Class template promise
1505 Class template future
1532 Class template shared_future
1559 Function template async
1586 Class template packaged_task
1608 <br class="table-break"><div class="table">
1609 <a name="thread.compliance.cpp11.extension"></a><p class="title"><b>Table 30.3. Extension</b></p>
1610 <div class="table-contents"><table class="table" summary="Extension">
1693 Generic locking algorithms begin/end
1705 <br class="table-break">
1707 <div class="section">
1708 <div class="titlepage"><div><div><h3 class="title">
1709 <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
1710 - accepted changes</a>
1711 </h3></div></div></div>
1712 <div class="note"><table border="0" summary="Note">
1714 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
1715 <th align="left">Note</th>
1717 <tr><td align="left" valign="top"><p>
1718 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3797.html" target="_top">Working
1719 Draft, Standard for Programming Language C++</a>
1723 <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 30.4. [@http://isocpp.org/files/papers/N3659.html N3659 Shared locking in
1724 C++ revision 2] Conformance</b></p>
1725 <div class="table-contents"><table class="table" summary="[@http://isocpp.org/files/papers/N3659.html N3659 Shared locking in
1726 C++ revision 2] Conformance">
1764 Shared Lockables Types
1808 Class template shared_lock
1825 <br class="table-break">
1827 <div class="section">
1828 <div class="titlepage"><div><div><h3 class="title">
1829 <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 </h3></div></div></div>
1832 <div class="note"><table border="0" summary="Note">
1834 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
1835 <th align="left">Note</th>
1837 <tr><td align="left" valign="top"><p>
1838 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4107.html" target="_top">N4107-Extensions
1843 <a name="thread.compliance.cxx1y.improvements_to_std__future_t__and_related_apis_"></a><p class="title"><b>Table 30.5. Improvements to std::future<T> and related APIs]</b></p>
1844 <div class="table-contents"><table class="table" summary="Improvements to std::future<T> and related APIs]">
1904 Class template future
1936 without implicit unwrapping #10550 and blocking #10551
1970 Class template shared_future
2002 Without implicit unwrapping #10550 and blocking #10551
2036 Function template when_all
2046 interface not complete #10426 and blocking #10551
2058 Function template when_any
2068 interface not complete #10427 and blocking #10551
2080 Function template when_any_back
2102 Function template make_ready_future
2119 <br class="table-break">
2121 <div class="section">
2122 <div class="titlepage"><div><div><h3 class="title">
2123 <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 </h3></div></div></div>
2126 <div class="toc"><dl class="toc">
2127 <dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.latch">C++ Latches and Barriers</a></span></dt>
2128 <dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.queue">C++ Concurrent Queues</a></span></dt>
2129 <dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.executors">Asynchronous Executors</a></span></dt>
2130 <dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y.stream_mutex">C++ Stream Mutexes
2131 - C++ Stream Guards</a></span></dt>
2133 <div class="section">
2134 <div class="titlepage"><div><div><h4 class="title">
2135 <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>
2136 </h4></div></div></div>
2137 <div class="note"><table border="0" summary="Note">
2139 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
2140 <th align="left">Note</th>
2142 <tr><td align="left" valign="top"><p>
2143 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3600.html" target="_top">N3600
2144 C++ Latches and Barriers</a>
2147 <div class="note"><table border="0" summary="Note">
2149 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
2150 <th align="left">Note</th>
2152 <tr><td align="left" valign="top"><p>
2153 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3817.html" target="_top">N3817
2154 C++ Latches and Barriers</a>
2158 <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>
2159 <div class="table-contents"><table class="table" summary="C++ Latches and Barriers Conformance">
2207 A new class latch has been added. The interface is a super set
2208 of the one of the proposal, taking some of the functions of the
2231 Even if Boost.Thread has a class boost:barrier it doesn't provides
2232 the same kind of services. There is an experimental completion_latch
2233 that could be used instead.
2240 <br class="table-break">
2242 <div class="section">
2243 <div class="titlepage"><div><div><h4 class="title">
2244 <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>
2245 </h4></div></div></div>
2246 <div class="note"><table border="0" summary="Note">
2248 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
2249 <th align="left">Note</th>
2251 <tr><td align="left" valign="top"><p>
2252 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3533.html" target="_top">N3533
2253 C++ Concurrent Queues</a>
2257 <a name="thread.compliance.cxx1y.queue.c___concurrent_queues_conformance"></a><p class="title"><b>Table 30.7. C++ Concurrent Queues Conformance</b></p>
2258 <div class="table-contents"><table class="table" summary="C++ Concurrent Queues Conformance">
2296 Conceptual interface
2306 The interface provided has some differences respect to this proposal.
2307 All the functions having a queue_op_status are not provided.
2308 No lock-free concrete classes
2374 renamed pull_front with two flavors.
2386 Non-waiting operations
2418 renamed try_push_back
2440 renamed try_pull_back
2452 Non-blocking operations
2484 renamed nonblocking_push_back
2506 renamed nonblocking_pull_front
2518 Push-front operations
2616 renamed wait_push_back
2638 renamed wait_pull_front
2716 Empty and Full Queues
2792 Not considered a must for the time been.
2804 Element Type Requirements
2870 Lock-Free Implementations
2880 waiting to stabilize the lock-based interface. Will use Boost.LockFree
2881 once it is Boost.Move aware.
2915 Locking Buffer Queue
2925 classes sync_queue and a sync_bounded_queue.
2937 Lock-Free Buffer Queue
2947 waiting to stabilize the lock-based interface. Will use Boost.LockFree
2948 once it is Boost.Move aware.
2960 Additional Conceptual Tools
3087 <br class="table-break">
3089 <div class="section">
3090 <div class="titlepage"><div><div><h4 class="title">
3091 <a name="thread.compliance.cxx1y.executors"></a><a class="link" href="compliance.html#thread.compliance.cxx1y.executors" title="Asynchronous Executors">Asynchronous Executors</a>
3092 </h4></div></div></div>
3093 <div class="note"><table border="0" summary="Note">
3095 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
3096 <th align="left">Note</th>
3098 <tr><td align="left" valign="top"><p>
3099 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3785.pdf" target="_top">N3785
3100 Executors and Schedulers</a>
3104 <a name="thread.compliance.cxx1y.executors.asynchronous_executors"></a><p class="title"><b>Table 30.8. Asynchronous Executors</b></p>
3105 <div class="table-contents"><table class="table" summary="Asynchronous Executors">
3175 renamed with a function template submit
3187 num_of_pendin_closures
3206 Class sceduled_executor
3238 renamed with a function template submit_at
3260 renamed with a function template submit_after
3272 Concrete executor classes
3304 static version Basic_thread_pool, dynamic one execduler_adaptor<basic_thread_pool>
3348 static version loop_scheduler, dynamic one execduler_adaptor<loop_scheduler>
3370 static version inline_executor, dynamic one execduler_adaptor<inline_executor>
3392 static version thread_executor, dynamic one execduler_adaptor<thread_executor>
3399 <br class="table-break"><div class="note"><table border="0" summary="Note">
3401 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
3402 <th align="left">Note</th>
3404 <tr><td align="left" valign="top"><p>
3405 <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3784.pdf" target="_top">N3784-Improvements
3406 to `std::future<T> and Related APIs</a>
3410 <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>
3411 <div class="table-contents"><table class="table" summary="`async, future/shared_future::then`and Executors">
3449 <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>
3468 <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>
3487 <code class="computeroutput"><span class="identifier">async</span></code>
3504 <br class="table-break">
3506 <div class="section">
3507 <div class="titlepage"><div><div><h4 class="title">
3508 <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
3509 - C++ Stream Guards</a>
3510 </h4></div></div></div>
3512 While Boost.Thread implementation of stream mutexes differ in the approach,
3513 it is worth comparing with the current trend on the standard.
3515 <div class="note"><table border="0" summary="Note">
3517 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
3518 <th align="left">Note</th>
3520 <tr><td align="left" valign="top"><p>
3521 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
3525 <div class="note"><table border="0" summary="Note">
3527 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
3528 <th align="left">Note</th>
3530 <tr><td align="left" valign="top"><p>
3531 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
3532 - 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
3533 - Uninterleaved String Output Streaming</a> and <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3678.html" target="_top">N3750
3534 - C++ Ostream Buffers</a>
3538 <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>
3539 <div class="table-contents"><table class="table" summary="C++ Stream Mutexes Conformance">
3577 Class template stream_mutex
3587 Renamed externally_locked_stream<>
3609 externally_locked_stream needs a mutex in addition as argument.
3731 Class template stream_guard
3858 <br class="table-break">
3862 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
3863 <td align="left"></td>
3864 <td align="right"><div class="copyright-footer">Copyright © 2007 -11 Anthony Williams<br>Copyright © 2011 -14 Vicente J. Botet Escriba<p>
3865 Distributed under the Boost Software License, Version 1.0. (See accompanying
3866 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>)
3871 <div class="spirit-nav">
3872 <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_tr1.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>