blob: 40f6ec6b7a7bd2d2bba62a0a6f19d8f3678369c8 [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Conformance and Extension</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../thread.html" title="Chapter&#160;30.&#160;Thread 4.5.0">
<link rel="prev" href="acknowledgements.html" title="Acknowledgments">
<link rel="next" href="../boost_tr1.html" title="Chapter&#160;31.&#160;Boost.TR1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<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>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="thread.compliance"></a><a class="link" href="compliance.html" title="Conformance and Extension">Conformance and Extension</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="compliance.html#thread.compliance.cpp11">C++11 standard Thread library</a></span></dt>
<dt><span class="section"><a href="compliance.html#thread.compliance.cxx14">C++14 standard Thread library
- accepted changes</a></span></dt>
<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y">C++14 TS Extensions for Concurrency
V1 </a></span></dt>
<dt><span class="section"><a href="compliance.html#thread.compliance.cxx1y0">C++1z TS Concurrency - On going
proposals</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<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>
</h3></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/2012/n3376.html" target="_top">C++11
- Standard for Programming Language C++</a>
</p></td></tr>
</table></div>
<p>
]
</p>
<div class="table">
<a name="thread.compliance.cpp11.c__11_standard_conformance"></a><p class="title"><b>Table&#160;30.2.&#160;C++11 standard Conformance</b></p>
<div class="table-contents"><table class="table" summary="C++11 standard Conformance">
<colgroup>
<col>
<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>
<th>
<p>
Ticket
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
30
</p>
</td>
<td>
<p>
Thread support library
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.1
</p>
</td>
<td>
<p>
General
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2
</p>
</td>
<td>
<p>
Requirements
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.1
</p>
</td>
<td>
<p>
Template parameter names
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.2
</p>
</td>
<td>
<p>
Exceptions
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.3
</p>
</td>
<td>
<p>
Native handles
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.4
</p>
</td>
<td>
<p>
Timing specifications
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.5
</p>
</td>
<td>
<p>
Requirements for Lockable types
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.5.1
</p>
</td>
<td>
<p>
In general
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.5.2
</p>
</td>
<td>
<p>
BasicLockable requirements
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.5.3
</p>
</td>
<td>
<p>
Lockable requirements
</p>
</td>
<td>
<p>
yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.5.4
</p>
</td>
<td>
<p>
TimedLockable requirements
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.2.6
</p>
</td>
<td>
<p>
decay_copy
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3
</p>
</td>
<td>
<p>
Threads
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1
</p>
</td>
<td>
<p>
Class thread
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1.1
</p>
</td>
<td>
<p>
Class thread::id
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1.2
</p>
</td>
<td>
<p>
thread constructors
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1.3
</p>
</td>
<td>
<p>
thread destructor
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1.4
</p>
</td>
<td>
<p>
thread assignment
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1.5
</p>
</td>
<td>
<p>
thread members
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1.6
</p>
</td>
<td>
<p>
thread static members
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.1.7
</p>
</td>
<td>
<p>
thread specialized algorithms
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.2
</p>
</td>
<td>
<p>
Namespace this_thread
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4
</p>
</td>
<td>
<p>
Mutual exclusion
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1
</p>
</td>
<td>
<p>
Mutex requirements
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.1
</p>
</td>
<td>
<p>
In general
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.2
</p>
</td>
<td>
<p>
Mutex types
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.2.1
</p>
</td>
<td>
<p>
Class mutex
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.2.2
</p>
</td>
<td>
<p>
Class recursive_mutex
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.3
</p>
</td>
<td>
<p>
Timed mutex types
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.3.1
</p>
</td>
<td>
<p>
Class timed_mutex
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.3.1
</p>
</td>
<td>
<p>
Class recursive_timed_mutex
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2
</p>
</td>
<td>
<p>
Locks
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2.1
</p>
</td>
<td>
<p>
Class template lock_guard
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2.2
</p>
</td>
<td>
<p>
Class template unique_lock
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2.2.1
</p>
</td>
<td>
<p>
unique_lock constructors, destructor, and assignment
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2.2.2
</p>
</td>
<td>
<p>
unique_lock locking
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2.2.3
</p>
</td>
<td>
<p>
unique_lock modifiers
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2.2.4
</p>
</td>
<td>
<p>
unique_lock observers
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.3
</p>
</td>
<td>
<p>
Generic locking algorithms
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
variadic
</p>
</td>
<td>
<p>
#6227
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.4
</p>
</td>
<td>
<p>
Call once
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.4.1
</p>
</td>
<td>
<p>
Struct once_flag
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.4.2
</p>
</td>
<td>
<p>
Function call_once
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.5
</p>
</td>
<td>
<p>
Condition variables
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.5.1
</p>
</td>
<td>
<p>
Class condition_variable
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.5.2
</p>
</td>
<td>
<p>
Class condition_variable_any
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6
</p>
</td>
<td>
<p>
Futures
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.1
</p>
</td>
<td>
<p>
Overview
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.2
</p>
</td>
<td>
<p>
Error handling
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.3
</p>
</td>
<td>
<p>
Class future_error
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.4
</p>
</td>
<td>
<p>
Shared state
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.5
</p>
</td>
<td>
<p>
Class template promise
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.6
</p>
</td>
<td>
<p>
Class template future
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.7
</p>
</td>
<td>
<p>
Class template shared_future
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.8
</p>
</td>
<td>
<p>
Function template async
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.6.9
</p>
</td>
<td>
<p>
Class template packaged_task
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="thread.compliance.cpp11.extension"></a><p class="title"><b>Table&#160;30.3.&#160;Extension</b></p>
<div class="table-contents"><table class="table" summary="Extension">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Section
</p>
</th>
<th>
<p>
Description
</p>
</th>
<th>
<p>
Comments
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
30.3.1.5.x
</p>
</td>
<td>
<p>
interrupt
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.2.x
</p>
</td>
<td>
<p>
Interruption
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.3.2.y
</p>
</td>
<td>
<p>
at_thread_exit
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.3.x
</p>
</td>
<td>
<p>
Generic locking algorithms begin/end
</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.cxx14"></a><a class="link" href="compliance.html#thread.compliance.cxx14" title="C++14 standard Thread library - accepted changes">C++14 standard Thread library
- accepted changes</a>
</h3></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/n3797.html" target="_top">Working
Draft, Standard for Programming Language C++</a>
</p></td></tr>
</table></div>
<div class="table">
<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&#160;30.4.&#160;[@http://isocpp.org/files/papers/N3659.html N3659 Shared locking in
C++ revision 2] Conformance</b></p>
<div class="table-contents"><table class="table" summary="[@http://isocpp.org/files/papers/N3659.html N3659 Shared locking in
C++ revision 2] 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>
30.4.1.4
</p>
</td>
<td>
<p>
Shared Lockables Types
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.1.4.1
</p>
</td>
<td>
<p>
shared_mutex class
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
30.4.2.3
</p>
</td>
<td>
<p>
Class template shared_lock
</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.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
V1 </a>
</h3></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/2014/n4107.html" target="_top">N4107-Extensions
for Concurrency</a>
</p></td></tr>
</table></div>
<div class="table">
<a name="thread.compliance.cxx1y.improvements_to_std__future_t__and_related_apis_"></a><p class="title"><b>Table&#160;30.5.&#160;Improvements to std::future&lt;T&gt; and related APIs]</b></p>
<div class="table-contents"><table class="table" summary="Improvements to std::future&lt;T&gt; and related APIs]">
<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>
2.1
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
2.2
</p>
</td>
<td>
<p>
Class template future
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
2.2
</p>
</td>
<td>
<p>
then
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
without implicit unwrapping #10550 and blocking #10551
</p>
</td>
</tr>
<tr>
<td>
<p>
2.2
</p>
</td>
<td>
<p>
is_ready
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
2.3
</p>
</td>
<td>
<p>
Class template shared_future
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
2.3
</p>
</td>
<td>
<p>
then
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
Without implicit unwrapping #10550 and blocking #10551
</p>
</td>
</tr>
<tr>
<td>
<p>
2.3
</p>
</td>
<td>
<p>
is_ready
</p>
</td>
<td>
<p>
Yes
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
2.4
</p>
</td>
<td>
<p>
Function template when_all
</p>
</td>
<td>
<p>
Partial
</p>
</td>
<td>
<p>
interface not complete #10426 and blocking #10551
</p>
</td>
</tr>
<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&#160;30.6.&#160;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&#160;30.7.&#160;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&#160;30.8.&#160;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&lt;basic_thread_pool&gt;
</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&lt;loop_scheduler&gt;
</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&lt;inline_executor&gt;
</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&lt;thread_executor&gt;
</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&lt;T&gt; 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&#160;30.9.&#160;`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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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&#160;30.10.&#160;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&lt;&gt;
</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>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2007 -11 Anthony Williams<br>Copyright &#169; 2011 -15 Vicente J. Botet Escriba<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
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>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<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>
</div>
</body>
</html>