1 <?xml version=
"1.0" encoding=
"UTF-8" standalone=
"no"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns=
"http://www.w3.org/1999/xhtml"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><title>Chapter
1. Status
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets Vsnapshot" /><meta name=
"keywords" content=
"ISO C++, library" /><meta name=
"keywords" content=
"ISO C++, runtime, library" /><link rel=
"home" href=
"../index.html" title=
"The GNU C++ Library" /><link rel=
"up" href=
"intro.html" title=
"Part I. Introduction" /><link rel=
"prev" href=
"intro.html" title=
"Part I. Introduction" /><link rel=
"next" href=
"license.html" title=
"License" /></head><body><div class=
"navheader"><table width=
"100%" summary=
"Navigation header"><tr><th colspan=
"3" align=
"center">Chapter
1. Status
</th></tr><tr><td width=
"20%" align=
"left"><a accesskey=
"p" href=
"intro.html">Prev
</a> </td><th width=
"60%" align=
"center">Part I.
5 </th><td width=
"20%" align=
"right"> <a accesskey=
"n" href=
"license.html">Next
</a></td></tr></table><hr /></div><div class=
"chapter"><div class=
"titlepage"><div><div><h2 class=
"title"><a id=
"manual.intro.status"></a>Chapter
1. Status
</h2></div></div></div><div class=
"toc"><p><strong>Table of Contents
</strong></p><dl class=
"toc"><dt><span class=
"section"><a href=
"status.html#manual.intro.status.iso">Implementation Status
</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"status.html#status.iso.1998">C++
1998/
2003</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"status.html#iso.1998.status">Implementation Status
</a></span></dt><dt><span class=
"section"><a href=
"status.html#iso.1998.specific">Implementation Specific Behavior
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"status.html#status.iso.2011">C++
2011</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"status.html#iso.2011.specific">Implementation Specific Behavior
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"status.html#status.iso.2014">C++
2014</a></span></dt><dt><span class=
"section"><a href=
"status.html#status.iso.2017">C++
2017</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"status.html#iso.2017.specific">Implementation Specific Behavior
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"status.html#status.iso.2020">C++
2020</a></span></dt><dt><span class=
"section"><a href=
"status.html#status.iso.tr1">C++ TR1
</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"status.html#iso.tr1.specific">Implementation Specific Behavior
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"status.html#status.iso.tr24733">C++ TR
24733</a></span></dt><dt><span class=
"section"><a href=
"status.html#status.iso.specfun">C++ IS
29124</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"status.html#iso.specfun.specific">Implementation Specific Behavior
</a></span></dt></dl></dd></dl></dd><dt><span class=
"section"><a href=
"license.html">License
</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"license.html#manual.intro.status.license.gpl">The Code: GPL
</a></span></dt><dt><span class=
"section"><a href=
"license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"bugs.html">Bugs
</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"bugs.html#manual.intro.status.bugs.impl">Implementation Bugs
</a></span></dt><dt><span class=
"section"><a href=
"bugs.html#manual.intro.status.bugs.iso">Standard Bugs
</a></span></dt></dl></dd></dl></div><div class=
"section"><div class=
"titlepage"><div><div><h2 class=
"title" style=
"clear: both"><a id=
"manual.intro.status.iso"></a>Implementation Status
</h2></div></div></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.1998"></a>C++
1998/
2003</h3></div></div></div><div class=
"section"><div class=
"titlepage"><div><div><h4 class=
"title"><a id=
"iso.1998.status"></a>Implementation Status
</h4></div></div></div><p>
6 This status table is based on the table of contents of ISO/IEC
14882:
2003.
8 This section describes the C++ support in mainline GCC, not in any
10 </p><div class=
"table"><a id=
"table.cxx98_status"></a><p class=
"title"><strong>Table
1.1. C++
1998/
2003 Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ 1998/2003 Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Section
</th><th align=
"left">Description
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr><td align=
"left">
11 <span class=
"emphasis"><em>18</em></span>
12 </td><td colspan=
"3" align=
"left">
13 <span class=
"emphasis"><em>Language support
</em></span>
14 </td></tr><tr><td align=
"left">18.1</td><td align=
"left">Types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.2</td><td align=
"left">Implementation properties
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.2.1</td><td align=
"left">Numeric Limits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.2.1.1</td><td align=
"left">Class template
<code class=
"code">numeric_limits
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.2.1.2</td><td align=
"left"><code class=
"code">numeric_limits
</code> members
</td><td align=
"left">Y
</td><td class=
"auto-generated"> </td></tr><tr><td align=
"left">18.2.1.3</td><td align=
"left"><code class=
"code">float_round_style
</code></td><td align=
"left">Y
</td><td class=
"auto-generated"> </td></tr><tr><td align=
"left">18.2.1.4</td><td align=
"left"><code class=
"code">float_denorm_style
</code></td><td align=
"left">Y
</td><td class=
"auto-generated"> </td></tr><tr><td align=
"left">18.2.1.5</td><td align=
"left"><code class=
"code">numeric_limits
</code> specializations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.2.2</td><td align=
"left">C Library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3</td><td align=
"left">Start and termination
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.4</td><td align=
"left">Dynamic memory management
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.5</td><td align=
"left">Type identification
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.5.1</td><td align=
"left">Class type_info
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.5.2</td><td align=
"left">Class bad_cast
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.5.3</td><td align=
"left">Class bad_typeid
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.6</td><td align=
"left">Exception handling
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.6.1</td><td align=
"left">Class exception
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.6.2</td><td align=
"left">Violation exception-specifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.6.3</td><td align=
"left">Abnormal termination
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.6.4</td><td align=
"left"><code class=
"code">uncaught_exception
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.7</td><td align=
"left">Other runtime support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
15 <span class=
"emphasis"><em>19</em></span>
16 </td><td colspan=
"3" align=
"left">
17 <span class=
"emphasis"><em>Diagnostics
</em></span>
18 </td></tr><tr><td align=
"left">19.1</td><td align=
"left">Exception classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.2</td><td align=
"left">Assertions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.3</td><td align=
"left">Error numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
19 <span class=
"emphasis"><em>20</em></span>
20 </td><td colspan=
"3" align=
"left">
21 <span class=
"emphasis"><em>General utilities
</em></span>
22 </td></tr><tr><td align=
"left">20.1</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2</td><td align=
"left">Utility components
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.1</td><td align=
"left">Operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.2</td><td align=
"left"><code class=
"code">pair
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3</td><td align=
"left">Function objects
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.1</td><td align=
"left">Base
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.2</td><td align=
"left">Arithmetic operation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.3</td><td align=
"left">Comparisons
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.4</td><td align=
"left">Logical operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.5</td><td align=
"left">Negators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.6</td><td align=
"left">Binders
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.7</td><td align=
"left">Adaptors for pointers to functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.8</td><td align=
"left">Adaptors for pointers to members
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4</td><td align=
"left">Memory
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.1</td><td align=
"left">The default allocator
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2</td><td align=
"left">Raw storage iterator
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.3</td><td align=
"left">Temporary buffers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.4</td><td align=
"left">Specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.4.1</td><td align=
"left"><code class=
"code">uninitialized_copy
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.4.2</td><td align=
"left"><code class=
"code">uninitialized_fill
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.4.3</td><td align=
"left"><code class=
"code">uninitialized_fill_n
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.5</td><td align=
"left">Class template
<code class=
"code">auto_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.6</td><td align=
"left">C library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
23 <span class=
"emphasis"><em>21</em></span>
24 </td><td colspan=
"3" align=
"left">
25 <span class=
"emphasis"><em>Strings
</em></span>
26 </td></tr><tr><td align=
"left">21.1</td><td align=
"left">Character traits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.1.1</td><td align=
"left">Character traits requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.1.2</td><td align=
"left">traits typedef
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.1.3</td><td align=
"left"><code class=
"code">char_traits
</code> specializations
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.1.3.1</td><td align=
"left">struct
<code class=
"code">char_traits
<char
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.1.3.2</td><td align=
"left">struct
<code class=
"code">char_traits
<wchar_t
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2</td><td align=
"left">String classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.3</td><td align=
"left">Class template
<code class=
"code">basic_string
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.4</td><td align=
"left">Null-terminated sequence utilities
</td><td align=
"left">Y
</td><td align=
"left">C library dependency
</td></tr><tr><td align=
"left">
27 <span class=
"emphasis"><em>22</em></span>
28 </td><td colspan=
"3" align=
"left">
29 <span class=
"emphasis"><em>Localization
</em></span>
30 </td></tr><tr><td align=
"left">22.1</td><td align=
"left">Locales
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.1.1</td><td align=
"left">Class
<code class=
"code">locale
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.1.2</td><td align=
"left"><code class=
"code">locale
</code> globals
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.1.3</td><td align=
"left">Convenience interfaces
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.1.3.1</td><td align=
"left">Character classification
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.1.3.2</td><td align=
"left">Character conversions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2</td><td align=
"left">Standard locale categories
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.1</td><td align=
"left"><code class=
"code">ctype
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.2</td><td align=
"left">Numeric
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.2.1</td><td align=
"left"><code class=
"code">num_get
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.2.2</td><td align=
"left"><code class=
"code">num_put
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.3</td><td align=
"left"><code class=
"code">num_punct
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.4</td><td align=
"left"><code class=
"code">collate
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.5</td><td align=
"left">Time
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.5.1</td><td align=
"left"><code class=
"code">time_get
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.5.2</td><td align=
"left"><code class=
"code">time_get_byname
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.5.3</td><td align=
"left"><code class=
"code">time_put
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.5.3</td><td align=
"left"><code class=
"code">time_put_byname
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.6</td><td align=
"left">Monetary
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.6.1</td><td align=
"left"><code class=
"code">money_get
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.6.2</td><td align=
"left"><code class=
"code">money_put
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.6.3</td><td align=
"left"><code class=
"code">money_punct
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.6.4</td><td align=
"left"><code class=
"code">money_punct_byname
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.7</td><td align=
"left"><code class=
"code">messages
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2.8</td><td align=
"left">Program-defined facets
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3</td><td align=
"left">C Library Locales
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
31 <span class=
"emphasis"><em>23</em></span>
32 </td><td colspan=
"3" align=
"left">
33 <span class=
"emphasis"><em>Containers
</em></span>
34 </td></tr><tr><td align=
"left">23.1</td><td align=
"left">Container requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2</td><td align=
"left">Sequence containers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.1</td><td align=
"left">Class template
<code class=
"code">deque
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.2</td><td align=
"left">Class template
<code class=
"code">list
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.3</td><td align=
"left">Adaptors
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.3.1</td><td align=
"left">Class template
<code class=
"code">queue
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.3.2</td><td align=
"left">Class template
<code class=
"code">priority_queue
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.3.3</td><td align=
"left">Class template
<code class=
"code">stack
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.4</td><td align=
"left">Class template
<code class=
"code">vector
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.5</td><td align=
"left">Class
<code class=
"code">vector
<bool
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3</td><td align=
"left">Associative containers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.1</td><td align=
"left">Class template
<code class=
"code">map
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.2</td><td align=
"left">Class template
<code class=
"code">multimap
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.3</td><td align=
"left">Class template
<code class=
"code">set
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.4</td><td align=
"left">Class template
<code class=
"code">multiset
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
35 <span class=
"emphasis"><em>24</em></span>
36 </td><td colspan=
"3" align=
"left">
37 <span class=
"emphasis"><em>Iterators
</em></span>
38 </td></tr><tr><td align=
"left">24.1</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.2</td><td align=
"left">Header
<code class=
"code"><iterator
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.3</td><td align=
"left">Iterator primitives
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4</td><td align=
"left">Predefined iterators and Iterator adaptors
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.1</td><td align=
"left">Reverse iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.2</td><td align=
"left">Insert iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5</td><td align=
"left">Stream iterators
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">24.5.1</td><td align=
"left">Class template
<code class=
"code">istream_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5.2</td><td align=
"left">Class template
<code class=
"code">ostream_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5.3</td><td align=
"left">Class template
<code class=
"code">istreambuf_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5.4</td><td align=
"left">Class template
<code class=
"code">ostreambuf_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
39 <span class=
"emphasis"><em>25</em></span>
40 </td><td colspan=
"3" align=
"left">
41 <span class=
"emphasis"><em>Algorithms
</em></span>
42 </td></tr><tr><td align=
"left">25.1</td><td align=
"left">Non-modifying sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.2</td><td align=
"left">Mutating sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.3</td><td align=
"left">Sorting and related operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.4</td><td align=
"left">C library algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
43 <span class=
"emphasis"><em>26</em></span>
44 </td><td colspan=
"3" align=
"left">
45 <span class=
"emphasis"><em>Numerics
</em></span>
46 </td></tr><tr><td align=
"left">26.1</td><td align=
"left">Numeric type requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.2</td><td align=
"left">Complex numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3</td><td align=
"left">Numeric arrays
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.1</td><td align=
"left">Header
<code class=
"code"><valarray
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.2</td><td align=
"left">Class template
<code class=
"code">valarray
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.3</td><td align=
"left"><code class=
"code">valarray
</code> non-member operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.4</td><td align=
"left">Class
<code class=
"code">slice
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.5</td><td align=
"left">Class template
<code class=
"code">slice_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.6</td><td align=
"left">Class
<code class=
"code">gslice
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.7</td><td align=
"left">Class template
<code class=
"code">gslice_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.8</td><td align=
"left">Class template
<code class=
"code">mask_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3.9</td><td align=
"left">Class template
<code class=
"code">indirect_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4</td><td align=
"left">Generalized numeric operations
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.4.1</td><td align=
"left"><code class=
"code">accumulate
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4.2</td><td align=
"left"><code class=
"code">inner_product
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4.3</td><td align=
"left"><code class=
"code">partial_sum
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4.4</td><td align=
"left"><code class=
"code">adjacent_difference
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4.5</td><td align=
"left">iota
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5</td><td align=
"left">C Library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
47 <span class=
"emphasis"><em>27</em></span>
48 </td><td colspan=
"3" align=
"left">
49 <span class=
"emphasis"><em>Input/output
</em></span>
50 </td></tr><tr><td align=
"left">27.1</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2</td><td align=
"left">Forward declarations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.3</td><td align=
"left">Standard iostream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.3.1</td><td align=
"left">Narrow stream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.3.2</td><td align=
"left">Wide stream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.4</td><td align=
"left">Iostreams base classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.5</td><td align=
"left">Stream buffers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.6</td><td align=
"left">Formatting and manipulators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.7</td><td align=
"left">String-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.8</td><td align=
"left">File-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
51 <span class=
"emphasis"><em>Appendix D
</em></span>
52 </td><td colspan=
"3" align=
"left">
53 <span class=
"emphasis"><em>Compatibility features
</em></span>
54 </td></tr><tr><td align=
"left">D
.1</td><td align=
"left">Increment operator with bool operand
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.2</td><td align=
"left"><code class=
"code">static
</code> keyword
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.3</td><td align=
"left">Access declarations
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.4</td><td align=
"left">Implicit conversion from const strings
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.5</td><td align=
"left">C standard library headers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.6</td><td align=
"left">Old iostreams members
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.7</td><td align=
"left">char* streams
</td><td align=
"left"> </td><td align=
"left"> </td></tr></tbody></table></div></div><br class=
"table-break" /></div><div class=
"section"><div class=
"titlepage"><div><div><h4 class=
"title"><a id=
"iso.1998.specific"></a>Implementation Specific Behavior
</h4></div></div></div><p>
55 The ISO standard defines the following phrase:
56 </p><div class=
"blockquote"><blockquote class=
"blockquote"><div class=
"variablelist"><dl class=
"variablelist"><dt><span class=
"term">
57 <code class=
"code">[
1.3.5] implementation-defined behavior
</code>
59 Behavior, for a well-formed program construct and correct data, that
60 depends on the implementation
<span class=
"emphasis"><em>and that each implementation
61 shall document
</em></span>.
62 </p></dd></dl></div></blockquote></div><p>
63 We do so here, for the C++ library only. Behavior of the
64 compiler, linker, runtime loader, and other elements of
"the
65 implementation" are documented elsewhere. Everything listed
66 in Annex B, Implementation Qualities, are also part of the
67 compiler, not the library.
69 For each entry, we give the section number of the standard, when
70 applicable. This list is probably incomplet and inkorrekt.
72 <span class=
"emphasis"><em>[
1.9]/
11 #
3</em></span> If
<code class=
"code">isatty(
3)
</code> is true, then
73 interactive stream support is implied.
75 <span class=
"emphasis"><em>[
17.4.4.5]
</em></span> Non-reentrant functions are probably best
76 discussed in the various sections on multithreading (see above).
77 </p><p><span class=
"emphasis"><em>[
18.1]/
4</em></span> The type of
<code class=
"code">NULL
</code> is described
78 under
<a class=
"link" href=
"support.html#std.support.types.null" title=
"NULL">Support
</a>.
79 </p><p><span class=
"emphasis"><em>[
18.3]/
8</em></span> Even though it's listed in the library
80 sections, libstdc++ has zero control over what the cleanup code hands
81 back to the runtime loader. Talk to the compiler people. :-)
82 </p><p><span class=
"emphasis"><em>[
18.4.2.1]/
5</em></span> (bad_alloc),
83 <span class=
"emphasis"><em>[
18.5.2]/
5</em></span> (bad_cast),
84 <span class=
"emphasis"><em>[
18.5.3]/
5</em></span> (bad_typeid),
85 <span class=
"emphasis"><em>[
18.6.1]/
8</em></span> (exception),
86 <span class=
"emphasis"><em>[
18.6.2.1]/
5</em></span> (bad_exception): The
<code class=
"code">what()
</code>
87 member function of class
<code class=
"code">std::exception
</code>, and these other
88 classes publicly derived from it, returns the name of the
89 class, e.g.
<code class=
"literal">"std::bad_alloc"</code>.
90 </p><p><span class=
"emphasis"><em>[
18.5.1]/
7</em></span> The return value of
91 <code class=
"code">std::type_info::name()
</code> is the mangled type name.
92 You will need to call
<code class=
"code">c++filt
</code> and pass the names as
93 command-line parameters to demangle them, or call a
94 <a class=
"link" href=
"ext_demangling.html" title=
"Chapter 28. Demangling">runtime demangler function
</a>.
95 </p><p><span class=
"emphasis"><em>[
20.1.5]/
5</em></span> <span class=
"emphasis"><em>"Implementors are encouraged to
96 supply libraries that can accept allocators that encapsulate more
97 general memory models and that support non-equal instances. In such
98 implementations, any requirements imposed on allocators by containers
99 beyond those requirements that appear in Table 32, and the semantics
100 of containers and algorithms when allocator instances compare
101 non-equal, are implementation-defined."</em></span> There is experimental
102 support for non-equal allocators in the standard containers in C++
98
103 mode. There are no additional requirements on allocators. It is undefined
104 behaviour to swap two containers if their allocators are not equal.
105 </p><p><span class=
"emphasis"><em>[
21.1.3.1]/
3,
4</em></span>,
106 <span class=
"emphasis"><em>[
21.1.3.2]/
2</em></span>,
107 <span class=
"emphasis"><em>[
21.3]/
6 basic_string::iterator, basic_string::const_iterator
</em></span>,
108 <span class=
"emphasis"><em>[
23.*]'s foo::iterator
</em></span>,
109 <span class=
"emphasis"><em>[
27.*]'s foo::*_type
</em></span>,
110 <span class=
"emphasis"><em>others...
</em></span>
111 Nope, these types are called implementation-defined because you
112 shouldn't be taking advantage of their underlying types. Listing them
113 here would defeat the purpose. :-)
114 </p><p><span class=
"emphasis"><em>[
21.1.3.1]/
5</em></span> I don't really know about
115 the
<span class=
"type">mbstate_t
</span> stuff... see
116 the
<a class=
"link" href=
"facets.html#std.localization.facet.codecvt" title=
"codecvt"><code class=
"code">codecvt
</code>
117 notes
</a> for what does exist.
118 </p><p><span class=
"emphasis"><em>[
22.*]
</em></span> Anything and everything we have on locale
119 implementation will be described under
120 <a class=
"link" href=
"localization.html#std.localization.locales.locale" title=
"locale">Localization
</a>.
121 </p><p><span class=
"emphasis"><em>[
23.*]
</em></span> All of the containers in this clause
122 define
<span class=
"type">size_type
</span> as
<span class=
"type">std::size_t
</span> and
123 <span class=
"type">difference_type
</span> as
<span class=
"type">std::ptrdiff_t
</span>.
124 </p><p><span class=
"emphasis"><em>[
26.2.8]/
9</em></span> I have no idea what
125 <code class=
"code">complex
<T
></code>'s
<code class=
"code">pow(
0,
0)
</code> returns.
126 </p><p><span class=
"emphasis"><em>[
27.4.2.4]/
2</em></span> Calling
127 <code class=
"code">std::ios_base::sync_with_stdio
</code> after I/O has already been
128 performed on the standard stream objects will
129 flush the buffers, and
130 destroy and recreate the underlying buffer instances. Whether or not
131 the previously-written I/O is destroyed in this process depends mostly
132 on the
<code class=
"code">--enable-libio
</code> choice: for stdio, if the written
133 data is already in the stdio buffer, the data may be completely safe!
134 </p><p><span class=
"emphasis"><em>[
27.6.1.1.2]
</em></span>,
135 <span class=
"emphasis"><em>[
27.6.2.3]
</em></span> The I/O sentry ctor and dtor can perform
136 additional work than the minimum required. We are not currently taking
137 advantage of this yet.
138 </p><p><span class=
"emphasis"><em>[
27.7.1.3]/
16</em></span>,
139 <span class=
"emphasis"><em>[
27.8.1.4]/
10</em></span>
140 The effects of
<code class=
"code">pubsetbuf/setbuf
</code> are described in the
141 <a class=
"link" href=
"io.html" title=
"Chapter 13. Input and Output">Input and Output
</a> chapter.
142 </p><p><span class=
"emphasis"><em>[
27.8.1.4]/
16</em></span> Calling
<code class=
"code">fstream::sync
</code> when
143 a get area exists will... whatever
<code class=
"code">fflush()
</code> does, I think.
144 </p></div></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.2011"></a>C++
2011</h3></div></div></div><p>
145 <a id=
"status.iso.200x"></a>
146 This table is based on the table of contents of ISO/IEC
147 JTC1 SC22 WG21 Doc No: N3290 Date:
2011-
04-
11
148 Final Draft International Standard, Standard for Programming Language C++
150 In this implementation the
<code class=
"literal">-std=gnu++
11</code> or
151 <code class=
"literal">-std=c++
11</code> flag must be used to enable language
153 features. See
<a class=
"link" href=
"using.html#manual.intro.using.flags" title=
"Command Options">dialect
</a>
154 options. The pre-defined symbol
155 <code class=
"constant">__cplusplus
</code> is used to check for the
156 presence of the required flag.
158 This status table is based on the table of contents of ISO/IEC
14882:
2011.
160 This section describes the C++
11 support in mainline GCC, not in any
162 </p><div class=
"table"><a id=
"table.cxx11_status"></a><p class=
"title"><strong>Table
1.2. C++
2011 Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ 2011 Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Section
</th><th align=
"left">Description
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr><td align=
"left">
163 <span class=
"emphasis"><em>18</em></span>
164 </td><td colspan=
"3" align=
"left">
165 <span class=
"emphasis"><em>Language support
</em></span>
166 </td></tr><tr><td align=
"left">18.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.2</td><td align=
"left">Types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3</td><td align=
"left">Implementation properties
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2</td><td align=
"left">Numeric Limits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2.3</td><td align=
"left">Class template
<code class=
"code">numeric_limits
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2.4</td><td align=
"left"><code class=
"code">numeric_limits
</code> members
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">18.3.2.5</td><td align=
"left"><code class=
"code">float_round_style
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">18.3.2.6</td><td align=
"left"><code class=
"code">float_denorm_style
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2.7</td><td align=
"left"><code class=
"code">numeric_limits
</code> specializations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.3</td><td align=
"left">C Library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.4</td><td align=
"left">Integer types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.4.1</td><td align=
"left">Header
<code class=
"code"><cstdint
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">18.5</td><td align=
"left">Start and termination
</td><td align=
"left">Partial
</td><td align=
"left">C library dependency for quick_exit, at_quick_exit
</td></tr><tr><td align=
"left">18.6</td><td align=
"left">Dynamic memory management
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.7</td><td align=
"left">Type identification
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.7.1</td><td align=
"left">Class type_info
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.7.2</td><td align=
"left">Class bad_cast
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.7.3</td><td align=
"left">Class bad_typeid
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8</td><td align=
"left">Exception handling
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.1</td><td align=
"left">Class exception
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.2</td><td align=
"left">Class bad_exception
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.3</td><td align=
"left">Abnormal termination
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.4</td><td align=
"left"><code class=
"code">uncaught_exception
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.5</td><td align=
"left">Exception Propagation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.6</td><td align=
"left"><code class=
"code">nested_exception
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.9</td><td align=
"left">Initializer lists
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.9.1</td><td align=
"left">Initializer list constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.9.2</td><td align=
"left">Initializer list access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.9.3</td><td align=
"left">Initializer list range access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.10</td><td align=
"left">Other runtime support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
167 <span class=
"emphasis"><em>19</em></span>
168 </td><td colspan=
"3" align=
"left">
169 <span class=
"emphasis"><em>Diagnostics
</em></span>
170 </td></tr><tr><td align=
"left">19.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">19.2</td><td align=
"left">Exception classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.3</td><td align=
"left">Assertions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.4</td><td align=
"left">Error numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5</td><td align=
"left">System error support
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.1</td><td align=
"left">Class
<code class=
"code">error_category
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.2</td><td align=
"left">Class
<code class=
"code">error_code
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.3</td><td align=
"left">Class
<code class=
"code">error_condition
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.4</td><td align=
"left">Comparison operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.5</td><td align=
"left">Class
<code class=
"code">system_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
171 <span class=
"emphasis"><em>20</em></span>
172 </td><td colspan=
"3" align=
"left">
173 <span class=
"emphasis"><em>General utilities
</em></span>
174 </td></tr><tr><td align=
"left">20.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.2</td><td align=
"left">Utility components
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.1</td><td align=
"left">Operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.2</td><td align=
"left">swap
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.3</td><td align=
"left">forward/move helpers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.4</td><td align=
"left">Function template
<code class=
"code">declval
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3</td><td align=
"left">Pairs
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.2</td><td align=
"left">Class template
<code class=
"code">pair
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.3</td><td align=
"left">Specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.4</td><td align=
"left">Tuple-like access to
<code class=
"code">pair
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3.5</td><td align=
"left">Piecewise construction
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4</td><td align=
"left">Tuples
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2</td><td align=
"left">Class template
<code class=
"code">tuple
</code></td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.1</td><td align=
"left">Construction
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.2</td><td align=
"left">Assignment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.3</td><td align=
"left">Swap
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.4</td><td align=
"left">Tuple creation functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.5</td><td align=
"left">Tuple helper classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.6</td><td align=
"left">Element access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.7</td><td align=
"left">Relational operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.8</td><td align=
"left">Tuple traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4.2.9</td><td align=
"left">Tuple specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.5</td><td align=
"left">Class template
<code class=
"code">bitset
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.5.1</td><td align=
"left"><code class=
"code">bitset
</code> constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.5.2</td><td align=
"left"><code class=
"code">bitset
</code> members
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.5.3</td><td align=
"left"><code class=
"code">bitset
</code> hash support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.5.4</td><td align=
"left"><code class=
"code">bitset
</code> operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6</td><td align=
"left">Memory
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.2</td><td align=
"left">Header
<code class=
"code"><memory
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.3</td><td align=
"left">Pointer traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.4</td><td align=
"left">Pointer safety
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.5</td><td align=
"left">Align
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.6</td><td align=
"left">Allocator argument tag
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.7</td><td align=
"left"><code class=
"code">uses_allocator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.8</td><td align=
"left">Allocator traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.9</td><td align=
"left">The default allocator
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.10</td><td align=
"left">Raw storage iterator
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.11</td><td align=
"left">Temporary buffers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.12</td><td align=
"left">Specialized algorithms
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.12.1</td><td align=
"left"><code class=
"code">addressof
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.12.2</td><td align=
"left"><code class=
"code">uninitialized_copy
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.12.3</td><td align=
"left"><code class=
"code">uninitialized_fill
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.12.4</td><td align=
"left"><code class=
"code">uninitialized_fill_n
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6.13</td><td align=
"left">C library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.7</td><td align=
"left">Smart pointers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.7.1</td><td align=
"left">Class template
<code class=
"code">unique_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.7.2</td><td align=
"left">Shared-ownership pointers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.7.2.1</td><td align=
"left">Class
<code class=
"code">bad_weak_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.7.2.2</td><td align=
"left">Class template
<code class=
"code">shared_ptr
</code></td><td align=
"left">Y
</td><td align=
"left">
176 <a class=
"link" href=
"http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target=
"_top">boost::shared_ptr
</a>.
177 </td></tr><tr><td align=
"left">20.7.2.3</td><td align=
"left">Class template
<code class=
"code">weak_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.7.2.4</td><td align=
"left">Class template
<code class=
"code">enable_shared_from_this
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.7.2.5</td><td align=
"left"><code class=
"code">shared_ptr
</code> atomic access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.7.2.6</td><td align=
"left">Smart pointer hash support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8</td><td align=
"left">Function objects
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.1</td><td align=
"left">Definitions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2</td><td align=
"left">Requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.3</td><td align=
"left">Class template
<code class=
"code">reference_wrapper
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.4</td><td align=
"left">Arithmetic operation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.5</td><td align=
"left">Comparisons
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.6</td><td align=
"left">Logical operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.7</td><td align=
"left">Bitwise operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.8</td><td align=
"left">Negators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.9</td><td align=
"left">Function template
<code class=
"code">bind
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.10</td><td align=
"left">Function template
<code class=
"code">mem_fn
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.11</td><td align=
"left">Polymorphic function wrappers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.11.1</td><td align=
"left">Class
<code class=
"code">bad_function_call
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">20.8.11.2</td><td align=
"left">Class template
<code class=
"code">function
</code></td><td align=
"left">Partial
</td><td align=
"left">Missing allocator support
</td></tr><tr><td align=
"left">20.8.12</td><td align=
"left">Class template
<code class=
"code">hash
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9</td><td align=
"left">Metaprogramming and type traits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.1</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.2</td><td align=
"left">Header
<code class=
"code"><type_traits
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.3</td><td align=
"left">Helper classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.4</td><td align=
"left">Unary Type Traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.4.1</td><td align=
"left">Primary type categories
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.4.2</td><td align=
"left">Composite type traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.4.3</td><td align=
"left">Type properties
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.5</td><td align=
"left">Type property queries
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.6</td><td align=
"left">Relationships between types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7</td><td align=
"left">Transformations between types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7.1</td><td align=
"left">Const-volatile modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7.2</td><td align=
"left">Reference modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7.3</td><td align=
"left">Sign modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7.4</td><td align=
"left">Array modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7.5</td><td align=
"left">Pointer modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7.6</td><td align=
"left">Other transformations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10</td><td align=
"left">Compile-time rational arithmetic
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.2</td><td align=
"left">Header
<code class=
"code"><ratio
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.3</td><td align=
"left">Class template
<code class=
"code">ratio
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.4</td><td align=
"left">Arithmetic on
<code class=
"code">ratio
</code>s
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.5</td><td align=
"left">Comparison of
<code class=
"code">ratio
</code>s
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.6</td><td align=
"left">SI types for
<code class=
"code">ratio
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11</td><td align=
"left">Time utilities
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.3</td><td align=
"left">Clock requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.4</td><td align=
"left">Time-related traits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.4.1</td><td align=
"left"><code class=
"code">treat_as_floating_point
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.4.2</td><td align=
"left"><code class=
"code">duration_values
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.4.3</td><td align=
"left">Specializations of
<code class=
"code">common_type
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.5</td><td align=
"left">Class template
<code class=
"code">duration
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.6</td><td align=
"left">Class template
<code class=
"code">time_point
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.7</td><td align=
"left">Clocks
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.7.1</td><td align=
"left">Class
<code class=
"code">system_clock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.7.2</td><td align=
"left">Class
<code class=
"code">steady_clock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.7.3</td><td align=
"left">Class
<code class=
"code">high_resolution_clock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11.8</td><td align=
"left">Date and time functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12</td><td align=
"left">Scoped allocator adaptor
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.1</td><td align=
"left">Header
<code class=
"code"><scoped_allocator
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.2</td><td align=
"left">Scoped allocator adaptor member types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.3</td><td align=
"left">Scoped allocator adaptor constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.4</td><td align=
"left">Scoped allocator adaptor members
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.5</td><td align=
"left">Scoped allocator operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.13</td><td align=
"left">Class
<code class=
"code">type_index
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
178 <span class=
"emphasis"><em>21</em></span>
179 </td><td colspan=
"3" align=
"left">
180 <span class=
"emphasis"><em>Strings
</em></span>
181 </td></tr><tr><td align=
"left">21.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2</td><td align=
"left">Character traits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.2.1</td><td align=
"left">Character traits requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2.2</td><td align=
"left">traits typedefs
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2.3</td><td align=
"left"><code class=
"code">char_traits
</code> specializations
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.2.3.1</td><td align=
"left">struct
<code class=
"code">char_traits
<char
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2.3.2</td><td align=
"left">struct
<code class=
"code">char_traits
<char16_t
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2.3.3</td><td align=
"left">struct
<code class=
"code">char_traits
<char32_t
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2.3.4</td><td align=
"left">struct
<code class=
"code">char_traits
<wchar_t
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.3</td><td align=
"left">String classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.4</td><td align=
"left">Class template
<code class=
"code">basic_string
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.5</td><td align=
"left">Numeric Conversions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.6</td><td align=
"left">Hash support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">21.7</td><td align=
"left">Null-terminated sequence utilities
</td><td align=
"left">Partial
</td><td align=
"left">C library dependency.
</td></tr><tr><td align=
"left">
182 <span class=
"emphasis"><em>22</em></span>
183 </td><td colspan=
"3" align=
"left">
184 <span class=
"emphasis"><em>Localization
</em></span>
185 </td></tr><tr><td align=
"left">22.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2</td><td align=
"left">Header
<code class=
"code"><locale
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3</td><td align=
"left">Locales
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.1</td><td align=
"left">Class
<code class=
"code">locale
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.2</td><td align=
"left"><code class=
"code">locale
</code> globals
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.3</td><td align=
"left">Convenience interfaces
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.3.1</td><td align=
"left">Character classification
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.3.2</td><td align=
"left">Conversions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.3.2.1</td><td align=
"left">Character conversions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.3.2.2</td><td align=
"left"><code class=
"code">string
</code> conversions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3.3.2.3</td><td align=
"left">Buffer conversions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4</td><td align=
"left">Standard
<code class=
"code">locale
</code> categories
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.1</td><td align=
"left">The
<code class=
"code">ctype
</code> category
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.2</td><td align=
"left">The numeric category
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.2.1</td><td align=
"left"><code class=
"code">num_get
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.2.2</td><td align=
"left"><code class=
"code">num_put
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.3</td><td align=
"left">The numeric punctuation facet
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.4</td><td align=
"left">The collate category
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.5</td><td align=
"left">The time category
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.5.1</td><td align=
"left">Class template
<code class=
"code">time_get
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.5.2</td><td align=
"left">Class template
<code class=
"code">time_get_byname
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.5.3</td><td align=
"left">Class template
<code class=
"code">time_put
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.5.3</td><td align=
"left">Class template
<code class=
"code">time_put_byname
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.6</td><td align=
"left">The monetary category
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.6.1</td><td align=
"left">Class template
<code class=
"code">money_get
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.6.2</td><td align=
"left">Class template
<code class=
"code">money_put
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.6.3</td><td align=
"left">Class template
<code class=
"code">money_punct
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.6.4</td><td align=
"left">Class template
<code class=
"code">money_punct_byname
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.7</td><td align=
"left">The message retrieval category
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4.8</td><td align=
"left">Program-defined facets
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.5</td><td align=
"left">Standard code conversion facets
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.6</td><td align=
"left">C Library Locales
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
186 <span class=
"emphasis"><em>23</em></span>
187 </td><td colspan=
"3" align=
"left">
188 <span class=
"emphasis"><em>Containers
</em></span>
189 </td></tr><tr><td align=
"left">23.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2</td><td align=
"left">Container requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.1</td><td align=
"left">General container requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.2</td><td align=
"left">Container data races
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.3</td><td align=
"left">Sequence containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.4</td><td align=
"left">Associative containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.5</td><td align=
"left">Unordered associative containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3</td><td align=
"left">Sequence containers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.2</td><td align=
"left">Class template
<code class=
"code">array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.3</td><td align=
"left">Class template
<code class=
"code">deque
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.4</td><td align=
"left">Class template
<code class=
"code">forward_list
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.5</td><td align=
"left">Class template
<code class=
"code">list
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.6</td><td align=
"left">Class template
<code class=
"code">vector
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3.7</td><td align=
"left">Class
<code class=
"code">vector
<bool
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.4</td><td align=
"left">Associative containers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.4.4</td><td align=
"left">Class template
<code class=
"code">map
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.4.5</td><td align=
"left">Class template
<code class=
"code">multimap
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.4.6</td><td align=
"left">Class template
<code class=
"code">set
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.4.7</td><td align=
"left">Class template
<code class=
"code">multiset
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.5</td><td align=
"left">Unordered associative containers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.5.4</td><td align=
"left">Class template
<code class=
"code">unordered_map
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.5.5</td><td align=
"left">Class template
<code class=
"code">unordered_multimap
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.5.6</td><td align=
"left">Class template
<code class=
"code">unordered_set
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.5.7</td><td align=
"left">Class template
<code class=
"code">unordered_multiset
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.6</td><td align=
"left">Container adaptors
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.6.1</td><td align=
"left">Class template
<code class=
"code">queue
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.6.2</td><td align=
"left">Class template
<code class=
"code">priority_queue
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.6.3</td><td align=
"left">Class template
<code class=
"code">stack
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
190 <span class=
"emphasis"><em>24</em></span>
191 </td><td colspan=
"3" align=
"left">
192 <span class=
"emphasis"><em>Iterators
</em></span>
193 </td></tr><tr><td align=
"left">24.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.2</td><td align=
"left">Iterator requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.3</td><td align=
"left">Header
<code class=
"code"><iterator
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4</td><td align=
"left">Iterator primitives
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5</td><td align=
"left">Iterator adaptors
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">24.5.1</td><td align=
"left">Reverse iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5.2</td><td align=
"left">Insert iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5.3</td><td align=
"left">Move iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.6</td><td align=
"left">Stream iterators
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">24.6.1</td><td align=
"left">Class template
<code class=
"code">istream_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.6.2</td><td align=
"left">Class template
<code class=
"code">ostream_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.6.3</td><td align=
"left">Class template
<code class=
"code">istreambuf_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.6.4</td><td align=
"left">Class template
<code class=
"code">ostreambuf_iterator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.6.5</td><td align=
"left">range access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
194 <span class=
"emphasis"><em>25</em></span>
195 </td><td colspan=
"3" align=
"left">
196 <span class=
"emphasis"><em>Algorithms
</em></span>
197 </td></tr><tr><td align=
"left">25.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">25.2</td><td align=
"left">Non-modifying sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.3</td><td align=
"left">Mutating sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.4</td><td align=
"left">Sorting and related operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.5</td><td align=
"left">C library algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
198 <span class=
"emphasis"><em>26</em></span>
199 </td><td colspan=
"3" align=
"left">
200 <span class=
"emphasis"><em>Numerics
</em></span>
201 </td></tr><tr><td align=
"left">26.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.2</td><td align=
"left">Numeric type requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3</td><td align=
"left">The floating-point environment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4</td><td align=
"left">Complex numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5</td><td align=
"left">Random number generation
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.1</td><td align=
"left">Requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.2</td><td align=
"left">Header
<code class=
"code"><random
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.3</td><td align=
"left">Random number engine class templates
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.3.1</td><td align=
"left">Class template
<code class=
"code">linear_congruential_engine
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.3.2</td><td align=
"left">Class template
<code class=
"code">mersenne_twister_engine
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.3.3</td><td align=
"left">Class template
<code class=
"code">subtract_with_carry_engine
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.4</td><td align=
"left">Random number engine adaptor class templates
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.4.2</td><td align=
"left">Class template
<code class=
"code">discard_block_engine
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.4.3</td><td align=
"left">Class template
<code class=
"code">independent_bits_engine
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.4.4</td><td align=
"left">Class template
<code class=
"code">shuffle_order_engine
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.5</td><td align=
"left">Engines and engine adaptors with predefined parameters
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.6</td><td align=
"left">Class
<code class=
"code">random_device
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.7</td><td align=
"left">Utilities
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.7.1</td><td align=
"left">Class
<code class=
"code">seed_seq
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.7.2</td><td align=
"left">Function template
<code class=
"code">generate_canonical
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8</td><td align=
"left">Random number distribution class templates
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.2</td><td align=
"left">Uniform distributions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.2.1</td><td align=
"left">Class template
<code class=
"code">uniform_int_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.2.2</td><td align=
"left">Class template
<code class=
"code">uniform_real_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.3</td><td align=
"left">Bernoulli distributions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.3.1</td><td align=
"left">Class
<code class=
"code">bernoulli_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.3.2</td><td align=
"left">Class template
<code class=
"code">binomial_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.3.3</td><td align=
"left">Class template
<code class=
"code">geometric_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.3.4</td><td align=
"left">Class template
<code class=
"code">negative_binomial_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.4</td><td align=
"left">Poisson distributions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.4.1</td><td align=
"left">Class template
<code class=
"code">poisson_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.4.2</td><td align=
"left">Class template
<code class=
"code">exponential_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.4.3</td><td align=
"left">Class template
<code class=
"code">gamma_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.4.4</td><td align=
"left">Class template
<code class=
"code">weibull_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.4.5</td><td align=
"left">Class template
<code class=
"code">extreme_value_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.5</td><td align=
"left">Normal distributions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.5.1</td><td align=
"left">Class template
<code class=
"code">normal_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.5.2</td><td align=
"left">Class template
<code class=
"code">lognormal_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.5.3</td><td align=
"left">Class template
<code class=
"code">chi_squared_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.5.4</td><td align=
"left">Class template
<code class=
"code">cauchy_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.5.5</td><td align=
"left">Class template
<code class=
"code">fisher_f_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.5.6</td><td align=
"left">Class template
<code class=
"code">student_t_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.6</td><td align=
"left">Sampling distributions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.6.1</td><td align=
"left">Class template
<code class=
"code">discrete_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.6.2</td><td align=
"left">Class template
<code class=
"code">piecewise_constant_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5.8.6.3</td><td align=
"left">Class template
<code class=
"code">piecewise_linear_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6</td><td align=
"left">Numeric arrays
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.1</td><td align=
"left">Header
<code class=
"code"><valarray
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.2</td><td align=
"left">Class template
<code class=
"code">valarray
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.3</td><td align=
"left"><code class=
"code">valarray
</code> non-member operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.4</td><td align=
"left">Class
<code class=
"code">slice
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.5</td><td align=
"left">Class template
<code class=
"code">slice_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.6</td><td align=
"left">The
<code class=
"code">gslice
</code> class
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.7</td><td align=
"left">Class template
<code class=
"code">gslice_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.8</td><td align=
"left">Class template
<code class=
"code">mask_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.9</td><td align=
"left">Class template
<code class=
"code">indirect_array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6.10</td><td align=
"left"><code class=
"code">valarray
</code> range access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.7</td><td align=
"left">Generalized numeric operations
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.7.1</td><td align=
"left">Header
<code class=
"code"><numeric
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.7.2</td><td align=
"left">Accumulate
></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.7.3</td><td align=
"left">Inner product
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.7.4</td><td align=
"left">Partial sum
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.7.5</td><td align=
"left">Adjacent difference
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.7.6</td><td align=
"left">Iota
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.8</td><td align=
"left">C Library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
202 <span class=
"emphasis"><em>27</em></span>
203 </td><td colspan=
"3" align=
"left">
204 <span class=
"emphasis"><em>Input/output library
</em></span>
205 </td></tr><tr><td align=
"left">27.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2</td><td align=
"left">Iostreams requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2.1</td><td align=
"left">Imbue Limitations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2.2</td><td align=
"left">Positioning Type Limitations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">27.2.3</td><td align=
"left">Thread safety
</td><td align=
"left">Partial
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.3</td><td align=
"left">Forward declarations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.4</td><td align=
"left">Standard iostream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.4.1</td><td align=
"left">Overview
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.4.2</td><td align=
"left">Narrow stream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.4.3</td><td align=
"left">Wide stream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.5</td><td align=
"left">Iostreams base classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.6</td><td align=
"left">Stream buffers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.7</td><td align=
"left">Formatting and manipulators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.8</td><td align=
"left">String-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.9</td><td align=
"left">File-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
206 <span class=
"emphasis"><em>28</em></span>
207 </td><td colspan=
"3" align=
"left">
208 <span class=
"emphasis"><em>Regular expressions
</em></span>
209 </td></tr><tr><td align=
"left">28.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.3</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.4</td><td align=
"left">Header
<code class=
"code"><regex
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.5</td><td align=
"left">Namespace
<code class=
"code">std::regex_constants
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.6</td><td align=
"left">Class
<code class=
"code">regex_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">28.7</td><td align=
"left">Class template
<code class=
"code">regex_traits
</code></td><td align=
"left">Partial
</td><td align=
"left"><code class=
"code">transform_primary
</code> is not correctly implemented
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.8</td><td align=
"left">Class template
<code class=
"code">basic_regex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.9</td><td align=
"left">Class template
<code class=
"code">sub_match
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.10</td><td align=
"left">Class template
<code class=
"code">match_results
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.11</td><td align=
"left">Regular expression algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.12</td><td align=
"left">Regular expression Iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.13</td><td align=
"left">Modified ECMAScript regular expression grammar
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
210 <span class=
"emphasis"><em>29</em></span>
211 </td><td colspan=
"3" align=
"left">
212 <span class=
"emphasis"><em>Atomic operations
</em></span>
213 </td></tr><tr><td align=
"left">29.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.2</td><td align=
"left">Header
<code class=
"code"><atomic
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.3</td><td align=
"left">Order and consistency
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.4</td><td align=
"left">Lock-free property
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.5</td><td align=
"left">Atomic types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.6</td><td align=
"left">Operations on atomic types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.7</td><td align=
"left">Flag Type and operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8</td><td align=
"left">Fences
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
214 <span class=
"emphasis"><em>30</em></span>
215 </td><td colspan=
"3" align=
"left">
216 <span class=
"emphasis"><em>Thread support
</em></span>
217 </td></tr><tr><td align=
"left">30.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.2</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.3</td><td align=
"left">Threads
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">30.3.1</td><td align=
"left">Class
<code class=
"code">thread
</code></td><td align=
"left">Partial
</td><td align=
"left"><code class=
"code">thread::id
</code> comparisons not well-defined
</td></tr><tr><td align=
"left">30.3.2</td><td align=
"left">Namespace
<code class=
"code">this_thread
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4</td><td align=
"left">Mutual exclusion
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1</td><td align=
"left">Mutex requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.2</td><td align=
"left">Mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.2.1</td><td align=
"left">Class
<code class=
"code">mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.2.2</td><td align=
"left">Class
<code class=
"code">recursive_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.3</td><td align=
"left">Timed mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.3.1</td><td align=
"left">Class
<code class=
"code">timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.3.2</td><td align=
"left">Class
<code class=
"code">recursive_timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.2</td><td align=
"left">Locks
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.2.1</td><td align=
"left">Class template
<code class=
"code">lock_guard
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.2.2</td><td align=
"left">Class template
<code class=
"code">unique_lock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.3</td><td align=
"left">Generic locking algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.4</td><td align=
"left">Call once
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.4.1</td><td align=
"left">Struct
<code class=
"code">once_flag
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">30.4.4.2</td><td align=
"left">Function
<code class=
"code">call_once
</code></td><td align=
"left">Broken
</td><td align=
"left">See
<a class=
"link" href=
"https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146" target=
"_top">PR
219 </td></tr><tr><td align=
"left">30.5</td><td align=
"left">Condition variables
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.5.1</td><td align=
"left">Class
<code class=
"code">condition_variable
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.5.2</td><td align=
"left">Class
<code class=
"code">condition_variable_any
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6</td><td align=
"left">Futures
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.1</td><td align=
"left">Overview
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.2</td><td align=
"left">Error handling
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.3</td><td align=
"left">Class
<code class=
"code">future_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.4</td><td align=
"left">Shared state
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.5</td><td align=
"left">Class template
<code class=
"code">promise
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.6</td><td align=
"left">Class template
<code class=
"code">future
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.7</td><td align=
"left">Class template
<code class=
"code">shared_future
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.8</td><td align=
"left">Function template
<code class=
"code">async
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.9</td><td align=
"left">Class template
<code class=
"code">packaged_task
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
220 <span class=
"emphasis"><em>Appendix D
</em></span>
221 </td><td colspan=
"3" align=
"left">
222 <span class=
"emphasis"><em>Compatibility features
</em></span>
223 </td></tr><tr><td align=
"left">D
.1</td><td align=
"left">Increment operator with
<code class=
"code">bool
</code> operand
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.2</td><td align=
"left"><code class=
"code">register
</code> keyword
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.3</td><td align=
"left">Implicit declaration of copy functions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.4</td><td align=
"left">Dynamic exception specifications
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.5</td><td align=
"left">C standard library headers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.6</td><td align=
"left">Old iostreams members
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.7</td><td align=
"left"><code class=
"code">char*
</code> streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.8</td><td align=
"left">Function objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.9</td><td align=
"left">Binders
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.10</td><td align=
"left"><code class=
"code">auto_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.11</td><td align=
"left">Violating exception-specifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr></tbody></table></div></div><br class=
"table-break" /><div class=
"section"><div class=
"titlepage"><div><div><h4 class=
"title"><a id=
"iso.2011.specific"></a>Implementation Specific Behavior
</h4></div></div></div><p>For behaviour which is also specified by the
1998 and
2003 standards,
224 see
<a class=
"link" href=
"status.html#iso.1998.specific" title=
"Implementation Specific Behavior">C++
1998/
2003 Implementation
225 Specific Behavior
</a>. This section only documents behaviour which
226 is new in the
2011 standard.
228 <span class=
"emphasis"><em>17.6.5.12 [res.on.exception.handling]
</em></span>
229 There are no implementation-defined exception classes, only standard
230 exception classes (or classes derived from them) will be thrown.
232 <span class=
"emphasis"><em>17.6.5.14 [value.error.codes]
</em></span>
233 The
<code class=
"classname">error_category
</code> for errors originating outside
234 the OS, and the possible error code values for each error category,
235 should be documented here.
237 <span class=
"emphasis"><em>18.6.2.2 [new.badlength]
</em></span>
238 <code class=
"function">what()
</code> returns
239 <code class=
"literal">"std::bad_array_new_length"</code>.
241 <span class=
"emphasis"><em>20.6.9.1 [allocator.member]/
5</em></span>
242 Over-aligned types are not supported by
243 <code class=
"classname">std::allocator
</code>.
245 <span class=
"emphasis"><em>20.7.2.2.1 [util.smartptr.shared.const]
</em></span>
246 When a
<code class=
"classname">shared_ptr
</code> constructor fails
247 <code class=
"classname">bad_alloc
</code> (or types derived from it) will
248 be thrown, or when an allocator is passed to the constructor then any
249 exceptions thrown by the allocator.
251 <span class=
"emphasis"><em>20.7.2.0 [util.smartptr.weakptr]
</em></span>
252 <code class=
"code">what()
</code> returns
<code class=
"literal">"bad_weak_ptr"</code>.
254 <span class=
"emphasis"><em>20.8.9.1.3 [func.bind.place]/
1</em></span> There are
29
255 placeholders defined and the placeholder types are
256 <code class=
"literal">CopyAssignable
</code>.
258 <span class=
"emphasis"><em>20.11.7.1 [time.clock.system]/
3, /
4</em></span>
259 Time point values are truncated to
<code class=
"code">time_t
</code> values.
260 There is no loss of precision for conversions in the other direction.
262 <span class=
"emphasis"><em>20.15.7 [meta.trans]/
2</em></span>
263 <code class=
"classname">aligned_storage
</code> does not support extended
266 <span class=
"emphasis"><em>21.2.3.2 [char.traits.specializations.char16_t]
</em></span>,
267 <span class=
"emphasis"><em>21.2.3.3 [char.traits.specializations.char32_t]
</em></span>
268 The types
<code class=
"classname">u16streampos
</code> and
269 <code class=
"classname">u32streampos
</code> are both synonyms for
270 <code class=
"classname">fpos
<mbstate_t
></code>.
271 The function
<code class=
"function">eof
</code> returns
<code class=
"code">int_type(-
1)
</code>.
272 <code class=
"function">char_traits
<char16_t
>::to_int_type
</code> will
273 transform the
"noncharacter" U+FFFF to U+FFFD (REPLACEMENT CHARACTER).
274 This is done to ensure that
<code class=
"function">to_int_type
</code> never
275 returns the same value as
<code class=
"function">eof
</code>, which is U+FFFF.
277 <span class=
"emphasis"><em>22.3.1 [locale]
</em></span>
278 There is one global locale for the whole program, not per-thread.
280 <span class=
"emphasis"><em>22.4.5.1.2 [locale.time.get.virtuals]
</em></span>,
281 <span class=
"emphasis"><em>22.4.5.3.2 [locale.time.put.virtuals]
</em></span>
282 Additional supported formats should be documented here.
284 <span class=
"emphasis"><em> 22.4.7.1.2 [locale.messages.virtuals]
</em></span>
285 The mapping should be documented here.
287 <span class=
"emphasis"><em>23.3.2.1 [array.overview]
</em></span>
288 <code class=
"classname">array
<T, N
>::iterator
</code> is
<code class=
"code">T*
</code> and
289 <code class=
"classname">array
<T, N
>::const_iterator
</code> is
290 <code class=
"code">const T*
</code>.
292 <span class=
"emphasis"><em>23.5.4.2 [unord.map.cnstr]
</em></span>,
293 <span class=
"emphasis"><em>23.5.5.2 [unord.multimap.cnstr]
</em></span>,
294 <span class=
"emphasis"><em>23.5.6.2 [unord.set.cnstr]
</em></span>,
295 <span class=
"emphasis"><em>23.5.7.2 [unord.multiset.cnstr]
</em></span>
296 The default minimal bucket count is
0 for the default constructors, range
297 constructors and initializer-list constructors.
299 <span class=
"emphasis"><em>25.3.12 [alg.random.shuffle]
</em></span>
300 The two-argument overload of
<code class=
"function">random_shuffle
</code>
301 uses
<code class=
"function">rand
</code> as the source of randomness.
303 <span class=
"emphasis"><em>26.5.5 [rand.predef]
</em></span>
304 The type
<code class=
"classname">default_random_engine
</code> is a synonym for
305 <code class=
"classname">minstd_rand0
</code>.
307 <span class=
"emphasis"><em> 26.5.6 [rand.device]
</em></span>
308 The
<code class=
"code">token
</code> parameter of the
309 <code class=
"classname">random_device
</code> constructor can be used to select
310 a specific source of random bytes. The valid token values are shown
312 The default constructor uses the token
<code class=
"literal">"default"</code>.
313 </p><div class=
"variablelist"><dl class=
"variablelist"><dt><span class=
"term"><code class=
"literal">"default"</code></span></dt><dd>
314 Select the first available source from the other entries below.
315 This is the only token that is always valid.
316 </dd><dt><span class=
"term"><code class=
"literal">"rand_s"</code></span></dt><dd>
317 Use the MSVCRT
<code class=
"function">rand_s
</code> function.
318 This token is only valid for mingw-w64 targets.
319 </dd><dt><span class=
"term"><code class=
"literal">"rdseed"</code>,
</span><span class=
"term"><code class=
"literal">"rdrand"</code> or
<code class=
"literal">"rdrnd"</code></span></dt><dd>
320 Use the IA-
32 <code class=
"literal">RDSEED
</code> or
<code class=
"literal">RDRAND
</code>
321 instruction to read from an on-chip hardware random number generator.
322 These tokens are only valid for x86 and x86_64 targets when both
323 the assembler and CPU support the corresponding instruction.
324 </dd><dt><span class=
"term"><code class=
"literal">"/dev/urandom"</code>,
</span><span class=
"term"><code class=
"literal">"/dev/random"</code></span></dt><dd>
325 Use the named character special file to read random bytes from.
326 These tokens are only valid when the device files are present
327 and readable by the current user.
328 </dd><dt><span class=
"term"><code class=
"literal">"mt19937"</code>,
</span><span class=
"term">seed value
</span></dt><dd>
329 When no source of nondeterministic random numbers is available a
330 <code class=
"classname">mersenne_twister_engine
</code> will be used.
331 An integer seed value can be used as the token and will be converted
332 to an
<code class=
"code">unsigned long
</code> using
<code class=
"function">strtoul
</code>.
333 These tokens are only valid when no other source of random bytes
336 An exception of type
<code class=
"classname">runtime_error
</code> will be
337 thrown if a
<code class=
"classname">random_device
</code> object is constructed
338 with an invalid token, or if it cannot open or read from the source
341 <span class=
"emphasis"><em>26.5.8.1 [rand.dist.general]
</em></span>
342 The algorithms used by the distributions should be documented here.
344 <span class=
"emphasis"><em>26.8 [c.math]
</em></span> Whether the
345 <code class=
"function">rand
</code> function introduces data races depends on
346 the C library as the function is not provided by libstdc++.
348 <span class=
"emphasis"><em>27.8.2.1 [stringbuf.cons]
</em></span>
349 Whether the sequence pointers are copied by the
350 <code class=
"classname">basic_stringbuf
</code> move constructor should be
353 <span class=
"emphasis"><em>27.9.1.2 [filebuf.cons]
</em></span>
354 Whether the sequence pointers are copied by the
355 <code class=
"classname">basic_filebuf
</code> move constructor should be
358 <span class=
"emphasis"><em>28.5.1 [re.synopt]
</em></span>,
359 <span class=
"emphasis"><em> 28.5.2 [re.matchflag]
</em></span>,
360 <span class=
"emphasis"><em> 28.5.3 [re.err]
</em></span>
361 <code class=
"code">syntax_option_type
</code>,
<code class=
"code">match_flag_type
</code>
362 and
<code class=
"code">error_type
</code> are unscoped enumeration types.
364 <span class=
"emphasis"><em>28.7 [re.traits]
</em></span>
365 The
<code class=
"literal">blank
</code> character class corresponds to the
366 <code class=
"code">ctype_base::blank
</code> mask.
368 <span class=
"emphasis"><em>29.4 [atomics.lockfree]
</em></span>
369 The values of the
<code class=
"code">ATOMIC_xxx_LOCK_FREE
</code> macros depend on
370 the target and cannot be listed here.
372 <span class=
"emphasis"><em>30.2.3 [thread.req.native]/
1</em></span>
373 <code class=
"classname">native_handle_type
</code> and
374 <code class=
"methodname">native_handle
</code> are provided. The handle types
375 are defined in terms of the Gthreads abstraction layer, although this
376 is subject to change at any time. Any use of
377 <code class=
"classname">native_handle
</code> is inherently non-portable and
378 not guaranteed to work between major releases of GCC.
379 </p><div class=
"variablelist"><dl class=
"variablelist"><dt><span class=
"term"><code class=
"classname">thread
</code></span></dt><dd>
380 The native handle type is a typedef for
<code class=
"code">__gthread_t
</code>
381 i.e.
<code class=
"code">pthread_t
</code> when GCC is configured with the
382 <code class=
"literal">posix
</code> thread model.
383 The value of the native handle is undefined for a thread
384 which is not joinable.
385 </dd><dt><span class=
"term"><code class=
"classname">mutex
</code>,
</span><span class=
"term"><code class=
"classname">timed_mutex
</code></span></dt><dd>
386 The native handle type is
<code class=
"code">__gthread_mutex_t*
</code> i.e.
387 <code class=
"code">pthread_mutex_t*
</code> for the
<code class=
"literal">posix
</code>
389 </dd><dt><span class=
"term"><code class=
"classname">recursive_mutex
</code>,
</span><span class=
"term"><code class=
"classname">recursive_timed_mutex
</code></span></dt><dd>
390 The native handle type is
<code class=
"code">__gthread_recursive_mutex_t*
</code>
391 i.e.
<code class=
"code">pthread_mutex_t*
</code> for the
<code class=
"literal">posix
</code>
393 </dd><dt><span class=
"term"><code class=
"classname">condition_variable
</code></span></dt><dd>
394 The native handle type is
<code class=
"code">__gthread_cond_t*
</code> i.e.
395 <code class=
"code">pthread_cond_t*
</code> for the
<code class=
"literal">posix
</code>
399 <span class=
"emphasis"><em>30.6.1 [futures.overview]/
2</em></span>
400 <code class=
"code">launch
</code> is a scoped enumeration type with
401 overloaded operators to support bitmask operations. There are no
402 additional bitmask elements defined.
403 </p></div></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.2014"></a>C++
2014</h3></div></div></div><p>
404 In this implementation the
<code class=
"literal">-std=gnu++
14</code> or
405 <code class=
"literal">-std=c++
14</code> flag must be used to enable language
407 features. See
<a class=
"link" href=
"using.html#manual.intro.using.flags" title=
"Command Options">dialect
</a>
408 options. The pre-defined symbol
409 <code class=
"constant">__cplusplus
</code> is used to check for the
410 presence of the required flag.
412 This status table is based on the table of contents of ISO/IEC
14882:
2014.
413 Some subclauses are not shown in the table where the content is unchanged
414 since C++
11 and the implementation is complete.
416 This section describes the C++
14 and library TS support in mainline GCC,
417 not in any particular release.
418 </p><div class=
"table"><a id=
"table.cxx14_status"></a><p class=
"title"><strong>Table
1.3. C++
2014 Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ 2014 Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Section
</th><th align=
"left">Description
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr><td align=
"left">
419 <span class=
"emphasis"><em>18</em></span>
420 </td><td colspan=
"3" align=
"left">
421 <span class=
"emphasis"><em>Language support
</em></span>
422 </td></tr><tr><td align=
"left">18.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.2</td><td align=
"left">Types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3</td><td align=
"left">Implementation properties
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2</td><td align=
"left">Numeric Limits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2.3</td><td align=
"left">Class template
<code class=
"code">numeric_limits
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2.4</td><td align=
"left"><code class=
"code">numeric_limits
</code> members
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">18.3.2.5</td><td align=
"left"><code class=
"code">float_round_style
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">18.3.2.6</td><td align=
"left"><code class=
"code">float_denorm_style
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.2.7</td><td align=
"left"><code class=
"code">numeric_limits
</code> specializations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.3.3</td><td align=
"left">C Library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.4</td><td align=
"left">Integer types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.4.1</td><td align=
"left">Header
<code class=
"code"><cstdint
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">18.5</td><td align=
"left">Start and termination
</td><td align=
"left">Partial
</td><td align=
"left">C library dependency for quick_exit, at_quick_exit
</td></tr><tr><td align=
"left">18.6</td><td align=
"left">Dynamic memory management
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.7</td><td align=
"left">Type identification
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.7.1</td><td align=
"left">Class type_info
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.7.2</td><td align=
"left">Class bad_cast
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.7.3</td><td align=
"left">Class bad_typeid
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8</td><td align=
"left">Exception handling
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.1</td><td align=
"left">Class exception
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.2</td><td align=
"left">Class bad_exception
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.3</td><td align=
"left">Abnormal termination
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.4</td><td align=
"left"><code class=
"code">uncaught_exception
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.5</td><td align=
"left">Exception Propagation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.8.6</td><td align=
"left"><code class=
"code">nested_exception
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.9</td><td align=
"left">Initializer lists
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">18.9.1</td><td align=
"left">Initializer list constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.9.2</td><td align=
"left">Initializer list access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.9.3</td><td align=
"left">Initializer list range access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">18.10</td><td align=
"left">Other runtime support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
423 <span class=
"emphasis"><em>19</em></span>
424 </td><td colspan=
"3" align=
"left">
425 <span class=
"emphasis"><em>Diagnostics
</em></span>
426 </td></tr><tr><td align=
"left">19.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">19.2</td><td align=
"left">Exception classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.3</td><td align=
"left">Assertions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.4</td><td align=
"left">Error numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5</td><td align=
"left">System error support
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.1</td><td align=
"left">Class
<code class=
"code">error_category
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.2</td><td align=
"left">Class
<code class=
"code">error_code
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.3</td><td align=
"left">Class
<code class=
"code">error_condition
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.4</td><td align=
"left">Comparison operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">19.5.5</td><td align=
"left">Class
<code class=
"code">system_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
427 <span class=
"emphasis"><em>20</em></span>
428 </td><td colspan=
"3" align=
"left">
429 <span class=
"emphasis"><em>General utilities
</em></span>
430 </td></tr><tr><td align=
"left">20.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.2</td><td align=
"left">Utility components
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.1</td><td align=
"left">Operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.2</td><td align=
"left">swap
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.3</td><td align=
"left">exchange
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.4</td><td align=
"left">forward/move helpers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.2.5</td><td align=
"left">Function template
<code class=
"code">declval
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.3</td><td align=
"left">Pairs
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.4</td><td align=
"left">Tuples
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.5</td><td align=
"left">Compile-time integer sequences
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.5.2</td><td align=
"left">Class template
<code class=
"code">integer_sequence
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.5.3</td><td align=
"left">Alias template
<code class=
"code">make_integer_sequence
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.6</td><td align=
"left">Class template
<code class=
"code">bitset
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.7</td><td align=
"left">Memory
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8</td><td align=
"left">Smart pointers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.1</td><td align=
"left">Class template
<code class=
"code">unique_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.1.1</td><td align=
"left">Default deleters
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.1.2</td><td align=
"left"><code class=
"code">unique_ptr
</code> for single objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.1.3</td><td align=
"left"><code class=
"code">unique_ptr
</code> for array objects with a runtime length
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.1.4</td><td align=
"left"><code class=
"code">unique_ptr
</code> creation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.1.5</td><td align=
"left"><code class=
"code">unique_ptr
</code> specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2</td><td align=
"left">Shared-ownership pointers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2.1</td><td align=
"left">Class
<code class=
"code">bad_weak_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2.2</td><td align=
"left">Class template
<code class=
"code">shared_ptr
</code></td><td align=
"left">Y
</td><td align=
"left">
432 <a class=
"link" href=
"http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target=
"_top">boost::shared_ptr
</a>.
433 </td></tr><tr><td align=
"left">20.8.2.3</td><td align=
"left">Class template
<code class=
"code">weak_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2.4</td><td align=
"left">Class template
<code class=
"code">owner_less
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2.5</td><td align=
"left">Class template
<code class=
"code">enable_shared_from_this
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2.6</td><td align=
"left"><code class=
"code">shared_ptr
</code> atomic access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.2.7</td><td align=
"left">Smart pointer hash support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9</td><td align=
"left">Function objects
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.1</td><td align=
"left">Definitions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.2</td><td align=
"left">Requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.3</td><td align=
"left">Class template
<code class=
"code">reference_wrapper
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.4</td><td align=
"left">Arithmetic operation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.5</td><td align=
"left">Comparisons
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.8.6</td><td align=
"left">Logical operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.7</td><td align=
"left">Bitwise operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.8</td><td align=
"left">Negators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.9</td><td align=
"left">Function object binders
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.10</td><td align=
"left">Function template
<code class=
"code">mem_fn
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.11</td><td align=
"left">Polymorphic function wrappers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.9.11.1</td><td align=
"left">Class
<code class=
"code">bad_function_call
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">20.9.11.2</td><td align=
"left">Class template
<code class=
"code">function
</code></td><td align=
"left">Partial
</td><td align=
"left">Missing allocator support
</td></tr><tr><td align=
"left">20.9.12</td><td align=
"left">Class template
<code class=
"code">hash
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10</td><td align=
"left">Metaprogramming and type traits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.1</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.2</td><td align=
"left">Header
<code class=
"code"><type_traits
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.3</td><td align=
"left">Helper classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.4</td><td align=
"left">Unary Type Traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.5</td><td align=
"left">Type property queries
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.6</td><td align=
"left">Relationships between types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.10.7</td><td align=
"left">Transformations between types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.11</td><td align=
"left">Compile-time rational arithmetic
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12</td><td align=
"left">Time utilities
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.3</td><td align=
"left">Clock requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.4</td><td align=
"left">Time-related traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.5</td><td align=
"left">Class template
<code class=
"code">duration
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.5.8</td><td align=
"left">Suffixes for duration literals
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.6</td><td align=
"left">Class template
<code class=
"code">time_point
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.7</td><td align=
"left">Clocks
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.12.8</td><td align=
"left">Date and time functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.13</td><td align=
"left">Scoped allocator adaptor
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">20.14</td><td align=
"left">Class
<code class=
"code">type_index
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
434 <span class=
"emphasis"><em>21</em></span>
435 </td><td colspan=
"3" align=
"left">
436 <span class=
"emphasis"><em>Strings
</em></span>
437 </td></tr><tr><td align=
"left">21.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.2</td><td align=
"left">Character traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.3</td><td align=
"left">String classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.4</td><td align=
"left">Class template
<code class=
"code">basic_string
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.5</td><td align=
"left">Numeric Conversions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.6</td><td align=
"left">Hash support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.7</td><td align=
"left">Suffixes for
<code class=
"code">basic_string
</code> literals
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">21.7</td><td align=
"left">Null-terminated sequence utilities
</td><td align=
"left">Partial
</td><td align=
"left">C library dependency.
</td></tr><tr><td align=
"left">
438 <span class=
"emphasis"><em>22</em></span>
439 </td><td colspan=
"3" align=
"left">
440 <span class=
"emphasis"><em>Localization
</em></span>
441 </td></tr><tr><td align=
"left">22.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.2</td><td align=
"left">Header
<code class=
"code"><locale
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3</td><td align=
"left">Locales
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4</td><td align=
"left">Standard
<code class=
"code">locale
</code> categories
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.5</td><td align=
"left">Standard code conversion facets
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.6</td><td align=
"left">C Library Locales
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
442 <span class=
"emphasis"><em>23</em></span>
443 </td><td colspan=
"3" align=
"left">
444 <span class=
"emphasis"><em>Containers
</em></span>
445 </td></tr><tr><td align=
"left">23.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2</td><td align=
"left">Container requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.3</td><td align=
"left">Sequence containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.4</td><td align=
"left">Associative containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.5</td><td align=
"left">Unordered associative containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.6</td><td align=
"left">Container adaptors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
446 <span class=
"emphasis"><em>24</em></span>
447 </td><td colspan=
"3" align=
"left">
448 <span class=
"emphasis"><em>Iterators
</em></span>
449 </td></tr><tr><td align=
"left">24.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.2</td><td align=
"left">Iterator requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.3</td><td align=
"left">Header
<code class=
"code"><iterator
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4</td><td align=
"left">Iterator primitives
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.5</td><td align=
"left">Iterator adaptors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.6</td><td align=
"left">Stream iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.7</td><td align=
"left">range access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
450 <span class=
"emphasis"><em>25</em></span>
451 </td><td colspan=
"3" align=
"left">
452 <span class=
"emphasis"><em>Algorithms
</em></span>
453 </td></tr><tr><td align=
"left">25.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">25.2</td><td align=
"left">Non-modifying sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.3</td><td align=
"left">Mutating sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.4</td><td align=
"left">Sorting and related operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.5</td><td align=
"left">C library algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
454 <span class=
"emphasis"><em>26</em></span>
455 </td><td colspan=
"3" align=
"left">
456 <span class=
"emphasis"><em>Numerics
</em></span>
457 </td></tr><tr><td align=
"left">26.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.2</td><td align=
"left">Numeric type requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3</td><td align=
"left">The floating-point environment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4</td><td align=
"left">Complex numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4.10</td><td align=
"left">Suffixes for complex number literals
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5</td><td align=
"left">Random number generation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6</td><td align=
"left">Numeric arrays
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.7</td><td align=
"left">Generalized numeric operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.8</td><td align=
"left">C Library
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
458 <span class=
"emphasis"><em>27</em></span>
459 </td><td colspan=
"3" align=
"left">
460 <span class=
"emphasis"><em>Input/output library
</em></span>
461 </td></tr><tr><td align=
"left">27.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2</td><td align=
"left">Iostreams requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2.1</td><td align=
"left">Imbue Limitations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2.2</td><td align=
"left">Positioning Type Limitations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">27.2.3</td><td align=
"left">Thread safety
</td><td align=
"left">Partial
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.3</td><td align=
"left">Forward declarations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.4</td><td align=
"left">Standard iostream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.5</td><td align=
"left">Iostreams base classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.6</td><td align=
"left">Stream buffers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.7</td><td align=
"left">Formatting and manipulators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.7.6</td><td align=
"left">Quoted manipulators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.8</td><td align=
"left">String-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.9</td><td align=
"left">File-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
462 <span class=
"emphasis"><em>28</em></span>
463 </td><td colspan=
"3" align=
"left">
464 <span class=
"emphasis"><em>Regular expressions
</em></span>
465 </td></tr><tr><td align=
"left">28.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.3</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.4</td><td align=
"left">Header
<code class=
"code"><regex
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.5</td><td align=
"left">Namespace
<code class=
"code">std::regex_constants
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.6</td><td align=
"left">Class
<code class=
"code">regex_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">28.7</td><td align=
"left">Class template
<code class=
"code">regex_traits
</code></td><td align=
"left">Partial
</td><td align=
"left"><code class=
"code">transform_primary
</code> is not correctly implemented
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.8</td><td align=
"left">Class template
<code class=
"code">basic_regex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.9</td><td align=
"left">Class template
<code class=
"code">sub_match
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.10</td><td align=
"left">Class template
<code class=
"code">match_results
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.11</td><td align=
"left">Regular expression algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.12</td><td align=
"left">Regular expression Iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.13</td><td align=
"left">Modified ECMAScript regular expression grammar
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
466 <span class=
"emphasis"><em>29</em></span>
467 </td><td colspan=
"3" align=
"left">
468 <span class=
"emphasis"><em>Atomic operations
</em></span>
469 </td></tr><tr><td align=
"left">29.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.2</td><td align=
"left">Header
<code class=
"code"><atomic
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.3</td><td align=
"left">Order and consistency
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.4</td><td align=
"left">Lock-free property
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.5</td><td align=
"left">Atomic types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.6</td><td align=
"left">Operations on atomic types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.7</td><td align=
"left">Flag Type and operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8</td><td align=
"left">Fences
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
470 <span class=
"emphasis"><em>30</em></span>
471 </td><td colspan=
"3" align=
"left">
472 <span class=
"emphasis"><em>Thread support
</em></span>
473 </td></tr><tr><td align=
"left">30.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.2</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.3</td><td align=
"left">Threads
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">30.3.1</td><td align=
"left">Class
<code class=
"code">thread
</code></td><td align=
"left">Partial
</td><td align=
"left"><code class=
"code">thread::id
</code> comparisons not well-defined
</td></tr><tr><td align=
"left">30.3.2</td><td align=
"left">Namespace
<code class=
"code">this_thread
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4</td><td align=
"left">Mutual exclusion
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1</td><td align=
"left">Mutex requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.2</td><td align=
"left">Mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.2.1</td><td align=
"left">Class
<code class=
"code">mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.2.2</td><td align=
"left">Class
<code class=
"code">recursive_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.3</td><td align=
"left">Timed mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.3.1</td><td align=
"left">Class
<code class=
"code">timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.3.2</td><td align=
"left">Class
<code class=
"code">recursive_timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.4</td><td align=
"left">Shared timed mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.1.4.1</td><td align=
"left">Class
<code class=
"code">shared_timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.2</td><td align=
"left">Locks
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.2.1</td><td align=
"left">Class template
<code class=
"code">lock_guard
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.2.2</td><td align=
"left">Class template
<code class=
"code">unique_lock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.2.3</td><td align=
"left">Class template
<code class=
"code">shared_lock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.3</td><td align=
"left">Generic locking algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.4</td><td align=
"left">Call once
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.4.4.1</td><td align=
"left">Struct
<code class=
"code">once_flag
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">30.4.4.2</td><td align=
"left">Function
<code class=
"code">call_once
</code></td><td align=
"left">Broken
</td><td align=
"left">See
<a class=
"link" href=
"https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146" target=
"_top">PR
475 </td></tr><tr><td align=
"left">30.5</td><td align=
"left">Condition variables
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.5.1</td><td align=
"left">Class
<code class=
"code">condition_variable
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.5.2</td><td align=
"left">Class
<code class=
"code">condition_variable_any
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6</td><td align=
"left">Futures
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.1</td><td align=
"left">Overview
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.2</td><td align=
"left">Error handling
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.3</td><td align=
"left">Class
<code class=
"code">future_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.4</td><td align=
"left">Shared state
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.5</td><td align=
"left">Class template
<code class=
"code">promise
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.6</td><td align=
"left">Class template
<code class=
"code">future
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.7</td><td align=
"left">Class template
<code class=
"code">shared_future
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.8</td><td align=
"left">Function template
<code class=
"code">async
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6.9</td><td align=
"left">Class template
<code class=
"code">packaged_task
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
476 <span class=
"emphasis"><em>Appendix D
</em></span>
477 </td><td colspan=
"3" align=
"left">
478 <span class=
"emphasis"><em>Compatibility features
</em></span>
479 </td></tr><tr><td align=
"left">D
.1</td><td align=
"left">Increment operator with
<code class=
"code">bool
</code> operand
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.2</td><td align=
"left"><code class=
"code">register
</code> keyword
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.3</td><td align=
"left">Implicit declaration of copy functions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.4</td><td align=
"left">Dynamic exception specifications
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">D
.5</td><td align=
"left">C standard library headers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.6</td><td align=
"left">Old iostreams members
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.7</td><td align=
"left"><code class=
"code">char*
</code> streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.8</td><td align=
"left">Function objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.9</td><td align=
"left">Binders
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.10</td><td align=
"left"><code class=
"code">auto_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.11</td><td align=
"left">Violating exception-specifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.12</td><td align=
"left">Random shuffle
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr></tbody></table></div></div><br class=
"table-break" /><div class=
"table"><a id=
"table.ts_status"></a><p class=
"title"><strong>Table
1.4. C++ Technical Specifications Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ Technical Specifications Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Paper
</th><th align=
"left">Title
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr bgcolor=
"#C8B0B0"><td align=
"left">
480 <a class=
"link" href=
"http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3662.html" target=
"_top">
483 </td><td align=
"left">C++ Dynamic Arrays
</td><td align=
"left">N
</td><td align=
"left">Array Extensions TS
</td></tr><tr><td align=
"left">
484 <a class=
"link" href=
"http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3793.html" target=
"_top">
487 </td><td align=
"left">A proposal to add a utility class to represent optional objects
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
488 <a class=
"link" href=
"http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3804.html" target=
"_top">
491 </td><td align=
"left">Any library proposal
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">
492 <a class=
"link" href=
"http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n3866.html" target=
"_top">
495 </td><td align=
"left">Invocation type traits, but dropping function_call_operator.
</td><td align=
"left">N
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
496 <a class=
"link" href=
"" target=
"_top">
499 </td><td align=
"left">Faster string searching (Boyer-Moore et al.)
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
500 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3915.pdf" target=
"_top">
503 </td><td align=
"left">apply() call a function with arguments from a tuple
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">
504 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3916.pdf" target=
"_top">
507 </td><td align=
"left">Polymorphic memory resources
</td><td align=
"left">Partial (missing pool resource and buffer resource classes)
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
508 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3920.html" target=
"_top">
511 </td><td align=
"left">Extending shared_ptr to support arrays
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
512 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3921.html" target=
"_top">
515 </td><td align=
"left"><code class=
"code">string_view
</code>: a non-owning reference to a string
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
516 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3925.pdf" target=
"_top">
519 </td><td align=
"left">A sample proposal
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
520 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3932.htm" target=
"_top">
523 </td><td align=
"left">Variable Templates For Type Traits
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals TS
</td></tr><tr><td align=
"left">
524 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4100.pdf" target=
"_top">
527 </td><td align=
"left">File System
</td><td align=
"left">Y
</td><td align=
"left">
529 <a class=
"link" href=
"using_dynamic_or_shared.html#manual.intro.using.linkage.experimental" title=
"Experimental Library Extensions">
530 <code class=
"option">-lstdc++fs
</code></a>
531 </td></tr></tbody></table></div></div><br class=
"table-break" /></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.2017"></a>C++
2017</h3></div></div></div><p>
532 In this implementation the
<code class=
"literal">-std=gnu++
17</code> or
533 <code class=
"literal">-std=c++
17</code> flag must be used to enable language
535 features. See
<a class=
"link" href=
"using.html#manual.intro.using.flags" title=
"Command Options">dialect
</a>
536 options. The pre-defined symbol
537 <code class=
"constant">__cplusplus
</code> is used to check for the
538 presence of the required flag.
540 This section describes the C++
17 and library TS support in mainline GCC,
541 not in any particular release.
543 The following table lists new library features that are included in
544 the C++
17 standard. The
"Proposal" column provides a link to the
545 ISO C++ committee proposal that describes the feature, while the
"Status"
546 column indicates the first version of GCC that contains an implementation of
547 this feature (if it has been implemented).
548 The
"SD-6 Feature Test" column shows the corresponding macro or header from
549 <a class=
"link" href=
"https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" target=
"_top">SD-
6:
550 Feature-testing recommendations for C++
</a>.
551 </p><div class=
"table"><a id=
"table.cxx17_features"></a><p class=
"title"><strong>Table
1.5. C++
2017 Library Features
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ 2017 Library Features" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Library Feature
</th><th align=
"left">Proposal
</th><th align=
"left">Status
</th><th align=
"left">SD-
6 Feature Test
</th></tr></thead><tbody><tr bgcolor=
"#C8B0B0"><td align=
"left">
552 <code class=
"code">constexpr std::hardware_{constructive,destructive}_interference_size
</code>
553 </td><td align=
"left">
554 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html" target=
"_top">
557 </td><td align=
"center"> No
</td><td align=
"left"> <code class=
"code">__cpp_lib_hardware_interference_size
>=
201603</code> </td></tr><tr><td align=
"left"> Core Issue
1776: Replacement of class objects containing reference members
</td><td align=
"left">
558 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0137r1.html" target=
"_top">
561 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_launder
>=
201606</code> </td></tr><tr><td align=
"left">Wording for
<code class=
"code">std::uncaught_exceptions
</code></td><td align=
"left">
562 <a class=
"link" href=
"http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf" target=
"_top">
565 </td><td align=
"center">6.1</td><td align=
"left"><code class=
"code">__cpp_lib_uncaught_exceptions
>=
201411</code></td></tr><tr><td align=
"left"> C++
17 should refer to C11 instead of C99
</td><td align=
"left">
566 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0063r3.html" target=
"_top">
569 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Variant: a type-safe union for C++
17 </td><td align=
"left">
570 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html" target=
"_top">
573 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__has_include(
<variant
>)
</code>,
574 <code class=
"code">__cpp_lib_variant
>=
201603</code>
575 (since
7.3, see Note
1)
576 </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components:
<code class=
"code">optional
</code> </td><td align=
"left">
577 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
580 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__has_include(
<optional
>)
</code>,
581 <code class=
"code">__cpp_lib_optional
>=
201603</code>
582 (since
7.3, see Note
1)
583 </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components:
<code class=
"code">any
</code> </td><td align=
"left">
584 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
587 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__has_include(
<any
>)
</code>,
588 <code class=
"code">__cpp_lib_any
>=
201603</code>
589 (since
7.3, see Note
1)
590 </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components:
<code class=
"code">string_view
</code> </td><td align=
"left">
591 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
594 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__has_include(
<string_view
>)
</code>,
595 <code class=
"code">__cpp_lib_string_view
>=
201603</code>
596 (since
7.3, see Note
1)
597 </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components:
<code class=
"code">memory_resource
</code> </td><td align=
"left">
598 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
601 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__has_include(
<memory_resource
>)
</code>,
602 <code class=
"code">__cpp_lib_memory_resource
>=
201603</code>
603 </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components:
<code class=
"code">apply
</code> </td><td align=
"left">
604 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
607 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_apply
>=
201603</code> </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components:
<code class=
"code">shared_ptr
<T[]
></code> </td><td align=
"left">
608 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
611 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_shared_ptr_arrays
>=
201603</code> </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components: Searchers
</td><td align=
"left">
612 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
615 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_boyer_moore_searcher
>=
201603</code> </td></tr><tr><td align=
"left"> Library Fundamentals V1 TS Components: Sampling
</td><td align=
"left">
616 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target=
"_top">
619 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_sample
>=
201603</code> </td></tr><tr><td align=
"left"> Constant View: A proposal for a
<code class=
"code">std::as_const
</code> helper function template
</td><td align=
"left">
620 <a class=
"link" href=
"" target=
"_top">
623 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_as_const
>=
201510 </code></td></tr><tr><td align=
"left"> Improving pair and tuple
</td><td align=
"left">
624 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387" target=
"_top">
627 </td><td align=
"center"> 6.1 </td><td align=
"left"> N/A
</td></tr><tr><td align=
"left"> <code class=
"code">make_from_tuple
</code>: apply for construction
</td><td align=
"left">
628 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0209r2.pdf" target=
"_top">
631 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_make_from_tuple
>=
201606 </code></td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">
632 Removing
<code class=
"code">auto_ptr
</code>,
<code class=
"code">random_shuffle()
</code>,
633 And Old
<code class=
"code"><functional
></code> Stuff
634 </td><td align=
"left">
635 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm" target=
"_top">
638 </td><td align=
"center">No (kept for backwards compatibility)
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Deprecating Vestigial Library Parts in C++
17 </td><td align=
"left">
639 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html" target=
"_top">
642 </td><td align=
"center"> No (kept for backwards compatibility)
</td><td align=
"left"> </td></tr><tr><td align=
"left"> Making
<code class=
"code">std::owner_less
</code> more flexible
</td><td align=
"left">
643 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0074r0.html" target=
"_top">
646 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_transparent_operators
>=
201510 </code></td></tr><tr><td align=
"left"> <code class=
"code">std::addressof
</code> should be constexpr
</td><td align=
"left">
647 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0304r0.html#2296" target=
"_top">
650 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_addressof_constexpr
>=
201603 </code></td></tr><tr><td align=
"left"> Safe conversions in
<code class=
"code">unique_ptr
<T[]
></code> </td><td align=
"left">
651 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4089.pdf" target=
"_top">
654 </td><td align=
"center"> 6 </td><td align=
"left"> </td></tr><tr><td align=
"left"> LWG
2228: Missing SFINAE rule in unique_ptr templated assignment
</td><td align=
"left">
655 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366.html" target=
"_top">
658 </td><td align=
"center"> 6 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Re-enabling
<code class=
"code">shared_from_this
</code></td><td align=
"left">
659 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0033r1.html" target=
"_top">
662 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code">__cpp_lib_enable_shared_from_this
>=
201603</code></td></tr><tr><td align=
"left"> A proposal to add
<code class=
"code">invoke
</code> function template
</td><td align=
"left">
663 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html" target=
"_top">
666 </td><td align=
"center"> 6.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_invoke
>=
201411 </code></td></tr><tr><td align=
"left">TriviallyCopyable
<code class=
"code">reference_wrapper
</code> </td><td align=
"left">
667 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277.html" target=
"_top">
670 </td><td align=
"center"> 5.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Adopt
<code class=
"code">not_fn
</code> from Library Fundamentals
2 for C++
17 </td><td align=
"left">
671 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0005r4.html" target=
"_top">
674 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code">__cpp_lib_not_fn
>=
201603</code></td></tr><tr><td align=
"left"> Fixes for
<code class=
"code">not_fn
</code> </td><td align=
"left">
675 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0358r1.html" target=
"_top">
678 </td><td align=
"center"> 7.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Fixing a design mistake in the searchers interface in Library Fundamentals
</td><td align=
"left">
679 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0253r1.pdf" target=
"_top">
682 </td><td align=
"center"> 7.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Extending memory management tools
</td><td align=
"left">
683 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html" target=
"_top">
686 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code">__cpp_lib_raw_memory_algorithms
>=
201606L</code></td></tr><tr><td align=
"left"> <code class=
"code">shared_ptr::weak_type
</code></td><td align=
"left">
687 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html" target=
"_top">
690 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_shared_ptr_weak_type
>=
201606</code></td></tr><tr><td align=
"left">Transformation Trait Alias
<code class=
"code">void_t
</code></td><td align=
"left">
691 <a class=
"link" href=
"http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf" target=
"_top">
694 </td><td align=
"center">6.1</td><td align=
"left"><code class=
"code"> __cpp_lib_void_t
>=
201411</code></td></tr><tr><td align=
"left"> Wording for
<code class=
"code">bool_constant
</code>, revision
1 </td><td align=
"left">
695 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4389.html" target=
"_top">
698 </td><td align=
"center">6.1</td><td align=
"left"><code class=
"code"> __cpp_lib_bool_constant
>=
201505</code></td></tr><tr><td align=
"left"> Adopt Type Traits Variable Templates from Library Fundamentals TS for C++
17</td><td align=
"left">
699 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0006r0.html" target=
"_top">
702 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_type_trait_variable_templates
>=
201510 </code></td></tr><tr><td align=
"left"> Logical Operator Type Traits
</td><td align=
"left">
703 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0013r1.html" target=
"_top">
706 </td><td align=
"center"> 6.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_logical_traits
>=
201510 </code></td></tr><tr><td align=
"left"> Adding [nothrow-]swappable traits
</td><td align=
"left">
707 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0185r1.html" target=
"_top">
710 </td><td align=
"center"> 7 (
<code class=
"code">__is_swappable
</code> available since
6.1)
</td><td align=
"left"><code class=
"code"> __cpp_lib_is_swappable
>=
201603 </code></td></tr><tr><td align=
"left"> <code class=
"code">is_callable
</code>, the missing INVOKE related trait
</td><td align=
"left">
711 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0077r2.html" target=
"_top">
714 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_is_invocable
>=
201703 </code></td></tr><tr><td align=
"left"> has_unique_object_representations
</td><td align=
"left">
715 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0258r2.html" target=
"_top">
718 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_has_unique_object_representations
>=
201606 </code></td></tr><tr><td align=
"left"> Polishing
<code class=
"code"><chrono
></code> </td><td align=
"left">
719 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r1.html" target=
"_top">
722 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_chrono
>=
201510 </code></td></tr><tr><td align=
"left"> Adding more constexpr to
<code class=
"code"><chrono
></code> </td><td align=
"left">
723 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0505r0.html" target=
"_top">
726 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_chrono
>=
201611 </code>
727 (since
7.3, see Note
2)
728 </td></tr><tr><td align=
"left"> Constexpr for
<code class=
"code">std::char_traits
</code> </td><td align=
"left">
729 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0426r1.html" target=
"_top">
732 </td><td align=
"center"> 8.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_constexpr_char_traits
>=
201611 </code></td></tr><tr><td align=
"left"> Integrating
<code class=
"code">std::string_view
</code> and
<code class=
"code">std::string
</code> </td><td align=
"left">
733 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf" target=
"_top">
736 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> </code></td></tr><tr><td align=
"left"> Give 'std::string' a non-const '.data()' member function
</td><td align=
"left">
737 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0272r1.html" target=
"_top">
740 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> </code></td></tr><tr><td align=
"left">Cleaning-up noexcept in the Library
</td><td align=
"left">
741 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf" target=
"_top">
744 </td><td align=
"center">6.1</td><td align=
"left"><code class=
"code"> __cpp_lib_allocator_traits_is_always_equal
>=
201411 </code></td></tr><tr><td align=
"left">Contiguous Iterators
</td><td align=
"left">
745 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.html" target=
"_top">
748 </td><td align=
"center">N/A
</td><td align=
"left"> </td></tr><tr><td align=
"left"> Minimal incomplete type support for standard containers
</td><td align=
"left">
749 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html" target=
"_top">
752 </td><td align=
"center"> 3.0 </td><td align=
"left"><code class=
"code"> __cpp_lib_incomplete_container_elements
>=
201505 </code>
753 (since
6.2, see Note
2)
754 </td></tr><tr><td align=
"left"> Emplace return type
</td><td align=
"left">
755 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf" target=
"_top">
758 </td><td align=
"center"> 7.1 </td><td align=
"left"> </td></tr><tr><td align=
"left">Improved insertion interface for unique-key maps
</td><td align=
"left">
759 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html" target=
"_top">
762 </td><td align=
"center"> 6.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_map_try_emplace
>=
201411</code>,
763 <code class=
"code"> __cpp_lib_unordered_map_try_emplace
>=
201411</code>
764 </td></tr><tr><td align=
"left"> Splicing Maps and Sets
</td><td align=
"left">
765 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf" target=
"_top">
768 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_node_extract
>=
201606 </code></td></tr><tr><td align=
"left">Non-member
<code class=
"code">size()
</code> and more
</td><td align=
"left">
769 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf" target=
"_top">
772 </td><td align=
"center"> 6.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_nonmember_container_access
>=
201411 </code></td></tr><tr><td align=
"left"> A Proposal to Add Constexpr Modifiers to
<code class=
"code">reverse_iterator
</code>,
<code class=
"code">move_iterator
</code>,
<code class=
"code">array
</code> and Range Access
</td><td align=
"left">
773 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html" target=
"_top">
776 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_array_constexpr
>=
201603 </code></td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left"> The Parallelism TS Should be Standardized
</td><td align=
"left">
777 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html" target=
"_top">
780 </td><td align=
"center"> 9.1 </td><td align=
"left"><code class=
"code"> __has_include(
<execution
>)
</code>,
781 <code class=
"code"> __cpp_lib_execution
>=
201603 </code>,
782 <code class=
"code"> __cpp_lib_parallel_algorithm
>=
201603 </code>
783 (requires linking with
<code class=
"code">-ltbb
</code>, see Note
3)
784 </td></tr><tr><td align=
"left"> An algorithm to
"clamp" a value between a pair of boundary values
</td><td align=
"left">
785 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0025r0.html" target=
"_top">
788 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_clamp
>=
201603 </code></td></tr><tr><td align=
"left"> Adopt Selected Library Fundamentals V2 Components for C++
17 </td><td align=
"left">
789 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0295r0.pdf" target=
"_top">
792 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_gcd_lcm
>=
201606 </code></td></tr><tr><td align=
"left"> Proposal to Introduce a
3-Argument Overload to
<code class=
"code">std::hypot
</code> </td><td align=
"left">
793 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0030r1.pdf" target=
"_top">
796 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_hypot
>=
201603 </code></td></tr><tr><td align=
"left"> Mathematical Special Functions for C++
17 </td><td align=
"left">
797 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf" target=
"_top">
800 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_math_special_functions
>=
201603 </code>
802 </td></tr><tr><td align=
"left">Adopt the File System TS for C++
17 </td><td align=
"left">
803 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html" target=
"_top">
806 </td><td align=
"center"> 8.1 </td><td align=
"left"><code class=
"code"> __has_include(
<filesystem
>)
</code>,
807 <code class=
"code"> __cpp_lib_filesystem
>=
201603 </code>
808 (GCC
8.x requires linking with
<code class=
"code">-lstdc++fs
</code>)
809 </td></tr><tr><td align=
"left"> Relative Paths for Filesystem
</td><td align=
"left">
810 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0219r1.html" target=
"_top">
813 </td><td align=
"center"> 8.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_filesystem
>=
201606 </code></td></tr><tr><td align=
"left"> Adapting string_view by filesystem paths
</td><td align=
"left">
814 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0392r0.pdf" target=
"_top">
817 </td><td align=
"center"> 8.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_filesystem
>=
201606 </code></td></tr><tr><td align=
"left"> Directory Entry Caching for Filesystem
</td><td align=
"left">
818 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0317r1.html" target=
"_top">
821 </td><td align=
"center"> 8.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_filesystem
>=
201703 </code></td></tr><tr><td align=
"left"> constexpr
<code class=
"code">atomic
<T
>::is_always_lock_free
</code> </td><td align=
"left">
822 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0152r1.html" target=
"_top">
825 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_atomic_is_always_lock_free
>=
201603 </code></td></tr><tr><td align=
"left">A proposal to add
<code class=
"code">shared_mutex
</code> (untimed) (Revision
4)
</td><td align=
"left">
826 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html" target=
"_top">
829 </td><td align=
"center"> 6.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_shared_mutex
>=
201505 </code></td></tr><tr><td align=
"left"> Variadic
<code class=
"code">lock_guard
</code> (Rev.
5)
</td><td align=
"left">
830 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0156r2.html" target=
"_top">
833 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_scoped_lock
>=
201703 </code></td></tr><tr><td align=
"left"> A byte type definition
</td><td align=
"left">
834 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0298r3.pdf" target=
"_top">
837 </td><td align=
"center"> 7.1 </td><td align=
"left"><code class=
"code"> __cpp_lib_byte
>=
201603 </code> (since
7.3, see Note
2)
838 </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left"> Elementary string conversions
</td><td align=
"left">
839 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html" target=
"_top">
842 </td><td align=
"center"> 8.1 (only integral types supported)
</td><td align=
"left"><code class=
"code"> __has_include(
<charconv
>)
</code>
843 <code class=
"code"> __cpp_lib_to_chars
>=
201611 </code></td></tr><tr><td align=
"left"> Homogeneous interface for variant, any and optional
</td><td align=
"left">
844 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf" target=
"_top">
847 </td><td align=
"center"> 7.1 </td><td align=
"left">
848 <code class=
"code"> __cpp_lib_any
>=
201606 </code>,
849 <code class=
"code"> __cpp_lib_optional
>=
201606 </code>,
850 <code class=
"code"> __cpp_lib_variant
>=
201606 </code>
851 </td></tr><tr><td align=
"left"> Making Optional Greater Equal Again
</td><td align=
"left">
852 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf" target=
"_top">
855 </td><td align=
"center"> 7.1 </td><td align=
"left"> <code class=
"code"> __cpp_lib_optional
>=
201606 </code> </td></tr></tbody></table></div></div><br class=
"table-break" /><p>
856 Note
1: This feature is supported in GCC
7.1 and
7.2 but before GCC
7.3 the
857 <code class=
"code">__cpp_lib
</code> macro is not defined, and compilation will fail if the
858 header is included without using
<code class=
"option">-std
</code> to enable C++
17 support.
860 Note
2: This feature is supported in older releases but the
861 <code class=
"code">__cpp_lib
</code> macro is not defined to the right value
862 (or not defined at all) until the version shown in parentheses.
864 Note
3: The Parallel Algorithms have an external dependency on Intel TBB
2018
865 or later. If the
<code class=
"filename"><execution
></code>
866 header is included then
<code class=
"code">-ltbb
</code> must be used to link to TBB.
868 Note
4: The mathematical special functions are enabled in C++
17 mode from
869 GCC
7.1 onwards. For GCC
6.x or for C++
11/C++
14 define
870 <code class=
"code">__STDCPP_WANT_MATH_SPEC_FUNCS__
</code> to a non-zero value
871 and test for
<code class=
"code">__STDCPP_MATH_SPEC_FUNCS__
>=
201003L</code>.
873 The following status table is based on the table of contents of
875 Some subclauses are not shown in the table where the content is unchanged
876 since C++
14 and the implementation is complete.
877 </p><div class=
"table"><a id=
"table.cxx17_status"></a><p class=
"title"><strong>Table
1.6. C++
2017 Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ 2017 Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Section
</th><th align=
"left">Description
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr><td align=
"left">
878 <span class=
"emphasis"><em>21</em></span>
879 </td><td colspan=
"3" align=
"left">
880 <span class=
"emphasis"><em>Language support
</em></span>
881 </td></tr><tr><td align=
"left">21.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.2</td><td align=
"left">Common definitions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.3</td><td align=
"left">Implementation properties
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.3.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.3.2</td><td align=
"left">Header
<code class=
"code"><limits
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.3.3</td><td align=
"left">Floating-point type properties
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">21.3.3.1</td><td align=
"left"><code class=
"code">float_round_style
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">21.3.3.2</td><td align=
"left"><code class=
"code">float_denorm_style
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.3.4</td><td align=
"left">Class template
<code class=
"code">numeric_limits
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.3.5</td><td align=
"left">Header
<code class=
"code"><climits
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.3.6</td><td align=
"left">Header
<code class=
"code"><cfloat
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.4</td><td align=
"left">Integer types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.4.1</td><td align=
"left">Header
<code class=
"code"><cstdint
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">21.5</td><td align=
"left">Start and termination
</td><td align=
"left">Partial
</td><td align=
"left">C library dependency for quick_exit, at_quick_exit
</td></tr><tr><td align=
"left">21.6</td><td align=
"left">Dynamic memory management
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.6.1</td><td align=
"left">Header
<code class=
"code"><new
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.6.2</td><td align=
"left">Storage allocation and deallocation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.6.3</td><td align=
"left">Storage allocation errors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.6.4</td><td align=
"left">Pointer optimization barrier
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">21.6.5</td><td align=
"left">Hardware interference size
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.7</td><td align=
"left">Type identification
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.8</td><td align=
"left">Exception handling
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.8.1</td><td align=
"left">Header
<code class=
"code"><exception
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">21.8.2</td><td align=
"left">Class exception
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.8.3</td><td align=
"left">Class bad_exception
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.8.4</td><td align=
"left">Abnormal termination
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.8.5</td><td align=
"left"><code class=
"code">uncaught_exceptions
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.8.6</td><td align=
"left">Exception Propagation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.8.7</td><td align=
"left"><code class=
"code">nested_exception
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.9</td><td align=
"left">Initializer lists
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">21.10</td><td align=
"left">Other runtime support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
882 <span class=
"emphasis"><em>22</em></span>
883 </td><td colspan=
"3" align=
"left">
884 <span class=
"emphasis"><em>Diagnostics
</em></span>
885 </td></tr><tr><td align=
"left">22.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">22.2</td><td align=
"left">Exception classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.3</td><td align=
"left">Assertions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.4</td><td align=
"left">Error numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">22.5</td><td align=
"left">System error support
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">
886 <span class=
"emphasis"><em>23</em></span>
887 </td><td colspan=
"3" align=
"left">
888 <span class=
"emphasis"><em>General utilities
</em></span>
889 </td></tr><tr><td align=
"left">23.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2</td><td align=
"left">Utility components
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.1</td><td align=
"left">Header
<code class=
"code"><utility
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.2</td><td align=
"left">Operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.3</td><td align=
"left"><code class=
"code">swap
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.4</td><td align=
"left"><code class=
"code">exchange
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.5</td><td align=
"left">Forward/move helpers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.6</td><td align=
"left">Function template
<code class=
"code">as_const
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.2.7</td><td align=
"left">Function template
<code class=
"code">declval
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">23.2.8</td><td align=
"left">Primitive numeric output conversion
</td><td align=
"left">Partial
</td><td align=
"left">Only integer types supported, not floating-point types
</td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">23.2.9</td><td align=
"left">Primitive numeric input conversion
</td><td align=
"left">Partial
</td><td align=
"left">Only integer types supported, not floating-point types
</td></tr><tr><td align=
"left">23.3</td><td align=
"left">Compile-time integer sequences
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.4</td><td align=
"left">Pairs
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.5</td><td align=
"left">Tuples
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.6</td><td align=
"left">Optional objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.7</td><td align=
"left">Variants
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.8</td><td align=
"left">Storage for any type
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.9</td><td align=
"left">Bitsets
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10</td><td align=
"left">Memory
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.2</td><td align=
"left">Header
<code class=
"code"><memory
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.3</td><td align=
"left">Pointer traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.4</td><td align=
"left">Pointer safety
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.5</td><td align=
"left">Align
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.6</td><td align=
"left">Allocator argument tag
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.7</td><td align=
"left"><code class=
"code">uses_allocator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.8</td><td align=
"left">Allocator traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.9</td><td align=
"left">The default allocator
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.10</td><td align=
"left">Specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.10.11</td><td align=
"left">C library memory allocation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.11</td><td align=
"left">Smart pointers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.11.1</td><td align=
"left">Class template
<code class=
"code">unique_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.11.2</td><td align=
"left">Shared-ownership pointers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.12</td><td align=
"left">Memory resources
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.12.1</td><td align=
"left">Header
<code class=
"code"><memory_resource
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.12.2</td><td align=
"left">Class
<code class=
"code">memory_resource
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.12.3</td><td align=
"left">Class template
<code class=
"code">polymorphic_allocator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.12.4</td><td align=
"left">Access to program-wide
<code class=
"code">memory_resource
</code> objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.12.5</td><td align=
"left">Pool resource classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.12.6</td><td align=
"left">Class
<code class=
"code">monotonic_buffer_resource
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.13</td><td align=
"left">Class template
<code class=
"code">scoped_allocator_adaptor
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14</td><td align=
"left">Function objects
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.1</td><td align=
"left">Header
<code class=
"code"><functional
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.2</td><td align=
"left">Definitions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.3</td><td align=
"left">Requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.4</td><td align=
"left">Function template
<code class=
"code">invoke
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.5</td><td align=
"left">Class template
<code class=
"code">reference_wrapper
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.6</td><td align=
"left">Arithmetic operation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.7</td><td align=
"left">Comparisons
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.8</td><td align=
"left">Logical operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.9</td><td align=
"left">Bitwise operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.10</td><td align=
"left">Function template
<code class=
"code">not_fn
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.11</td><td align=
"left">Function object binders
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.12</td><td align=
"left">Function template
<code class=
"code">mem_fn
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.13</td><td align=
"left">Polymorphic function wrappers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.14</td><td align=
"left">Searchers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.14.15</td><td align=
"left">Class template
<code class=
"code">hash
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.15</td><td align=
"left">Metaprogramming and type traits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.1</td><td align=
"left">Requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.2</td><td align=
"left">Header
<code class=
"code"><type_traits
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.3</td><td align=
"left">Helper classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.4</td><td align=
"left">Unary Type Traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.5</td><td align=
"left">Type property queries
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.6</td><td align=
"left">Relationships between types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.7</td><td align=
"left">Transformations between types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.15.8</td><td align=
"left">Logical operator traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.16</td><td align=
"left">Compile-time rational arithmetic
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.2</td><td align=
"left">Header
<code class=
"code"><chrono
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.17</td><td align=
"left">Time utilities
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.3</td><td align=
"left">Clock requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.4</td><td align=
"left">Time-related traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.5</td><td align=
"left">Class template
<code class=
"code">duration
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.6</td><td align=
"left">Class template
<code class=
"code">time_point
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.7</td><td align=
"left">Clocks
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.17.8</td><td align=
"left">Header
<code class=
"code"><ctime
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.18</td><td align=
"left">Class
<code class=
"code">type_index
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.19</td><td align=
"left">Execution policies
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.19.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.19.2</td><td align=
"left">Header
<code class=
"code"><execution
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">23.19.3</td><td align=
"left">Execution policy type trait
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.19.4</td><td align=
"left">Sequenced execution policy
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.19.5</td><td align=
"left">Parallel execution policy
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.19.6</td><td align=
"left">Parallel and unsequenced execution policy
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">23.19.7</td><td align=
"left">Execution policy objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
890 <span class=
"emphasis"><em>24</em></span>
891 </td><td colspan=
"3" align=
"left">
892 <span class=
"emphasis"><em>Strings
</em></span>
893 </td></tr><tr><td align=
"left">24.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">24.2</td><td align=
"left">Character traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.3</td><td align=
"left">String classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4</td><td align=
"left">String view classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.1</td><td align=
"left">Header
<code class=
"code"><string_view
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.2</td><td align=
"left">Class template
<code class=
"code">basic_string_view
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.3</td><td align=
"left">Non-member comparison functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.4</td><td align=
"left">Inserters and extractors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.5</td><td align=
"left">Hash support
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">24.4.6</td><td align=
"left">Suffix for
<code class=
"code">basic_string_view
</code> literals
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">24.5</td><td align=
"left">Null-terminated sequence utilities
</td><td align=
"left">Partial
</td><td align=
"left">C library dependency.
</td></tr><tr><td align=
"left">
894 <span class=
"emphasis"><em>25</em></span>
895 </td><td colspan=
"3" align=
"left">
896 <span class=
"emphasis"><em>Localization
</em></span>
897 </td></tr><tr><td align=
"left">25.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.2</td><td align=
"left">Header
<code class=
"code"><locale
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.3</td><td align=
"left">Locales
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.4</td><td align=
"left">Standard
<code class=
"code">locale
</code> categories
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">25.5</td><td align=
"left">C Library Locales
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
898 <span class=
"emphasis"><em>26</em></span>
899 </td><td colspan=
"3" align=
"left">
900 <span class=
"emphasis"><em>Containers
</em></span>
901 </td></tr><tr><td align=
"left">26.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">26.2</td><td align=
"left">Container requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.3</td><td align=
"left">Sequence containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.4</td><td align=
"left">Associative containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.5</td><td align=
"left">Unordered associative containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">26.6</td><td align=
"left">Container adaptors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
902 <span class=
"emphasis"><em>27</em></span>
903 </td><td colspan=
"3" align=
"left">
904 <span class=
"emphasis"><em>Iterators
</em></span>
905 </td></tr><tr><td align=
"left">27.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.2</td><td align=
"left">Iterator requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.3</td><td align=
"left">Header
<code class=
"code"><iterator
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.4</td><td align=
"left">Iterator primitives
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.5</td><td align=
"left">Iterator adaptors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.6</td><td align=
"left">Stream iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.7</td><td align=
"left">Range access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">27.8</td><td align=
"left">Container access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
906 <span class=
"emphasis"><em>28</em></span>
907 </td><td colspan=
"3" align=
"left">
908 <span class=
"emphasis"><em>Algorithms
</em></span>
909 </td></tr><tr><td align=
"left">28.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">28.2</td><td align=
"left">Header
<code class=
"code"><algorithm
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">28.3</td><td align=
"left">Algorithms requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">28.4</td><td align=
"left">Parallel algorithms
</td><td align=
"left"> </td><td align=
"left">Using
<a class=
"link" href=
"https://github.com/oneapi-src/oneDPL" target=
"_top">oneAPI DPC++ Library
</a></td></tr><tr><td align=
"left">28.5</td><td align=
"left">Non-modifying sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.6</td><td align=
"left">Mutating sequence operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.7</td><td align=
"left">Sorting and related operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">28.8</td><td align=
"left">C library algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
910 <span class=
"emphasis"><em>29</em></span>
911 </td><td colspan=
"3" align=
"left">
912 <span class=
"emphasis"><em>Numerics
</em></span>
913 </td></tr><tr><td align=
"left">29.1</td><td align=
"left">General
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">29.2</td><td align=
"left">Definitions
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">29.3</td><td align=
"left">Numeric type requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.4</td><td align=
"left">The floating-point environment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.5</td><td align=
"left">Complex numbers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.6</td><td align=
"left">Random number generation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.7</td><td align=
"left">Numeric arrays
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8</td><td align=
"left">Generalized numeric operations
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.1</td><td align=
"left">Header
<code class=
"code"><numeric
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.2</td><td align=
"left">Accumulate
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.3</td><td align=
"left">Reduce
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.4</td><td align=
"left">Inner product
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.5</td><td align=
"left">Transform reduce
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.6</td><td align=
"left">Partial sum
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.7</td><td align=
"left">Exclusive scan
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.8</td><td align=
"left">Inclusive scan
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.9</td><td align=
"left">Transform exclusive scan
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.10</td><td align=
"left">Transform inclusive scan
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.11</td><td align=
"left">Adjacent difference
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.12</td><td align=
"left">Iota
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.13</td><td align=
"left">Greatest common divisor
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.8.14</td><td align=
"left">Least common multiple
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.9</td><td align=
"left">Mathematical functions for floating-point types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">29.9.1</td><td align=
"left">Header
<code class=
"code"><cmath
></code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">29.9.2</td><td align=
"left">Absolute values
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.9.3</td><td align=
"left">Three-dimensional hypotenuse
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.9.4</td><td align=
"left">Classification / comparison functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">29.9.5</td><td align=
"left">Mathematical special functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
914 <span class=
"emphasis"><em>30</em></span>
915 </td><td colspan=
"3" align=
"left">
916 <span class=
"emphasis"><em>Input/output library
</em></span>
917 </td></tr><tr><td align=
"left">30.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.2</td><td align=
"left">Iostreams requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.2.1</td><td align=
"left">Imbue Limitations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.2.2</td><td align=
"left">Positioning Type Limitations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">30.2.3</td><td align=
"left">Thread safety
</td><td align=
"left">Partial
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.3</td><td align=
"left">Forward declarations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.4</td><td align=
"left">Standard iostream objects
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.5</td><td align=
"left">Iostreams base classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.6</td><td align=
"left">Stream buffers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.7</td><td align=
"left">Formatting and manipulators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.8</td><td align=
"left">String-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.9</td><td align=
"left">File-based streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.10</td><td align=
"left">File systemss
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">30.11</td><td align=
"left">C library files
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
918 <span class=
"emphasis"><em>31</em></span>
919 </td><td colspan=
"3" align=
"left">
920 <span class=
"emphasis"><em>Regular expressions
</em></span>
921 </td></tr><tr><td align=
"left">31.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.3</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.4</td><td align=
"left">Header
<code class=
"code"><regex
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.5</td><td align=
"left">Namespace
<code class=
"code">std::regex_constants
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.6</td><td align=
"left">Class
<code class=
"code">regex_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">31.7</td><td align=
"left">Class template
<code class=
"code">regex_traits
</code></td><td align=
"left">Partial
</td><td align=
"left"><code class=
"code">transform_primary
</code> is not correctly implemented
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.8</td><td align=
"left">Class template
<code class=
"code">basic_regex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.9</td><td align=
"left">Class template
<code class=
"code">sub_match
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.10</td><td align=
"left">Class template
<code class=
"code">match_results
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.11</td><td align=
"left">Regular expression algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.12</td><td align=
"left">Regular expression Iterators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">31.13</td><td align=
"left">Modified ECMAScript regular expression grammar
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
922 <span class=
"emphasis"><em>32</em></span>
923 </td><td colspan=
"3" align=
"left">
924 <span class=
"emphasis"><em>Atomic operations
</em></span>
925 </td></tr><tr><td align=
"left">32.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.2</td><td align=
"left">Header
<code class=
"code"><atomic
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.3</td><td align=
"left">Type aliases
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.4</td><td align=
"left">Order and consistency
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.5</td><td align=
"left">Lock-free property
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.6</td><td align=
"left">Class template
<code class=
"code"><atomic
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.7</td><td align=
"left">Non-member functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.8</td><td align=
"left">Flag Type and operations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">32.9</td><td align=
"left">Fences
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
926 <span class=
"emphasis"><em>33</em></span>
927 </td><td colspan=
"3" align=
"left">
928 <span class=
"emphasis"><em>Thread support
</em></span>
929 </td></tr><tr><td align=
"left">33.1</td><td align=
"left">General
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.2</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.3</td><td align=
"left">Threads
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.3.1</td><td align=
"left">Header
<code class=
"code">thread
</code> synopsis
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.3.2</td><td align=
"left">Class
<code class=
"code">thread
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">33.3.2.1</td><td align=
"left">Class
<code class=
"code">thread
</code></td><td align=
"left">Partial
</td><td align=
"left"><code class=
"code">thread::id
</code> comparisons not well-defined
</td></tr><tr><td align=
"left">33.3.3</td><td align=
"left">Namespace
<code class=
"code">this_thread
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4</td><td align=
"left">Mutual exclusion
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3</td><td align=
"left">Mutex requirements
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.1</td><td align=
"left">In general
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.2</td><td align=
"left">Mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.2.1</td><td align=
"left">Class
<code class=
"code">mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.2.2</td><td align=
"left">Class
<code class=
"code">recursive_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.3</td><td align=
"left">Timed mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.3.1</td><td align=
"left">Class
<code class=
"code">timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.3.2</td><td align=
"left">Class
<code class=
"code">recursive_timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.4</td><td align=
"left">Shared mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.4.1</td><td align=
"left">Class
<code class=
"code">shared_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.5</td><td align=
"left">Shared timed mutex types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.3.5.1</td><td align=
"left">Class
<code class=
"code">shared_timed_mutex
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.4</td><td align=
"left">Locks
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.4.1</td><td align=
"left">Class template
<code class=
"code">lock_guard
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.4.2</td><td align=
"left">Class template
<code class=
"code">scoped_guard
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.4.3</td><td align=
"left">Class template
<code class=
"code">unique_lock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.4.4</td><td align=
"left">Class template
<code class=
"code">shared_lock
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.5</td><td align=
"left">Generic locking algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.6</td><td align=
"left">Call once
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.4.6.1</td><td align=
"left">Struct
<code class=
"code">once_flag
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">33.4.6.2</td><td align=
"left">Function
<code class=
"code">call_once
</code></td><td align=
"left">Broken
</td><td align=
"left">See
<a class=
"link" href=
"https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146" target=
"_top">PR
931 </td></tr><tr><td align=
"left">33.5</td><td align=
"left">Condition variables
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.5.1</td><td align=
"left">Class
<code class=
"code">condition_variable
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.5.2</td><td align=
"left">Class
<code class=
"code">condition_variable_any
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6</td><td align=
"left">Futures
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.1</td><td align=
"left">Overview
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.2</td><td align=
"left">Header
<code class=
"code"><future
></code></td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.3</td><td align=
"left">Error handling
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.4</td><td align=
"left">Class
<code class=
"code">future_error
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.5</td><td align=
"left">Shared state
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.6</td><td align=
"left">Class template
<code class=
"code">promise
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.7</td><td align=
"left">Class template
<code class=
"code">future
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.8</td><td align=
"left">Class template
<code class=
"code">shared_future
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.9</td><td align=
"left">Function template
<code class=
"code">async
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">33.6.10</td><td align=
"left">Class template
<code class=
"code">packaged_task
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">
932 <span class=
"emphasis"><em>Appendix D
</em></span>
933 </td><td colspan=
"3" align=
"left">
934 <span class=
"emphasis"><em>Compatibility features
</em></span>
935 </td></tr><tr><td align=
"left">D
.4</td><td align=
"left">C++ standard library headers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.4.1</td><td align=
"left">Header
<code class=
"code"><ccomplex
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.4.1</td><td align=
"left">Header
<code class=
"code"><cstdalign
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.4.1</td><td align=
"left">Header
<code class=
"code"><cstdbool
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.4.1</td><td align=
"left">Header
<code class=
"code"><ctgmath
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.5</td><td align=
"left">C standard library headers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.6</td><td align=
"left"><code class=
"code">char*
</code> streams
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.7</td><td align=
"left"><code class=
"code">uncaught_exception
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.8</td><td align=
"left">Old adaptable function bindings
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.9</td><td align=
"left">The default allocator
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.10</td><td align=
"left">Raw storage iterator
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.11</td><td align=
"left">Temporary buffers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.12</td><td align=
"left">Deprecated type traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.13</td><td align=
"left">Deprecated iterator primitives
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.14</td><td align=
"left">Deprecated
<code class=
"code">shared_ptr
</code> observers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.15</td><td align=
"left">Deprecated standard code conversion facets
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">D
.16</td><td align=
"left">Deprecated convenience conversion interfaces
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr></tbody></table></div></div><br class=
"table-break" /><div class=
"table"><a id=
"table.cxx17_ts_status"></a><p class=
"title"><strong>Table
1.7. C++ Technical Specifications Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ Technical Specifications Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Paper
</th><th align=
"left">Title
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr><td align=
"left">
936 <a class=
"link" href=
"http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4076.html" target=
"_top">
939 </td><td align=
"left">A generalized callable negator
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
940 <a class=
"link" href=
"http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4273.htm" target=
"_top">
943 </td><td align=
"left">Uniform Container Erasure
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
944 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4061.pdf" target=
"_top">
947 </td><td align=
"left">Greatest Common Divisor and Least Common Multiple
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
948 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4066.htm" target=
"_top">
951 </td><td align=
"left">Delimited iterators
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
952 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4282.pdf" target=
"_top">
955 </td><td align=
"left">The World's Dumbest Smart Pointer
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
956 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4388.html" target=
"_top">
959 </td><td align=
"left">Const-Propagating Wrapper
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
960 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4391.html" target=
"_top">
963 </td><td align=
"left"> <code class=
"code">make_array
</code>, revision
4 </td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
964 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf" target=
"_top">
967 </td><td align=
"left"> Support for the C++ Detection Idiom, V2
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
968 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4519.pdf" target=
"_top">
971 </td><td align=
"left"> Source-Code Information Capture
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">
972 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4521.html" target=
"_top">
975 </td><td align=
"left"> Merge Fundamentals V1 into V2
</td><td align=
"left">
976 N (components from V1 are still in namespace
977 <code class=
"code">fundamentals_v1
</code>)
978 </td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
979 <a class=
"link" href=
"http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/p0013r1.html" target=
"_top">
982 </td><td align=
"left">Logical Operator Type Traits (revision
1)
</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr><tr><td align=
"left">
983 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4531.html" target=
"_top">
986 </td><td align=
"left">std::rand replacement, revision
3</td><td align=
"left">Y
</td><td align=
"left">Library Fundamentals
2 TS
</td></tr></tbody></table></div></div><br class=
"table-break" /><div class=
"section"><div class=
"titlepage"><div><div><h4 class=
"title"><a id=
"iso.2017.specific"></a>Implementation Specific Behavior
</h4></div></div></div><p>For behaviour which is also specified by previous standards,
987 see
<a class=
"link" href=
"status.html#iso.1998.specific" title=
"Implementation Specific Behavior">C++
1998/
2003 Implementation
988 Specific Behavior
</a> and
<a class=
"link" href=
"status.html#iso.2011.specific" title=
"Implementation Specific Behavior">C++
989 2011 Implementation Specific Behavior
</a>. This section only
990 documents behaviour which is new in the
2017 standard.
992 <span class=
"emphasis"><em>20.5.1.2 [headers]
</em></span>
993 Whether names from Annex K are declared by C++ headers depends on
994 whether the underlying C library supports Annex K and declares the
995 names. For the GNU C library, there is no Annex K support and so
996 none of its names are declared by C++ headers.
998 <span class=
"emphasis"><em>23.6.5 [optional.bad_optional_access]
</em></span>
999 <code class=
"code">what()
</code> returns
<code class=
"literal">"bad optional access"</code>.
1001 <span class=
"emphasis"><em>23.7.3 [variant.variant]
</em></span>
1002 <code class=
"classname">variant
</code> supports over-aligned types.
1004 <span class=
"emphasis"><em>23.7.10 [variant.bad.access]
</em></span>
1005 <code class=
"code">what()
</code> returns one of the strings
1006 <code class=
"literal">"std::get: variant is valueless"</code>,
1007 <code class=
"literal">"std::get: wrong index for variant"</code>,
1008 <code class=
"literal">"std::visit: variant is valueless"</code>,
1009 or
<code class=
"literal">"std::visit<R>: variant is valueless"</code>.
1011 <span class=
"emphasis"><em>23.12.5.2 [memory.resource.pool.options]
</em></span>
1012 Let S equal
<code class=
"code">numeric_limits
<size_t
>::digits
</code>.
1013 The limit for maximum number of blocks in a chunk is given by
1014 <span class=
"mathphrase">2<sup>N
</sup>-
1</span>,
1015 where N is
<span class=
"mathphrase">min(
19,
3 + S/
2)
</span>.
1016 The largest allocation size that will be allocated from a pool is
1017 <span class=
"mathphrase">2<sup>22</sup></span>
1018 when
<span class=
"mathphrase">S
> 20</span>,
1019 otherwise
3072 when
<span class=
"mathphrase">S
> 16</span>,
1022 <span class=
"emphasis"><em>23.12.6.1 [memory.resource.monotonic.buffer.ctor]
</em></span>
1023 The default
<code class=
"code">next_buffer_size
</code> is
<code class=
"code">128 * sizeof(void*)
</code>.
1024 The default growth factor is
<code class=
"code">1.5</code>.
1026 <span class=
"emphasis"><em>23.15.4.3 [meta.unary.prop]
</em></span>
1027 The predicate condition for
1028 <code class=
"code">has_unique_object_representations
</code> is true for all scalar
1029 types except floating point types.
1031 <span class=
"emphasis"><em>23.19.3 [execpol.type],
1032 28.4.3 [algorithms.parallel.exec]
</em></span>
1033 There are no implementation-defined execution policies.
1035 <span class=
"emphasis"><em>24.4.2 [string.view.template]
</em></span>
1036 <code class=
"classname">basic_string_view
<C, T
>::iterator
</code> is
1037 <code class=
"code">C*
</code> and
1038 <code class=
"classname">basic_string_view
<C, T
>::const_iterator
</code> is
1039 <code class=
"code">const C*
</code>.
1041 <span class=
"emphasis"><em>28.4.3 [algorithms.parallel.exec]
</em></span>
1042 Threads of execution created by
<code class=
"classname">std::thread
</code>
1043 provide concurrent forward progress guarantees, so threads of execution
1044 implicitly created by the library will provide parallel forward
1045 progress guarantees.
1047 <span class=
"emphasis"><em>29.4.1 [cfenv.syn]
</em></span>
1048 The effects of the
<code class=
"filename"><cfenv
></code> functions
1049 depends on whether the
<code class=
"code">FENV_ACCESS
</code> pragma is supported,
1050 and on the C library that provides the header.
1052 <span class=
"emphasis"><em>29.6.9 [c.math.rand]
</em></span>
1053 Whether the
<code class=
"function">rand
</code> function may introduce data
1054 races depends on the target C library that provides the function.
1056 <span class=
"emphasis"><em>29.9.5 [sf.cmath]
</em></span>
1057 The effect of calling the mathematical special functions with large
1058 inputs should be documented here.
1060 <span class=
"emphasis"><em>30.10.2.1 [fs.conform
.9945]
</em></span>
1061 The behavior of the filesystem library implementation will depend on
1062 the target operating system. Some features will not be supported
1065 <span class=
"emphasis"><em>30.10.5 [fs.filesystem.syn]
</em></span>
1066 The clock used for file times is an unspecified type
1067 with a signed
64-bit representation, capable of representing
1068 timestamps with nanosecond resolution. The clock's epoch is
1069 unspecified, but is not the same as the system clock's epoch.
1071 <span class=
"emphasis"><em>30.10.7.1 [fs.path.generic]
</em></span>
1072 dot-dot in the root-directory refers to the root-directory itself.
1073 On Windows, a drive specifier such as
<code class=
"code">"C:"</code> or
1074 <code class=
"code">"z:"</code> is treated as a root-name. On Cygwin, a path
1075 that begins with two successive directory separators is a
1076 root-name. Otherwise (for POSIX-like systems other than Cygwin),
1077 the implementation-defined root-name is an unspecified string
1078 which does not appear in any pathnames.
1080 <span class=
"emphasis"><em>30.10.10.1 [fs.enum.path.format]
</em></span>
1081 The character sequence is always interpreted in the native pathname
1084 <span class=
"emphasis"><em>30.10.15.4 [fs.op.file_size]
</em></span>
1085 If
<code class=
"code">!is_regular_file(p)
</code>, an error is reported.
1086 </p></div></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.2020"></a>C++
2020</h3></div></div></div><p>
1087 In this implementation the
<code class=
"literal">-std=gnu++
2a
</code> or
1088 <code class=
"literal">-std=c++
2a
</code> flag must be used to enable language
1090 features. See
<a class=
"link" href=
"using.html#manual.intro.using.flags" title=
"Command Options">dialect
</a>
1091 options. The pre-defined symbol
1092 <code class=
"constant">__cplusplus
</code> is used to check for the
1093 presence of the required flag.
1095 This section describes the C++
20 and library TS support in mainline GCC,
1096 not in any particular release.
1098 The following table lists new library features that have been accepted into
1099 the C++
20 working draft. The
"Proposal" column provides a link to the
1100 ISO C++ committee proposal that describes the feature, while the
"Status"
1101 column indicates the first version of GCC that contains an implementation of
1102 this feature (if it has been implemented).
1103 A dash (—) in the status column indicates that the changes in the proposal
1104 either do not affect the code in libstdc++, or the changes are not required for conformance.
1105 The
"SD-6 Feature Test / Notes" column shows the corresponding macro or header from
1106 <a class=
"link" href=
"https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" target=
"_top">SD-
6:
1107 Feature-testing recommendations for C++
</a> (where applicable)
1108 or any notes about the implementation.
1109 </p><div class=
"table"><a id=
"table.cxx20_features"></a><p class=
"title"><strong>Table
1.8. C++
2020 Library Features
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ 2020 Library Features" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Library Feature
</th><th align=
"left">Proposal
</th><th align=
"left">Status
</th><th align=
"left">SD-
6 Feature Test / Notes
</th></tr></thead><tbody><tr><td colspan=
"4" align=
"left">
1110 <span class=
"bold"><strong>Compile-time programming
</strong></span>
1111 </td></tr><tr><td align=
"left"> Add constexpr modifiers to functions in
<code class=
"code"><algorithm
></code> and
<code class=
"code"><utility
></code> Headers
</td><td align=
"left">
1112 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html" target=
"_top">
1114 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_algorithms
>=
201703L</code> </td></tr><tr><td align=
"left"> Constexpr for
<code class=
"code">swap
</code> and swap related functions
</td><td align=
"left">
1115 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html" target=
"_top">
1117 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_algorithms
>=
201806L</code> </td></tr><tr><td align=
"left"> Constexpr for
<code class=
"code">std::complex
</code> </td><td align=
"left">
1118 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html" target=
"_top">
1120 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_complex
>=
201711L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> P0595R2
<code class=
"code">std::is_constant_evaluated()
</code> </td><td align=
"left">
1121 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html" target=
"_top">
1123 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_is_constant_evaluated
>=
201811L</code> </td></tr><tr><td align=
"left"> More constexpr containers
</td><td align=
"left">
1124 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0784r7.html" target=
"_top">
1126 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_dynamic_alloc
>=
201907L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Making
<code class=
"code">std::string
</code> constexpr
</td><td align=
"left">
1127 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf" target=
"_top">
1129 </td><td align=
"left"> </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_string
>=
201907L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Making
<code class=
"code">std::vector
</code> constexpr
</td><td align=
"left">
1130 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf" target=
"_top">
1132 </td><td align=
"left"> </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_vector
>=
201907L</code> </td></tr><tr><td align=
"left"> Constexpr in
<code class=
"code">std::pointer_traits
</code> </td><td align=
"left">
1133 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf" target=
"_top">
1135 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_memory
>=
201811L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> constexpr for
<code class=
"code"><numeric
></code> algorithms
</td><td align=
"left">
1136 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1645r1.html" target=
"_top">
1138 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_numeric
>=
201911L</code> </td></tr><tr><td align=
"left"> Constexpr iterator requirements
</td><td align=
"left">
1139 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0858r0.html" target=
"_top">
1141 </td><td align=
"center"> 9.1 </td><td align=
"left">
1142 <div class=
"informaltable"><table class=
"informaltable" border=
"0"><colgroup><col /></colgroup><tbody><tr><td> <code class=
"code">__cpp_lib_array_constexpr
>=
201803L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_string_view
>=
201803L</code> </td></tr><tr><td> (both since
9.4, see Note
1)
</td></tr></tbody></table></div>
1143 </td></tr><tr><td align=
"left"> <code class=
"code">constexpr
</code> comparison operators for
<code class=
"code">std::array
</code> </td><td align=
"left">
1144 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1023r0.pdf" target=
"_top">
1146 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_array_constexpr
>=
201806</code> </td></tr><tr><td align=
"left"> Misc constexpr bits
</td><td align=
"left">
1147 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html" target=
"_top">
1149 </td><td align=
"center"> 10.1 </td><td align=
"left">
1150 <div class=
"informaltable"><table class=
"informaltable" border=
"0"><colgroup><col /></colgroup><tbody><tr><td> <code class=
"code">__cpp_lib_array_constexpr
>=
201811L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_constexpr_functional
>=
201811L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_constexpr_iterator
>=
201811L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_constexpr_string_view
>=
201811L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_constexpr_tuple
>=
201811L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_constexpr_utility
>=
201811L</code> </td></tr></tbody></table></div>
1151 </td></tr><tr><td align=
"left"> <code class=
"code">constexpr
<span class=
"emphasis"><em>INVOKE
</em></span></code> </td><td align=
"left">
1152 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html" target=
"_top">
1154 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_constexpr_functional
>=
201907L</code> </td></tr><tr><td align=
"left"> Transformation Trait
<code class=
"code">remove_cvref
</code> </td><td align=
"left">
1155 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf" target=
"_top">
1157 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_remove_cvref
>=
201711L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> Implicit conversion traits and utility functions
</td><td align=
"left">
1158 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0758r1.html" target=
"_top">
1160 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_is_nothrow_convertible
>=
201806L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> The
<code class=
"code">identity
</code> metafunction
</td><td align=
"left">
1161 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0887r1.pdf" target=
"_top">
1163 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_type_identity
>=
201806L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> <code class=
"code">unwrap_ref_decay
</code> and
<code class=
"code">unwrap_reference
</code> </td><td align=
"left">
1164 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf" target=
"_top">
1166 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_unwrap_ref
>=
201811L</code> (since
9.4, see Note
1)
</td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left"> Improving Completeness Requirements for Type Traits
</td><td align=
"left">
1167 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf" target=
"_top">
1169 </td><td align=
"center"> Partial
</td><td align=
"left"> </td></tr><tr><td align=
"left"> Missing feature test macros
</td><td align=
"left">
1170 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html" target=
"_top">
1172 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Making std::underlying_type SFINAE-friendly
</td><td align=
"left">
1173 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0340r3.html" target=
"_top">
1175 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Traits for [Un]bounded Arrays
</td><td align=
"left">
1176 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1357r1.pdf" target=
"_top">
1178 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_bounded_array_traits
>=
201902L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Layout-compatibility and pointer-interconvertibility traits
</td><td align=
"left">
1179 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0466r5.pdf" target=
"_top">
1181 </td><td align=
"center"> </td><td align=
"left">
1182 <div class=
"informaltable"><table class=
"informaltable" border=
"0"><colgroup><col /></colgroup><tbody><tr><td> <code class=
"code">__cpp_lib_is_layout_compatible
>=
201907L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_is_pointer_interconvertible
>=
201907L</code> </td></tr></tbody></table></div>
1183 </td></tr><tr><td align=
"left"> Integrating feature-test macros into the C++ WD
</td><td align=
"left">
1184 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html" target=
"_top">
1186 </td><td align=
"center"> 5.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> <code class=
"code"><version
></code> </td><td align=
"left">
1187 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0754r2.pdf" target=
"_top">
1189 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__has_include(
<version
>)
</code> </td></tr><tr><td colspan=
"4" align=
"left">
1190 <span class=
"bold"><strong>Synchronization
</strong></span>
1191 </td></tr><tr><td align=
"left"> Atomic Ref
</td><td align=
"left">
1192 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0019r8.html" target=
"_top">
1194 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_atomic_ref
>=
201806L</code> </td></tr><tr><td align=
"left"> Floating Point Atomic
</td><td align=
"left">
1195 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html" target=
"_top">
1197 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_atomic_float
>=
201711L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> C++ Synchronized Buffered Ostream
</td><td align=
"left">
1198 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf" target=
"_top">
1200 </td><td align=
"center"> </td><td align=
"left"> <code class=
"code">__cpp_lib_syncbuf
>=
201711L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Manipulators for C++ Synchronized Buffered Ostream
</td><td align=
"left">
1201 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf" target=
"_top">
1203 </td><td align=
"center"> </td><td align=
"left"> <code class=
"code">__cpp_lib_syncbuf
>=
201803L</code> </td></tr><tr><td align=
"left"> Make
<code class=
"code">std::memory_order
</code> a scoped enumeration
</td><td align=
"left">
1204 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html" target=
"_top">
1206 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange
</td><td align=
"left">
1207 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html" target=
"_top">
1209 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Atomic
<code class=
"code">shared_ptr
</code> </td><td align=
"left">
1210 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html" target=
"_top">
1212 </td><td align=
"center"> </td><td align=
"left"> <code class=
"code"> __cpp_lib_atomic_shared_ptr
>=
201711L</code> </td></tr><tr><td align=
"left"> std::stop_token and std::jthread
</td><td align=
"left">
1213 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf" target=
"_top">
1215 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_jthread
>=
201907L</code> </td></tr><tr><td align=
"left"> Rename
<code class=
"code">condition_variable_any
</code> interruptible wait methods
</td><td align=
"left">
1216 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1869r1.html" target=
"_top">
1218 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_jthread
>=
201911L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Atomic waiting and notifying, std::semaphore, std::latch and std::barrier
</td><td align=
"left">
1219 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html" target=
"_top">
1221 </td><td align=
"center"> </td><td align=
"left">
1222 <div class=
"informaltable"><table class=
"informaltable" border=
"0"><colgroup><col /></colgroup><tbody><tr><td> <code class=
"code">__cpp_lib_atomic_lock_free_type_aliases
>=
201907L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_atomic_flag_test
>=
201907L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_atomic_wait
>=
201907L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_semaphore
>=
201907L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_latch
>=
201907L</code> </td></tr><tr><td> <code class=
"code">__cpp_lib_barrier
>=
201907L</code> </td></tr></tbody></table></div>
1223 </td></tr><tr><td align=
"left"> Fixing Atomic Initialization
</td><td align=
"left">
1224 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0883r2.pdf" target=
"_top">
1226 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_atomic_value_initialization
>=
201911L</code> </td></tr><tr><td colspan=
"4" align=
"left">
1227 <span class=
"bold"><strong>Ranges and Concepts
</strong></span>
1228 </td></tr><tr><td align=
"left"> Standard Library Concepts
</td><td align=
"left">
1229 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0898r3.pdf" target=
"_top">
1231 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_concepts
>=
201806L</code> </td></tr><tr><td align=
"left"> Rename concepts to standard_case for C++
20, while we still can
</td><td align=
"left">
1232 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1754r1.pdf" target=
"_top">
1234 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_concepts
>=
201907L</code> </td></tr><tr><td align=
"left"> Wording for
<span class=
"emphasis"><em><code class=
"code">boolean-testable
</code></em></span> </td><td align=
"left">
1235 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1964r2.html" target=
"_top">
1237 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_concepts
>=
202002L</code> </td></tr><tr><td align=
"left"> The One Ranges Proposal
</td><td align=
"left">
1238 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf" target=
"_top">
1240 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_ranges
>=
201811L</code> </td></tr><tr><td align=
"left"> Input Range Adaptors
</td><td align=
"left">
1241 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1035r7.pdf" target=
"_top">
1243 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_ranges
>=
201907L</code> </td></tr><tr><td align=
"left"> <code class=
"code">ranges
</code> compare algorithm are over-constrained
</td><td align=
"left">
1244 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1716r3.html" target=
"_top">
1246 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_ranges
>=
201911L</code> </td></tr><tr><td align=
"left"> Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)
</td><td align=
"left">
1247 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1248r1.html" target=
"_top">
1249 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Ranges Design Cleanup
</td><td align=
"left">
1250 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf" target=
"_top">
1252 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td colspan=
"4" align=
"left">
1253 <span class=
"bold"><strong>Time, dates, calendars, time zones
</strong></span>
1254 </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Extending chrono to Calendars and Time Zones
</td><td align=
"left">
1255 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html" target=
"_top">
1257 </td><td align=
"left"> </td><td align=
"left"> <code class=
"code">__cpp_lib_chrono
>=
201803L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Miscellaneous minor fixes for chrono
</td><td align=
"left">
1258 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html" target=
"_top">
1260 </td><td align=
"left"> </td><td align=
"left"> <code class=
"code">__cpp_lib_chrono
>=
201907L</code> </td></tr><tr><td align=
"left"> <code class=
"code"><chrono
></code> <code class=
"code">zero()
</code>,
<code class=
"code">min()
</code>, and
<code class=
"code">max()
</code> should be
<code class=
"code">noexcept
</code> </td><td align=
"left">
1261 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf" target=
"_top">
1263 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td colspan=
"4" align=
"left">
1264 <span class=
"bold"><strong>Three-way comparison
</strong></span>
1265 </td></tr><tr><td align=
"left"> Library Support for the Spaceship (Comparison) Operator
</td><td align=
"left">
1266 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf" target=
"_top">
1268 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_three_way_comparison
>=
201711L</code> </td></tr><tr><td align=
"left"> Symmetry for spaceship
</td><td align=
"left">
1269 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0905r1.html" target=
"_top">
1271 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Adding
<=
> to the standard library
</td><td align=
"left">
1272 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html" target=
"_top">
1274 </td><td align=
"center"> 10.1 </td><td align=
"left">
1275 <code class=
"code">__cpp_lib_three_way_comparison
>=
201907L</code>
1276 </td></tr><tr><td colspan=
"4" align=
"left">
1277 <span class=
"bold"><strong>Strings and text
</strong></span>
1278 </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> <code class=
"code">string::reserve
</code> Should Not Shrink
</td><td align=
"left">
1279 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html" target=
"_top">
1281 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr><td align=
"left"> <code class=
"code">char8_t
</code>: A type for UTF-
8 characters and strings
</td><td align=
"left">
1282 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html" target=
"_top">
1284 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_char8_t
>=
201811L</code> </td></tr><tr><td align=
"left"> <code class=
"code">char8_t
</code> backward compatibility remediation
</td><td align=
"left">
1285 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html" target=
"_top">
1287 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_char8_t
>=
201907L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Text formatting
</td><td align=
"left">
1288 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html" target=
"_top">
1290 </td><td align=
"center"> </td><td align=
"left">
1291 <code class=
"code">__cpp_lib_format
>=
201907L</code>
1292 </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Integration of chrono with text formatting
</td><td align=
"left">
1293 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf" target=
"_top">
1295 </td><td align=
"center"> </td><td align=
"left">
1296 <code class=
"code">__cpp_lib_format
>=
201907L</code>
1297 </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Printf corner cases in
<code class=
"code">std::format
</code> </td><td align=
"left">
1298 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html" target=
"_top">
1300 </td><td align=
"center"> </td><td align=
"left">
1301 <code class=
"code">__cpp_lib_format
>=
201907L</code>
1302 </td></tr><tr><td align=
"left"> String Prefix and Suffix Checking
</td><td align=
"left">
1303 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html" target=
"_top">
1305 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_starts_ends_with
>=
201711L</code> (since
9.4, see Note
1)
</td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Update The Reference To The Unicode Standard
</td><td align=
"left">
1306 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html" target=
"_top">
1308 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr><td colspan=
"4" align=
"left">
1309 <span class=
"bold"><strong>Containers
</strong></span>
1310 </td></tr><tr><td align=
"left"> span: bounds-safe views for sequences of objects
</td><td align=
"left">
1311 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf" target=
"_top">
1313 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_span
>=
201803L</code> </td></tr><tr><td align=
"left">
1314 Usability Enhancements for
<code class=
"classname">std::span
</code>
1315 </td><td align=
"left">
1316 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1024r3.pdf" target=
"_top">
1318 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_span
>=
201902L</code> </td></tr><tr><td align=
"left"> Should Span be Regular?
</td><td align=
"left">
1319 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md" target=
"_top">
1321 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Fixed-size
<code class=
"code"><span
></code> construction from dynamic range
</td><td align=
"left">
1322 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1976r2.html" target=
"_top">
1324 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_span
>=
202002L</code> </td></tr><tr><td align=
"left"> <code class=
"code">std::to_array
</code> </td><td align=
"left">
1325 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0325r4.html" target=
"_top">
1327 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_to_array
>=
201907L</code> </td></tr><tr><td align=
"left"> Checking for Existence of an Element in Associative Containers
</td><td align=
"left">
1328 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html" target=
"_top">
1330 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Comparing Unordered Containers
</td><td align=
"left">
1331 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf" target=
"_top">
1333 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Heterogeneous lookup for unordered containers
</td><td align=
"left">
1334 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html" target=
"_top">
1336 </td><td align=
"center"> </td><td align=
"left"> <code class=
"code">__cpp_lib_generic_unordered_lookup
>=
201811</code> </td></tr><tr><td align=
"left"> Adopt Consistent Container Erasure from Library Fundamentals
2 for C++
20 </td><td align=
"left">
1337 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html" target=
"_top">
1339 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_erase_if
>=
201811L</code> </td></tr><tr><td align=
"left"> Improving the Return Value of Erase-Like Algorithms
</td><td align=
"left">
1340 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0646r1.pdf" target=
"_top">
1342 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_list_remove_return_type
>=
201806L</code> </td></tr><tr><td align=
"left"> Improving the Return Value of Erase-Like Algorithms II: Free
<code class=
"code">erase
</code>/
<code class=
"code">erase_if
</code> </td><td align=
"left">
1343 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1115r3.pdf" target=
"_top">
1345 </td><td align=
"center"> 9.1 </td><td align=
"left">
1346 <div class=
"informaltable"><table class=
"informaltable" border=
"0"><colgroup><col /></colgroup><tbody><tr><td> <code class=
"code">__cpp_lib_erase_if
>=
202002L</code> </td></tr><tr><td> (defined to
<code class=
"code">201900L</code> for GCC
9.1 and
9.2 so use
<code class=
"code">> 201811L</code>)
</td></tr></tbody></table></div>
1347 </td></tr><tr><td align=
"left"> Signed ssize() functions, unsigned size() functions
</td><td align=
"left">
1348 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r2.html" target=
"_top">
1350 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_ssize
>=
201902L</code> </td></tr><tr><td colspan=
"4" align=
"left">
1351 <span class=
"bold"><strong>Memory management
</strong></span>
1352 </td></tr><tr><td align=
"left"> Utility to convert a pointer to a raw pointer
</td><td align=
"left">
1353 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html" target=
"_top">
1355 </td><td align=
"center"> 8.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_to_address
>=
201711L</code> (since
9.4, see Note
1)
</td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Extending
<code class=
"code">make_shared
</code> to Support Arrays
</td><td align=
"left">
1356 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html" target=
"_top">
1358 </td><td align=
"center"> </td><td align=
"left"> <code class=
"code">__cpp_lib_shared_ptr_arrays
>=
201707L</code> </td></tr><tr><td align=
"left"> Efficient sized delete for variable sized classes
</td><td align=
"left">
1359 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0722r3.html" target=
"_top">
1361 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_destroying_delete
>=
201806L</code> </td></tr><tr><td align=
"left"> Utility functions to implement uses-allocator construction
</td><td align=
"left">
1362 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0591r4.pdf" target=
"_top">
1364 </td><td align=
"center"> 9.1 </td><td align=
"left">
1365 <code class=
"code">std::scoped_allocator_adaptor
</code> changes missing in
9.1.0
1366 </td></tr><tr><td align=
"left"> <code class=
"code">std::assume_aligned
</code> </td><td align=
"left">
1367 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1007r3.pdf" target=
"_top">
1369 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_assume_aligned
>=
201811L</code> (since
9.4, see Note
1)
</td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Smart pointer creation with default initialization
</td><td align=
"left">
1370 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html" target=
"_top">
1372 </td><td align=
"center"> </td><td align=
"left"> <code class=
"code">__cpp_lib_smart_ptr_for_overwrite
>=
201811L</code> </td></tr><tr><td align=
"left"> Make stateful allocator propagation more consistent for
<code class=
"code">operator+(basic_string)
</code> </td><td align=
"left">
1373 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html" target=
"_top">
1375 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td align=
"left">
1376 <code class=
"classname">polymorphic_allocator
<></code> as a vocabulary type
1377 </td><td align=
"left">
1378 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0339r6.pdf" target=
"_top">
1380 </td><td align=
"center"> 9.1 </td><td align=
"left">
1381 <code class=
"code">__cpp_lib_polymorphic_allocator
>=
201902L</code> (since
9.4, see Note
1)
1382 </td></tr><tr><td align=
"left"> LWG
2511: guaranteed copy elision for piecewise construction
</td><td align=
"left">
1383 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0475r1.html" target=
"_top">
1385 </td><td align=
"center"> 7.1 </td><td align=
"left"> </td></tr><tr><td colspan=
"4" align=
"left">
1386 <span class=
"bold"><strong>Miscellaneous
</strong></span>
1387 </td></tr><tr><td align=
"left"> <code class=
"code">nodiscard
</code> in the Library
</td><td align=
"left">
1388 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r1.pdf" target=
"_top">
1390 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> de-pessimize legacy algorithms with
<code class=
"code">std::move
</code> </td><td align=
"left">
1391 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0616r0.pdf" target=
"_top">
1393 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Deprecate POD
</td><td align=
"left">
1394 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0767r1.html" target=
"_top">
1396 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Treating Unnecessary
<code class=
"code">decay
</code> </td><td align=
"left">
1397 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf" target=
"_top">
1399 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Thou Shalt Not Specialize std Function Templates!
</td><td align=
"left">
1400 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf" target=
"_top">
1402 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Bit-casting object representations
</td><td align=
"left">
1403 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html" target=
"_top">
1405 </td><td align=
"center"> </td><td align=
"left"> <code class=
"code">__cpp_lib_bit_cast
>=
201806L</code> </td></tr><tr><td align=
"left"> Integral power-of-
2 operations
</td><td align=
"left">
1406 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html" target=
"_top">
1408 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_int_pow2
>=
201806L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> On the names of low-level bit manipulation functions
</td><td align=
"left">
1409 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1956r1.pdf" target=
"_top">
1411 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_int_pow2
>=
202002L</code> </td></tr><tr><td align=
"left"> Safe integral comparisons
</td><td align=
"left">
1412 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0586r2.html" target=
"_top">
1414 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_integer_comparison_functions
>=
202002L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Reviewing Deprecated Facilities of C++
17 for C++
20 </td><td align=
"left">
1415 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html" target=
"_top">
1417 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr><td align=
"left"> <code class=
"code">fpos
</code> Requirements
</td><td align=
"left">
1418 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0759r1.html" target=
"_top">
1420 </td><td align=
"center"> —
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Add
<code class=
"code">shift
</code> to
<code class=
"code"><algorithm
></code> </td><td align=
"left">
1421 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf" target=
"_top">
1423 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_shift
>=
201806L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Standard Library Specification in a Concepts and Contracts World
</td><td align=
"left">
1424 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf" target=
"_top">
1426 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr><td align=
"left"> <code class=
"code">explicit(bool)
</code> </td><td align=
"left">
1427 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html" target=
"_top">
1429 </td><td align=
"center"> —
</td><td align=
"left"> </td></tr><tr><td align=
"left"> Eradicating unnecessarily explicit default constructors from the standard library
</td><td align=
"left">
1430 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html" target=
"_top">
1432 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> <code class=
"code">std::function
</code> move constructor should be
<code class=
"code">noexcept
</code> </td><td align=
"left">
1433 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0771r1.pdf" target=
"_top">
1435 </td><td align=
"center"> 7.2 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Simplified partial function application
</td><td align=
"left">
1436 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html" target=
"_top">
1438 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_bind_front
>=
201811L</code> </td></tr><tr><td align=
"left"> <code class=
"code">bind_front
</code> should not unwrap
<code class=
"code">reference_wrapper
</code> </td><td align=
"left">
1439 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1651r0.html" target=
"_top">
1441 </td><td align=
"center"> 9.3 </td><td align=
"left"> <code class=
"code">__cpp_lib_bind_front
>=
201907L</code> </td></tr><tr><td align=
"left"> <code class=
"code">reference_wrapper
</code> for incomplete types
</td><td align=
"left">
1442 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0357r3.html" target=
"_top">
1444 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Fixing
<code class=
"code">operator
>>(basic_istream
&, CharT*)
</code> (LWG
2499)
</td><td align=
"left">
1445 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0487r1.html" target=
"_top">
1447 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr><td align=
"left"> <code class=
"code">variant
</code> and
<code class=
"code">optional
</code> should propagate copy/move triviality
</td><td align=
"left">
1448 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html" target=
"_top">
1450 </td><td align=
"center"> 8.3 </td><td align=
"left"> </td></tr><tr><td align=
"left"> A sane
<code class=
"code">variant
</code> converting constructor
</td><td align=
"left">
1451 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html" target=
"_top">
1453 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> <code class=
"code">visit
<R
></code>: Explicit Return Type for
<code class=
"code">visit
</code> </td><td align=
"left">
1454 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf" target=
"_top">
1456 </td><td align=
"center"> 9.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> P0899R1 - LWG
3016 is not a defect
</td><td align=
"left">
1457 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0899r1.html" target=
"_top">
1459 </td><td align=
"center"> 7.1 </td><td align=
"left"> </td></tr><tr><td align=
"left"> Editorial Guidance for merging P0019r8 and P0528r3
</td><td align=
"left">
1460 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html" target=
"_top">
1462 </td><td align=
"center"> —
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Cleaning up Clause
20 </td><td align=
"left">
1463 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf" target=
"_top">
1465 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Completing the Rebase of Library Fundamentals, Version
3, Working Draft
</td><td align=
"left">
1466 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html" target=
"_top">
1468 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr><td align=
"left"> Alternative Wording for P0907R4 Signed Integers are Two's Complement
</td><td align=
"left">
1469 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html" target=
"_top">
1471 </td><td align=
"center"> —
</td><td align=
"left"> </td></tr><tr><td align=
"left">
1472 I Stream, You Stream, We All Stream for
1473 <code class=
"classname">istream_iterator
</code>
1474 </td><td align=
"left">
1475 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0738r2.html" target=
"_top">
1477 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr><td align=
"left">
1478 Mandating the Standard Library:
1479 Clause
16 - Language support library
1480 </td><td align=
"left">
1481 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf" target=
"_top">
1483 </td><td align=
"center"> —
</td><td align=
"left"> </td></tr><tr><td align=
"left">
1484 Mandating the Standard Library:
1485 Clause
18 - Diagnostics library
1486 </td><td align=
"left">
1487 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1458r1.pdf" target=
"_top">
1489 </td><td align=
"center"> —
</td><td align=
"left"> </td></tr><tr><td align=
"left">
1490 Mandating the Standard Library:
1491 Clause
20 - Strings library
1492 </td><td align=
"left">
1493 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1462r1.html" target=
"_top">
1495 </td><td align=
"center"> —
</td><td align=
"left"> </td></tr><tr><td align=
"left">
1496 Mandating the Standard Library:
1497 Clause
21 - Containers library
1498 </td><td align=
"left">
1499 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf" target=
"_top">
1501 </td><td align=
"center"> 10.1 </td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">
1502 Mandating the Standard Library:
1503 Clause
22 - Iterators library
1504 </td><td align=
"left">
1505 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf" target=
"_top">
1507 </td><td align=
"center"> </td><td align=
"left"> </td></tr><tr><td align=
"left"> Make
<code class=
"code">create_directory()
</code> Intuitive
</td><td align=
"left">
1508 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf" target=
"_top">
1511 </td><td align=
"center"> 8.3 </td><td align=
"left"> Treated as a DR for C++
17 </td></tr><tr><td align=
"left">
1512 Target Vectorization Policies from Parallelism V2 TS to C++
20
1513 </td><td align=
"left">
1514 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1001r2.html" target=
"_top">
1516 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_execution
>=
201902L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> Merge Coroutines TS into C++
20 working draft
</td><td align=
"left">
1517 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0912r5.html" target=
"_top">
1519 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_coroutines
>=
201902L</code> </td></tr><tr><td align=
"left"> Endian just Endian
</td><td align=
"left">
1520 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0463r1.html" target=
"_top">
1522 </td><td align=
"center"> 8.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_endian
>=
201907L</code> </td></tr><tr><td align=
"left"> Bit operations
</td><td align=
"left">
1523 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html" target=
"_top">
1525 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_bitops
>=
201907L</code> (since
9.4, see Note
1)
</td></tr><tr><td align=
"left"> Well-behaved interpolation for numbers and pointers
</td><td align=
"left">
1526 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html" target=
"_top">
1528 </td><td align=
"center"> 9.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_interpolate
>=
201902L</code> </td></tr><tr><td align=
"left"> Mathematical constants
</td><td align=
"left">
1529 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r8.pdf" target=
"_top">
1531 </td><td align=
"center"> 10.1 </td><td align=
"left"> <code class=
"code">__cpp_lib_math_constants
>=
201907L</code> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> std::source_location
</td><td align=
"left">
1532 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf" target=
"_top">
1534 </td><td align=
"center"> </td><td align=
"left">
1535 <code class=
"code">__cpp_lib_source_location
>=
201907L</code>
1536 </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left"> Efficient access to std::basic_stringbuf's Buffer
</td><td align=
"left">
1537 <a class=
"link" href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf" target=
"_top">
1539 </td><td align=
"center"> </td><td align=
"left"> </td></tr></tbody></table></div></div><br class=
"table-break" /><p>
1540 Note
1: This feature is supported in older releases but the
1541 <code class=
"code">__cpp_lib
</code> macro is not defined to the right value
1542 (or not defined at all) until the version shown in parentheses.
1543 </p></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.tr1"></a>C++ TR1
</h3></div></div></div><p>
1544 This table is based on the table of contents of ISO/IEC DTR
19768
1545 Doc No: N1836=
05-
0096 Date:
2005-
06-
24
1546 Draft Technical Report on C++ Library Extensions
1548 In this implementation the header names are prefixed by
1549 <code class=
"code">tr1/
</code>, for instance
<code class=
"code"><tr1/functional
></code>,
1550 <code class=
"code"><tr1/memory
></code>, and so on.
1552 This page describes the TR1 support in mainline GCC, not in any particular
1554 </p><div class=
"table"><a id=
"table.tr1_status"></a><p class=
"title"><strong>Table
1.9. C++ TR1 Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ TR1 Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Section
</th><th align=
"left">Description
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr><td align=
"left"><span class=
"emphasis"><em>2</em></span></td><td colspan=
"3" align=
"left"><span class=
"emphasis"><em>General Utilities
</em></span></td></tr><tr><td align=
"left">2.1</td><td align=
"left">Reference wrappers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">2.1.1</td><td align=
"left">Additions to header
<code class=
"code"><functional
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.1.2</td><td align=
"left">Class template
<code class=
"code">reference_wrapper
</code></td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">2.1.2.1</td><td align=
"left"><code class=
"code">reference_wrapper
</code> construct/copy/destroy
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.1.2.2</td><td align=
"left"><code class=
"code">reference_wrapper
</code> assignment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.1.2.3</td><td align=
"left"><code class=
"code">reference_wrapper
</code> access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.1.2.4</td><td align=
"left"><code class=
"code">reference_wrapper
</code> invocation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.1.2.5</td><td align=
"left"><code class=
"code">reference_wrapper
</code> helper functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2</td><td align=
"left">Smart pointers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.1</td><td align=
"left">Additions to header
<code class=
"code"><memory
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.2</td><td align=
"left">Class
<code class=
"code">bad_weak_ptr
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3</td><td align=
"left">Class template
<code class=
"code">shared_ptr
</code></td><td align=
"left"> </td><td align=
"left">
1557 <a class=
"link" href=
"http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target=
"_top">boost::shared_ptr
</a>.
1559 </td></tr><tr><td align=
"left">2.2.3.1</td><td align=
"left"><code class=
"code">shared_ptr
</code> constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.2</td><td align=
"left"><code class=
"code">shared_ptr
</code> destructor
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.3</td><td align=
"left"><code class=
"code">shared_ptr
</code> assignment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.4</td><td align=
"left"><code class=
"code">shared_ptr
</code> modifiers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.5</td><td align=
"left"><code class=
"code">shared_ptr
</code> observers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.6</td><td align=
"left"><code class=
"code">shared_ptr
</code> comparison
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.7</td><td align=
"left"><code class=
"code">shared_ptr
</code> I/O
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.8</td><td align=
"left"><code class=
"code">shared_ptr
</code> specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.9</td><td align=
"left"><code class=
"code">shared_ptr
</code> casts
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.3.10</td><td align=
"left"><code class=
"code">get_deleter
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4</td><td align=
"left">Class template
<code class=
"code">weak_ptr
</code></td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4.1</td><td align=
"left"><code class=
"code">weak_ptr
</code> constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4.2</td><td align=
"left"><code class=
"code">weak_ptr
</code> destructor
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4.3</td><td align=
"left"><code class=
"code">weak_ptr
</code> assignment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4.4</td><td align=
"left"><code class=
"code">weak_ptr
</code> modifiers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4.5</td><td align=
"left"><code class=
"code">weak_ptr
</code> observers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4.6</td><td align=
"left"><code class=
"code">weak_ptr
</code> comparison
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.4.7</td><td align=
"left"><code class=
"code">weak_ptr
</code> specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">2.2.5</td><td align=
"left">Class template
<code class=
"code">enable_shared_from_this
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left"><span class=
"emphasis"><em>3</em></span></td><td colspan=
"3" align=
"left"><span class=
"emphasis"><em>Function Objects
</em></span></td></tr><tr><td align=
"left">3.1</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.2</td><td align=
"left">Additions to
<code class=
"code"><functional
> synopsis
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.3</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.4</td><td align=
"left">Function return types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.5</td><td align=
"left">Function template
<code class=
"code">mem_fn
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.6</td><td align=
"left">Function object binders
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">3.6.1</td><td align=
"left">Class template
<code class=
"code">is_bind_expression
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.6.2</td><td align=
"left">Class template
<code class=
"code">is_placeholder
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.6.3</td><td align=
"left">Function template
<code class=
"code">bind
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.6.4</td><td align=
"left">Placeholders
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7</td><td align=
"left">Polymorphic function wrappers
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.1</td><td align=
"left">Class
<code class=
"code">bad_function_call
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.1.1</td><td align=
"left"><code class=
"code">bad_function_call
</code> constructor
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2</td><td align=
"left">Class template
<code class=
"code">function
</code></td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.1</td><td align=
"left"><code class=
"code">function
</code> construct/copy/destroy
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.2</td><td align=
"left"><code class=
"code">function
</code> modifiers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.3</td><td align=
"left"><code class=
"code">function
</code> capacity
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.4</td><td align=
"left"><code class=
"code">function
</code> invocation
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.5</td><td align=
"left"><code class=
"code">function
</code> target access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.6</td><td align=
"left">undefined operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.7</td><td align=
"left">null pointer comparison operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.7.2.8</td><td align=
"left">specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left"><span class=
"emphasis"><em>4</em></span></td><td colspan=
"3" align=
"left"><span class=
"emphasis"><em>Metaprogramming and type traits
</em></span></td></tr><tr><td align=
"left">4.1</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.2</td><td align=
"left">Header
<code class=
"code"><type_traits
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.3</td><td align=
"left">Helper classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.4</td><td align=
"left">General Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.5</td><td align=
"left">Unary Type Traits
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">4.5.1</td><td align=
"left">Primary Type Categories
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.5.2</td><td align=
"left">Composite type traits
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.5.3</td><td align=
"left">Type properties
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.6</td><td align=
"left">Relationships between types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.7</td><td align=
"left">Transformations between types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">4.7.1</td><td align=
"left">Const-volatile modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.7.2</td><td align=
"left">Reference modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.7.3</td><td align=
"left">Array modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.7.4</td><td align=
"left">Pointer modifications
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.8</td><td align=
"left">Other transformations
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">4.9</td><td align=
"left">Implementation requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left"><span class=
"emphasis"><em>5</em></span></td><td colspan=
"3" align=
"left"><span class=
"emphasis"><em>Numerical Facilities
</em></span></td></tr><tr><td align=
"left">5.1</td><td align=
"left">Random number generation
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.1</td><td align=
"left">Requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.2</td><td align=
"left">Header
<code class=
"code"><random
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.3</td><td align=
"left">Class template
<code class=
"code">variate_generator
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.4</td><td align=
"left">Random number engine class templates
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.4.1</td><td align=
"left">Class template
<code class=
"code">linear_congruential
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.4.2</td><td align=
"left">Class template
<code class=
"code">mersenne_twister
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.4.3</td><td align=
"left">Class template
<code class=
"code">subtract_with_carry
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.4.4</td><td align=
"left">Class template
<code class=
"code">subtract_with_carry_01
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.4.5</td><td align=
"left">Class template
<code class=
"code">discard_block
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.4.6</td><td align=
"left">Class template
<code class=
"code">xor_combine
</code></td><td align=
"left">Y
</td><td align=
"left">operator()() per N2079
</td></tr><tr><td align=
"left">5.1.5</td><td align=
"left">Engines with predefined parameters
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.6</td><td align=
"left">Class
<code class=
"code">random_device
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7</td><td align=
"left">Random distribution class templates
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.1</td><td align=
"left">Class template
<code class=
"code">uniform_int
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.2</td><td align=
"left">Class
<code class=
"code">bernoulli_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.3</td><td align=
"left">Class template
<code class=
"code">geometric_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.4</td><td align=
"left">Class template
<code class=
"code">poisson_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.5</td><td align=
"left">Class template
<code class=
"code">binomial_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.6</td><td align=
"left">Class template
<code class=
"code">uniform_real
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.7</td><td align=
"left">Class template
<code class=
"code">exponential_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.8</td><td align=
"left">Class template
<code class=
"code">normal_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.1.7.9</td><td align=
"left">Class template
<code class=
"code">gamma_distribution
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2</td><td align=
"left">Mathematical special functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1</td><td align=
"left">Additions to header
<code class=
"code"><cmath
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.1</td><td align=
"left">associated Laguerre polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.2</td><td align=
"left">associated Legendre functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.3</td><td align=
"left">beta function
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.4</td><td align=
"left">(complete) elliptic integral of the first kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.5</td><td align=
"left">(complete) elliptic integral of the second kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.6</td><td align=
"left">(complete) elliptic integral of the third kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.7</td><td align=
"left">confluent hypergeometric functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.8</td><td align=
"left">regular modified cylindrical Bessel functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.9</td><td align=
"left">cylindrical Bessel functions (of the first kind)
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.10</td><td align=
"left">irregular modified cylindrical Bessel functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.11</td><td align=
"left">cylindrical Neumann functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.12</td><td align=
"left">(incomplete) elliptic integral of the first kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.13</td><td align=
"left">(incomplete) elliptic integral of the second kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.14</td><td align=
"left">(incomplete) elliptic integral of the third kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.15</td><td align=
"left">exponential integral
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.16</td><td align=
"left">Hermite polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.17</td><td align=
"left">hypergeometric functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.18</td><td align=
"left">Laguerre polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.19</td><td align=
"left">Legendre polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.20</td><td align=
"left">Riemann zeta function
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.21</td><td align=
"left">spherical Bessel functions (of the first kind)
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.22</td><td align=
"left">spherical associated Legendre functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.1.23</td><td align=
"left">spherical Neumann functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">5.2.2</td><td align=
"left">Additions to header
<code class=
"code"><math.h
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left"><span class=
"emphasis"><em>6</em></span></td><td colspan=
"3" align=
"left"><span class=
"emphasis"><em>Containers
</em></span></td></tr><tr><td align=
"left">6.1</td><td align=
"left">Tuple types
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.1</td><td align=
"left">Header
<code class=
"code"><tuple
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.2</td><td align=
"left">Additions to header
<code class=
"code"><utility
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.3</td><td align=
"left">Class template
<code class=
"code">tuple
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.3.1</td><td align=
"left">Construction
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.3.2</td><td align=
"left">Tuple creation functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.3.3</td><td align=
"left">Tuple helper classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.3.4</td><td align=
"left">Element access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.3.5</td><td align=
"left">Relational operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.1.4</td><td align=
"left">Pairs
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2</td><td align=
"left">Fixed size array
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2.1</td><td align=
"left">Header
<code class=
"code"><array
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2.2</td><td align=
"left">Class template
<code class=
"code">array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2.2.1</td><td align=
"left"><code class=
"code">array
</code> constructors, copy, and assignment
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2.2.2</td><td align=
"left"><code class=
"code">array
</code> specialized algorithms
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2.2.3</td><td align=
"left"><code class=
"code">array
</code> size
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2.2.4</td><td align=
"left">Zero sized
<code class=
"code">array
</code>s
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.2.2.5</td><td align=
"left">Tuple interface to class template
<code class=
"code">array
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3</td><td align=
"left">Unordered associative containers
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.1</td><td align=
"left">Unordered associative container requirements
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.1.1</td><td align=
"left">Exception safety guarantees
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.2</td><td align=
"left">Additions to header
<code class=
"code"><functional
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.3</td><td align=
"left">Class template
<code class=
"code">hash
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4</td><td align=
"left">Unordered associative container classes
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.1</td><td align=
"left">Header
<code class=
"code"><unordered_set
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.2</td><td align=
"left">Header
<code class=
"code"><unordered_map
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.3</td><td align=
"left">Class template
<code class=
"code">unordered_set
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.3.1</td><td align=
"left"><code class=
"code">unordered_set
</code> constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.3.2</td><td align=
"left"><code class=
"code">unordered_set
</code> swap
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.4</td><td align=
"left">Class template
<code class=
"code">unordered_map
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.4.1</td><td align=
"left"><code class=
"code">unordered_map
</code> constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.4.2</td><td align=
"left"><code class=
"code">unordered_map
</code> element access
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.4.3</td><td align=
"left"><code class=
"code">unordered_map
</code> swap
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.5</td><td align=
"left">Class template
<code class=
"code">unordered_multiset
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.5.1</td><td align=
"left"><code class=
"code">unordered_multiset
</code> constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.5.2</td><td align=
"left"><code class=
"code">unordered_multiset
</code> swap
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.6</td><td align=
"left">Class template
<code class=
"code">unordered_multimap
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.6.1</td><td align=
"left"><code class=
"code">unordered_multimap
</code> constructors
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">6.3.4.6.2</td><td align=
"left"><code class=
"code">unordered_multimap
</code> swap
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left"><span class=
"emphasis"><em>7</em></span></td><td colspan=
"3" align=
"left"><span class=
"emphasis"><em>Regular Expressions
</em></span></td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.1</td><td align=
"left">Definitions
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.2</td><td align=
"left">Requirements
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.3</td><td align=
"left">Regular expressions summary
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.4</td><td align=
"left">Header
<code class=
"code"><regex
></code> synopsis
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.5</td><td align=
"left">Namespace
<code class=
"code">tr1::regex_constants
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.5.1</td><td align=
"left">Bitmask Type
<code class=
"code">syntax_option_type
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.5.2</td><td align=
"left">Bitmask Type
<code class=
"code">regex_constants::match_flag_type
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.5.3</td><td align=
"left">Implementation defined
<code class=
"code">error_type
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.6</td><td align=
"left">Class
<code class=
"code">regex_error
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.7</td><td align=
"left">Class template
<code class=
"code">regex_traits
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8</td><td align=
"left">Class template
<code class=
"code">basic_regex
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.1</td><td align=
"left"><code class=
"code">basic_regex
</code> constants
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.2</td><td align=
"left"><code class=
"code">basic_regex
</code> constructors
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.3</td><td align=
"left"><code class=
"code">basic_regex
</code> assign
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.4</td><td align=
"left"><code class=
"code">basic_regex
</code> constant operations
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.5</td><td align=
"left"><code class=
"code">basic_regex
</code> locale
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.6</td><td align=
"left"><code class=
"code">basic_regex
</code> swap
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.7</td><td align=
"left"><code class=
"code">basic_regex
</code> non-member functions
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.8.7.1</td><td align=
"left"><code class=
"code">basic_regex
</code> non-member swap
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.9</td><td align=
"left">Class template
<code class=
"code">sub_match
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.9.1</td><td align=
"left"><code class=
"code">sub_match
</code> members
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.9.2</td><td align=
"left"><code class=
"code">sub_match
</code> non-member operators
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.10</td><td align=
"left">Class template
<code class=
"code">match_results
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.10.1</td><td align=
"left"><code class=
"code">match_results
</code> constructors
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.10.2</td><td align=
"left"><code class=
"code">match_results
</code> size
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.10.3</td><td align=
"left"><code class=
"code">match_results
</code> element access
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.10.4</td><td align=
"left"><code class=
"code">match_results
</code> formatting
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.10.5</td><td align=
"left"><code class=
"code">match_results
</code> allocator
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.10.6</td><td align=
"left"><code class=
"code">match_results
</code> swap
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.11</td><td align=
"left">Regular expression algorithms
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.11.1</td><td align=
"left">exceptions
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.11.2</td><td align=
"left"><code class=
"code">regex_match
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.11.3</td><td align=
"left"><code class=
"code">regex_search
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.11.4</td><td align=
"left"><code class=
"code">regex_replace
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12</td><td align=
"left">Regular expression Iterators
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.1</td><td align=
"left">Class template
<code class=
"code">regex_iterator
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.1.1</td><td align=
"left"><code class=
"code">regex_iterator
</code> constructors
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.1.2</td><td align=
"left"><code class=
"code">regex_iterator
</code> comparisons
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.1.3</td><td align=
"left"><code class=
"code">regex_iterator
</code> dereference
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.1.4</td><td align=
"left"><code class=
"code">regex_iterator
</code> increment
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.2</td><td align=
"left">Class template
<code class=
"code">regex_token_iterator
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.2.1</td><td align=
"left"><code class=
"code">regex_token_iterator
</code> constructors
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.2.2</td><td align=
"left"><code class=
"code">regex_token_iterator
</code> comparisons
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.2.3</td><td align=
"left"><code class=
"code">regex_token_iterator
</code> dereference
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.12.2.4</td><td align=
"left"><code class=
"code">regex_token_iterator
</code> increment
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">7.13</td><td align=
"left">Modified ECMAScript regular expression grammar
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left"><span class=
"emphasis"><em>8</em></span></td><td colspan=
"3" align=
"left"><span class=
"emphasis"><em>C Compatibility
</em></span></td></tr><tr><td align=
"left">8.1</td><td align=
"left">Additions to header
<code class=
"code"><complex
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.2</td><td align=
"left">Function
<code class=
"code">acos
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.3</td><td align=
"left">Function
<code class=
"code">asin
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.4</td><td align=
"left">Function
<code class=
"code">atan
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.5</td><td align=
"left">Function
<code class=
"code">acosh
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.6</td><td align=
"left">Function
<code class=
"code">asinh
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.7</td><td align=
"left">Function
<code class=
"code">atanh
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.8</td><td align=
"left">Function
<code class=
"code">fabs
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.9</td><td align=
"left">Additional Overloads
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">8.2</td><td align=
"left">Header
<code class=
"code"><ccomplex
></code></td><td align=
"left">N
</td><td align=
"left">DR
551</td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">8.3</td><td align=
"left">Header
<code class=
"code"><complex.h
></code></td><td align=
"left">N
</td><td align=
"left">DR
551</td></tr><tr><td align=
"left">8.4</td><td align=
"left">Additions to header
<code class=
"code"><cctype
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.4.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.4.2</td><td align=
"left">Function
<code class=
"code">isblank
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.5</td><td align=
"left">Additions to header
<code class=
"code"><ctype.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.6</td><td align=
"left">Header
<code class=
"code"><cfenv
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.6.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.6.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.7</td><td align=
"left">Header
<code class=
"code"><fenv.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.8</td><td align=
"left">Additions to header
<code class=
"code"><cfloat
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.9</td><td align=
"left">Additions to header
<code class=
"code"><float.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">8.10</td><td align=
"left">Additions to header
<code class=
"code"><ios
></code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">8.10.1</td><td align=
"left">Synopsis
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">8.10.2</td><td align=
"left">Function
<code class=
"code">hexfloat
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.11</td><td align=
"left">Header
<code class=
"code"><cinttypes
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.11.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left">DR
557</td></tr><tr><td align=
"left">8.11.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.12</td><td align=
"left">Header
<code class=
"code"><inttypes.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.13</td><td align=
"left">Additions to header
<code class=
"code"><climits
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.14</td><td align=
"left">Additions to header
<code class=
"code"><limits.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">8.15</td><td align=
"left">Additions to header
<code class=
"code"><locale
></code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.16</td><td align=
"left">Additions to header
<code class=
"code"><cmath
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.16.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.16.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.16.3</td><td align=
"left">Function template definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.16.4</td><td align=
"left">Additional overloads
</td><td align=
"left">Y
</td><td align=
"left">DR
568; DR
550</td></tr><tr><td align=
"left">8.17</td><td align=
"left">Additions to header
<code class=
"code"><math.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.18</td><td align=
"left">Additions to header
<code class=
"code"><cstdarg
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.19</td><td align=
"left">Additions to header
<code class=
"code"><stdarg.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.20</td><td align=
"left">The header
<code class=
"code"><cstdbool
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.21</td><td align=
"left">The header
<code class=
"code"><stdbool.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.22</td><td align=
"left">The header
<code class=
"code"><cstdint
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.22.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.22.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.23</td><td align=
"left">The header
<code class=
"code"><stdint.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.24</td><td align=
"left">Additions to header
<code class=
"code"><cstdio
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.24.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.24.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.24.3</td><td align=
"left">Additional format specifiers
</td><td align=
"left">Y
</td><td align=
"left">C library dependency
</td></tr><tr><td align=
"left">8.24.4</td><td align=
"left">Additions to header
<code class=
"code"><stdio.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.25</td><td align=
"left">Additions to header
<code class=
"code"><cstdlib
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.25.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.25.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.25.3</td><td align=
"left">Function
<code class=
"code">abs
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.25.4</td><td align=
"left">Function
<code class=
"code">div
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.26</td><td align=
"left">Additions to header
<code class=
"code"><stdlib.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.27</td><td align=
"left">Header
<code class=
"code"><ctgmath
></code></td><td align=
"left">Y
</td><td align=
"left">DR
551</td></tr><tr><td align=
"left">8.28</td><td align=
"left">Header
<code class=
"code"><tgmath.h
></code></td><td align=
"left">Y
</td><td align=
"left">DR
551</td></tr><tr><td align=
"left">8.29</td><td align=
"left">Additions to header
<code class=
"code"><ctime
></code></td><td align=
"left">Y
</td><td align=
"left">C library dependency
</td></tr><tr><td align=
"left">8.30</td><td align=
"left">Additions to header
<code class=
"code"><cwchar
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.30.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.30.2</td><td align=
"left">Definitions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.30.3</td><td align=
"left">Additional wide format specifiers
</td><td align=
"left">Y
</td><td align=
"left">C library dependency
</td></tr><tr><td align=
"left">8.31</td><td align=
"left">Additions to header
<code class=
"code"><wchar.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.32</td><td align=
"left">Additions to header
<code class=
"code"><cwctype
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.32.1</td><td align=
"left">Synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.32.2</td><td align=
"left">Function
<code class=
"code">iswblank
</code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.33</td><td align=
"left">Additions to header
<code class=
"code"><wctype.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr></tbody></table></div></div><br class=
"table-break" /><div class=
"section"><div class=
"titlepage"><div><div><h4 class=
"title"><a id=
"iso.tr1.specific"></a>Implementation Specific Behavior
</h4></div></div></div><p>For behaviour which is specified by the
1998 and
2003 standards,
1560 see
<a class=
"link" href=
"status.html#iso.1998.specific" title=
"Implementation Specific Behavior">C++
1998/
2003 Implementation
1561 Specific Behavior
</a>. This section documents behaviour which
1564 <span class=
"emphasis"><em>3.6.4 [tr.func.bind.place]/
1</em></span> There are
29
1565 placeholders defined and the placeholder types are
1566 <code class=
"literal">Assignable
</code>.
1567 </p></div></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.tr24733"></a>C++ TR
24733</h3></div></div></div><p>
1568 This table is based on the table of contents of
1569 ISO/IEC TR
24733 Date:
2009-
08-
28
1570 Extension for the programming language C++ to support
1571 decimal floating-point arithmetic
1573 This page describes the TR
24733 support in mainline GCC, not in any
1575 </p><div class=
"table"><a id=
"table.decfp_status"></a><p class=
"title"><strong>Table
1.10. C++ TR
24733 Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ TR 24733 Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Section
</th><th align=
"left">Description
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr><td align=
"left">
1576 <span class=
"emphasis"><em>0</em></span>
1577 </td><td colspan=
"3" align=
"left">
1578 <span class=
"emphasis"><em>Introduction
</em></span>
1579 </td></tr><tr><td align=
"left">
1580 <span class=
"emphasis"><em>1</em></span>
1581 </td><td colspan=
"3" align=
"left">
1582 <span class=
"emphasis"><em>Normative references
</em></span>
1583 </td></tr><tr><td align=
"left">
1584 <span class=
"emphasis"><em>2</em></span>
1585 </td><td colspan=
"3" align=
"left">
1586 <span class=
"emphasis"><em>Conventions
</em></span>
1587 </td></tr><tr><td align=
"left">
1588 <span class=
"emphasis"><em>3</em></span>
1589 </td><td colspan=
"3" align=
"left">
1590 <span class=
"emphasis"><em>Decimal floating-point types
</em></span>
1591 </td></tr><tr><td align=
"left">3.1</td><td align=
"left">Characteristics of decimal floating-point types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">3.2</td><td align=
"left">Decimal Types
</td><td align=
"left"> </td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">3.2.1</td><td align=
"left">Class
<code class=
"code">decimal
</code> synopsis
</td><td align=
"left">Partial
</td><td align=
"left">Missing declarations for formatted input/output; non-conforming extension for functions converting to integral type
</td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">3.2.2</td><td align=
"left">Class
<code class=
"code">decimal32
</code></td><td align=
"left">Partial
</td><td align=
"left">Missing
3.2.2.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point
</td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">3.2.3</td><td align=
"left">Class
<code class=
"code">decimal64
</code></td><td align=
"left">Partial
</td><td align=
"left">Missing
3.2.3.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point
</td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">3.2.4</td><td align=
"left">Class
<code class=
"code">decimal128
</code></td><td align=
"left">Partial
</td><td align=
"left">Missing
3.2.4.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point
</td></tr><tr><td align=
"left">3.2.5</td><td align=
"left">Initialization from coefficient and exponent
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.2.6</td><td align=
"left">Conversion to generic floating-point type
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.2.7</td><td align=
"left">Unary arithmetic operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.2.8</td><td align=
"left">Binary arithmetic operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.2.9</td><td align=
"left">Comparison operators
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.2.10</td><td align=
"left">Formatted input
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.2.11</td><td align=
"left">Formatted output
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.3</td><td align=
"left">Additions to header
<code class=
"code">limits
</code></td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.4</td><td align=
"left">Headers
<code class=
"code">cfloat
</code> and
<code class=
"code">float.h
</code></td><td align=
"left"> </td><td align=
"left"> </td></tr><tr><td align=
"left">3.4.2</td><td align=
"left">Additions to header
<code class=
"code">cfloat
</code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">3.4.3</td><td align=
"left">Additions to header
<code class=
"code">float.h
</code> synopsis
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.4.4</td><td align=
"left">Maximum finite value
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.4.5</td><td align=
"left">Epsilon
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.4.6</td><td align=
"left">Minimum positive normal value
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.4.7</td><td align=
"left">Minimum positive subnormal value
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">3.4.8</td><td align=
"left">Evaluation format
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.5</td><td align=
"left">Additions to
<code class=
"code">cfenv
</code> and
<code class=
"code">fenv.h
</code></td><td align=
"left">Outside the scope of GCC
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.6</td><td align=
"left">Additions to
<code class=
"code">cmath
</code> and
<code class=
"code">math.h
</code></td><td align=
"left">Outside the scope of GCC
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.7</td><td align=
"left">Additions to
<code class=
"code">cstdio
</code> and
<code class=
"code">stdio.h
</code></td><td align=
"left">Outside the scope of GCC
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.8</td><td align=
"left">Additions to
<code class=
"code">cstdlib
</code> and
<code class=
"code">stdlib.h
</code></td><td align=
"left">Outside the scope of GCC
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.9</td><td align=
"left">Additions to
<code class=
"code">cwchar
</code> and
<code class=
"code">wchar.h
</code></td><td align=
"left">Outside the scope of GCC
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.10</td><td align=
"left">Facets
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.11</td><td align=
"left">Type traits
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">3.12</td><td align=
"left">Hash functions
</td><td align=
"left">N
</td><td align=
"left"> </td></tr><tr><td align=
"left">
1592 <span class=
"emphasis"><em>4</em></span>
1593 </td><td colspan=
"3" align=
"left">
1594 <span class=
"emphasis"><em>Notes on C compatibility
</em></span>
1595 </td></tr></tbody></table></div></div><br class=
"table-break" /></div><div class=
"section"><div class=
"titlepage"><div><div><h3 class=
"title"><a id=
"status.iso.specfun"></a>C++ IS
29124</h3></div></div></div><p>
1596 This table is based on the table of contents of ISO/IEC FDIS
29124
1597 Doc No: N3060 Date:
2010-
03-
06
1598 Extensions to the C++ Library to support mathematical special functions
1600 Complete support for IS
29124 is in GCC
6.1 and later releases, when using
1601 at least C++
11 (for older releases or C++
98/C++
03 use TR1 instead).
1602 For C++
11 and C++
14 the additions to the library are not declared by their
1603 respective headers unless
<code class=
"code">__STDCPP_WANT_MATH_SPEC_FUNCS__
</code>
1604 is defined as a macro that expands to a non-zero integer constant.
1605 For C++
17 the special functions are always declared (since GCC
7.1).
1607 When the special functions are declared the macro
1608 <code class=
"code">__STDCPP_MATH_SPEC_FUNCS__
</code> is defined to
<code class=
"code">201003L</code>.
1610 In addition to the special functions defined in IS
29124, for
1611 non-strict modes (i.e.
<code class=
"code">-std=gnu++NN
</code> modes) the
1612 hypergeometric functions and confluent hypergeometric functions
1613 from TR1 are also provided, defined in namespace
1614 <code class=
"code">__gnu_cxx
</code>.
1615 </p><div class=
"table"><a id=
"table.specfun_status"></a><p class=
"title"><strong>Table
1.11. C++ Special Functions Implementation Status
</strong></p><div class=
"table-contents"><table class=
"table" summary=
"C++ Special Functions Implementation Status" border=
"1"><colgroup><col align=
"left" class=
"c1" /><col align=
"left" class=
"c2" /><col align=
"left" class=
"c3" /><col align=
"left" class=
"c4" /></colgroup><thead><tr><th align=
"left">Section
</th><th align=
"left">Description
</th><th align=
"left">Status
</th><th align=
"left">Comments
</th></tr></thead><tbody><tr bgcolor=
"#B0B0B0"><td align=
"left">7</td><td align=
"left">Macro names
</td><td align=
"left">Partial
</td><td align=
"left">No diagnostic for inconsistent definitions of
1616 <code class=
"code">__STDCPP_WANT_MATH_SPEC_FUNCS__
</code></td></tr><tr><td align=
"left">8</td><td align=
"left">Mathematical special functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1</td><td align=
"left">Additions to header
<code class=
"code"><cmath
></code> synopsis
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.1</td><td align=
"left">associated Laguerre polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.2</td><td align=
"left">associated Legendre functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.3</td><td align=
"left">beta function
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.4</td><td align=
"left">(complete) elliptic integral of the first kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.5</td><td align=
"left">(complete) elliptic integral of the second kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.6</td><td align=
"left">(complete) elliptic integral of the third kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.7</td><td align=
"left">regular modified cylindrical Bessel functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.8</td><td align=
"left">cylindrical Bessel functions (of the first kind)
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.9</td><td align=
"left">irregular modified cylindrical Bessel functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.10</td><td align=
"left">cylindrical Neumann functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.11</td><td align=
"left">(incomplete) elliptic integral of the first kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.12</td><td align=
"left">(incomplete) elliptic integral of the second kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.13</td><td align=
"left">(incomplete) elliptic integral of the third kind
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.14</td><td align=
"left">exponential integral
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.15</td><td align=
"left">Hermite polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.16</td><td align=
"left">Laguerre polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.17</td><td align=
"left">Legendre polynomials
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.18</td><td align=
"left">Riemann zeta function
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.19</td><td align=
"left">spherical Bessel functions (of the first kind)
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.20</td><td align=
"left">spherical associated Legendre functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.1.21</td><td align=
"left">spherical Neumann functions
</td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr><td align=
"left">8.2</td><td align=
"left">Additions to header
<code class=
"code"><math.h
></code></td><td align=
"left">Y
</td><td align=
"left"> </td></tr><tr bgcolor=
"#B0B0B0"><td align=
"left">8.3</td><td align=
"left">The header
<code class=
"code"><ctgmath
></code></td><td align=
"left">Partial
</td><td align=
"left">Conflicts with C++
2011 requirements.
</td></tr><tr bgcolor=
"#C8B0B0"><td align=
"left">8.4</td><td align=
"left">The header
<code class=
"code"><tgmath.h
></code></td><td align=
"left">N
</td><td align=
"left">Conflicts with C++
2011 requirements.
</td></tr></tbody></table></div></div><br class=
"table-break" /><div class=
"section"><div class=
"titlepage"><div><div><h4 class=
"title"><a id=
"iso.specfun.specific"></a>Implementation Specific Behavior
</h4></div></div></div><p>For behaviour which is specified by the
2011 standard,
1617 see
<a class=
"link" href=
"status.html#iso.2011.specific" title=
"Implementation Specific Behavior">C++
2011 Implementation
1618 Specific Behavior
</a>. This section documents behaviour which
1619 is required by IS
29124.
1621 <span class=
"emphasis"><em>7.2 [macro.user]/
3 /
4</em></span> The functions declared in
1622 Clause
8 are only declared when
1623 <code class=
"code">__STDCPP_WANT_MATH_SPEC_FUNCS__ ==
1</code>
1624 (or in C++
17 mode, for GCC
7.1 and later).
1626 <span class=
"emphasis"><em>8.1.1 [sf.cmath.Lnm]/
1</em></span> The effect of calling
1627 these functions with
<code class=
"code">n
>=
128</code> or
<code class=
"code">m
>=
128</code>
1628 should be described here.
1630 <span class=
"emphasis"><em>8.1.2 [sf.cmath.Plm]/
3</em></span> The effect of calling
1631 these functions with
<code class=
"code">l
>=
128</code> should be described here.
1633 <span class=
"emphasis"><em>8.1.3 [sf.cmath.I]/
3</em></span> The effect of calling
1634 these functions with
<code class=
"code">nu
>=
128</code> should be described here.
1636 <span class=
"emphasis"><em>8.1.8 [sf.cmath.J]/
3</em></span> The effect of calling
1637 these functions with
<code class=
"code">nu
>=
128</code> should be described here.
1639 <span class=
"emphasis"><em>8.1.9 [sf.cmath.K]/
3</em></span> The effect of calling
1640 these functions with
<code class=
"code">nu
>=
128</code> should be described here.
1642 <span class=
"emphasis"><em>8.1.10 [sf.cmath.N]/
3</em></span> The effect of calling
1643 these functions with
<code class=
"code">nu
>=
128</code> should be described here.
1645 <span class=
"emphasis"><em>8.1.15 [sf.cmath.Hn]/
3</em></span> The effect of calling
1646 these functions with
<code class=
"code">n
>=
128</code> should be described here.
1648 <span class=
"emphasis"><em>8.1.16 [sf.cmath.Ln]/
3</em></span> The effect of calling
1649 these functions with
<code class=
"code">n
>=
128</code> should be described here.
1651 <span class=
"emphasis"><em>8.1.17 [sf.cmath.Pl]/
3</em></span> The effect of calling
1652 these functions with
<code class=
"code">l
>=
128</code> should be described here.
1654 <span class=
"emphasis"><em>8.1.19 [sf.cmath.j]/
3</em></span> The effect of calling
1655 these functions with
<code class=
"code">n
>=
128</code> should be described here.
1657 <span class=
"emphasis"><em>8.1.20 [sf.cmath.Ylm]/
3</em></span> The effect of calling
1658 these functions with
<code class=
"code">l
>=
128</code> should be described here.
1660 <span class=
"emphasis"><em>8.1.21 [sf.cmath.n]/
3</em></span> The effect of calling
1661 these functions with
<code class=
"code">n
>=
128</code> should be described here.
1662 </p></div></div></div></div><div class=
"navfooter"><hr /><table width=
"100%" summary=
"Navigation footer"><tr><td width=
"40%" align=
"left"><a accesskey=
"p" href=
"intro.html">Prev
</a> </td><td width=
"20%" align=
"center"><a accesskey=
"u" href=
"intro.html">Up
</a></td><td width=
"40%" align=
"right"> <a accesskey=
"n" href=
"license.html">Next
</a></td></tr><tr><td width=
"40%" align=
"left" valign=
"top">Part I.
1665 </td><td width=
"20%" align=
"center"><a accesskey=
"h" href=
"../index.html">Home
</a></td><td width=
"40%" align=
"right" valign=
"top"> License
</td></tr></table></div></body></html>