<!doctype html>
<html lang="en">
  <head>
    <title>
              SD-FeatureTest: Feature-Test Macros and Policies : 
            Standard C++
    </title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="/favicon.ico" rel="shortcut icon">
    <link rel="apple-touch-icon" href="apple-touch-icon-57.png">
    <link rel="apple-touch-icon" sizes="72x72" href="apple-touch-icon-72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="apple-touch-icon-114.png">
    <link rel="apple-touch-icon" sizes="144x144" href="apple-touch-icon-144.png">
    <link href="https://fonts.googleapis.com/css?family=Crimson+Text|Roboto|Roboto+Condensed:400,700&display=swap" rel="stylesheet">
    <link href="/assets/css/app.css?v012" rel="stylesheet" media="all" type="text/css">
    <link href="/assets/css/prettify.css" rel="stylesheet" media="all" type="text/css">

    <script type="text/javascript" src="/assets/js/prettify.min.js"></script>    
  </head>
  
  <body class="hide-sidebar">
    <div id="root">
    
      <div id="crown">
        <a id="sidebar-toggle" href="#sidebar">Show sidebar &raquo;</a>
        <ul class="user">
                          <li><a href="https://isocpp.org/member/login">Sign In / Suggest an Article</a></li>
          <li><a href="https://isocpp.org/member/register">Register</a></li>
                </ul>
      </div>

      <header id="top" role="banner">
        <div class="container">
          <h1>
            <a href="https://isocpp.org/"><img src="/assets/images/cpp_logo.png" alt="Standard C++"></a>
          </h1>
          <nav role="navigation">
            <ul id="nav-sub">
<li class="first"><a href="https://isocpp.org/get-started">Get Started!</a></li>
<li><a href="https://isocpp.org/tour">Tour</a></li>
<li><a href="https://isocpp.org/guidelines">Core Guidelines</a></li>
<li><a href="https://isocpp.org/faq">Super-FAQ</a></li>
<li class="parent-here"><a href="https://isocpp.org/std">Standardization</a></li>
<li class="last"><a href="https://isocpp.org/about">About</a></li>
</ul>
          </nav>
          <form action="/search/google">
            <input type="text" name="q" id="q" maxlength="100" value="" class="textbox">
            <input type="submit" value="Search" class="button">
          </form>
          <!--
          <form method="post" action="https://isocpp.org/"  >
<div class='hiddenFields'>
<input type="hidden" name="ACT" value="6" />
<input type="hidden" name="XID" value="44f4ad352942642eeb7e1c9ae91f3541e290baa1" />
<input type="hidden" name="RES" value="" />
<input type="hidden" name="meta" value="YTo5OntzOjY6InN0YXR1cyI7czowOiIiO3M6NzoiY2hhbm5lbCI7czoxOToiYmxvZ3xwYWdlc3xmYXF8d2lraSI7czo4OiJjYXRlZ29yeSI7czowOiIiO3M6OToic2VhcmNoX2luIjtzOjEwOiJldmVyeXdoZXJlIjtzOjU6IndoZXJlIjtzOjM6ImFsbCI7czoxMjoic2hvd19leHBpcmVkIjtzOjA6IiI7czoxOToic2hvd19mdXR1cmVfZW50cmllcyI7YjowO3M6MTE6InJlc3VsdF9wYWdlIjtzOjE0OiJzZWFyY2gvcmVzdWx0cyI7czoxNToibm9fcmVzdWx0c19wYWdlIjtzOjE3OiJzZWFyY2gvbm9fcmVzdWx0cyI7fTNkZmE5MTM0YzRkODdjNWE2MDc5Y2YxZjA5OGYxOTRh" />
<input type="hidden" name="site_id" value="1" />
</div>


            <input type="text" name="keywords" id="keywords" maxlength="100" value="M50o93H7pQ09L8X1t49cHY01Z5j4TT91fGfr" class="textbox">
            <input type="submit" value="Search" class="button">
          </form>
          -->
        </div>
      </header>

      <div id="content" class="hide-sidebar" role="main">
        <div class="container">


<div id="sidebar">
        <section>
              <header>Features</header>
            <div class="sidebar-section-content prettify">
        <p>
	<a href="https://isocpp.org/std/status">Current ISO C++ status</a></p>
<p>
	&nbsp;</p>
<p>
	<a href="https://isocpp.org/std/standing-documents">ISO C++ standing documents</a></p>
<p>
	&nbsp;</p>
<p>
	<a href="https://isocpp.org/std/meetings-and-participation/upcoming-meetings">Upcoming ISO C++ meetings</a></p>
<p>
	&nbsp;</p>
<p>
	<a href="https://isocpp.org/wiki/faq/conferences-worldwide">Upcoming C++ conferences</a></p>
<p>
	&nbsp;</p>
<p>
	<a href="http://en.cppreference.com/w/cpp/compiler_support">Compiler conformance status</a></p>
      </div>
    </section>
  
  
  <nav>
    <section>
      <header>
        <a href="https://isocpp.org/std/">Standardization</a>
      </header>
      <ul id="nav-sub">
<li class="first"><a href="https://isocpp.org/std/the-standard">The Standard</a></li>
<li><a href="https://isocpp.org/std/the-committee">The Committee</a></li>
<li><a href="https://isocpp.org/std/meetings-and-participation">Meetings and Participation</a></li>
<li><a href="https://isocpp.org/std/status">Current Status</a></li>
<li><a href="https://isocpp.org/std/submit-issue">How To Submit a New Issue / Defect Report</a></li>
<li><a href="https://isocpp.org/std/submit-a-proposal">How To Submit a Proposal</a></li>
<li><a href="https://isocpp.org/std/the-life-of-an-iso-proposal">The life of an ISO proposal: From "cool idea" to "international standard"</a></li>
<li><a href="https://isocpp.org/std/library-design-guidelines">Library Design Guidelines</a></li>
<li class="parent-here"><a href="https://isocpp.org/std/standing-documents">Standing Documents</a>
<ul>
<li class="first"><a href="https://isocpp.org/std/standing-documents/sd-3-study-group-organizational-information">SD-3: Study Group Organizational Information</a></li>
<li><a href="https://isocpp.org/std/standing-documents/sd-4-wg21-practices-and-procedures">SD-4: WG21 Practices and Procedures</a></li>
<li><a href="https://isocpp.org/std/standing-documents/sd-5-meeting-information">SD-5: Meeting Information</a></li>
<li class="here"><a href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-FeatureTest: Feature-Test Macros and Policies</a></li>
<li><a href="https://isocpp.org/std/standing-documents/sd-7-mailing-procedures-and-how-to-write-papers">SD-7: Mailing Procedures and How to Write Papers</a></li>
<li><a href="https://isocpp.org/std/standing-documents/sd-8-standard-library-compatibility">SD-8: Standard Library Compatibility</a></li>
<li><a href="https://isocpp.org/std/standing-documents/sd-9-library-evolution-policies">SD-9: Library Evolution Policies</a></li>
<li class="last"><a href="https://isocpp.org/std/standing-documents/sd-10-language-evolution-principles">SD-10: Language Evolution (EWG) Principles</a></li>
</ul>
</li>
<li><a href="https://isocpp.org/std/iso-iec-jtc1-procedures">ISO/IEC JTC1 Procedures</a></li>
<li class="last"><a href="https://isocpp.org/std/forums">Forums</a></li>
</ul>
    </section>
  </nav>
    
      <section>
              <header>Upcoming Events</header>
            <div class="sidebar-section-content">
        <p>
	<strong><a href="http://italiancpp.github.io/cppday25">C++ Day 2025</a></strong></p>
<p>
	October 25, Pavia, Italy</p>
<p>
	&nbsp;</p>
<p>
	<a href="https://meetingcpp.com/2025/"><strong>Meeting C++ 2025</strong></a></p>
<p>
	November 6-8, Berlin, Germany</p>
<p>
	&nbsp;</p>
<p>
	<a href="https://isocpp.org/files/papers/N4977.pdf"><strong>ISO C++ standards meeting</strong></a></p>
<p>
	November 3-8, Kona, HI, USA</p>
      </div>
    </section>
  
</div>

<div id="mainbar">

  <header>
    <div class="breadcrumbs">
      <a href="https://isocpp.org">Home</a> &raquo; <a href="https://isocpp.org/std/">Standardization</a> &raquo; <a href="https://isocpp.org/std/standing-documents/">Standing Documents</a> &raquo; <span class="last">SD-FeatureTest: Feature-Test Macros and Policies</span>
    </div>
    
      

      <h2>SD-FeatureTest: Feature-Test Macros and Policies</h2>
    </header>

          <style>
        :target { background-color: #C9FBC9; }
h1:target { background-color: transparent; }
h2:target { background-color: transparent; }
h3:target { background-color: transparent; }
h4:target { background-color: transparent; }
h5:target { background-color: transparent; }
h6:target { background-color: transparent; }

h1, h2, h3, h4 { position: relative; line-height: 1; }
a.self-link {
position: absolute;
top: 0;
left: calc(-1 * (3.5rem - 30px));
width: calc(3.5rem - 26px);
height: 2em;
text-align: center;
border: none;
transition: opacity .2s;
opacity: .5;
font-family: sans-serif;
font-weight: normal;
font-size: 83%;
text-decoration: none;
}
a.self-link:hover { opacity: 1; }
a.self-link::before { content: "§"; }

code .com { font-style: normal; }
code span.com { color: black; } /* Normal */
code span.al span, code span.al { color: #ff0000; } /* Alert */
code span.an span, code span.an { color: black; } /* Annotation */
code span.at span, code span.at { color: black; } /* Attribute */
code span.bn span, code span.bn { color: #9f6807; } /* BaseN */
code span.bu span, code span.bu { color: #9f6807; } /* BuiltIn */
code span.cf span, code span.cf { color: #00607c; } /* ControlFlow */
code span.ch span, code span.ch { color: #9f6807; } /* Char */
code span.cn span, code span.cn { color: black; } /* Constant */
code span.co span, code span.co { color: #008000; font-style: italic; } /* Comment */
code span.cv span, code span.cv { color: #008000; font-style: italic; } /* CommentVar */
code span.do span, code span.do { color: #008000; } /* Documentation */
code span.dt span, code span.dt { color: #00607c; } /* DataType */
code span.dv span, code span.dv { color: #9f6807; } /* DecVal */
code span.er span, code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex span, code span.ex { color: black; } /* Extension */
code span.fl span, code span.fl { color: #9f6807; } /* Float */
code span.fu span, code span.fu { color: black; } /* Function */
code span.im span, code span.im { color: black; } /* Import */
code span.in span, code span.in { color: #008000; } /* Information */
code span.kw span, code span.kw { color: #00607c; } /* Keyword */
code span.op span, code span.op { color: #af1915; } /* Operator */
code span.ot span, code span.ot { } /* Other */
code span.pp span, code span.pp { color: #6f4e37; } /* Preprocessor */
code span.re span, code span.re { color: black; } /* RegionMarker */
code span.sc span, code span.sc { color: #9f6807; } /* SpecialChar */
code span.ss span, code span.ss { color: #9f6807; } /* SpecialString */
code span.st span, code span.st { color: #9f6807; } /* String */
code span.va span, code span.va { color: black; } /* Variable */
code span.vs span, code span.vs { color: #9f6807; } /* VerbatimString */
code span.wa span, code span.wa { color: #008000; font-weight: bold; } /* Warning */
code.diff {color: #898887}
code.diff span.va {color: #006e28}
code.diff span.st {color: #bf0303}

table { overflow-x: auto; display: block; }

iframe {
    display: block;       /* iframes are inline by default */
    border: none;         /* Reset default border */
    height: 100vh;        /* Viewport-relative units */
    width: 100vw;
    margin: 0;
}
      </style>
        
    <article class="prettify">
      
        <body>
<div class="wrapper">
<header id="title-block-header">
<h1 class="title" style="text-align:center">Feature-Test Macros and
Policies</h1>
<table style="border:none;float:right">
<tr>
<td>Document #:</td>
<td>SD-FeatureTest</td>
</tr>
<tr>
<td>Date:</td>
<td>2025-06-03</td>
</tr>
<tr>
<td style="vertical-align:top">Project:</td>
<td>Programming Language C++</td>
</tr>
<tr>
<td style="vertical-align:top">Audience:</td>
<td>
</td>
</tr>
<tr>
<td style="vertical-align:top">Reply-to:</td>
<td>
</td>
</tr>
</table>
</header>
<div style="clear:both">
<div id="TOC" role="doc-toc">
<h1 id="toctitle">Contents</h1>
<ul>
<li><a href="#explanation-and-rationale-for-the-approach" id="toc-explanation-and-rationale-for-the-approach"><span class="toc-section-number">1</span> Explanation and rationale for the
approach<span></span></a>
<ul>
<li><a href="#status-quo-before-feature-test-macros" id="toc-status-quo-before-feature-test-macros"><span class="toc-section-number">1.1</span> Status quo before feature-test
macros<span></span></a></li>
<li><a href="#characteristics-of-the-proposed-solution" id="toc-characteristics-of-the-proposed-solution"><span class="toc-section-number">1.2</span> Characteristics of the proposed
solution<span></span></a></li>
<li><a href="#examples" id="toc-examples"><span class="toc-section-number">1.3</span> Examples<span></span></a></li>
</ul></li>
<li><a href="#recommendations" id="toc-recommendations"><span class="toc-section-number">2</span> Recommendations<span></span></a>
<ul>
<li><a href="#introduction" id="toc-introduction"><span class="toc-section-number">2.1</span> Introduction<span></span></a></li>
<li><a href="#testing-for-the-presence-of-a-header-__has_include" id="toc-testing-for-the-presence-of-a-header-__has_include"><span class="toc-section-number">2.2</span> Testing for the presence of a
header: <code class="sourceCode cpp"><span class="ot">__has_include</span></code><span></span></a></li>
<li><a href="#testing-for-the-presence-of-an-attribute-__has_cpp_attribute" id="toc-testing-for-the-presence-of-an-attribute-__has_cpp_attribute"><span class="toc-section-number">2.3</span> Testing for the presence of an
attribute: <code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code><span></span></a></li>
</ul></li>
<li><a href="#policies" id="toc-policies"><span class="toc-section-number">3</span> Policies<span></span></a>
<ul>
<li><a href="#constexpr" id="toc-constexpr"><span class="toc-section-number">3.1</span>
<code class="sourceCode cpp"><span class="kw">constexpr</span></code><span></span></a></li>
<li><a href="#language-features-with-library-components" id="toc-language-features-with-library-components"><span class="toc-section-number">3.2</span> Language Features with Library
Components<span></span></a></li>
</ul></li>
<li><a href="#table-of-feature-test-macros" id="toc-table-of-feature-test-macros"><span class="toc-section-number">4</span> Table of Feature-Test
Macros<span></span></a>
<ul>
<li><a href="#language-feature-test-macros" id="toc-language-feature-test-macros"><span class="toc-section-number">4.1</span> Language Feature-Test
Macros<span></span></a></li>
<li><a href="#attribute-feature-test-macros" id="toc-attribute-feature-test-macros"><span class="toc-section-number">4.2</span> Attribute Feature-Test
Macros<span></span></a></li>
<li><a href="#library-feature-test-macros" id="toc-library-feature-test-macros"><span class="toc-section-number">4.3</span> Library Feature-Test
Macros<span></span></a></li>
</ul></li>
<li><a href="#bibliography" id="toc-bibliography"><span class="toc-section-number">5</span> References<span></span></a></li>
</ul>
</div>
<style>
code span.er { color: #6f4e37; font-weight: normal; }
</style>
<h1 data-number="1" id="explanation-and-rationale-for-the-approach" style="border-bottom:1px solid #cccccc"><span class="header-section-number">1</span> Explanation and rationale for the
approach<a class="self-link" href="#explanation-and-rationale-for-the-approach"></a></h1>
<p>The pace of innovation in the standardization of C++ makes long-term
stability of implementations unlikely. Features are added to the
language because programmers want to use those features. Features are
added to (the working draft of) the standard as the features become
well-specified. In many cases a feature is added to an implementation
well before or well after the standard officially introducing it is
approved.</p>
<p>This process makes it difficult for programmers who want to use a
feature to know whether it is available in any given implementation.
Implementations rarely leap from one formal revision of the standard
directly to the next; the implementation process generally proceeds by
smaller steps. As a result, testing for a specific revision of the
standard (e.g. by examining the value of the
<code class="sourceCode cpp"><span class="ot">__cplusplus</span></code>
macro) often gives the wrong answer. Implementers generally don’t want
to appear to be claiming full conformance to a standard revision until
all of its features are implemented. That leaves programmers with no
portable way to determine which features are actually available to
them.</p>
<p>It is often possible for a program to determine, in a manner specific
to a single implementation, what features are supported by that
implementation; but the means are often poorly documented and ad hoc,
and sometimes complex – especially when the availability of a feature is
controlled by an invocation option. To make this determination for a
variety of implementations in a single source base is complex and
error-prone.</p>
<h2 data-number="1.1" id="status-quo-before-feature-test-macros"><span class="header-section-number">1.1</span> Status quo before feature-test
macros<a class="self-link" href="#status-quo-before-feature-test-macros"></a></h2>
<p>Here is some code that attempts to determine whether rvalue
references are available in the implementation in use:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb1-1"><a aria-hidden="true" href="#cb1-1" tabindex="-1"></a><span class="pp">#ifndef __USE_RVALUE_REFERENCES</span></span>
<span id="cb1-2"><a aria-hidden="true" href="#cb1-2" tabindex="-1"></a>  <span class="pp">#if (</span><span class="ot">__GNUC__</span><span class="pp"> &gt; 4 || </span><span class="ot">__GNUC__</span><span class="pp"> == 4 &amp;&amp; </span><span class="ot">__GNUC_MINOR__</span><span class="pp"> &gt;= 3) || \</span></span>
<span id="cb1-3"><a aria-hidden="true" href="#cb1-3" tabindex="-1"></a><span class="pp">      _MSC_VER &gt;= 1600</span></span>
<span id="cb1-4"><a aria-hidden="true" href="#cb1-4" tabindex="-1"></a>    <span class="pp">#if __EDG_VERSION__ &gt; 0</span></span>
<span id="cb1-5"><a aria-hidden="true" href="#cb1-5" tabindex="-1"></a>      <span class="pp">#define __USE_RVALUE_REFERENCES </span><span class="op">(</span>__EDG_VERSION__<span class="pp"> </span><span class="op">&gt;=</span><span class="pp"> </span><span class="dv">410</span><span class="op">)</span></span>
<span id="cb1-6"><a aria-hidden="true" href="#cb1-6" tabindex="-1"></a>    <span class="pp">#else</span></span>
<span id="cb1-7"><a aria-hidden="true" href="#cb1-7" tabindex="-1"></a>      <span class="pp">#define __USE_RVALUE_REFERENCES </span><span class="dv">1</span></span>
<span id="cb1-8"><a aria-hidden="true" href="#cb1-8" tabindex="-1"></a>    <span class="pp">#endif</span></span>
<span id="cb1-9"><a aria-hidden="true" href="#cb1-9" tabindex="-1"></a>  <span class="pp">#elif __clang__</span></span>
<span id="cb1-10"><a aria-hidden="true" href="#cb1-10" tabindex="-1"></a>    <span class="pp">#define __USE_RVALUE_REFERENCES </span>__has_feature<span class="op">(</span>cxx_rvalue_references<span class="op">)</span></span>
<span id="cb1-11"><a aria-hidden="true" href="#cb1-11" tabindex="-1"></a>  <span class="pp">#else</span></span>
<span id="cb1-12"><a aria-hidden="true" href="#cb1-12" tabindex="-1"></a>    <span class="pp">#define __USE_RVALUE_REFERENCES </span><span class="dv">0</span></span>
<span id="cb1-13"><a aria-hidden="true" href="#cb1-13" tabindex="-1"></a>  <span class="pp">#endif</span></span>
<span id="cb1-14"><a aria-hidden="true" href="#cb1-14" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
<p>First, the GNU and Microsoft version numbers are checked to see if
they are high enough. But then a check is made of the EDG version
number, since that front end also has compatibility modes for both those
compilers, and defines macros indicating (claimed) compatibility with
them. If the feature wasn’t implemented in the indicated EDG version, it
is assumed that the feature is not available – even though it is
possible for a customer of EDG to implement a feature before EDG
does.</p>
<p>Fortunately Clang has ways to test specifically for the presence of
specific features. But unfortunately, the function-call-like syntax used
for such tests won’t work with a standard preprocessor, so this fine new
feature winds up adding its own flavor of complexity to the mix.</p>
<p>Also note that this code is only the beginning of a real-world
solution. A complete solution would need to take into account more
compilers, and also command-line option settings specific to various
compilers.</p>
<h2 data-number="1.2" id="characteristics-of-the-proposed-solution"><span class="header-section-number">1.2</span> Characteristics of the proposed
solution<a class="self-link" href="#characteristics-of-the-proposed-solution"></a></h2>
<p>To preserve implementers’ freedom to add features in the order that
makes the most sense for themselves and their customers, implementers
should indicate the availability of each separate feature by adding a
definition of a macro with the name corresponding to that feature.</p>
<p>Important note: By recommending the use of these macros, WG21 is not
making any feature optional; the absence of a definition for the
relevant feature-test macro does not make an implementation that lacks a
feature conform to a standard that requires the feature. However, if
implementers and programmers follow these recommendations, portability
of code between real-world implementations should be improved.</p>
<p>To a first approximation, a feature is identified by the WG21 paper
in which it is specified, and by which it is introduced into the working
draft of the standard. Not every paper introduces a new feature worth a
feature-test macro, but every paper that is not just a collection of
issue resolutions is considered a candidate; exceptions are explicitly
justified.</p>
<p>For C++14, the feature-test macro name generally consists of some
combination of words from the title of the paper. In the future, it is
hoped that every paper will include its own recommendations concerning
feature-test macro names.</p>
<p>The value specified for a feature-test macro is based on the year and
month in which the feature is voted into the working draft. In a case
where a feature is subsequently changed in a significant way, but
arguably remains the same feature, the value of the macro is changed to
indicate the “revision level” of the specification of the feature.
However, in most cases it is expected that the presence of a feature can
be determined by the presence of any non-zero macro value; for
example:</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb2-1"><a aria-hidden="true" href="#cb2-1" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;</span><span class="kw">typename</span> T<span class="op">&gt;</span></span>
<span id="cb2-2"><a aria-hidden="true" href="#cb2-2" tabindex="-1"></a><span class="kw">struct</span> use_empty_base_opt <span class="op">:</span></span>
<span id="cb2-3"><a aria-hidden="true" href="#cb2-3" tabindex="-1"></a>    std<span class="op">::</span>integral_constant<span class="op">&lt;</span><span class="dt">bool</span>,</span>
<span id="cb2-4"><a aria-hidden="true" href="#cb2-4" tabindex="-1"></a>        std<span class="op">::</span>is_empty<span class="op">&lt;</span>T<span class="op">&gt;::</span>value</span>
<span id="cb2-5"><a aria-hidden="true" href="#cb2-5" tabindex="-1"></a><span class="pp">#if __cpp_lib_is_final</span></span>
<span id="cb2-6"><a aria-hidden="true" href="#cb2-6" tabindex="-1"></a>        <span class="op">&amp;&amp;</span> <span class="op">!</span>std<span class="op">::</span>is_final<span class="op">&lt;</span>T<span class="op">&gt;::</span>value</span>
<span id="cb2-7"><a aria-hidden="true" href="#cb2-7" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb2-8"><a aria-hidden="true" href="#cb2-8" tabindex="-1"></a>    <span class="op">&gt;</span></span>
<span id="cb2-9"><a aria-hidden="true" href="#cb2-9" tabindex="-1"></a><span class="op">{</span> <span class="op">}</span>;</span></code></pre></div>
<p>To avoid the user’s namespace, names of macros for language features
are prefixed by <code class="sourceCode cpp">__cpp_</code>; for library
features, by <code class="sourceCode cpp">__cpp_lib_</code>. A library
feature that doesn’t introduce a new header is expected to be defined by
the header(s) that implement the feature.</p>
<h2 data-number="1.3" id="examples"><span class="header-section-number">1.3</span> Examples<a class="self-link" href="#examples"></a></h2>
<p>Selecting a more efficient compile-time implementation based on the
availability of a feature:</p>
<blockquote>
<div class="sourceCode" id="cb3"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb3-1"><a aria-hidden="true" href="#cb3-1" tabindex="-1"></a><span class="pp">#if __cpp_variadic_using</span></span>
<span id="cb3-2"><a aria-hidden="true" href="#cb3-2" tabindex="-1"></a><span class="co">// can use the compile-time efficient, flat inheritance</span></span>
<span id="cb3-3"><a aria-hidden="true" href="#cb3-3" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;</span><span class="kw">typename</span> <span class="op">...</span>T<span class="op">&gt;</span> <span class="kw">struct</span> Callable <span class="op">:</span> T<span class="op">...</span> <span class="op">{</span></span>
<span id="cb3-4"><a aria-hidden="true" href="#cb3-4" tabindex="-1"></a>  <span class="kw">using</span> T<span class="op">::</span><span class="kw">operator</span><span class="op">()</span> <span class="op">...</span>;</span>
<span id="cb3-5"><a aria-hidden="true" href="#cb3-5" tabindex="-1"></a><span class="op">}</span>;</span>
<span id="cb3-6"><a aria-hidden="true" href="#cb3-6" tabindex="-1"></a><span class="pp">#else</span></span>
<span id="cb3-7"><a aria-hidden="true" href="#cb3-7" tabindex="-1"></a><span class="co">// fall-back to linear recursion for older compilers</span></span>
<span id="cb3-8"><a aria-hidden="true" href="#cb3-8" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;</span><span class="kw">typename</span> <span class="op">...</span>T<span class="op">&gt;</span> <span class="kw">struct</span> Callable;</span>
<span id="cb3-9"><a aria-hidden="true" href="#cb3-9" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;</span><span class="kw">typename</span> T, <span class="kw">typename</span> <span class="op">...</span>U<span class="op">&gt;</span></span>
<span id="cb3-10"><a aria-hidden="true" href="#cb3-10" tabindex="-1"></a><span class="kw">struct</span> Callable<span class="op">&lt;</span>T, U<span class="op">...&gt;</span> <span class="op">:</span> T, Callable<span class="op">&lt;</span>U<span class="op">...&gt;</span> <span class="op">{</span></span>
<span id="cb3-11"><a aria-hidden="true" href="#cb3-11" tabindex="-1"></a>  <span class="kw">using</span> T<span class="op">::</span><span class="kw">operator</span><span class="op">()</span>;</span>
<span id="cb3-12"><a aria-hidden="true" href="#cb3-12" tabindex="-1"></a>  <span class="kw">using</span> Callable<span class="op">&lt;</span>U<span class="op">...&gt;::</span><span class="kw">operator</span><span class="op">()</span>;</span>
<span id="cb3-13"><a aria-hidden="true" href="#cb3-13" tabindex="-1"></a><span class="op">}</span>;</span>
<span id="cb3-14"><a aria-hidden="true" href="#cb3-14" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;</span><span class="kw">typename</span> T<span class="op">&gt;</span> <span class="kw">struct</span> Callable<span class="op">&lt;</span>T<span class="op">&gt;</span> <span class="op">:</span> T <span class="op">{</span></span>
<span id="cb3-15"><a aria-hidden="true" href="#cb3-15" tabindex="-1"></a>  <span class="kw">using</span> T<span class="op">::</span><span class="kw">operator</span><span class="op">()</span>;</span>
<span id="cb3-16"><a aria-hidden="true" href="#cb3-16" tabindex="-1"></a><span class="op">}</span>;</span>
<span id="cb3-17"><a aria-hidden="true" href="#cb3-17" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;&gt;</span> <span class="kw">struct</span> Callable<span class="op">&lt;&gt;</span> <span class="op">{}</span>;</span>
<span id="cb3-18"><a aria-hidden="true" href="#cb3-18" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
</blockquote>
<p>Likewise</p>
<blockquote>
<div class="sourceCode" id="cb4"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb4-1"><a aria-hidden="true" href="#cb4-1" tabindex="-1"></a><span class="pp">#if __cpp_fold_expressions</span></span>
<span id="cb4-2"><a aria-hidden="true" href="#cb4-2" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;</span><span class="kw">typename</span><span class="op">...</span> T<span class="op">&gt;</span></span>
<span id="cb4-3"><a aria-hidden="true" href="#cb4-3" tabindex="-1"></a>  <span class="kw">auto</span> sum<span class="op">(</span>T<span class="op">...</span> args<span class="op">)</span>  <span class="op">{</span> <span class="cf">return</span> <span class="op">(</span>args <span class="op">+</span> <span class="op">...)</span>; <span class="op">}</span></span>
<span id="cb4-4"><a aria-hidden="true" href="#cb4-4" tabindex="-1"></a><span class="pp">#else</span></span>
<span id="cb4-5"><a aria-hidden="true" href="#cb4-5" tabindex="-1"></a><span class="kw">auto</span> sum<span class="op">()</span> <span class="op">{</span> <span class="cf">return</span> <span class="dv">0</span>; <span class="op">}</span></span>
<span id="cb4-6"><a aria-hidden="true" href="#cb4-6" tabindex="-1"></a><span class="kw">template</span><span class="op">&lt;</span><span class="kw">typename</span> T<span class="op">&gt;</span></span>
<span id="cb4-7"><a aria-hidden="true" href="#cb4-7" tabindex="-1"></a>  <span class="kw">auto</span> sum<span class="op">(</span>T t<span class="op">)</span> <span class="op">{</span> <span class="cf">return</span> t; <span class="op">}</span></span>
<span id="cb4-8"><a aria-hidden="true" href="#cb4-8" tabindex="-1"></a><span class="kw">template</span><span class="op">(</span><span class="kw">typename</span> T, <span class="kw">typename</span><span class="op">...</span> Ts<span class="op">)</span></span>
<span id="cb4-9"><a aria-hidden="true" href="#cb4-9" tabindex="-1"></a>  <span class="kw">auto</span> sum<span class="op">(</span>T t, Ts<span class="op">...</span> ts<span class="op">)</span> <span class="op">{</span> <span class="cf">return</span> t <span class="op">+</span> sum<span class="op">(</span>ts<span class="op">...)</span>; <span class="op">}</span></span>
<span id="cb4-10"><a aria-hidden="true" href="#cb4-10" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
</blockquote>
<p>Selecting a more efficient run-time implementation based on the
availability of a feature:</p>
<blockquote>
<div class="sourceCode" id="cb5"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb5-1"><a aria-hidden="true" href="#cb5-1" tabindex="-1"></a><span class="dt">void</span> update<span class="op">(</span>std<span class="op">::</span>set<span class="op">&lt;</span>X<span class="op">&gt;&amp;</span> set, <span class="kw">const</span> X<span class="op">&amp;</span> elem, <span class="dt">int</span> val<span class="op">)</span></span>
<span id="cb5-2"><a aria-hidden="true" href="#cb5-2" tabindex="-1"></a><span class="op">{</span></span>
<span id="cb5-3"><a aria-hidden="true" href="#cb5-3" tabindex="-1"></a>    <span class="kw">auto</span> pos <span class="op">=</span> set<span class="op">.</span>find<span class="op">(</span>elem<span class="op">)</span>;</span>
<span id="cb5-4"><a aria-hidden="true" href="#cb5-4" tabindex="-1"></a>    <span class="cf">if</span> <span class="op">(</span>pos <span class="op">==</span> set<span class="op">.</span>end<span class="op">())</span></span>
<span id="cb5-5"><a aria-hidden="true" href="#cb5-5" tabindex="-1"></a>        <span class="cf">return</span>;</span>
<span id="cb5-6"><a aria-hidden="true" href="#cb5-6" tabindex="-1"></a><span class="pp">#if __cpp_lib_node_extract</span></span>
<span id="cb5-7"><a aria-hidden="true" href="#cb5-7" tabindex="-1"></a>    <span class="kw">auto</span> next <span class="op">=</span> std<span class="op">::</span>next<span class="op">(</span>pos<span class="op">)</span>;</span>
<span id="cb5-8"><a aria-hidden="true" href="#cb5-8" tabindex="-1"></a>    <span class="kw">auto</span> x <span class="op">=</span> set<span class="op">.</span>extract<span class="op">(</span>pos<span class="op">)</span>;</span>
<span id="cb5-9"><a aria-hidden="true" href="#cb5-9" tabindex="-1"></a>    x<span class="op">.</span>value<span class="op">().</span>update<span class="op">(</span>val<span class="op">)</span>;</span>
<span id="cb5-10"><a aria-hidden="true" href="#cb5-10" tabindex="-1"></a>    set<span class="op">.</span>insert<span class="op">(</span>next, std<span class="op">::</span>move<span class="op">(</span>x<span class="op">))</span>;</span>
<span id="cb5-11"><a aria-hidden="true" href="#cb5-11" tabindex="-1"></a><span class="pp">#else</span></span>
<span id="cb5-12"><a aria-hidden="true" href="#cb5-12" tabindex="-1"></a>    X tmp <span class="op">=</span> <span class="op">*</span>pos;</span>
<span id="cb5-13"><a aria-hidden="true" href="#cb5-13" tabindex="-1"></a>    pos <span class="op">=</span> set<span class="op">.</span>erase<span class="op">(</span>pos<span class="op">)</span>;</span>
<span id="cb5-14"><a aria-hidden="true" href="#cb5-14" tabindex="-1"></a>    tmp<span class="op">.</span>update<span class="op">(</span>val<span class="op">)</span>;</span>
<span id="cb5-15"><a aria-hidden="true" href="#cb5-15" tabindex="-1"></a>    set<span class="op">.</span>insert<span class="op">(</span>pos, std<span class="op">::</span>move<span class="op">(</span>tmp<span class="op">))</span>;</span>
<span id="cb5-16"><a aria-hidden="true" href="#cb5-16" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb5-17"><a aria-hidden="true" href="#cb5-17" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</blockquote>
<p>In some cases, the value of a feature-test macro can change over time
as the underlying feature changes. To make it easier to follow the
evolution of each feature, the tables in this document are grouped by
macro name - with a row for each possible value and the proposal(s)
associated with it.</p>
<p>Conditionally implementing a feature, based on <a href="#__cpp_static_assert"><code class="sourceCode cpp">__cpp_static_assert</code></a>.</p>
<blockquote>
<div class="sourceCode" id="cb6"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb6-1"><a aria-hidden="true" href="#cb6-1" tabindex="-1"></a><span class="pp">#if __cpp_static_assert</span></span>
<span id="cb6-2"><a aria-hidden="true" href="#cb6-2" tabindex="-1"></a><span class="pp">#  if __cpp_static_assert &gt; 201400</span></span>
<span id="cb6-3"><a aria-hidden="true" href="#cb6-3" tabindex="-1"></a><span class="pp">#    define Static_Assert</span><span class="op">(</span>cond<span class="op">)</span><span class="pp"> </span><span class="kw">static_assert</span><span class="op">(</span>cond<span class="op">)</span></span>
<span id="cb6-4"><a aria-hidden="true" href="#cb6-4" tabindex="-1"></a><span class="pp">#  else</span></span>
<span id="cb6-5"><a aria-hidden="true" href="#cb6-5" tabindex="-1"></a><span class="pp">#    define Static_Assert</span><span class="op">(</span>cond<span class="op">)</span><span class="pp"> </span><span class="kw">static_assert</span><span class="op">(</span>cond,<span class="pp"> #</span>cond<span class="op">)</span></span>
<span id="cb6-6"><a aria-hidden="true" href="#cb6-6" tabindex="-1"></a><span class="pp">#  endif</span></span>
<span id="cb6-7"><a aria-hidden="true" href="#cb6-7" tabindex="-1"></a><span class="pp">#  define Static_Assert_Msg</span><span class="op">(</span>cond,<span class="pp"> </span>msg<span class="op">)</span><span class="pp"> </span><span class="kw">static_assert</span><span class="op">(</span>cond,<span class="pp"> </span>msg<span class="op">)</span></span>
<span id="cb6-8"><a aria-hidden="true" href="#cb6-8" tabindex="-1"></a><span class="pp">#else</span></span>
<span id="cb6-9"><a aria-hidden="true" href="#cb6-9" tabindex="-1"></a><span class="pp">#  define Static_Assert</span><span class="op">(</span>cond<span class="op">)</span></span>
<span id="cb6-10"><a aria-hidden="true" href="#cb6-10" tabindex="-1"></a><span class="pp">#  define Static_Assert_Msg</span><span class="op">(</span>cond,<span class="pp"> </span>msg<span class="op">)</span></span>
<span id="cb6-11"><a aria-hidden="true" href="#cb6-11" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
</blockquote>
<p>Attributes can also change semantics over time, which is why the
<code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code>
facility described below evaluates to a value rather than simply
<code class="sourceCode cpp"><span class="dv">1</span></code> or
<code class="sourceCode cpp"><span class="dv">0</span></code>. This
allows a user to conditionally provide a version of nodiscard based on
<a href="#nodiscard"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>nodiscard<span class="op">)</span></code></a>:</p>
<blockquote>
<div class="sourceCode" id="cb7"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb7-1"><a aria-hidden="true" href="#cb7-1" tabindex="-1"></a><span class="pp">#if </span><span class="ot">__has_cpp_attribute</span><span class="pp">(nodiscard) &gt;= 201907</span></span>
<span id="cb7-2"><a aria-hidden="true" href="#cb7-2" tabindex="-1"></a>   <span class="co">// nodiscard has a reason and can</span></span>
<span id="cb7-3"><a aria-hidden="true" href="#cb7-3" tabindex="-1"></a>   <span class="co">// be applied to constructors</span></span>
<span id="cb7-4"><a aria-hidden="true" href="#cb7-4" tabindex="-1"></a><span class="pp">#  define NODISCARD</span><span class="op">(</span>msg<span class="op">)</span><span class="pp">      </span><span class="op">[[</span><span class="at">nodiscard</span><span class="op">(</span><span class="at">msg</span><span class="op">)]]</span></span>
<span id="cb7-5"><a aria-hidden="true" href="#cb7-5" tabindex="-1"></a><span class="pp">#  define NODISCARD_CTOR</span><span class="op">(</span>msg<span class="op">)</span><span class="pp"> </span><span class="op">[[</span><span class="at">nodiscard</span><span class="op">(</span><span class="at">msg</span><span class="op">)]]</span></span>
<span id="cb7-6"><a aria-hidden="true" href="#cb7-6" tabindex="-1"></a><span class="pp">#elif </span><span class="ot">__has_cpp_attribute</span><span class="pp">(nodiscard) &gt;= 201603</span></span>
<span id="cb7-7"><a aria-hidden="true" href="#cb7-7" tabindex="-1"></a>   <span class="co">// nodiscard doesn't have a reason, nor can</span></span>
<span id="cb7-8"><a aria-hidden="true" href="#cb7-8" tabindex="-1"></a><span class="pp">#  define NODISCARD</span><span class="op">(</span>msg<span class="op">)</span><span class="pp">      </span><span class="op">[[</span><span class="at">nodiscard</span><span class="op">]]</span></span>
<span id="cb7-9"><a aria-hidden="true" href="#cb7-9" tabindex="-1"></a><span class="pp">#  define NODISCARD_CTOR</span><span class="op">(</span>msg<span class="op">)</span></span>
<span id="cb7-10"><a aria-hidden="true" href="#cb7-10" tabindex="-1"></a><span class="pp">#else</span></span>
<span id="cb7-11"><a aria-hidden="true" href="#cb7-11" tabindex="-1"></a>   <span class="co">// nodiscard doesn't exist at all yet</span></span>
<span id="cb7-12"><a aria-hidden="true" href="#cb7-12" tabindex="-1"></a><span class="pp">#  define NODISCARD</span><span class="op">(</span>msg<span class="op">)</span></span>
<span id="cb7-13"><a aria-hidden="true" href="#cb7-13" tabindex="-1"></a><span class="pp">#  define NODISCARD_CTOR</span><span class="op">(</span>msg<span class="op">)</span></span>
<span id="cb7-14"><a aria-hidden="true" href="#cb7-14" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
</blockquote>
<h1 data-number="2" id="recommendations" style="border-bottom:1px solid #cccccc"><span class="header-section-number">2</span>
Recommendations<a class="self-link" href="#recommendations"></a></h1>
<h2 data-number="2.1" id="introduction"><span class="header-section-number">2.1</span> Introduction<a class="self-link" href="#introduction"></a></h2>
<p>For the sake of improved portability between partial implementations
of various C++ standards, WG21 (the ISO technical committee for the C++
programming language) recommends that implementers and programmers
follow the guidelines in this document concerning feature-test
macros.</p>
<p>Implementers who provide a new standard feature should define a macro
with the recommended name and value, in the same circumstances under
which the feature is available (for example, taking into account
relevant command-line options), to indicate the presence of support for
that feature.</p>
<p>Programmers who wish to determine whether a feature is available in
an implementation should base that determination on the state of the
macro with the recommended name. (The absence of a tested feature may
result in a program with decreased functionality, or the relevant
functionality may be provided in a different way. A program that
strictly depends on support for a feature can just try to use the
feature unconditionally; presumably, on an implementation lacking
necessary support, translation will fail. Therefore, if the most useful
purpose for a feature-test macro would be to control the inclusion of a
#error directive if the feature is unavailable, that is considered
inadequate justification for the macro. Note that the usefulness of a
test macro for a feature is completely independent of the usefulness of
the feature itself.)</p>
<h2 data-number="2.2" id="testing-for-the-presence-of-a-header-__has_include"><span class="header-section-number">2.2</span> Testing for the presence of a
header: <code class="sourceCode cpp"><span class="ot">__has_include</span></code><a class="self-link" href="#testing-for-the-presence-of-a-header-__has_include"></a></h2>
<p>It is impossible for a C++ program to directly, reliably, and
portably determine whether or not a library header is available for
inclusion. Conditionally including a header requires the use of a
configuration macro, whose setting can be determined by a
configuration-test process at build time (reliable, but less portable),
or by some other means (often not reliable or portable).</p>
<p>To solve this general problem, WG21 recommends that programmers use
the <code class="sourceCode cpp"><span class="ot">__has_include</span></code>
feature.</p>
<h3 data-number="2.2.1" id="syntax"><span class="header-section-number">2.2.1</span> Syntax<a class="self-link" href="#syntax"></a></h3>
<blockquote>
<div class="line-block"><em>h-preprocessing-token</em>:<br/>
    any <em>preprocessing-token</em> other than
<code class="sourceCode cpp"><span class="op">&gt;</span></code><br/>
<br/>
<em>h-pp-tokens</em>:<br/>
    <em>h-preprocessing-token</em><br/>
    <em>h-pp-tokens</em> <em>h-preprocessing-token</em></div>
</blockquote>
<blockquote>
<div class="line-block"><em>has-include-expression</em>:<br/>
    <code class="sourceCode cpp"><span class="ot">__has_include</span></code>
<code class="sourceCode cpp"><span class="op">(</span></code>
<em>header-name</em>
<code class="sourceCode cpp"><span class="op">)</span></code><br/>
    <code class="sourceCode cpp"><span class="ot">__has_include</span></code>
<code class="sourceCode cpp"><span class="op">(</span></code>
<em>string-literal</em>
<code class="sourceCode cpp"><span class="op">)</span></code><br/>
    <code class="sourceCode cpp"><span class="ot">__has_include</span></code>
<code class="sourceCode cpp"><span class="op">(</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span></code>
<em>h-pp-tokens</em>
<code class="sourceCode cpp"><span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">)</span></code></div>
</blockquote>
<h3 data-number="2.2.2" id="semantics"><span class="header-section-number">2.2.2</span> Semantics<a class="self-link" href="#semantics"></a></h3>
<p>In the first form of the <em>has-include-expression</em>, the
parenthesized <em>header-name</em> token is not subject to macro
expansion. The second and third forms are considered only if the first
form does not match, and the preprocessing tokens are processed just as
in normal text.</p>
<p>A <em>has-include-expression</em> shall appear only in the
controlling constant expression of a <code class="sourceCode cpp"><span class="pp">#</span><span class="er">if</span></code>
or <code class="sourceCode cpp"><span class="pp">#</span><span class="er">elif</span></code>
directive ([cpp.cond] 16.1). Prior to the evaluation of such an
expression, the source file identified by the parenthesized
preprocessing token sequence in each contained
<em>has-include-expression</em> is searched for as if that preprocessing
token sequence were the <em>pp-tokens</em> in a
<code class="sourceCode cpp"><span class="pp">#include</span></code>
directive, except that no further macro expansion is performed. If such
a directive would not satisfy the syntactic requirements of a
<code class="sourceCode cpp"><span class="pp">#include</span></code>
directive, the program is ill-formed. The
<em>has-include-expression</em> is replaced by the <em>pp-number</em>
<code class="sourceCode cpp"><span class="dv">1</span></code> if the
search for the source file succeeds, and by the <em>pp-number</em>
<code class="sourceCode cpp"><span class="dv">0</span></code> if the
search fails.</p>
<p>The <code class="sourceCode cpp"><span class="pp">#</span><span class="er">ifdef</span></code>
and <code class="sourceCode cpp"><span class="pp">#</span><span class="er">ifndef</span></code>
directives, and the defined conditional inclusion operator, shall treat
<code class="sourceCode cpp"><span class="ot">__has_include</span></code> as
if it were the name of a defined macro. The identifier <code class="sourceCode cpp"><span class="ot">__has_include</span></code>
shall not appear in any context not mentioned in this section.</p>
<h3 data-number="2.2.3" id="example"><span class="header-section-number">2.2.3</span> Example<a class="self-link" href="#example"></a></h3>
<p>This demonstrates a way to use a library optional facility only if it
is available. Note that having <code class="sourceCode cpp"><span class="ot">__has_include</span><span class="op">(&lt;</span>optional<span class="op">&gt;)</span></code>
succeed is insufficient since on many toolchains, headers may exist in
installations but have their contents guarded based on compile flags.
For example, the following:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb8-1"><a aria-hidden="true" href="#cb8-1" tabindex="-1"></a><span class="pp">#ifdef __has_include</span></span>
<span id="cb8-2"><a aria-hidden="true" href="#cb8-2" tabindex="-1"></a><span class="pp">#if </span><span class="ot">__has_include</span><span class="pp">(&lt;optional&gt;)</span></span>
<span id="cb8-3"><a aria-hidden="true" href="#cb8-3" tabindex="-1"></a><span class="pp">#include </span><span class="im">&lt;optional&gt;</span></span>
<span id="cb8-4"><a aria-hidden="true" href="#cb8-4" tabindex="-1"></a>std<span class="op">::</span>optional<span class="op">&lt;</span><span class="dt">int</span><span class="op">&gt;</span> o;</span>
<span id="cb8-5"><a aria-hidden="true" href="#cb8-5" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb8-6"><a aria-hidden="true" href="#cb8-6" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb8-7"><a aria-hidden="true" href="#cb8-7" tabindex="-1"></a><span class="dt">int</span> main<span class="op">(){</span> <span class="op">}</span></span></code></pre></div>
<p>will still fail to compile with <code class="sourceCode cpp">g<span class="op">++</span> <span class="op">-</span>std<span class="op">=</span>c<span class="op">++</span><span class="dv">14</span></code>
(using libstdc++).</p>
<p>Hence, we need to do:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb9-1"><a aria-hidden="true" href="#cb9-1" tabindex="-1"></a><span class="pp">#ifdef __has_include</span></span>
<span id="cb9-2"><a aria-hidden="true" href="#cb9-2" tabindex="-1"></a><span class="pp">#  if </span><span class="ot">__has_include</span><span class="pp">(&lt;optional&gt;)</span></span>
<span id="cb9-3"><a aria-hidden="true" href="#cb9-3" tabindex="-1"></a><span class="pp">#    include </span><span class="im">&lt;optional&gt;</span></span>
<span id="cb9-4"><a aria-hidden="true" href="#cb9-4" tabindex="-1"></a><span class="pp">#    if __cpp_lib_optional &gt;= 201606</span></span>
<span id="cb9-5"><a aria-hidden="true" href="#cb9-5" tabindex="-1"></a><span class="pp">#      define have_optional </span><span class="dv">1</span></span>
<span id="cb9-6"><a aria-hidden="true" href="#cb9-6" tabindex="-1"></a><span class="pp">#    endif</span></span>
<span id="cb9-7"><a aria-hidden="true" href="#cb9-7" tabindex="-1"></a><span class="pp">#  elif </span><span class="ot">__has_include</span><span class="pp">(&lt;experimental/optional&gt;)</span></span>
<span id="cb9-8"><a aria-hidden="true" href="#cb9-8" tabindex="-1"></a><span class="pp">#    include </span><span class="im">&lt;experimental/optional&gt;</span></span>
<span id="cb9-9"><a aria-hidden="true" href="#cb9-9" tabindex="-1"></a><span class="pp">#    if __cpp_lib_experimental_optional &gt;= 201400</span></span>
<span id="cb9-10"><a aria-hidden="true" href="#cb9-10" tabindex="-1"></a><span class="pp">#      define have_optional </span><span class="dv">1</span></span>
<span id="cb9-11"><a aria-hidden="true" href="#cb9-11" tabindex="-1"></a><span class="pp">#      define experimental_optional </span><span class="dv">1</span></span>
<span id="cb9-12"><a aria-hidden="true" href="#cb9-12" tabindex="-1"></a><span class="pp">#    endif</span></span>
<span id="cb9-13"><a aria-hidden="true" href="#cb9-13" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb9-14"><a aria-hidden="true" href="#cb9-14" tabindex="-1"></a></span>
<span id="cb9-15"><a aria-hidden="true" href="#cb9-15" tabindex="-1"></a><span class="pp">#ifndef have_optional</span></span>
<span id="cb9-16"><a aria-hidden="true" href="#cb9-16" tabindex="-1"></a><span class="pp">#    define have_optional </span><span class="dv">0</span></span>
<span id="cb9-17"><a aria-hidden="true" href="#cb9-17" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
<p>Additionally, the <code class="sourceCode cpp"><span class="op">&lt;</span>version<span class="op">&gt;</span></code>
header <span class="citation" data-cites="P0754R2">[<a href="https://wg21.link/p0754r2" role="doc-biblioref">P0754R2</a>]</span> is a light-weight header that
defines all the standard library feature-test macros. An alternate
implementation could be:</p>
<div class="sourceCode" id="cb10"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb10-1"><a aria-hidden="true" href="#cb10-1" tabindex="-1"></a><span class="pp">#ifndef __has_include</span></span>
<span id="cb10-2"><a aria-hidden="true" href="#cb10-2" tabindex="-1"></a><span class="pp">#  define __has_include</span><span class="op">(</span>x<span class="op">)</span><span class="pp"> </span><span class="dv">0</span></span>
<span id="cb10-3"><a aria-hidden="true" href="#cb10-3" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb10-4"><a aria-hidden="true" href="#cb10-4" tabindex="-1"></a></span>
<span id="cb10-5"><a aria-hidden="true" href="#cb10-5" tabindex="-1"></a><span class="pp">#if </span><span class="ot">__has_include</span><span class="pp">(&lt;version&gt;)</span></span>
<span id="cb10-6"><a aria-hidden="true" href="#cb10-6" tabindex="-1"></a><span class="pp">#  include </span><span class="im">&lt;version&gt;</span></span>
<span id="cb10-7"><a aria-hidden="true" href="#cb10-7" tabindex="-1"></a><span class="pp">#elif </span><span class="ot">__has_include</span><span class="pp">(&lt;optional&gt;)</span></span>
<span id="cb10-8"><a aria-hidden="true" href="#cb10-8" tabindex="-1"></a><span class="pp">#  include </span><span class="im">&lt;optional&gt;</span></span>
<span id="cb10-9"><a aria-hidden="true" href="#cb10-9" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb10-10"><a aria-hidden="true" href="#cb10-10" tabindex="-1"></a><span class="pp">#if __cpp_lib_optional &gt;= 201606</span></span>
<span id="cb10-11"><a aria-hidden="true" href="#cb10-11" tabindex="-1"></a><span class="pp">#  define have_optional </span><span class="dv">1</span></span>
<span id="cb10-12"><a aria-hidden="true" href="#cb10-12" tabindex="-1"></a><span class="pp">#else</span></span>
<span id="cb10-13"><a aria-hidden="true" href="#cb10-13" tabindex="-1"></a><span class="pp">#  define have_optional </span><span class="dv">0</span></span>
<span id="cb10-14"><a aria-hidden="true" href="#cb10-14" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
<h2 data-number="2.3" id="testing-for-the-presence-of-an-attribute-__has_cpp_attribute"><span class="header-section-number">2.3</span> Testing for the presence of an
attribute: <code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code><a class="self-link" href="#testing-for-the-presence-of-an-attribute-__has_cpp_attribute"></a></h2>
<p>A C++ program cannot directly, reliably, and portably determine
whether or not a standard or vendor-specific attribute is available for
use. Testing for attribute support generally requires complex macro
logic, as illustrated above for language features in general.</p>
<p>To solve this general problem, WG21 recommends that programmers use
the <code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code>
feature.</p>
<h3 data-number="2.3.1" id="syntax-1"><span class="header-section-number">2.3.1</span> Syntax<a class="self-link" href="#syntax-1"></a></h3>
<blockquote>
<div class="line-block"><em>has-attribute-expression</em>:<br/>
    <code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code>
<code class="sourceCode cpp"><span class="op">(</span></code>
<em>attribute-token</em>
<code class="sourceCode cpp"><span class="op">)</span></code></div>
</blockquote>
<h3 data-number="2.3.2" id="semantics-1"><span class="header-section-number">2.3.2</span> Semantics<a class="self-link" href="#semantics-1"></a></h3>
<p>A <em>has-attribute-expression</em> shall appear only in the
controlling constant expression of a <code class="sourceCode cpp"><span class="pp">#</span><span class="er">if</span></code>
or <code class="sourceCode cpp"><span class="pp">#</span><span class="er">elif</span></code>
directive ([cpp.cond] 16.1). The <em>has-attribute-expression</em> is
replaced by a <em>non-zero</em> <em>pp-number</em> if the implementation
supports an attribute with the specified name, and by the
<em>pp-number</em>
<code class="sourceCode cpp"><span class="dv">0</span></code>
otherwise.</p>
<p>For a standard attribute, the value of the <code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code>
macro is based on the year and month in which the attribute was voted
into the working draft. In the case where the attribute is
vendor-specific, the value is implementation-defined. However, in most
cases it is expected that the availability of an attribute can be
detected by any non-zero result.</p>
<p>The <code class="sourceCode cpp"><span class="pp">#</span><span class="er">ifdef</span></code>
and <code class="sourceCode cpp"><span class="pp">#</span><span class="er">ifndef</span></code>
directives, and the defined conditional inclusion operator, shall treat
<code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code>
as if it were the name of a defined macro. The identifier <code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span></code>
shall not appear in any context not mentioned in this section.</p>
<h3 data-number="2.3.3" id="example-1"><span class="header-section-number">2.3.3</span> Example<a class="self-link" href="#example-1"></a></h3>
<p>This demonstrates a way to use the attribute <code class="sourceCode cpp"><span class="op">[[</span><span class="at">deprecated</span><span class="op">]]</span></code>
only if it is available.</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb11-1"><a aria-hidden="true" href="#cb11-1" tabindex="-1"></a><span class="pp">#ifndef __has_cpp_attribute</span></span>
<span id="cb11-2"><a aria-hidden="true" href="#cb11-2" tabindex="-1"></a><span class="pp"># define __has_cpp_attribute</span><span class="op">(</span>x<span class="op">)</span><span class="pp"> </span><span class="dv">0</span></span>
<span id="cb11-3"><a aria-hidden="true" href="#cb11-3" tabindex="-1"></a><span class="pp">#endif</span></span>
<span id="cb11-4"><a aria-hidden="true" href="#cb11-4" tabindex="-1"></a><span class="pp">#if </span><span class="ot">__has_cpp_attribute</span><span class="pp">(deprecated)</span></span>
<span id="cb11-5"><a aria-hidden="true" href="#cb11-5" tabindex="-1"></a><span class="pp"># define ATTR_DEPRECATED</span><span class="op">(</span>msg<span class="op">)</span><span class="pp"> </span><span class="op">[[</span><span class="at">deprecated</span><span class="op">(</span><span class="at">msg</span><span class="op">)]]</span></span>
<span id="cb11-6"><a aria-hidden="true" href="#cb11-6" tabindex="-1"></a><span class="pp">#else</span></span>
<span id="cb11-7"><a aria-hidden="true" href="#cb11-7" tabindex="-1"></a><span class="pp"># define ATTR_DEPRECATED</span><span class="op">(</span>msg<span class="op">)</span></span>
<span id="cb11-8"><a aria-hidden="true" href="#cb11-8" tabindex="-1"></a><span class="pp">#endif</span></span></code></pre></div>
<h1 data-number="3" id="policies" style="border-bottom:1px solid #cccccc"><span class="header-section-number">3</span> Policies<a class="self-link" href="#policies"></a></h1>
<p>SG-10 has adopted a number of policies related to our standard
practices for determining and naming macros.</p>
<h2 data-number="3.1" id="constexpr"><span class="header-section-number">3.1</span>
<code class="sourceCode cpp"><span class="kw">constexpr</span></code><a class="self-link" href="#constexpr"></a></h2>
<p>For the language, we will have a single
<code class="sourceCode cpp">__cpp_constexpr</code> macro. It will be
bumped every time we extend constexpr in the language. For the library,
we will add a specific feature-test macros for significant, special
features. Otherwise, for those cases where we are just adding constexpr
to more things in the library, we will have a dedicated test macro per
header and just bump that header-specific macro on each change. That
macro will be named
<code class="sourceCode cpp">__cpp_lib_constexpr_HEADER</code> (with the
exception of a few preexisting macros for array and algorithm which have
slightly different names).</p>
<p>From <span class="citation" data-cites="P1902R1">[<a href="https://wg21.link/p1902r1" role="doc-biblioref">P1902R1</a>]</span>.</p>
<h2 data-number="3.2" id="language-features-with-library-components"><span class="header-section-number">3.2</span> Language Features with Library
Components<a class="self-link" href="#language-features-with-library-components"></a></h2>
<p>In some cases a feature requires two macros, one for the language and
one for the library. For example, the library does not want to define
its three-way comparison operations unless the compiler supports the
feature.</p>
<p>For end-users, it is suggested that they test only the library macro,
as that will only be true if the language macro is also true. As a
result, the language macros contain
“<code class="sourceCode cpp">impl</code>” to distinguish them from the
more general version that is expected to be set by the library.</p>
<p>Note that originally SG10 suggested that the library version of the
macro not include the usual <code class="sourceCode cpp">_lib</code>
part, but LWG was not comfortable with the inconsistency of having a
library macro (which requires a header before it can be used) that does
not contain <code class="sourceCode cpp">_lib</code>.</p>
<p>Also note that SG10 originally proposed that the core feature tests
include <code class="sourceCode cpp">_lang</code>, but LWG wanted
something that more clearly implied that the the macro was for a core
feature and not intended to be used by end-users. They sugggested that
<code class="sourceCode cpp">_impl</code> be used instead.</p>
<p>From <span class="citation" data-cites="P1353R0">[<a href="https://wg21.link/p1353r0" role="doc-biblioref">P1353R0</a>]</span>.</p>
<h1 data-number="4" id="table-of-feature-test-macros" style="border-bottom:1px solid #cccccc"><span class="header-section-number">4</span> Table of Feature-Test Macros<a class="self-link" href="#table-of-feature-test-macros"></a></h1>
<p>The following are all the feature-test macros in the standard, broken
up by language macros, attribute macros, and library macros, then sorted
by name. Each macro will contain its list of possible values and the
papers necessary to be implemented before an implementation should
define that macro with that particular value.</p>
<p>Note that a given paper may introduce or update multiple feature-test
macros. A given value may require multiple papers. A paper may also
<em>remove</em> a feature-test macro, in which case its value will be
specified as <span class="rm" style="color: #bf0303"><del>deleted</del></span>.</p>
<h2 data-number="4.1" id="language-feature-test-macros"><span class="header-section-number">4.1</span> Language Feature-Test Macros<a class="self-link" href="#language-feature-test-macros"></a></h2>
<p>All of the language macros are predefined (i.e. no header needs to be
included before doing checks).</p>
<p>In some cases, a feature requires two macros: one for the language
and one for the library. For example, the library does not want to
define its three-way comparison operators unless the compiler supports
the feature. In these cases, it is suggested for end-users that they
only test the library macro. Those core language feature-test macros
that are intended to be checked by the library are spelled
<code class="sourceCode cpp">__cpp_impl_<span class="op">*</span></code>.</p>
<table>
<tr>
<th>
Macro
</th>
<th>
Value
</th>
<th>
Paper(s)
</th>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id=" __cpp_deleted_function"><a href="# __cpp_deleted_function" style="text-decoration:none"><code class="sourceCode cpp">__cpp_deleted_function</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2573R2">[<a href="https://wg21.link/p2573r2" role="doc-biblioref">P2573R2</a>]</span> = delete(“should have a
reason”);
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_aggregate_bases"><a href="#__cpp_aggregate_bases" style="text-decoration:none"><code class="sourceCode cpp">__cpp_aggregate_bases</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0017R1">[<a href="https://wg21.link/p0017r1" role="doc-biblioref">P0017R1</a>]</span> Extension to aggregate
initialization
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_aggregate_nsdmi"><a href="#__cpp_aggregate_nsdmi" style="text-decoration:none"><code class="sourceCode cpp">__cpp_aggregate_nsdmi</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3653">[<a href="https://wg21.link/n3653" role="doc-biblioref">N3653</a>]</span>
Member initializers and aggregates
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_aggregate_paren_init"><a href="#__cpp_aggregate_paren_init" style="text-decoration:none"><code class="sourceCode cpp">__cpp_aggregate_paren_init</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P0960R3">[<a href="https://wg21.link/p0960r3" role="doc-biblioref">P0960R3</a>]</span> Allow initializing aggregates
from a parenthesized list of values
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_alias_templates"><a href="#__cpp_alias_templates" style="text-decoration:none"><code class="sourceCode cpp">__cpp_alias_templates</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200704</span></code>
</td>
<td>
<span class="citation" data-cites="N2258">[<a href="https://wg21.link/n2258" role="doc-biblioref">N2258</a>]</span>
Templates Aliases
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_aligned_new"><a href="#__cpp_aligned_new" style="text-decoration:none"><code class="sourceCode cpp">__cpp_aligned_new</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0035R4">[<a href="https://wg21.link/p0035r4" role="doc-biblioref">P0035R4</a>]</span> Dynamic memory allocation for
over-aligned data
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_attributes"><a href="#__cpp_attributes" style="text-decoration:none"><code class="sourceCode cpp">__cpp_attributes</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200809</span></code>
</td>
<td>
<span class="citation" data-cites="N2761">[<a href="https://wg21.link/n2761" role="doc-biblioref">N2761</a>]</span>
Towards support for attributes in C++ (Revision 6)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_binary_literals"><a href="#__cpp_binary_literals" style="text-decoration:none"><code class="sourceCode cpp">__cpp_binary_literals</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3472">[<a href="https://wg21.link/n3472" role="doc-biblioref">N3472</a>]</span>
Binary Literals in the C++ Core Language
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_capture_star_this"><a href="#__cpp_capture_star_this" style="text-decoration:none"><code class="sourceCode cpp">__cpp_capture_star_this</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0018R3">[<a href="https://wg21.link/p0018r3" role="doc-biblioref">P0018R3</a>]</span> Lambda Capture of <code class="sourceCode cpp"><span class="op">*</span><span class="kw">this</span></code>
by Value as <code class="sourceCode cpp"><span class="op">[=</span>,<span class="op">*</span><span class="kw">this</span><span class="op">]</span></code>
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_char8_t"><a href="#__cpp_char8_t" style="text-decoration:none"><code class="sourceCode cpp">__cpp_char8_t</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P0482R6">[<a href="https://wg21.link/p0482r6" role="doc-biblioref">P0482R6</a>]</span>
<code class="sourceCode cpp"><span class="dt">char8_t</span></code>: A
type for UTF-8 characters and strings (Revision 6)
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2513R3">[<a href="https://wg21.link/p2513r3" role="doc-biblioref">P2513R3</a>]</span> char8_t Compatibility and
Portability Fix
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="4">
<span id="__cpp_concepts"><a href="#__cpp_concepts" style="text-decoration:none"><code class="sourceCode cpp">__cpp_concepts</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201707</span></code>
</td>
<td>
<span class="citation" data-cites="P0734R0">[<a href="https://wg21.link/p0734r0" role="doc-biblioref">P0734R0</a>]</span> Wording Paper, C++ extensions
for Concepts
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1084R2">[<a href="https://wg21.link/p1084r2" role="doc-biblioref">P1084R2</a>]</span> Today’s
return-type-requirements Are Insufficient
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1452R2">[<a href="https://wg21.link/p1452r2" role="doc-biblioref">P1452R2</a>]</span> On the non-uniform semantics of
return-type-requirements
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P0848R3">[<a href="https://wg21.link/p0848r3" role="doc-biblioref">P0848R3</a>]</span> Conditionally Trivial Special
Member Functions
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_conditional_explicit"><a href="#__cpp_conditional_explicit" style="text-decoration:none"><code class="sourceCode cpp">__cpp_conditional_explicit</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0892R2">[<a href="https://wg21.link/p0892r2" role="doc-biblioref">P0892R2</a>]</span> <code class="sourceCode cpp"><span class="kw">explicit</span><span class="op">(</span><span class="dt">bool</span><span class="op">)</span></code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_consteval"><a href="#__cpp_consteval" style="text-decoration:none"><code class="sourceCode cpp">__cpp_consteval</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1073R3">[<a href="https://wg21.link/p1073r3" role="doc-biblioref">P1073R3</a>]</span> Immediate functions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202211</span></code>
</td>
<td>
<span class="citation" data-cites="P2564R3">[<a href="https://wg21.link/p2564r3" role="doc-biblioref">P2564R3</a>]</span> consteval needs to propagate up
</td>
</tr>
<tr style="background-color: white">
<td rowspan="12">
<span id="__cpp_constexpr"><a href="#__cpp_constexpr" style="text-decoration:none"><code class="sourceCode cpp">__cpp_constexpr</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200704</span></code>
</td>
<td>
<span class="citation" data-cites="N2235">[<a href="https://wg21.link/n2235" role="doc-biblioref">N2235</a>]</span>
Generalized Constant Expressions—Revision 5
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3652">[<a href="https://wg21.link/n3652" role="doc-biblioref">N3652</a>]</span>
Relaxing constraints on constexpr functions / constexpr member functions
and implicit const
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0170R1">[<a href="https://wg21.link/p0170r1" role="doc-biblioref">P0170R1</a>]</span> Wording for Constexpr Lambda
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P1064R0">[<a href="https://wg21.link/p1064r0" role="doc-biblioref">P1064R0</a>]</span> Allowing Virtual Function Calls
in Constant Expressions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1002R1">[<a href="https://wg21.link/p1002r1" role="doc-biblioref">P1002R1</a>]</span> Try-catch blocks in constexpr
functions <br/><span class="citation" data-cites="P1327R1">[<a href="https://wg21.link/p1327r1" role="doc-biblioref">P1327R1</a>]</span> Allowing dynamic_cast,
polymorphic typeid in Constant Expressions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1331R2">[<a href="https://wg21.link/p1331r2" role="doc-biblioref">P1331R2</a>]</span> Permitting trivial default
initialization in constexpr contexts <br/><span class="citation" data-cites="P1668R1">[<a href="https://wg21.link/p1668r1" role="doc-biblioref">P1668R1</a>]</span> Enabling constexpr Intrinsics
By Permitting Unevaluated inline-assembly in constexpr Functions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P1330R0">[<a href="https://wg21.link/p1330r0" role="doc-biblioref">P1330R0</a>]</span> Changing the active member of a
union inside constexpr
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P2242R3">[<a href="https://wg21.link/p2242r3" role="doc-biblioref">P2242R3</a>]</span> Non-literal variables (and
labels and gotos) in constexpr functions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2448R2">[<a href="https://wg21.link/p2448r2" role="doc-biblioref">P2448R2</a>]</span> Relaxing some constexpr
restrictions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202211</span></code>
</td>
<td>
<span class="citation" data-cites="P2647R1">[<a href="https://wg21.link/p2647r1" role="doc-biblioref">P2647R1</a>]</span> Permitting static constexpr
variables in constexpr functions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2738R1">[<a href="https://wg21.link/p2738r1" role="doc-biblioref">P2738R1</a>]</span> constexpr cast from void*:
towards constexpr type-erasure
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P2747R2">[<a href="https://wg21.link/p2747r2" role="doc-biblioref">P2747R2</a>]</span> constexpr placement new
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_constexpr_dynamic_alloc"><a href="#__cpp_constexpr_dynamic_alloc" style="text-decoration:none"><code class="sourceCode cpp">__cpp_constexpr_dynamic_alloc</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0784R7">[<a href="https://wg21.link/p0784r7" role="doc-biblioref">P0784R7</a>]</span> More constexpr containers
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_constexpr_exceptions"><a href="#__cpp_constexpr_exceptions" style="text-decoration:none"><code class="sourceCode cpp">__cpp_constexpr_exceptions</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3068R6">[<a href="https://wg21.link/p3068r6" role="doc-biblioref">P3068R6</a>]</span> Allowing exception throwing in
constant-evaluation
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_constexpr_in_decltype"><a href="#__cpp_constexpr_in_decltype" style="text-decoration:none"><code class="sourceCode cpp">__cpp_constexpr_in_decltype</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0859R0">[<a href="https://wg21.link/p0859r0" role="doc-biblioref">P0859R0</a>]</span> Core Issue 1581: When are
constexpr member functions defined?
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_constinit"><a href="#__cpp_constinit" style="text-decoration:none"><code class="sourceCode cpp">__cpp_constinit</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1143R2">[<a href="https://wg21.link/p1143r2" role="doc-biblioref">P1143R2</a>]</span> Adding the
<code class="sourceCode cpp"><span class="kw">constinit</span></code>
keyword
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_contracts"><a href="#__cpp_contracts" style="text-decoration:none"><code class="sourceCode cpp">__cpp_contracts</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2900R14">[<a href="https://wg21.link/p2900r14" role="doc-biblioref">P2900R14</a>]</span> Contracts for C++
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_decltype"><a href="#__cpp_decltype" style="text-decoration:none"><code class="sourceCode cpp">__cpp_decltype</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200707</span></code>
</td>
<td>
<span class="citation" data-cites="N2343">[<a href="https://wg21.link/n2343" role="doc-biblioref">N2343</a>]</span>
Decltype (revision 7): proposed wording
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_decltype_auto"><a href="#__cpp_decltype_auto" style="text-decoration:none"><code class="sourceCode cpp">__cpp_decltype_auto</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3638">[<a href="https://wg21.link/n3638" role="doc-biblioref">N3638</a>]</span>
Return type deduction for normal functions
</td>
</tr>
<tr style="background-color: white">
<td rowspan="4">
<span id="__cpp_deduction_guides"><a href="#__cpp_deduction_guides" style="text-decoration:none"><code class="sourceCode cpp">__cpp_deduction_guides</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0091R3">[<a href="https://wg21.link/p0091r3" role="doc-biblioref">P0091R3</a>]</span> Template argument deduction for
class templates (Rev. 6)
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0512R0">[<a href="https://wg21.link/p0512r0" role="doc-biblioref">P0512R0</a>]</span> Class Template Argument
Deduction Assorted NB resolution and issues
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="P0620R0">[<a href="https://wg21.link/p0620r0" role="doc-biblioref">P0620R0</a>]</span> Drafting for class template
argument deduction issues
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1814R0">[<a href="https://wg21.link/p1814r0" role="doc-biblioref">P1814R0</a>]</span> Wording for Class Template
Argument Deduction for Alias Templates <br/><span class="citation" data-cites="P1816R0">[<a href="https://wg21.link/p1816r0" role="doc-biblioref">P1816R0</a>]</span> Wording for class template
argument deduction for aggregates
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_delegating_constructors"><a href="#__cpp_delegating_constructors" style="text-decoration:none"><code class="sourceCode cpp">__cpp_delegating_constructors</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200604</span></code>
</td>
<td>
<span class="citation" data-cites="N1986">[<a href="https://wg21.link/n1986" role="doc-biblioref">N1986</a>]</span>
Delegating Constructors (revision 3)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_designated_initializers"><a href="#__cpp_designated_initializers" style="text-decoration:none"><code class="sourceCode cpp">__cpp_designated_initializers</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201707</span></code>
</td>
<td>
<span class="citation" data-cites="P0329R4">[<a href="https://wg21.link/p0329r4" role="doc-biblioref">P0329R4</a>]</span> Designated Initialization
Wording
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_enumerator_attributes"><a href="#__cpp_enumerator_attributes" style="text-decoration:none"><code class="sourceCode cpp">__cpp_enumerator_attributes</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4266">[<a href="https://wg21.link/n4266" role="doc-biblioref">N4266</a>]</span>
Attributes for namespaces and enumerators
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_exceptions"><a href="#__cpp_exceptions" style="text-decoration:none"><code class="sourceCode cpp">__cpp_exceptions</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">199711</span></code>
</td>
<td>
Exception handling
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_explicit_this_parameter"><a href="#__cpp_explicit_this_parameter" style="text-decoration:none"><code class="sourceCode cpp">__cpp_explicit_this_parameter</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P0847R7">[<a href="https://wg21.link/p0847r7" role="doc-biblioref">P0847R7</a>]</span> Deducing this
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_fold_expressions"><a href="#__cpp_fold_expressions" style="text-decoration:none"><code class="sourceCode cpp">__cpp_fold_expressions</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4295">[<a href="https://wg21.link/n4295" role="doc-biblioref">N4295</a>]</span>
Folding Expressions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0036R0">[<a href="https://wg21.link/p0036r0" role="doc-biblioref">P0036R0</a>]</span> Unary Folds and Empty Parameter
Packs (Revision 1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_generic_lambdas"><a href="#__cpp_generic_lambdas" style="text-decoration:none"><code class="sourceCode cpp">__cpp_generic_lambdas</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3649">[<a href="https://wg21.link/n3649" role="doc-biblioref">N3649</a>]</span>
Generic (Polymorphic) Lambda Expressions (Revision 3)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201707</span></code>
</td>
<td>
<span class="citation" data-cites="P0428R2">[<a href="https://wg21.link/p0428r2" role="doc-biblioref">P0428R2</a>]</span> Familiar template syntax for
generic lambdas
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_guaranteed_copy_elision"><a href="#__cpp_guaranteed_copy_elision" style="text-decoration:none"><code class="sourceCode cpp">__cpp_guaranteed_copy_elision</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0135R1">[<a href="https://wg21.link/p0135r1" role="doc-biblioref">P0135R1</a>]</span> Wording for guaranteed copy
elision through simplified value categories
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_hex_float"><a href="#__cpp_hex_float" style="text-decoration:none"><code class="sourceCode cpp">__cpp_hex_float</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0245R1">[<a href="https://wg21.link/p0245r1" role="doc-biblioref">P0245R1</a>]</span> Hexadecimal float literals for
C++
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_if_consteval"><a href="#__cpp_if_consteval" style="text-decoration:none"><code class="sourceCode cpp">__cpp_if_consteval</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P1938R3">[<a href="https://wg21.link/p1938r3" role="doc-biblioref">P1938R3</a>]</span> if consteval
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_if_constexpr"><a href="#__cpp_if_constexpr" style="text-decoration:none"><code class="sourceCode cpp">__cpp_if_constexpr</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0292R2">[<a href="https://wg21.link/p0292r2" role="doc-biblioref">P0292R2</a>]</span> constexpr if: A slightly
different syntax
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_impl_coroutine"><a href="#__cpp_impl_coroutine" style="text-decoration:none"><code class="sourceCode cpp">__cpp_impl_coroutine</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P0912R5">[<a href="https://wg21.link/p0912r5" role="doc-biblioref">P0912R5</a>]</span> Merge Coroutines TS into C++20
working draft <br/><span class="citation" data-cites="LWG3393">[<a href="https://wg21.link/lwg3393" role="doc-biblioref">LWG3393</a>]</span> Missing/incorrect feature test
macro for coroutines
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_impl_destroying_delete"><a href="#__cpp_impl_destroying_delete" style="text-decoration:none"><code class="sourceCode cpp">__cpp_impl_destroying_delete</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0722R3">[<a href="https://wg21.link/p0722r3" role="doc-biblioref">P0722R3</a>]</span> Efficient sized delete for
variable sized classes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_impl_three_way_comparison"><a href="#__cpp_impl_three_way_comparison" style="text-decoration:none"><code class="sourceCode cpp">__cpp_impl_three_way_comparison</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0515R3">[<a href="https://wg21.link/p0515r3" role="doc-biblioref">P0515R3</a>]</span> Consistent comparison
<br/><span class="citation" data-cites="P0768R1">[<a href="https://wg21.link/p0768r1" role="doc-biblioref">P0768R1</a>]</span> Library Support for the
Spaceship (Comparison) Operator
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P1185R2">[<a href="https://wg21.link/p1185r2" role="doc-biblioref">P1185R2</a>]</span> <code class="sourceCode cpp"><span class="op">&lt;=&gt;</span> <span class="op">!=</span> <span class="op">==</span></code>
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1630R1">[<a href="https://wg21.link/p1630r1" role="doc-biblioref">P1630R1</a>]</span> Spaceship needs a tune-up
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_implicit_move"><a href="#__cpp_implicit_move" style="text-decoration:none"><code class="sourceCode cpp">__cpp_implicit_move</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2266R3">[<a href="https://wg21.link/p2266r3" role="doc-biblioref">P2266R3</a>]</span> Simpler implicit move
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_inheriting_constructors"><a href="#__cpp_inheriting_constructors" style="text-decoration:none"><code class="sourceCode cpp">__cpp_inheriting_constructors</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200802</span></code>
</td>
<td>
<span class="citation" data-cites="N2540">[<a href="https://wg21.link/n2540" role="doc-biblioref">N2540</a>]</span>
Inheriting Constructors (revision 5)
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201511</span></code>
</td>
<td>
<span class="citation" data-cites="P0136R1">[<a href="https://wg21.link/p0136r1" role="doc-biblioref">P0136R1</a>]</span> Rewording inheriting
constructors (core issue 1941 et al)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_init_captures"><a href="#__cpp_init_captures" style="text-decoration:none"><code class="sourceCode cpp">__cpp_init_captures</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3648">[<a href="https://wg21.link/n3648" role="doc-biblioref">N3648</a>]</span>
Wording Changes for Generalized Lambda-capture
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0780R2">[<a href="https://wg21.link/p0780r2" role="doc-biblioref">P0780R2</a>]</span> Allow pack expansion in lambda
init-capture
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_initializer_lists"><a href="#__cpp_initializer_lists" style="text-decoration:none"><code class="sourceCode cpp">__cpp_initializer_lists</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200806</span></code>
</td>
<td>
<span class="citation" data-cites="N2672">[<a href="https://wg21.link/n2672" role="doc-biblioref">N2672</a>]</span>
Initializer List proposed wording
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_inline_variables"><a href="#__cpp_inline_variables" style="text-decoration:none"><code class="sourceCode cpp">__cpp_inline_variables</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0386R2">[<a href="https://wg21.link/p0386r2" role="doc-biblioref">P0386R2</a>]</span> Inline Variables
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lambdas"><a href="#__cpp_lambdas" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lambdas</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200907</span></code>
</td>
<td>
<span class="citation" data-cites="N2927">[<a href="https://wg21.link/n2927" role="doc-biblioref">N2927</a>]</span>
New wording for C++0x Lambdas (rev. 2)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_modules"><a href="#__cpp_modules" style="text-decoration:none"><code class="sourceCode cpp">__cpp_modules</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1103R3">[<a href="https://wg21.link/p1103r3" role="doc-biblioref">P1103R3</a>]</span> Merging Modules <br/><span class="citation" data-cites="P1811R0">[<a href="https://wg21.link/p1811r0" role="doc-biblioref">P1811R0</a>]</span> Relaxing redefinition
restrictions for re-exportation robustness
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_multidimensional_subscript"><a href="#__cpp_multidimensional_subscript" style="text-decoration:none"><code class="sourceCode cpp">__cpp_multidimensional_subscript</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P2128R6">[<a href="https://wg21.link/p2128r6" role="doc-biblioref">P2128R6</a>]</span> Multidimensional subscript
operator
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202211</span></code>
</td>
<td>
<span class="citation" data-cites="P2589R1">[<a href="https://wg21.link/p2589r1" role="doc-biblioref">P2589R1</a>]</span> static operator[]
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_named_character_escapes"><a href="#__cpp_named_character_escapes" style="text-decoration:none"><code class="sourceCode cpp">__cpp_named_character_escapes</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2071R2">[<a href="https://wg21.link/p2071r2" role="doc-biblioref">P2071R2</a>]</span> Named universal character
escapes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_namespace_attributes"><a href="#__cpp_namespace_attributes" style="text-decoration:none"><code class="sourceCode cpp">__cpp_namespace_attributes</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4266">[<a href="https://wg21.link/n4266" role="doc-biblioref">N4266</a>]</span>
Attributes for namespaces and enumerators
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_noexcept_function_type"><a href="#__cpp_noexcept_function_type" style="text-decoration:none"><code class="sourceCode cpp">__cpp_noexcept_function_type</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201510</span></code>
</td>
<td>
<span class="citation" data-cites="P0012R1">[<a href="https://wg21.link/p0012r1" role="doc-biblioref">P0012R1</a>]</span> Make exception specifications
be part of the type system, version 5
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_nontype_template_args"><a href="#__cpp_nontype_template_args" style="text-decoration:none"><code class="sourceCode cpp">__cpp_nontype_template_args</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4268">[<a href="https://wg21.link/n4268" role="doc-biblioref">N4268</a>]</span>
Allow constant evaluation for all non-type template arguments
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201911</span></code>
</td>
<td>
<span class="citation" data-cites="P1907R1">[<a href="https://wg21.link/p1907r1" role="doc-biblioref">P1907R1</a>]</span> Inconsistencies with non-type
template parameters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_nontype_template_parameter_auto"><a href="#__cpp_nontype_template_parameter_auto" style="text-decoration:none"><code class="sourceCode cpp">__cpp_nontype_template_parameter_auto</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0127R2">[<a href="https://wg21.link/p0127r2" role="doc-biblioref">P0127R2</a>]</span> Declaring non-type template
arguments with auto
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_nontype_template_parameter_class"><a href="#__cpp_nontype_template_parameter_class" style="text-decoration:none"><code class="sourceCode cpp">__cpp_nontype_template_parameter_class</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0732R2">[<a href="https://wg21.link/p0732r2" role="doc-biblioref">P0732R2</a>]</span> Class Types in Non-Type
Template Parameters
</td>
</tr>
<tr style="background-color: white">
<td>
<span class="rm" style="color: #bf0303"><del>deleted</del></span>
</td>
<td>
<span class="citation" data-cites="P1907R1">[<a href="https://wg21.link/p1907r1" role="doc-biblioref">P1907R1</a>]</span> Inconsistencies with non-type
template parameters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_nsdmi"><a href="#__cpp_nsdmi" style="text-decoration:none"><code class="sourceCode cpp">__cpp_nsdmi</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200809</span></code>
</td>
<td>
<span class="citation" data-cites="N2756">[<a href="https://wg21.link/n2756" role="doc-biblioref">N2756</a>]</span>
Non-static data member initializers
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_pack_indexing"><a href="#__cpp_pack_indexing" style="text-decoration:none"><code class="sourceCode cpp">__cpp_pack_indexing</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2662R3">[<a href="https://wg21.link/p2662r3" role="doc-biblioref">P2662R3</a>]</span> Pack Indexing
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_placeholder_variables"><a href="#__cpp_placeholder_variables" style="text-decoration:none"><code class="sourceCode cpp">__cpp_placeholder_variables</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2169R4">[<a href="https://wg21.link/p2169r4" role="doc-biblioref">P2169R4</a>]</span> A Nice Placeholder With No Name
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_range_based_for"><a href="#__cpp_range_based_for" style="text-decoration:none"><code class="sourceCode cpp">__cpp_range_based_for</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200907</span></code>
</td>
<td>
<span class="citation" data-cites="N2930">[<a href="https://wg21.link/n2930" role="doc-biblioref">N2930</a>]</span>
Range-Based For Loop Wording (Without Concepts)
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0184R0">[<a href="https://wg21.link/p0184r0" role="doc-biblioref">P0184R0</a>]</span> Generalizing the Range-Based
For Loop
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202211</span></code>
</td>
<td>
<span class="citation" data-cites="P2644R1">[<a href="https://wg21.link/p2644r1" role="doc-biblioref">P2644R1</a>]</span> Final Fix of Broken Range based
for Loop Rev 1 <br/><span class="citation" data-cites="P2718R0">[<a href="https://wg21.link/p2718r0" role="doc-biblioref">P2718R0</a>]</span> Wording for P2644R1 Fix for
Range-based for Loop <br/><span class="citation" data-cites="CWG2659">[<a href="https://wg21.link/cwg2659" role="doc-biblioref">CWG2659</a>]</span> Missing feature-test macro for
lifetime extension in range-for loop
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_raw_strings"><a href="#__cpp_raw_strings" style="text-decoration:none"><code class="sourceCode cpp">__cpp_raw_strings</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200710</span></code>
</td>
<td>
<span class="citation" data-cites="N2442">[<a href="https://wg21.link/n2442" role="doc-biblioref">N2442</a>]</span>
Raw and Unicode String Literals; Unified Proposal (Rev. 2)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_ref_qualifiers"><a href="#__cpp_ref_qualifiers" style="text-decoration:none"><code class="sourceCode cpp">__cpp_ref_qualifiers</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200710</span></code>
</td>
<td>
<span class="citation" data-cites="N2439">[<a href="https://wg21.link/n2439" role="doc-biblioref">N2439</a>]</span>
Extending move semantics to <code class="sourceCode cpp"><span class="op">*</span><span class="kw">this</span></code>
(revised wording)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_return_type_deduction"><a href="#__cpp_return_type_deduction" style="text-decoration:none"><code class="sourceCode cpp">__cpp_return_type_deduction</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3638">[<a href="https://wg21.link/n3638" role="doc-biblioref">N3638</a>]</span>
Return type deduction for normal functions
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_rtti"><a href="#__cpp_rtti" style="text-decoration:none"><code class="sourceCode cpp">__cpp_rtti</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">199711</span></code>
</td>
<td>
Run-time type identification
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_rvalue_references"><a href="#__cpp_rvalue_references" style="text-decoration:none"><code class="sourceCode cpp">__cpp_rvalue_references</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200610</span></code>
</td>
<td>
<span class="citation" data-cites="N2118">[<a href="https://wg21.link/n2118" role="doc-biblioref">N2118</a>]</span> A
Proposal to Add an Rvalue Reference to the C++ Language: Proposed
Wording: Revision 3
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_size_t_suffix"><a href="#__cpp_size_t_suffix" style="text-decoration:none"><code class="sourceCode cpp">__cpp_size_t_suffix</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202011</span></code>
</td>
<td>
<span class="citation" data-cites="P0330R8">[<a href="https://wg21.link/p0330r8" role="doc-biblioref">P0330R8</a>]</span> Literal Suffixes for (signed)
size_t
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_sized_deallocation"><a href="#__cpp_sized_deallocation" style="text-decoration:none"><code class="sourceCode cpp">__cpp_sized_deallocation</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201309</span></code>
</td>
<td>
<span class="citation" data-cites="N3778">[<a href="https://wg21.link/n3778" role="doc-biblioref">N3778</a>]</span>
C++ Sized Deallocation
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_static_assert"><a href="#__cpp_static_assert" style="text-decoration:none"><code class="sourceCode cpp">__cpp_static_assert</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200410</span></code>
</td>
<td>
<span class="citation" data-cites="N1720">[<a href="https://wg21.link/n1720" role="doc-biblioref">N1720</a>]</span>
Proposal to Add Static Assertions to the Core Language (Revision 3)
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N3928">[<a href="https://wg21.link/n3928" role="doc-biblioref">N3928</a>]</span>
Extending static_assert, v2
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2741R3">[<a href="https://wg21.link/p2741r3" role="doc-biblioref">P2741R3</a>]</span> user-generated static_assert
messages
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_static_call_operator"><a href="#__cpp_static_call_operator" style="text-decoration:none"><code class="sourceCode cpp">__cpp_static_call_operator</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P1169R4">[<a href="https://wg21.link/p1169r4" role="doc-biblioref">P1169R4</a>]</span> static operator()
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_structured_bindings"><a href="#__cpp_structured_bindings" style="text-decoration:none"><code class="sourceCode cpp">__cpp_structured_bindings</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0217R3">[<a href="https://wg21.link/p0217r3" role="doc-biblioref">P0217R3</a>]</span> Proposed wording for structured
bindings
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P0609R3">[<a href="https://wg21.link/p0609r3" role="doc-biblioref">P0609R3</a>]</span> Attributes for Structured
Bindings
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P1061R10">[<a href="https://wg21.link/p1061r10" role="doc-biblioref">P1061R10</a>]</span> Structured Bindings can
introduce a Pack
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_template_parameters"><a href="#__cpp_template_parameters" style="text-decoration:none"><code class="sourceCode cpp">__cpp_template_parameters</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2841R7">[<a href="https://wg21.link/p2841r7" role="doc-biblioref">P2841R7</a>]</span> Concept and variable-template
template-parameters
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_template_template_args"><a href="#__cpp_template_template_args" style="text-decoration:none"><code class="sourceCode cpp">__cpp_template_template_args</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0522R0">[<a href="https://wg21.link/p0522r0" role="doc-biblioref">P0522R0</a>]</span> DR: Matching of template
template-arguments excludes compatible templates
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_threadsafe_static_init"><a href="#__cpp_threadsafe_static_init" style="text-decoration:none"><code class="sourceCode cpp">__cpp_threadsafe_static_init</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200806</span></code>
</td>
<td>
<span class="citation" data-cites="N2660">[<a href="https://wg21.link/n2660" role="doc-biblioref">N2660</a>]</span>
Dynamic Initialization and Destruction with Concurrency
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_trivial_relocatability"><a href="#__cpp_trivial_relocatability" style="text-decoration:none"><code class="sourceCode cpp">__cpp_trivial_relocatability</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2786R13">[<a href="https://wg21.link/p2786r13" role="doc-biblioref">P2786R13</a>]</span> Trivial Relocatability For
C++26
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_trivial_union"><a href="#__cpp_trivial_union" style="text-decoration:none"><code class="sourceCode cpp">__cpp_trivial_union</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3074R7">[<a href="https://wg21.link/p3074r7" role="doc-biblioref">P3074R7</a>]</span> trivial
<code class="sourceCode cpp"><span class="kw">union</span></code>s (was
<code class="sourceCode cpp">std<span class="op">::</span>uninitialized<span class="op">&lt;</span>T<span class="op">&gt;</span></code>)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_unicode_characters"><a href="#__cpp_unicode_characters" style="text-decoration:none"><code class="sourceCode cpp">__cpp_unicode_characters</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200704</span></code>
</td>
<td>
<span class="citation" data-cites="N2249">[<a href="https://wg21.link/n2249" role="doc-biblioref">N2249</a>]</span>
New Character Types in C++
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_unicode_literals"><a href="#__cpp_unicode_literals" style="text-decoration:none"><code class="sourceCode cpp">__cpp_unicode_literals</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200710</span></code>
</td>
<td>
<span class="citation" data-cites="N2442">[<a href="https://wg21.link/n2442" role="doc-biblioref">N2442</a>]</span>
Raw and Unicode String Literals; Unified Proposal (Rev. 2)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_user_defined_literals"><a href="#__cpp_user_defined_literals" style="text-decoration:none"><code class="sourceCode cpp">__cpp_user_defined_literals</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200809</span></code>
</td>
<td>
<span class="citation" data-cites="N2765">[<a href="https://wg21.link/n2765" role="doc-biblioref">N2765</a>]</span>
User-defined Literals (aka. Extensible Literals (revision 5))
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_using_enum"><a href="#__cpp_using_enum" style="text-decoration:none"><code class="sourceCode cpp">__cpp_using_enum</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1099R5">[<a href="https://wg21.link/p1099r5" role="doc-biblioref">P1099R5</a>]</span> Using Enum
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_variable_templates"><a href="#__cpp_variable_templates" style="text-decoration:none"><code class="sourceCode cpp">__cpp_variable_templates</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3651">[<a href="https://wg21.link/n3651" role="doc-biblioref">N3651</a>]</span>
Variable Templates (Revision 1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_variadic_friend"><a href="#__cpp_variadic_friend" style="text-decoration:none"><code class="sourceCode cpp">__cpp_variadic_friend</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2893R3">[<a href="https://wg21.link/p2893r3" role="doc-biblioref">P2893R3</a>]</span> Variadic Friends
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_variadic_templates"><a href="#__cpp_variadic_templates" style="text-decoration:none"><code class="sourceCode cpp">__cpp_variadic_templates</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200704</span></code>
</td>
<td>
<span class="citation" data-cites="N2242">[<a href="https://wg21.link/n2242" role="doc-biblioref">N2242</a>]</span>
Proposed Wording for Variadic Templates (Revision 2)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_variadic_using"><a href="#__cpp_variadic_using" style="text-decoration:none"><code class="sourceCode cpp">__cpp_variadic_using</code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0195R2">[<a href="https://wg21.link/p0195r2" role="doc-biblioref">P0195R2</a>]</span> Pack expansions in
<i>using-declaration</i>s
</td>
</tr>
</table>
<h2 data-number="4.2" id="attribute-feature-test-macros"><span class="header-section-number">4.2</span> Attribute Feature-Test Macros<a class="self-link" href="#attribute-feature-test-macros"></a></h2>
<p>All of the following macros are predefined.</p>
<table>
<tr>
<th>
Macro
</th>
<th>
Value
</th>
<th>
Paper(s)
</th>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="assume"><a href="#assume" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>assume<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P1774R8">[<a href="https://wg21.link/p1774r8" role="doc-biblioref">P1774R8</a>]</span> Portable assumptions
<br/><span class="citation" data-cites="CWG2615">[<a href="https://wg21.link/cwg2615" role="doc-biblioref">CWG2615</a>]</span> Missing
__has_cpp_attribute(assume)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="carries_dependency"><a href="#carries_dependency" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>carries_dependency<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200809</span></code>
</td>
<td>
<span class="citation" data-cites="N2782">[<a href="https://wg21.link/n2782" role="doc-biblioref">N2782</a>]</span>
C++ Data-Dependency Ordering: Function Annotation
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="deprecated"><a href="#deprecated" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>deprecated<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201309</span></code>
</td>
<td>
<span class="citation" data-cites="N3760">[<a href="https://wg21.link/n3760" role="doc-biblioref">N3760</a>]</span>
<code class="sourceCode cpp"><span class="op">[[</span><span class="at">deprecated</span><span class="op">]]</span></code>
attribute
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="fallthrough"><a href="#fallthrough" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>fallthrough<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0188R1">[<a href="https://wg21.link/p0188r1" role="doc-biblioref">P0188R1</a>]</span> Wording for <code class="sourceCode cpp"><span class="op">[[</span><span class="at">fallthrough</span><span class="op">]]</span></code>
attribute
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="likely"><a href="#likely" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>likely<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0479R5">[<a href="https://wg21.link/p0479r5" role="doc-biblioref">P0479R5</a>]</span> Proposed wording for likely and
unlikely attributes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="maybe_unused"><a href="#maybe_unused" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>maybe_unused<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0212R1">[<a href="https://wg21.link/p0212r1" role="doc-biblioref">P0212R1</a>]</span> Wording for <code class="sourceCode cpp"><span class="op">[[</span><span class="at">maybe_unused</span><span class="op">]]</span></code>
attribute
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="no_unique_address"><a href="#no_unique_address" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>no_unique_address<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0840R2">[<a href="https://wg21.link/p0840r2" role="doc-biblioref">P0840R2</a>]</span> Language support for empty
objects
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="nodiscard"><a href="#nodiscard" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>nodiscard<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0189R1">[<a href="https://wg21.link/p0189r1" role="doc-biblioref">P0189R1</a>]</span> Wording for <code class="sourceCode cpp"><span class="op">[[</span><span class="at">nodiscard</span><span class="op">]]</span></code>
attribute
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1301R4">[<a href="https://wg21.link/p1301r4" role="doc-biblioref">P1301R4</a>]</span> <code class="sourceCode cpp"><span class="op">[[</span><span class="at">nodiscard</span><span class="op">(</span><span class="st">"should have a reason"</span><span class="op">)]]</span></code>
<br/><span class="citation" data-cites="P1771R1">[<a href="https://wg21.link/p1771r1" role="doc-biblioref">P1771R1</a>]</span> <code class="sourceCode cpp"><span class="op">[[</span><span class="at">nodiscard</span><span class="op">]]</span></code>
for constructors
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="noreturn"><a href="#noreturn" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>noreturn<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">200809</span></code>
</td>
<td>
<span class="citation" data-cites="N2761">[<a href="https://wg21.link/n2761" role="doc-biblioref">N2761</a>]</span>
Towards support for attributes in C++ (Revision 6)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="unlikely"><a href="#unlikely" style="text-decoration:none"><code class="sourceCode cpp"><span class="ot">__has_cpp_attribute</span><span class="op">(</span>unlikely<span class="op">)</span></code></a></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0479R5">[<a href="https://wg21.link/p0479r5" role="doc-biblioref">P0479R5</a>]</span> Proposed wording for likely and
unlikely attributes
</td>
</tr>
</table>
<h2 data-number="4.3" id="library-feature-test-macros"><span class="header-section-number">4.3</span> Library Feature-Test Macros<a class="self-link" href="#library-feature-test-macros"></a></h2>
<p>All of the following macros are defined after inclusion of the header
<code class="sourceCode cpp"><span class="op">&lt;</span>version<span class="op">&gt;</span></code>
or one of the corresponding headers specified below.</p>
<table>
<tr>
<th>
Macro
</th>
<th>
Header(s)
</th>
<th>
Value
</th>
<th>
Paper(s)
</th>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_adaptor_iterator_pair_constructor"><a href="#__cpp_lib_adaptor_iterator_pair_constructor" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_adaptor_iterator_pair_constructor</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>queue<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>stack<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P1425R4">[<a href="https://wg21.link/p1425r4" role="doc-biblioref">P1425R4</a>]</span> Iterators pair constructors for
stack and queue
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_addressof_constexpr"><a href="#__cpp_lib_addressof_constexpr" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_addressof_constexpr</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="LWG2296">[<a href="https://wg21.link/lwg2296" role="doc-biblioref">LWG2296</a>]</span> <code class="sourceCode cpp">std<span class="op">::</span>addressof</code>
should be
<code class="sourceCode cpp"><span class="kw">constexpr</span></code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_algorithm_iterator_requirements"><a href="#__cpp_lib_algorithm_iterator_requirements" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_algorithm_iterator_requirements</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2408R5">[<a href="https://wg21.link/p2408r5" role="doc-biblioref">P2408R5</a>]</span> Ranges iterators as inputs to
non-Ranges algorithms
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_aligned_accessor"><a href="#__cpp_lib_aligned_accessor" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_aligned_accessor</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>mdspan<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P2897R7">[<a href="https://wg21.link/p2897r7" role="doc-biblioref">P2897R7</a>]</span> aligned_accessor: An mdspan
accessor expressing pointer overalignment
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_allocate_at_least"><a href="#__cpp_lib_allocate_at_least" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_allocate_at_least</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P0401R6">[<a href="https://wg21.link/p0401r6" role="doc-biblioref">P0401R6</a>]</span> Providing size feedback in the
Allocator interface
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="LWG3887">[<a href="https://wg21.link/lwg3887" role="doc-biblioref">LWG3887</a>]</span> Version macro for
allocate_at_least
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_allocator_traits_is_always_equal"><a href="#__cpp_lib_allocator_traits_is_always_equal" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_allocator_traits_is_always_equal</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>deque<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>scoped_allocator<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4258">[<a href="https://wg21.link/n4258" role="doc-biblioref">N4258</a>]</span>
Cleaning up
<code class="sourceCode cpp"><span class="kw">noexcept</span></code> in
the Library (Rev 3)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_any"><a href="#__cpp_lib_any" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_any</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>any<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0220R1">[<a href="https://wg21.link/p0220r1" role="doc-biblioref">P0220R1</a>]</span> Adopt Library Fundamentals V1
TS Components for C++17 (R1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0032R3">[<a href="https://wg21.link/p0032r3" role="doc-biblioref">P0032R3</a>]</span> Homogeneous interface for
variant, any and optional (Revision 3)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_apply"><a href="#__cpp_lib_apply" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_apply</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0220R1">[<a href="https://wg21.link/p0220r1" role="doc-biblioref">P0220R1</a>]</span> Adopt Library Fundamentals V1
TS Components for C++17 (R1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="4">
<span id="__cpp_lib_array_constexpr"><a href="#__cpp_lib_array_constexpr" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_array_constexpr</code></a></span>
</td>
<td rowspan="4">
<code class="sourceCode cpp"><span class="op">&lt;</span>array<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0031R0">[<a href="https://wg21.link/p0031r0" role="doc-biblioref">P0031R0</a>]</span> A Proposal to Add Constexpr
Modifiers to reverse_iterator, move_iterator, array and Range Access
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0858R0">[<a href="https://wg21.link/p0858r0" role="doc-biblioref">P0858R0</a>]</span> Constexpr iterator requirements
<br/><span class="citation" data-cites="LWG3257">[<a href="https://wg21.link/lwg3257" role="doc-biblioref">LWG3257</a>]</span> Missing feature testing macro
update from P0858
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P1023R0">[<a href="https://wg21.link/p1023r0" role="doc-biblioref">P1023R0</a>]</span> constexpr comparison operators
for std::array
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1032R1">[<a href="https://wg21.link/p1032r1" role="doc-biblioref">P1032R1</a>]</span> Misc constexpr bits
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_as_const"><a href="#__cpp_lib_as_const" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_as_const</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201510</span></code>
</td>
<td>
<span class="citation" data-cites="P0007R1">[<a href="https://wg21.link/p0007r1" role="doc-biblioref">P0007R1</a>]</span> Constant View: A proposal for a
<code class="sourceCode cpp">std<span class="op">::</span>as_const</code>
helper function template
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_associative_heterogeneous_erasure"><a href="#__cpp_lib_associative_heterogeneous_erasure" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_associative_heterogeneous_erasure</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P2077R3">[<a href="https://wg21.link/p2077r3" role="doc-biblioref">P2077R3</a>]</span> Heterogeneous erasure overloads
for associative containers
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_associative_heterogeneous_insertion"><a href="#__cpp_lib_associative_heterogeneous_insertion" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_associative_heterogeneous_insertion</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2363R5">[<a href="https://wg21.link/p2363r5" role="doc-biblioref">P2363R5</a>]</span> Extending associative
containers with the remaining heterogeneous overloads
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_assume_aligned"><a href="#__cpp_lib_assume_aligned" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_assume_aligned</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1007R3">[<a href="https://wg21.link/p1007r3" role="doc-biblioref">P1007R3</a>]</span> std::assume_aligned
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_atomic_flag_test"><a href="#__cpp_lib_atomic_flag_test" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_flag_test</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1135R6">[<a href="https://wg21.link/p1135r6" role="doc-biblioref">P1135R6</a>]</span> The C++20 Synchronization
Library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_atomic_float"><a href="#__cpp_lib_atomic_float" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_float</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0020R6">[<a href="https://wg21.link/p0020r6" role="doc-biblioref">P0020R6</a>]</span> Floating Point Atomic
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_atomic_is_always_lock_free"><a href="#__cpp_lib_atomic_is_always_lock_free" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_is_always_lock_free</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0152R1">[<a href="https://wg21.link/p0152r1" role="doc-biblioref">P0152R1</a>]</span> <code class="sourceCode cpp"><span class="kw">constexpr</span> atomic<span class="op">&lt;</span>T<span class="op">&gt;::</span>is_always_lock_free</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_atomic_lock_free_type_aliases"><a href="#__cpp_lib_atomic_lock_free_type_aliases" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_lock_free_type_aliases</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1135R6">[<a href="https://wg21.link/p1135r6" role="doc-biblioref">P1135R6</a>]</span> The C++20 Synchronization
Library
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_atomic_min_max"><a href="#__cpp_lib_atomic_min_max" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_min_max</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P0493R5">[<a href="https://wg21.link/p0493r5" role="doc-biblioref">P0493R5</a>]</span> Atomic maximum/minimum
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_atomic_ref"><a href="#__cpp_lib_atomic_ref" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_ref</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0019R8">[<a href="https://wg21.link/p0019r8" role="doc-biblioref">P0019R8</a>]</span> Atomic Ref
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P2835R7">[<a href="https://wg21.link/p2835r7" role="doc-biblioref">P2835R7</a>]</span> Expose std::atomic_ref’s object
address
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_atomic_shared_ptr"><a href="#__cpp_lib_atomic_shared_ptr" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_shared_ptr</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0718R2">[<a href="https://wg21.link/p0718r2" role="doc-biblioref">P0718R2</a>]</span> Revising atomic_shared_ptr for
C++20
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_atomic_value_initialization"><a href="#__cpp_lib_atomic_value_initialization" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_value_initialization</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201911</span></code>
</td>
<td>
<span class="citation" data-cites="P0883R2">[<a href="https://wg21.link/p0883r2" role="doc-biblioref">P0883R2</a>]</span> Fixing Atomic Initialization
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_atomic_wait"><a href="#__cpp_lib_atomic_wait" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_atomic_wait</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1135R6">[<a href="https://wg21.link/p1135r6" role="doc-biblioref">P1135R6</a>]</span> The C++20 Synchronization
Library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_barrier"><a href="#__cpp_lib_barrier" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_barrier</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>barrier<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1135R6">[<a href="https://wg21.link/p1135r6" role="doc-biblioref">P1135R6</a>]</span> The C++20 Synchronization
Library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202302</span></code>
</td>
<td>
<span class="citation" data-cites="P2588R3">[<a href="https://wg21.link/p2588r3" role="doc-biblioref">P2588R3</a>]</span> Relax std::barrier phase
completion step guarantees
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_bind_back"><a href="#__cpp_lib_bind_back" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_bind_back</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2387R3">[<a href="https://wg21.link/p2387r3" role="doc-biblioref">P2387R3</a>]</span> Pipe support for user-defined
range adaptors
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2714R1">[<a href="https://wg21.link/p2714r1" role="doc-biblioref">P2714R1</a>]</span> Bind front and back to NTTP
callables
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="3">
<span id="__cpp_lib_bind_front"><a href="#__cpp_lib_bind_front" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_bind_front</code></a></span>
</td>
<td rowspan="3">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P0356R5">[<a href="https://wg21.link/p0356r5" role="doc-biblioref">P0356R5</a>]</span> Simplified partial function
application
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1651R0">[<a href="https://wg21.link/p1651r0" role="doc-biblioref">P1651R0</a>]</span> bind_front should not unwrap
reference_wrapper
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2714R1">[<a href="https://wg21.link/p2714r1" role="doc-biblioref">P2714R1</a>]</span> Bind front and back to NTTP
callables
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_bit_cast"><a href="#__cpp_lib_bit_cast" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_bit_cast</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>bit<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0476R2">[<a href="https://wg21.link/p0476r2" role="doc-biblioref">P0476R2</a>]</span> Bit-casting object
representations
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_bitops"><a href="#__cpp_lib_bitops" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_bitops</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>bit<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0553R4">[<a href="https://wg21.link/p0553r4" role="doc-biblioref">P0553R4</a>]</span> Bit operations
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_bitset"><a href="#__cpp_lib_bitset" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_bitset</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>bitset<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2697R1">[<a href="https://wg21.link/p2697r1" role="doc-biblioref">P2697R1</a>]</span> Interfacing bitset with
string_view
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_bool_constant"><a href="#__cpp_lib_bool_constant" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_bool_constant</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201505</span></code>
</td>
<td>
<span class="citation" data-cites="N4389">[<a href="https://wg21.link/n4389" role="doc-biblioref">N4389</a>]</span>
Wording for <code class="sourceCode cpp">bool_constant</code>, revision
1
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_bounded_array_traits"><a href="#__cpp_lib_bounded_array_traits" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_bounded_array_traits</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P1357R1">[<a href="https://wg21.link/p1357r1" role="doc-biblioref">P1357R1</a>]</span> Traits for [Un]bounded Arrays
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_boyer_moore_searcher"><a href="#__cpp_lib_boyer_moore_searcher" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_boyer_moore_searcher</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0220R1">[<a href="https://wg21.link/p0220r1" role="doc-biblioref">P0220R1</a>]</span> Adopt Library Fundamentals V1
TS Components for C++17 (R1)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_byte"><a href="#__cpp_lib_byte" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_byte</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>cstddef<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0298R3">[<a href="https://wg21.link/p0298r3" role="doc-biblioref">P0298R3</a>]</span> A byte type definition
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_byteswap"><a href="#__cpp_lib_byteswap" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_byteswap</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>bit<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P1272R4">[<a href="https://wg21.link/p1272r4" role="doc-biblioref">P1272R4</a>]</span> Byteswapping for
fun&amp;&amp;nuf
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_char8_t"><a href="#__cpp_lib_char8_t" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_char8_t</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>filesystem<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>istream<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>limits<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>locale<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>ostream<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string_view<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P0482R6">[<a href="https://wg21.link/p0482r6" role="doc-biblioref">P0482R6</a>]</span>
<code class="sourceCode cpp"><span class="dt">char8_t</span></code>: A
type for UTF-8 characters and strings (Revision 6)
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1423R3">[<a href="https://wg21.link/p1423r3" role="doc-biblioref">P1423R3</a>]</span>
<code class="sourceCode cpp"><span class="dt">char8_t</span></code>
backward compatibility remediation
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="5">
<span id="__cpp_lib_chrono"><a href="#__cpp_lib_chrono" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_chrono</code></a></span>
</td>
<td rowspan="5">
<code class="sourceCode cpp"><span class="op">&lt;</span>chrono<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201510</span></code>
</td>
<td>
<span class="citation" data-cites="P0092R1">[<a href="https://wg21.link/p0092r1" role="doc-biblioref">P0092R1</a>]</span> Polishing <code class="sourceCode cpp"><span class="op">&lt;</span>chrono<span class="op">&gt;</span></code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0505R0">[<a href="https://wg21.link/p0505r0" role="doc-biblioref">P0505R0</a>]</span> Wording for GB 50
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0355R7">[<a href="https://wg21.link/p0355r7" role="doc-biblioref">P0355R7</a>]</span> Extending <code class="sourceCode cpp"><span class="op">&lt;</span>chrono<span class="op">&gt;</span></code>
to Calendars and Time Zones
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1466R3">[<a href="https://wg21.link/p1466r3" role="doc-biblioref">P1466R3</a>]</span> Miscellaneous minor fixes for
chrono
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2592R3">[<a href="https://wg21.link/p2592r3" role="doc-biblioref">P2592R3</a>]</span> Hashing support for std::chrono
value classes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_chrono_udls"><a href="#__cpp_lib_chrono_udls" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_chrono_udls</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>chrono<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3642">[<a href="https://wg21.link/n3642" role="doc-biblioref">N3642</a>]</span>
User-defined Literals for Standard Library Types (part 1 - version 4)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_clamp"><a href="#__cpp_lib_clamp" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_clamp</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0025R0">[<a href="https://wg21.link/p0025r0" role="doc-biblioref">P0025R0</a>]</span> An algorithm to “clamp” a value
between a pair of boundary values
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_common_reference"><a href="#__cpp_lib_common_reference" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_common_reference</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202302</span></code>
</td>
<td>
<span class="citation" data-cites="P2655R3">[<a href="https://wg21.link/p2655r3" role="doc-biblioref">P2655R3</a>]</span> common_reference_t of
reference_wrapper Should Be a Reference Type
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_common_reference_wrapper"><a href="#__cpp_lib_common_reference_wrapper" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_common_reference_wrapper</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202302</span></code>
</td>
<td>
<span class="citation" data-cites="P2655R3">[<a href="https://wg21.link/p2655r3" role="doc-biblioref">P2655R3</a>]</span> common_reference_t of
reference_wrapper Should Be a Reference Type
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_complex_udls"><a href="#__cpp_lib_complex_udls" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_complex_udls</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>complex<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201309</span></code>
</td>
<td>
<span class="citation" data-cites="N3779">[<a href="https://wg21.link/n3779" role="doc-biblioref">N3779</a>]</span>
User-defined Literals for
<code class="sourceCode cpp">std<span class="op">::</span>complex</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="4">
<span id="__cpp_lib_concepts"><a href="#__cpp_lib_concepts" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_concepts</code></a></span>
</td>
<td rowspan="4">
<code class="sourceCode cpp"><span class="op">&lt;</span>compare<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>concepts<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0898R3">[<a href="https://wg21.link/p0898r3" role="doc-biblioref">P0898R3</a>]</span> Standard Library Concepts
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1754R1">[<a href="https://wg21.link/p1754r1" role="doc-biblioref">P1754R1</a>]</span> Rename concepts to
standard_case for C++20, while we still can
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P1964R2">[<a href="https://wg21.link/p1964r2" role="doc-biblioref">P1964R2</a>]</span> Wording for <em><code class="sourceCode cpp">boolean<span class="op">-</span>testable</code></em>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2404R3">[<a href="https://wg21.link/p2404r3" role="doc-biblioref">P2404R3</a>]</span> Move-only types for
equality_comparable_with, totally_ordered_with, and
three_way_comparable_with
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_lib_constexpr_algorithms"><a href="#__cpp_lib_constexpr_algorithms" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_algorithms</code></a></span>
</td>
<td rowspan="3">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="P0202R3">[<a href="https://wg21.link/p0202r3" role="doc-biblioref">P0202R3</a>]</span> Add Constexpr Modifiers to
Functions in <code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
and <code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
Headers
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0879R0">[<a href="https://wg21.link/p0879r0" role="doc-biblioref">P0879R0</a>]</span> Constexpr for swap and swap
related functions <br/><span class="citation" data-cites="LWG3256">[<a href="https://wg21.link/lwg3256" role="doc-biblioref">LWG3256</a>]</span> Feature testing macro for
constexpr algorithms <br/><span class="citation" data-cites="LWG3792">[<a href="https://wg21.link/lwg3792" role="doc-biblioref">LWG3792</a>]</span> __cpp_lib_constexpr_algorithms
should also be defined in <utility>
</utility></td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2562R1">[<a href="https://wg21.link/p2562r1" role="doc-biblioref">P2562R1</a>]</span> constexpr Stable Sorting
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_atomic"><a href="#__cpp_lib_constexpr_atomic" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_atomic</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>atomic<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3309R3">[<a href="https://wg21.link/p3309r3" role="doc-biblioref">P3309R3</a>]</span> constexpr atomic and atomic_ref
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_bitset"><a href="#__cpp_lib_constexpr_bitset" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_bitset</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>bitset<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2417R2">[<a href="https://wg21.link/p2417r2" role="doc-biblioref">P2417R2</a>]</span> A more constexpr bitset
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_charconv"><a href="#__cpp_lib_constexpr_charconv" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_charconv</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>charconv<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2291R3">[<a href="https://wg21.link/p2291r3" role="doc-biblioref">P2291R3</a>]</span> Add Constexpr Modifiers to
Functions to_chars and from_chars for Integral Types in Header
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_constexpr_cmath"><a href="#__cpp_lib_constexpr_cmath" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_cmath</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>cmath<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>cstdlib<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P0533R9">[<a href="https://wg21.link/p0533r9" role="doc-biblioref">P0533R9</a>]</span> constexpr for cmath and cstdlib
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P1383R2">[<a href="https://wg21.link/p1383r2" role="doc-biblioref">P1383R2</a>]</span> More constexpr for cmath and
complex
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_constexpr_complex"><a href="#__cpp_lib_constexpr_complex" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_complex</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>complex<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0415R1">[<a href="https://wg21.link/p0415r1" role="doc-biblioref">P0415R1</a>]</span> Constexpr for std::complex
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P1383R2">[<a href="https://wg21.link/p1383r2" role="doc-biblioref">P1383R2</a>]</span> More constexpr for cmath and
complex
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_deque"><a href="#__cpp_lib_constexpr_deque" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_deque</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>deque<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_dynamic_alloc"><a href="#__cpp_lib_constexpr_dynamic_alloc" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_dynamic_alloc</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0784R7">[<a href="https://wg21.link/p0784r7" role="doc-biblioref">P0784R7</a>]</span> More constexpr containers
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_constexpr_exceptions"><a href="#__cpp_lib_constexpr_exceptions" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_exceptions</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>exception<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>expected<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>format<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>optional<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>stdexcept<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>variant<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3068R6">[<a href="https://wg21.link/p3068r6" role="doc-biblioref">P3068R6</a>]</span> Allowing exception throwing in
constant-evaluation
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3378R2">[<a href="https://wg21.link/p3378r2" role="doc-biblioref">P3378R2</a>]</span> constexpr exception types
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_flat_map"><a href="#__cpp_lib_constexpr_flat_map" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_flat_map</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>flat_map<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_flat_set"><a href="#__cpp_lib_constexpr_flat_set" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_flat_set</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>flat_set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_forward_list"><a href="#__cpp_lib_constexpr_forward_list" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_forward_list</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_constexpr_functional"><a href="#__cpp_lib_constexpr_functional" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_functional</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1032R1">[<a href="https://wg21.link/p1032r1" role="doc-biblioref">P1032R1</a>]</span> Misc constexpr bits
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1065R2">[<a href="https://wg21.link/p1065r2" role="doc-biblioref">P1065R2</a>]</span> constexpr
<em><code class="sourceCode cpp">INVOKE</code></em>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_inplace_vector"><a href="#__cpp_lib_constexpr_inplace_vector" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_inplace_vector</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>inplace_vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3542R0">[<a href="https://wg21.link/p3542r0" role="doc-biblioref">P3542R0</a>]</span> Abolish the term “converting
constructor”
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_iterator"><a href="#__cpp_lib_constexpr_iterator" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_iterator</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1032R1">[<a href="https://wg21.link/p1032r1" role="doc-biblioref">P1032R1</a>]</span> Misc constexpr bits
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_list"><a href="#__cpp_lib_constexpr_list" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_list</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_map"><a href="#__cpp_lib_constexpr_map" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_map</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_constexpr_memory"><a href="#__cpp_lib_constexpr_memory" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_memory</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1006R1">[<a href="https://wg21.link/p1006r1" role="doc-biblioref">P1006R1</a>]</span> Constexpr in
std::pointer_traits
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2273R3">[<a href="https://wg21.link/p2273r3" role="doc-biblioref">P2273R3</a>]</span> Making std::unique_ptr
constexpr
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_new"><a href="#__cpp_lib_constexpr_new" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_new</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span><span class="kw">new</span><span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P2747R2">[<a href="https://wg21.link/p2747r2" role="doc-biblioref">P2747R2</a>]</span> constexpr placement new
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_numeric"><a href="#__cpp_lib_constexpr_numeric" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_numeric</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201911</span></code>
</td>
<td>
<span class="citation" data-cites="P1645R1">[<a href="https://wg21.link/p1645r1" role="doc-biblioref">P1645R1</a>]</span> constexpr for numeric
algorithms
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_queue"><a href="#__cpp_lib_constexpr_queue" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_queue</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>queue<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_set"><a href="#__cpp_lib_constexpr_set" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_set</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_stack"><a href="#__cpp_lib_constexpr_stack" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_stack</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>stack<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="3">
<span id="__cpp_lib_constexpr_string"><a href="#__cpp_lib_constexpr_string" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_string</code></a></span>
</td>
<td rowspan="3">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0426R1">[<a href="https://wg21.link/p0426r1" role="doc-biblioref">P0426R1</a>]</span> Constexpr for std::char_traits
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1032R1">[<a href="https://wg21.link/p1032r1" role="doc-biblioref">P1032R1</a>]</span> Misc constexpr bits
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0980R1">[<a href="https://wg21.link/p0980r1" role="doc-biblioref">P0980R1</a>]</span> Making
<code class="sourceCode cpp">std<span class="op">::</span>string</code>
constexpr
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_constexpr_string_view"><a href="#__cpp_lib_constexpr_string_view" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_string_view</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>string_view<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0426R1">[<a href="https://wg21.link/p0426r1" role="doc-biblioref">P0426R1</a>]</span> Constexpr for std::char_traits
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1032R1">[<a href="https://wg21.link/p1032r1" role="doc-biblioref">P1032R1</a>]</span> Misc constexpr bits
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_tuple"><a href="#__cpp_lib_constexpr_tuple" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_tuple</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1032R1">[<a href="https://wg21.link/p1032r1" role="doc-biblioref">P1032R1</a>]</span> Misc constexpr bits
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_typeinfo"><a href="#__cpp_lib_constexpr_typeinfo" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_typeinfo</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>typeinfo<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P1328R1">[<a href="https://wg21.link/p1328r1" role="doc-biblioref">P1328R1</a>]</span> Making
std::type_info::operator== constexpr
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_unordered_map"><a href="#__cpp_lib_constexpr_unordered_map" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_unordered_map</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_unordered_set"><a href="#__cpp_lib_constexpr_unordered_set" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_unordered_set</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3372R3">[<a href="https://wg21.link/p3372r3" role="doc-biblioref">P3372R3</a>]</span> constexpr containers and
adapters
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_constexpr_utility"><a href="#__cpp_lib_constexpr_utility" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_utility</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1032R1">[<a href="https://wg21.link/p1032r1" role="doc-biblioref">P1032R1</a>]</span> Misc constexpr bits
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_constexpr_vector"><a href="#__cpp_lib_constexpr_vector" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constexpr_vector</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1004R2">[<a href="https://wg21.link/p1004r2" role="doc-biblioref">P1004R2</a>]</span> Making
<code class="sourceCode cpp">std<span class="op">::</span>vector</code>
constexpr
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_constrained_equality"><a href="#__cpp_lib_constrained_equality" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_constrained_equality</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>optional<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>variant<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2944R3">[<a href="https://wg21.link/p2944r3" role="doc-biblioref">P2944R3</a>]</span> Comparisons for
reference_wrapper
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3379R0">[<a href="https://wg21.link/p3379r0" role="doc-biblioref">P3379R0</a>]</span> Constrain std::expected
equality operators
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_containers_ranges"><a href="#__cpp_lib_containers_ranges" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_containers_ranges</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>deque<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>queue<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>stack<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P1206R7">[<a href="https://wg21.link/p1206r7" role="doc-biblioref">P1206R7</a>]</span> Conversions from ranges to
containers
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_contracts"><a href="#__cpp_lib_contracts" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_contracts</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>contracts<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2900R14">[<a href="https://wg21.link/p2900r14" role="doc-biblioref">P2900R14</a>]</span> Contracts for C++
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_copyable_function"><a href="#__cpp_lib_copyable_function" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_copyable_function</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2548R6">[<a href="https://wg21.link/p2548r6" role="doc-biblioref">P2548R6</a>]</span> copyable_function
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_coroutine"><a href="#__cpp_lib_coroutine" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_coroutine</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>coroutine<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P0912R5">[<a href="https://wg21.link/p0912r5" role="doc-biblioref">P0912R5</a>]</span> Merge Coroutines TS into C++20
working draft <br/><span class="citation" data-cites="LWG3393">[<a href="https://wg21.link/lwg3393" role="doc-biblioref">LWG3393</a>]</span> Missing/incorrect feature test
macro for coroutines
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_debugging"><a href="#__cpp_lib_debugging" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_debugging</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>debugging<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2546R5">[<a href="https://wg21.link/p2546r5" role="doc-biblioref">P2546R5</a>]</span> Debugging Support
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2810R4">[<a href="https://wg21.link/p2810r4" role="doc-biblioref">P2810R4</a>]</span> is_debugger_present
is_replaceable
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_deduction_guides"><a href="#__cpp_lib_deduction_guides" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_deduction_guides</code></a></span>
</td>
<td rowspan="1">
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="P0433R2">[<a href="https://wg21.link/p0433r2" role="doc-biblioref">P0433R2</a>]</span> Toward a resolution of US7 and
US14: Integrating template deduction for class templates into the
standard library
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_default_template_type_for_algorithm_values"><a href="#__cpp_lib_default_template_type_for_algorithm_values" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_default_template_type_for_algorithm_values</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>deque<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2248R8">[<a href="https://wg21.link/p2248r8" role="doc-biblioref">P2248R8</a>]</span> Enabling list-initialization
for algorithms
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_destroying_delete"><a href="#__cpp_lib_destroying_delete" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_destroying_delete</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span><span class="kw">new</span><span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0722R3">[<a href="https://wg21.link/p0722r3" role="doc-biblioref">P0722R3</a>]</span> Efficient sized delete for
variable sized classes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_enable_shared_from_this"><a href="#__cpp_lib_enable_shared_from_this" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_enable_shared_from_this</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0033R1">[<a href="https://wg21.link/p0033r1" role="doc-biblioref">P0033R1</a>]</span> Re-enabling shared_from_this
(revision 1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_endian"><a href="#__cpp_lib_endian" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_endian</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>bit<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0463R1">[<a href="https://wg21.link/p0463r1" role="doc-biblioref">P0463R1</a>]</span> endian, Just endian <br/><span class="citation" data-cites="P1612R1">[<a href="https://wg21.link/p1612r1" role="doc-biblioref">P1612R1</a>]</span> Relocate Endian’s Specification
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_erase_if"><a href="#__cpp_lib_erase_if" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_erase_if</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>deque<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P1209R0">[<a href="https://wg21.link/p1209r0" role="doc-biblioref">P1209R0</a>]</span> Adopt Consistent Container
Erasure from Library Fundamentals 2 for C++20
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P1115R3">[<a href="https://wg21.link/p1115r3" role="doc-biblioref">P1115R3</a>]</span> Improving the Return Value of
Erase-Like Algorithms II: Free erase/erase_if
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_exchange_function"><a href="#__cpp_lib_exchange_function" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_exchange_function</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3668">[<a href="https://wg21.link/n3668" role="doc-biblioref">N3668</a>]</span>
<code class="sourceCode cpp">exchange<span class="op">()</span></code>
utility function, revision 3
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_execution"><a href="#__cpp_lib_execution" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_execution</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>execution<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0024R2">[<a href="https://wg21.link/p0024r2" role="doc-biblioref">P0024R2</a>]</span> The Parallelism TS Should be
Standardized
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P1001R2">[<a href="https://wg21.link/p1001r2" role="doc-biblioref">P1001R2</a>]</span> Target Vectorization Policies
from Parallelism V2 TS to C++20
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_expected"><a href="#__cpp_lib_expected" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_expected</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>expected<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P0323R12">[<a href="https://wg21.link/p0323r12" role="doc-biblioref">P0323R12</a>]</span> std::expected
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202211</span></code>
</td>
<td>
<span class="citation" data-cites="P2505R5">[<a href="https://wg21.link/p2505r5" role="doc-biblioref">P2505R5</a>]</span> Monadic Functions for
std::expected
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_lib_filesystem"><a href="#__cpp_lib_filesystem" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_filesystem</code></a></span>
</td>
<td rowspan="3">
<code class="sourceCode cpp"><span class="op">&lt;</span>filesystem<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0218R1">[<a href="https://wg21.link/p0218r1" role="doc-biblioref">P0218R1</a>]</span> Adopt File System TS for C++17
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0219R1">[<a href="https://wg21.link/p0219r1" role="doc-biblioref">P0219R1</a>]</span> Relative Paths for Filesystem
<br/><span class="citation" data-cites="P0392R0">[<a href="https://wg21.link/p0392r0" role="doc-biblioref">P0392R0</a>]</span> Adapting string_view by
filesystem paths
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="P0317R1">[<a href="https://wg21.link/p0317r1" role="doc-biblioref">P0317R1</a>]</span> Directory Entry Caching for
Filesystem
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_flat_map"><a href="#__cpp_lib_flat_map" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_flat_map</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>flat_map<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P0429R9">[<a href="https://wg21.link/p0429r9" role="doc-biblioref">P0429R9</a>]</span> A Standard flat_map
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_flat_set"><a href="#__cpp_lib_flat_set" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_flat_set</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>flat_set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P1222R4">[<a href="https://wg21.link/p1222r4" role="doc-biblioref">P1222R4</a>]</span> A Standard flat_set <br/><span class="citation" data-cites="LWG3751">[<a href="https://wg21.link/lwg3751" role="doc-biblioref">LWG3751</a>]</span> Missing feature macro for
flat_set
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="8">
<span id="__cpp_lib_format"><a href="#__cpp_lib_format" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_format</code></a></span>
</td>
<td rowspan="8">
<code class="sourceCode cpp"><span class="op">&lt;</span>format<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0645R10">[<a href="https://wg21.link/p0645r10" role="doc-biblioref">P0645R10</a>]</span> Text Formatting <br/><span class="citation" data-cites="P1361R2">[<a href="https://wg21.link/p1361r2" role="doc-biblioref">P1361R2</a>]</span> Integration of chrono with text
formatting <br/><span class="citation" data-cites="P1652R1">[<a href="https://wg21.link/p1652r1" role="doc-biblioref">P1652R1</a>]</span> Printf corner cases in
std::format
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P2216R3">[<a href="https://wg21.link/p2216r3" role="doc-biblioref">P2216R3</a>]</span> std::format improvements
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P2372R3">[<a href="https://wg21.link/p2372r3" role="doc-biblioref">P2372R3</a>]</span> Fixing locale handling in
chrono formatters <br/><span class="citation" data-cites="P2418R2">[<a href="https://wg21.link/p2418r2" role="doc-biblioref">P2418R2</a>]</span> Add support for
std::generator-like types to std::format
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2419R2">[<a href="https://wg21.link/p2419r2" role="doc-biblioref">P2419R2</a>]</span> Clarify handling of encodings
in localized formatting of chrono types <br/><span class="citation" data-cites="P2508R1">[<a href="https://wg21.link/p2508r1" role="doc-biblioref">P2508R1</a>]</span> Exposing
std::basic-format-string
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202304</span></code>
</td>
<td>
<span class="citation" data-cites="P2510R3">[<a href="https://wg21.link/p2510r3" role="doc-biblioref">P2510R3</a>]</span> Formatting pointers
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202305</span></code>
</td>
<td>
<span class="citation" data-cites="P2757R3">[<a href="https://wg21.link/p2757r3" role="doc-biblioref">P2757R3</a>]</span> Type checking format args
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2637R3">[<a href="https://wg21.link/p2637r3" role="doc-biblioref">P2637R3</a>]</span> Member visit
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2918R2">[<a href="https://wg21.link/p2918r2" role="doc-biblioref">P2918R2</a>]</span> Runtime format strings II
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_format_path"><a href="#__cpp_lib_format_path" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_format_path</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>filesystem<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2845R8">[<a href="https://wg21.link/p2845r8" role="doc-biblioref">P2845R8</a>]</span> Formatting of
std::filesystem::path
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_format_ranges"><a href="#__cpp_lib_format_ranges" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_format_ranges</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>format<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2286R8">[<a href="https://wg21.link/p2286r8" role="doc-biblioref">P2286R8</a>]</span> Formatting Ranges <br/><span class="citation" data-cites="P2585R1">[<a href="https://wg21.link/p2585r1" role="doc-biblioref">P2585R1</a>]</span> Improving default container
formatting <br/><span class="citation" data-cites="LWG3750">[<a href="https://wg21.link/lwg3750" role="doc-biblioref">LWG3750</a>]</span> Too many papers bump
__cpp_lib_format
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_format_uchar"><a href="#__cpp_lib_format_uchar" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_format_uchar</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>format<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2909R4">[<a href="https://wg21.link/p2909r4" role="doc-biblioref">P2909R4</a>]</span> Fix formatting of code units as
integers (Dude, where’s my char?)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_forward_like"><a href="#__cpp_lib_forward_like" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_forward_like</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2445R1">[<a href="https://wg21.link/p2445r1" role="doc-biblioref">P2445R1</a>]</span> forward_like
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_freestanding_algorithm"><a href="#__cpp_lib_freestanding_algorithm" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_algorithm</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2407R5">[<a href="https://wg21.link/p2407r5" role="doc-biblioref">P2407R5</a>]</span> Freestanding Library: Partial
Classes
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2976R1">[<a href="https://wg21.link/p2976r1" role="doc-biblioref">P2976R1</a>]</span> Freestanding Library:
algorithm, numeric, and random
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_array"><a href="#__cpp_lib_freestanding_array" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_array</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>array<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2407R5">[<a href="https://wg21.link/p2407r5" role="doc-biblioref">P2407R5</a>]</span> Freestanding Library: Partial
Classes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_char_traits"><a href="#__cpp_lib_freestanding_char_traits" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_char_traits</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2338R4">[<a href="https://wg21.link/p2338r4" role="doc-biblioref">P2338R4</a>]</span> Freestanding Library: Character
primitives and the C library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_charconv"><a href="#__cpp_lib_freestanding_charconv" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_charconv</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>charconv<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2338R4">[<a href="https://wg21.link/p2338r4" role="doc-biblioref">P2338R4</a>]</span> Freestanding Library: Character
primitives and the C library
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_cstdlib"><a href="#__cpp_lib_freestanding_cstdlib" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_cstdlib</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>cmath<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>cstdlib<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2338R4">[<a href="https://wg21.link/p2338r4" role="doc-biblioref">P2338R4</a>]</span> Freestanding Library: Character
primitives and the C library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_freestanding_cstring"><a href="#__cpp_lib_freestanding_cstring" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_cstring</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>cstring<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2338R4">[<a href="https://wg21.link/p2338r4" role="doc-biblioref">P2338R4</a>]</span> Freestanding Library: Character
primitives and the C library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2937R0">[<a href="https://wg21.link/p2937r0" role="doc-biblioref">P2937R0</a>]</span> Freestanding: Remove strtok
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_cwchar"><a href="#__cpp_lib_freestanding_cwchar" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_cwchar</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>cwchar<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2338R4">[<a href="https://wg21.link/p2338r4" role="doc-biblioref">P2338R4</a>]</span> Freestanding Library: Character
primitives and the C library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_errc"><a href="#__cpp_lib_freestanding_errc" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_errc</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>cerrno<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>system_error<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2338R4">[<a href="https://wg21.link/p2338r4" role="doc-biblioref">P2338R4</a>]</span> Freestanding Library: Character
primitives and the C library
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_execution"><a href="#__cpp_lib_freestanding_execution" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_execution</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>execution<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2976R1">[<a href="https://wg21.link/p2976r1" role="doc-biblioref">P2976R1</a>]</span> Freestanding Library:
algorithm, numeric, and random
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_expected"><a href="#__cpp_lib_freestanding_expected" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_expected</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>expected<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2833R2">[<a href="https://wg21.link/p2833r2" role="doc-biblioref">P2833R2</a>]</span> Freestanding Library: inout
expected span
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_feature_test_macros"><a href="#__cpp_lib_freestanding_feature_test_macros" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_feature_test_macros</code></a></span>
</td>
<td rowspan="1">
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_functional"><a href="#__cpp_lib_freestanding_functional" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_functional</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_iterator"><a href="#__cpp_lib_freestanding_iterator" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_iterator</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_mdspan"><a href="#__cpp_lib_freestanding_mdspan" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_mdspan</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>mdspan<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2833R2">[<a href="https://wg21.link/p2833r2" role="doc-biblioref">P2833R2</a>]</span> Freestanding Library: inout
expected span
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_freestanding_memory"><a href="#__cpp_lib_freestanding_memory" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_memory</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2976R1">[<a href="https://wg21.link/p2976r1" role="doc-biblioref">P2976R1</a>]</span> Freestanding Library:
algorithm, numeric, and random
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_numeric"><a href="#__cpp_lib_freestanding_numeric" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_numeric</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2976R1">[<a href="https://wg21.link/p2976r1" role="doc-biblioref">P2976R1</a>]</span> Freestanding Library:
algorithm, numeric, and random
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_operator_new"><a href="#__cpp_lib_freestanding_operator_new" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_operator_new</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>operator_new<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_optional"><a href="#__cpp_lib_freestanding_optional" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_optional</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>optional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2407R5">[<a href="https://wg21.link/p2407r5" role="doc-biblioref">P2407R5</a>]</span> Freestanding Library: Partial
Classes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_random"><a href="#__cpp_lib_freestanding_random" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_random</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>random<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2976R1">[<a href="https://wg21.link/p2976r1" role="doc-biblioref">P2976R1</a>]</span> Freestanding Library:
algorithm, numeric, and random
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_ranges"><a href="#__cpp_lib_freestanding_ranges" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_ranges</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_ratio"><a href="#__cpp_lib_freestanding_ratio" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_ratio</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ratio<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_string_view"><a href="#__cpp_lib_freestanding_string_view" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_string_view</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string_view<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2407R5">[<a href="https://wg21.link/p2407r5" role="doc-biblioref">P2407R5</a>]</span> Freestanding Library: Partial
Classes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_tuple"><a href="#__cpp_lib_freestanding_tuple" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_tuple</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_freestanding_utility"><a href="#__cpp_lib_freestanding_utility" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_utility</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2198R7">[<a href="https://wg21.link/p2198r7" role="doc-biblioref">P2198R7</a>]</span> Freestanding Feature-Test
Macros and Implementation-Defined Extensions
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_freestanding_variant"><a href="#__cpp_lib_freestanding_variant" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_freestanding_variant</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>variant<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2407R5">[<a href="https://wg21.link/p2407r5" role="doc-biblioref">P2407R5</a>]</span> Freestanding Library: Partial
Classes
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_fstream_native_handle"><a href="#__cpp_lib_fstream_native_handle" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_fstream_native_handle</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>fstream<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P1759R6">[<a href="https://wg21.link/p1759r6" role="doc-biblioref">P1759R6</a>]</span> Native handles and file streams
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_function_ref"><a href="#__cpp_lib_function_ref" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_function_ref</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P0792R14">[<a href="https://wg21.link/p0792r14" role="doc-biblioref">P0792R14</a>]</span> function_ref: a non-owning
reference to a Callable
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_gcd_lcm"><a href="#__cpp_lib_gcd_lcm" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_gcd_lcm</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0295R0">[<a href="https://wg21.link/p0295r0" role="doc-biblioref">P0295R0</a>]</span> Adopt Selected Library
Fundamentals V2 Components for C++17
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_generate_random"><a href="#__cpp_lib_generate_random" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_generate_random</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>random<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P1068R11">[<a href="https://wg21.link/p1068r11" role="doc-biblioref">P1068R11</a>]</span> Vector API for random number
generation
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_generator"><a href="#__cpp_lib_generator" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_generator</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>generator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2502R2">[<a href="https://wg21.link/p2502r2" role="doc-biblioref">P2502R2</a>]</span> std::generator: Synchronous
Coroutine Generator for Ranges
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_generic_associative_lookup"><a href="#__cpp_lib_generic_associative_lookup" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_generic_associative_lookup</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3657">[<a href="https://wg21.link/n3657" role="doc-biblioref">N3657</a>]</span>
Adding heterogeneous comparison lookup to associative containers (rev 4)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_generic_unordered_hash_lookup"><a href="#__cpp_lib_generic_unordered_hash_lookup" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_generic_unordered_hash_lookup</code></a></span>
</td>
<td rowspan="2">
<span class="rm" style="color: #bf0303"><del><span><code class="sourceCode default">&lt;unordered_map&gt;</code></span>
<span><code class="sourceCode default">&lt;unordered_set&gt;</code></span></del></span>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P0920R2">[<a href="https://wg21.link/p0920r2" role="doc-biblioref">P0920R2</a>]</span> Precalculated hash values in
lookup
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<span class="rm" style="color: #bf0303"><del>deleted</del></span>
</td>
<td>
<span class="citation" data-cites="P1661R1">[<a href="https://wg21.link/p1661r1" role="doc-biblioref">P1661R1</a>]</span> Remove dedicated precalculated
hash lookup interface
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_generic_unordered_lookup"><a href="#__cpp_lib_generic_unordered_lookup" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_generic_unordered_lookup</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P0919R3">[<a href="https://wg21.link/p0919r3" role="doc-biblioref">P0919R3</a>]</span> Heterogeneous lookup for
unordered containers
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardened_array"><a href="#__cpp_lib_hardened_array" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_array</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>array<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hardened_basic_string"><a href="#__cpp_lib_hardened_basic_string" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_basic_string</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardened_basic_string_view"><a href="#__cpp_lib_hardened_basic_string_view" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_basic_string_view</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string_view<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hardened_bitset"><a href="#__cpp_lib_hardened_bitset" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_bitset</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>bitset<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardened_deque"><a href="#__cpp_lib_hardened_deque" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_deque</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>deque<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hardened_expected"><a href="#__cpp_lib_hardened_expected" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_expected</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>expected<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardened_forward_list"><a href="#__cpp_lib_hardened_forward_list" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_forward_list</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hardened_inplace_vector"><a href="#__cpp_lib_hardened_inplace_vector" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_inplace_vector</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>inplace_vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardened_list"><a href="#__cpp_lib_hardened_list" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_list</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hardened_mdspan"><a href="#__cpp_lib_hardened_mdspan" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_mdspan</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>mdspan<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardened_optional"><a href="#__cpp_lib_hardened_optional" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_optional</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>optional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hardened_span"><a href="#__cpp_lib_hardened_span" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_span</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>span<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardened_valarray"><a href="#__cpp_lib_hardened_valarray" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_valarray</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>valarray<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hardened_vector"><a href="#__cpp_lib_hardened_vector" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardened_vector</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3471R4">[<a href="https://wg21.link/p3471r4" role="doc-biblioref">P3471R4</a>]</span> Standard Library Hardening
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hardware_interference_size"><a href="#__cpp_lib_hardware_interference_size" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hardware_interference_size</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span><span class="kw">new</span><span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="P0154R1">[<a href="https://wg21.link/p0154r1" role="doc-biblioref">P0154R1</a>]</span> <code class="sourceCode cpp"><span class="kw">constexpr</span> std<span class="op">::</span>thread<span class="op">::</span>hardware_<span class="op">{</span><span class="kw">true</span>,<span class="kw">false</span><span class="op">}</span>_sharing_size</code>
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_has_unique_object_representations"><a href="#__cpp_lib_has_unique_object_representations" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_has_unique_object_representations</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0258R2">[<a href="https://wg21.link/p0258r2" role="doc-biblioref">P0258R2</a>]</span>
has_unique_object_representations - wording
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hazard_pointer"><a href="#__cpp_lib_hazard_pointer" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hazard_pointer</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>hazard_pointer<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2545R4">[<a href="https://wg21.link/p2545r4" role="doc-biblioref">P2545R4</a>]</span> Read-Copy Update (RCU)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_hive"><a href="#__cpp_lib_hive" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hive</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>hive<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P0447R28">[<a href="https://wg21.link/p0447r28" role="doc-biblioref">P0447R28</a>]</span> Introduction of std::hive to
the standard library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_hypot"><a href="#__cpp_lib_hypot" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_hypot</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>cmath<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0030R1">[<a href="https://wg21.link/p0030r1" role="doc-biblioref">P0030R1</a>]</span> Proposal to Introduce a
3-Argument Overload to std::hypot
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_incomplete_container_elements"><a href="#__cpp_lib_incomplete_container_elements" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_incomplete_container_elements</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201505</span></code>
</td>
<td>
<span class="citation" data-cites="N4510">[<a href="https://wg21.link/n4510" role="doc-biblioref">N4510</a>]</span>
Minimal incomplete type support for standard containers, revision 4
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_indirect"><a href="#__cpp_lib_indirect" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_indirect</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3019R11">[<a href="https://wg21.link/p3019r11" role="doc-biblioref">P3019R11</a>]</span> Vocabulary Types for Composite
Class Design
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_inplace_vector"><a href="#__cpp_lib_inplace_vector" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_inplace_vector</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>inplace_vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P0843R14">[<a href="https://wg21.link/p0843r14" role="doc-biblioref">P0843R14</a>]</span> inplace_vector
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_int_pow2"><a href="#__cpp_lib_int_pow2" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_int_pow2</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>bit<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0556R3">[<a href="https://wg21.link/p0556r3" role="doc-biblioref">P0556R3</a>]</span> Integral power-of-2 operations
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P1956R1">[<a href="https://wg21.link/p1956r1" role="doc-biblioref">P1956R1</a>]</span> On the naming of low-level bit
manipulation functions
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_integer_comparison_functions"><a href="#__cpp_lib_integer_comparison_functions" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_integer_comparison_functions</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P0586R2">[<a href="https://wg21.link/p0586r2" role="doc-biblioref">P0586R2</a>]</span> Safe integral comparisons
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_integer_sequence"><a href="#__cpp_lib_integer_sequence" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_integer_sequence</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3658">[<a href="https://wg21.link/n3658" role="doc-biblioref">N3658</a>]</span>
Compile-time integer sequences
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_integral_constant_callable"><a href="#__cpp_lib_integral_constant_callable" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_integral_constant_callable</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3545">[<a href="https://wg21.link/n3545" role="doc-biblioref">N3545</a>]</span> An
Incremental Improvement to
<code class="sourceCode cpp">integral_constant</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_interpolate"><a href="#__cpp_lib_interpolate" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_interpolate</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>cmath<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P0811R3">[<a href="https://wg21.link/p0811r3" role="doc-biblioref">P0811R3</a>]</span> Well-behaved interpolation for
numbers and pointers
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_invoke"><a href="#__cpp_lib_invoke" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_invoke</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4169">[<a href="https://wg21.link/n4169" role="doc-biblioref">N4169</a>]</span> A
proposal to add <code class="sourceCode cpp">invoke</code> function
template (Revision 1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_invoke_r"><a href="#__cpp_lib_invoke_r" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_invoke_r</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P2136R3">[<a href="https://wg21.link/p2136r3" role="doc-biblioref">P2136R3</a>]</span> invoke_r
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ios_noreplace"><a href="#__cpp_lib_ios_noreplace" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ios_noreplace</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ios<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2467R1">[<a href="https://wg21.link/p2467r1" role="doc-biblioref">P2467R1</a>]</span> Support exclusive mode for
fstreams
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_is_aggregate"><a href="#__cpp_lib_is_aggregate" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_aggregate</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="LWG2911">[<a href="https://wg21.link/lwg2911" role="doc-biblioref">LWG2911</a>]</span> An
<code class="sourceCode cpp">is_aggregate</code> type trait is needed
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_is_constant_evaluated"><a href="#__cpp_lib_is_constant_evaluated" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_constant_evaluated</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P0595R2">[<a href="https://wg21.link/p0595r2" role="doc-biblioref">P0595R2</a>]</span> <code class="sourceCode cpp">std<span class="op">::</span>is_constant_evaluated</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_is_final"><a href="#__cpp_lib_is_final" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_final</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201402</span></code>
</td>
<td>
<span class="citation" data-cites="LWG2112">[<a href="https://wg21.link/lwg2112" role="doc-biblioref">LWG2112</a>]</span> User-defined classes that
cannot be derived from
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_is_implicit_lifetime"><a href="#__cpp_lib_is_implicit_lifetime" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_implicit_lifetime</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202302</span></code>
</td>
<td>
<span class="citation" data-cites="P2674R1">[<a href="https://wg21.link/p2674r1" role="doc-biblioref">P2674R1</a>]</span> A trait for implicit lifetime
types
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_is_invocable"><a href="#__cpp_lib_is_invocable" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_invocable</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="P0604R0">[<a href="https://wg21.link/p0604r0" role="doc-biblioref">P0604R0</a>]</span> Resolving GB 55, US 84, US 85,
US 86
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_is_layout_compatible"><a href="#__cpp_lib_is_layout_compatible" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_layout_compatible</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0466R5">[<a href="https://wg21.link/p0466r5" role="doc-biblioref">P0466R5</a>]</span> Layout-compatibility and
Pointer-interconvertibility Traits
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_is_nothrow_convertible"><a href="#__cpp_lib_is_nothrow_convertible" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_nothrow_convertible</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0758R1">[<a href="https://wg21.link/p0758r1" role="doc-biblioref">P0758R1</a>]</span> Implicit conversion traits and
utility functions <br/><span class="citation" data-cites="LWG3356">[<a href="https://wg21.link/lwg3356" role="doc-biblioref">LWG3356</a>]</span> __cpp_lib_nothrow_convertible
should be __cpp_lib_is_nothrow_convertible
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_is_null_pointer"><a href="#__cpp_lib_is_null_pointer" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_null_pointer</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201309</span></code>
</td>
<td>
<span class="citation" data-cites="LWG2247">[<a href="https://wg21.link/lwg2247" role="doc-biblioref">LWG2247</a>]</span> Type traits and <code class="sourceCode cpp">std<span class="op">::</span>nullptr_t</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_is_pointer_interconvertible"><a href="#__cpp_lib_is_pointer_interconvertible" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_pointer_interconvertible</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0466R5">[<a href="https://wg21.link/p0466r5" role="doc-biblioref">P0466R5</a>]</span> Layout-compatibility and
Pointer-interconvertibility Traits
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_is_scoped_enum"><a href="#__cpp_lib_is_scoped_enum" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_scoped_enum</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202011</span></code>
</td>
<td>
<span class="citation" data-cites="P1048R1">[<a href="https://wg21.link/p1048r1" role="doc-biblioref">P1048R1</a>]</span> A proposal for a type trait to
detect scoped enumerations
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_is_sufficiently_aligned"><a href="#__cpp_lib_is_sufficiently_aligned" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_sufficiently_aligned</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P2897R7">[<a href="https://wg21.link/p2897r7" role="doc-biblioref">P2897R7</a>]</span> aligned_accessor: An mdspan
accessor expressing pointer overalignment
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_is_swappable"><a href="#__cpp_lib_is_swappable" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_swappable</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0185R1">[<a href="https://wg21.link/p0185r1" role="doc-biblioref">P0185R1</a>]</span> Adding [nothrow-]swappable
traits, revision 3
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_is_virtual_base_of"><a href="#__cpp_lib_is_virtual_base_of" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_virtual_base_of</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P2985R0">[<a href="https://wg21.link/p2985r0" role="doc-biblioref">P2985R0</a>]</span> A type trait for detecting
virtual base classes
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_is_within_lifetime"><a href="#__cpp_lib_is_within_lifetime" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_is_within_lifetime</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2641R4">[<a href="https://wg21.link/p2641r4" role="doc-biblioref">P2641R4</a>]</span> Checking if a union alternative
is active
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_jthread"><a href="#__cpp_lib_jthread" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_jthread</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>stop_token<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>thread<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0660R10">[<a href="https://wg21.link/p0660r10" role="doc-biblioref">P0660R10</a>]</span> Stop Token and Joining Thread
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201911</span></code>
</td>
<td>
<span class="citation" data-cites="P1869R1">[<a href="https://wg21.link/p1869r1" role="doc-biblioref">P1869R1</a>]</span> Rename ‘condition_variable_any’
interruptible wait methods
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_latch"><a href="#__cpp_lib_latch" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_latch</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>latch<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1135R6">[<a href="https://wg21.link/p1135r6" role="doc-biblioref">P1135R6</a>]</span> The C++20 Synchronization
Library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_launder"><a href="#__cpp_lib_launder" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_launder</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span><span class="kw">new</span><span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0137R1">[<a href="https://wg21.link/p0137r1" role="doc-biblioref">P0137R1</a>]</span> Core Issue 1776: Replacement of
class objects containing reference members
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_linalg"><a href="#__cpp_lib_linalg" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_linalg</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>linalg<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P1673R13">[<a href="https://wg21.link/p1673r13" role="doc-biblioref">P1673R13</a>]</span> A free function linear algebra
interface based on the BLAS
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3050R2">[<a href="https://wg21.link/p3050r2" role="doc-biblioref">P3050R2</a>]</span> Fix C++26 by optimizing
linalg::conjugated for noncomplex value types <br/><span class="citation" data-cites="P3222R0">[<a href="https://wg21.link/p3222r0" role="doc-biblioref">P3222R0</a>]</span> Fix C++26 by adding transposed
special cases for P2642 layouts
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_list_remove_return_type"><a href="#__cpp_lib_list_remove_return_type" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_list_remove_return_type</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0646R1">[<a href="https://wg21.link/p0646r1" role="doc-biblioref">P0646R1</a>]</span> Improving the Return Value of
Erase-Like Algorithms I: list/forward list
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_logical_traits"><a href="#__cpp_lib_logical_traits" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_logical_traits</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201510</span></code>
</td>
<td>
<span class="citation" data-cites="P0013R1">[<a href="https://wg21.link/p0013r1" role="doc-biblioref">P0013R1</a>]</span> Logical Operator Type Traits
(revison 1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_make_from_tuple"><a href="#__cpp_lib_make_from_tuple" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_make_from_tuple</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0209R2">[<a href="https://wg21.link/p0209r2" role="doc-biblioref">P0209R2</a>]</span>
<code class="sourceCode cpp">make_from_tuple</code>: apply for
construction
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_make_reverse_iterator"><a href="#__cpp_lib_make_reverse_iterator" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_make_reverse_iterator</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201402</span></code>
</td>
<td>
<span class="citation" data-cites="LWG2285">[<a href="https://wg21.link/lwg2285" role="doc-biblioref">LWG2285</a>]</span>
<code class="sourceCode cpp">make_reverse_iterator</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_make_unique"><a href="#__cpp_lib_make_unique" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_make_unique</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3656">[<a href="https://wg21.link/n3656" role="doc-biblioref">N3656</a>]</span>
<code class="sourceCode cpp">make_unique</code> (Revision 1)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_map_try_emplace"><a href="#__cpp_lib_map_try_emplace" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_map_try_emplace</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4279">[<a href="https://wg21.link/n4279" role="doc-biblioref">N4279</a>]</span>
Improved insertion interface for unique-key maps (Revision 2.3)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_math_constants"><a href="#__cpp_lib_math_constants" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_math_constants</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>numbers<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0631R8">[<a href="https://wg21.link/p0631r8" role="doc-biblioref">P0631R8</a>]</span> Math Constants
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_math_special_functions"><a href="#__cpp_lib_math_special_functions" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_math_special_functions</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>cmath<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0226R1">[<a href="https://wg21.link/p0226r1" role="doc-biblioref">P0226R1</a>]</span> Mathematical Special Functions
for C++17, v5
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_mdspan"><a href="#__cpp_lib_mdspan" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_mdspan</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>mdspan<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P0009R18">[<a href="https://wg21.link/p0009r18" role="doc-biblioref">P0009R18</a>]</span> MDSPAN <br/><span class="citation" data-cites="P2599R2">[<a href="https://wg21.link/p2599r2" role="doc-biblioref">P2599R2</a>]</span> index _type &amp; size_type in
mdspan <br/><span class="citation" data-cites="P2604R0">[<a href="https://wg21.link/p2604r0" role="doc-biblioref">P2604R0</a>]</span> MDSPAN: rename pointer and
contiguous <br/><span class="citation" data-cites="P2613R1">[<a href="https://wg21.link/p2613r1" role="doc-biblioref">P2613R1</a>]</span> Add the missing
<code class="sourceCode cpp">empty</code> to
<code class="sourceCode cpp">mdspan</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P2389R2">[<a href="https://wg21.link/p2389r2" role="doc-biblioref">P2389R2</a>]</span>
<code class="sourceCode cpp">dextents</code> Index Type Parameter
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_memory_resource"><a href="#__cpp_lib_memory_resource" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_memory_resource</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory_resource<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0220R1">[<a href="https://wg21.link/p0220r1" role="doc-biblioref">P0220R1</a>]</span> Adopt Library Fundamentals V1
TS Components for C++17 (R1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_modules"><a href="#__cpp_lib_modules" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_modules</code></a></span>
</td>
<td rowspan="1">
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2465R3">[<a href="https://wg21.link/p2465r3" role="doc-biblioref">P2465R3</a>]</span> Standard Library Modules std
and std.compat
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_monadic_optional"><a href="#__cpp_lib_monadic_optional" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_monadic_optional</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>optional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P0798R8">[<a href="https://wg21.link/p0798r8" role="doc-biblioref">P0798R8</a>]</span> Monadic operations for
std::optional
</td>
</tr>
<tr style="background-color: white">
<td>
<span class="rm" style="color: #bf0303"><del>deleted</del></span>
</td>
<td>
<span class="citation" data-cites="LWG3621">[<a href="https://wg21.link/lwg3621" role="doc-biblioref">LWG3621</a>]</span> Remove feature-test macro
__cpp_lib_monadic_optional
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_move_iterator_concept"><a href="#__cpp_lib_move_iterator_concept" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_move_iterator_concept</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2520R0">[<a href="https://wg21.link/p2520r0" role="doc-biblioref">P2520R0</a>]</span> move_iterator should be a
random access iterator
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_move_only_function"><a href="#__cpp_lib_move_only_function" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_move_only_function</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P0288R9">[<a href="https://wg21.link/p0288r9" role="doc-biblioref">P0288R9</a>]</span> move_only_function (was
any_invocable)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_node_extract"><a href="#__cpp_lib_node_extract" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_node_extract</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0083R3">[<a href="https://wg21.link/p0083r3" role="doc-biblioref">P0083R3</a>]</span> Splicing Maps and Sets
(Revision 5)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_nonmember_container_access"><a href="#__cpp_lib_nonmember_container_access" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_nonmember_container_access</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>array<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>deque<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>forward_list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>list<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>regex<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_set<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>vector<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4280">[<a href="https://wg21.link/n4280" role="doc-biblioref">N4280</a>]</span>
Non-member size() and more (Revison 2)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_not_fn"><a href="#__cpp_lib_not_fn" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_not_fn</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0005R4">[<a href="https://wg21.link/p0005r4" role="doc-biblioref">P0005R4</a>]</span> Adopt
<code class="sourceCode cpp">not_fn</code> from Library Fundamentals 2
for C++17
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2714R1">[<a href="https://wg21.link/p2714r1" role="doc-biblioref">P2714R1</a>]</span> Bind front and back to NTTP
callables
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_null_iterators"><a href="#__cpp_lib_null_iterators" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_null_iterators</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3644">[<a href="https://wg21.link/n3644" role="doc-biblioref">N3644</a>]</span>
Null Forward Iterators
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="4">
<span id="__cpp_lib_optional"><a href="#__cpp_lib_optional" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_optional</code></a></span>
</td>
<td rowspan="4">
<code class="sourceCode cpp"><span class="op">&lt;</span>optional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0220R1">[<a href="https://wg21.link/p0220r1" role="doc-biblioref">P0220R1</a>]</span> Adopt Library Fundamentals V1
TS Components for C++17 (R1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0032R3">[<a href="https://wg21.link/p0032r3" role="doc-biblioref">P0032R3</a>]</span> Homogeneous interface for
variant, any and optional (Revision 3) <br/><span class="citation" data-cites="P0307R2">[<a href="https://wg21.link/p0307r2" role="doc-biblioref">P0307R2</a>]</span> Making Optional Greater Equal
Again
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P2231R1">[<a href="https://wg21.link/p2231r1" role="doc-biblioref">P2231R1</a>]</span> Add further constexpr support
for optional/variant
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P0798R8">[<a href="https://wg21.link/p0798r8" role="doc-biblioref">P0798R8</a>]</span> Monadic operations for
std::optional <br/><span class="citation" data-cites="LWG3621">[<a href="https://wg21.link/lwg3621" role="doc-biblioref">LWG3621</a>]</span> Remove feature-test macro
__cpp_lib_monadic_optional
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_optional_range_support"><a href="#__cpp_lib_optional_range_support" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_optional_range_support</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>optional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P3168R2">[<a href="https://wg21.link/p3168r2" role="doc-biblioref">P3168R2</a>]</span> Give std::optional Range
Support
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_out_ptr"><a href="#__cpp_lib_out_ptr" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_out_ptr</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P1132R7">[<a href="https://wg21.link/p1132r7" role="doc-biblioref">P1132R7</a>]</span> out_ptr - a scalable output
pointer abstraction
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2833R2">[<a href="https://wg21.link/p2833r2" role="doc-biblioref">P2833R2</a>]</span> Freestanding Library: inout
expected span
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_parallel_algorithm"><a href="#__cpp_lib_parallel_algorithm" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_parallel_algorithm</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0024R2">[<a href="https://wg21.link/p0024r2" role="doc-biblioref">P0024R2</a>]</span> The Parallelism TS Should be
Standardized
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_philox_engine"><a href="#__cpp_lib_philox_engine" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_philox_engine</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>random<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P2075R6">[<a href="https://wg21.link/p2075r6" role="doc-biblioref">P2075R6</a>]</span> Philox as an extension of the
C++ RNG engines
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_polymorphic"><a href="#__cpp_lib_polymorphic" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_polymorphic</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3019R11">[<a href="https://wg21.link/p3019r11" role="doc-biblioref">P3019R11</a>]</span> Vocabulary Types for Composite
Class Design
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_polymorphic_allocator"><a href="#__cpp_lib_polymorphic_allocator" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_polymorphic_allocator</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory_resource<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P0339R6">[<a href="https://wg21.link/p0339r6" role="doc-biblioref">P0339R6</a>]</span> polymorphic_allocator&lt;&gt;
as a vocabulary type <br/><span class="citation" data-cites="LWG3437">[<a href="https://wg21.link/lwg3437" role="doc-biblioref">LWG3437</a>]</span> __cpp_lib_polymorphic_allocator
is in the wrong header
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_lib_print"><a href="#__cpp_lib_print" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_print</code></a></span>
</td>
<td rowspan="3">
<code class="sourceCode cpp"><span class="op">&lt;</span>ostream<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>print<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2093R14">[<a href="https://wg21.link/p2093r14" role="doc-biblioref">P2093R14</a>]</span> Formatted output
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P3107R5">[<a href="https://wg21.link/p3107r5" role="doc-biblioref">P3107R5</a>]</span> Permit an efficient
implementation of std::print
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P3235R3">[<a href="https://wg21.link/p3235r3" role="doc-biblioref">P3235R3</a>]</span> std::print more types faster
with less memory
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_quoted_string_io"><a href="#__cpp_lib_quoted_string_io" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_quoted_string_io</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>iomanip<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3654">[<a href="https://wg21.link/n3654" role="doc-biblioref">N3654</a>]</span>
Quoted Strings Library Proposal (Revision 2)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="10">
<span id="__cpp_lib_ranges"><a href="#__cpp_lib_ranges" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges</code></a></span>
</td>
<td rowspan="10">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P0896R4">[<a href="https://wg21.link/p0896r4" role="doc-biblioref">P0896R4</a>]</span> The One Ranges Proposal
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1035R7">[<a href="https://wg21.link/p1035r7" role="doc-biblioref">P1035R7</a>]</span> Input Range Adaptors
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201911</span></code>
</td>
<td>
<span class="citation" data-cites="P1716R3">[<a href="https://wg21.link/p1716r3" role="doc-biblioref">P1716R3</a>]</span> ranges compare algorithm are
over-constrained
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P2325R3">[<a href="https://wg21.link/p2325r3" role="doc-biblioref">P2325R3</a>]</span> Views should not be required to
be default constructible
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P2415R2">[<a href="https://wg21.link/p2415r2" role="doc-biblioref">P2415R2</a>]</span> What is a view?
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2387R3">[<a href="https://wg21.link/p2387r3" role="doc-biblioref">P2387R3</a>]</span> Pipe support for user-defined
range adaptors
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2494R2">[<a href="https://wg21.link/p2494r2" role="doc-biblioref">P2494R2</a>]</span> Relaxing range adaptors to
allow for move only types
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202211</span></code>
</td>
<td>
<span class="citation" data-cites="P2602R2">[<a href="https://wg21.link/p2602r2" role="doc-biblioref">P2602R2</a>]</span> Poison Pills are Too Toxic
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202302</span></code>
</td>
<td>
<span class="citation" data-cites="P2609R3">[<a href="https://wg21.link/p2609r3" role="doc-biblioref">P2609R3</a>]</span> Relaxing Ranges Just A Smidge
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P2997R1">[<a href="https://wg21.link/p2997r1" role="doc-biblioref">P2997R1</a>]</span> Removing the common reference
requirement from the indirectly invocable concepts
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_ranges_as_const"><a href="#__cpp_lib_ranges_as_const" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_as_const</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2278R4">[<a href="https://wg21.link/p2278r4" role="doc-biblioref">P2278R4</a>]</span> cbegin should always return a
constant iterator
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2836R1">[<a href="https://wg21.link/p2836r1" role="doc-biblioref">P2836R1</a>]</span> std::basic_const_iterator
should follow its underlying type’s convertibility
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_as_rvalue"><a href="#__cpp_lib_ranges_as_rvalue" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_as_rvalue</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2446R2">[<a href="https://wg21.link/p2446r2" role="doc-biblioref">P2446R2</a>]</span> views::as_rvalue
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_cache_latest"><a href="#__cpp_lib_ranges_cache_latest" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_cache_latest</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3138R5">[<a href="https://wg21.link/p3138r5" role="doc-biblioref">P3138R5</a>]</span> views::cache_latest
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_cartesian_product"><a href="#__cpp_lib_ranges_cartesian_product" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_cartesian_product</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2374R4">[<a href="https://wg21.link/p2374r4" role="doc-biblioref">P2374R4</a>]</span> views::cartesian_product
<br/><span class="citation" data-cites="P2540R1">[<a href="https://wg21.link/p2540r1" role="doc-biblioref">P2540R1</a>]</span> Empty Product for certain Views
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_chunk"><a href="#__cpp_lib_ranges_chunk" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_chunk</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2442R1">[<a href="https://wg21.link/p2442r1" role="doc-biblioref">P2442R1</a>]</span> Windowing range adaptors:
views::chunk and views::slide
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_chunk_by"><a href="#__cpp_lib_ranges_chunk_by" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_chunk_by</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2443R1">[<a href="https://wg21.link/p2443r1" role="doc-biblioref">P2443R1</a>]</span> views::chunk_by
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_concat"><a href="#__cpp_lib_ranges_concat" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_concat</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2542R8">[<a href="https://wg21.link/p2542r8" role="doc-biblioref">P2542R8</a>]</span> views::concat
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_contains"><a href="#__cpp_lib_ranges_contains" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_contains</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2302R4">[<a href="https://wg21.link/p2302r4" role="doc-biblioref">P2302R4</a>]</span> std::ranges::contains
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_enumerate"><a href="#__cpp_lib_ranges_enumerate" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_enumerate</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202302</span></code>
</td>
<td>
<span class="citation" data-cites="P2164R9">[<a href="https://wg21.link/p2164r9" role="doc-biblioref">P2164R9</a>]</span> views::enumerate
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_find_last"><a href="#__cpp_lib_ranges_find_last" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_find_last</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P1223R5">[<a href="https://wg21.link/p1223r5" role="doc-biblioref">P1223R5</a>]</span> find_last <br/><span class="citation" data-cites="LWG3807">[<a href="https://wg21.link/lwg3807" role="doc-biblioref">LWG3807</a>]</span> The feature test macro for
ranges::find_last should be renamed
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_fold"><a href="#__cpp_lib_ranges_fold" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_fold</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2322R6">[<a href="https://wg21.link/p2322r6" role="doc-biblioref">P2322R6</a>]</span> ranges::fold
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_iota"><a href="#__cpp_lib_ranges_iota" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_iota</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2440R1">[<a href="https://wg21.link/p2440r1" role="doc-biblioref">P2440R1</a>]</span> ranges::iota,
ranges::shift_left, and ranges::shift_right
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_join_with"><a href="#__cpp_lib_ranges_join_with" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_join_with</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2441R2">[<a href="https://wg21.link/p2441r2" role="doc-biblioref">P2441R2</a>]</span> views::join_with
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_repeat"><a href="#__cpp_lib_ranges_repeat" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_repeat</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2474R2">[<a href="https://wg21.link/p2474r2" role="doc-biblioref">P2474R2</a>]</span> views::repeat
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_reserve_hint"><a href="#__cpp_lib_ranges_reserve_hint" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_reserve_hint</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2846R6">[<a href="https://wg21.link/p2846r6" role="doc-biblioref">P2846R6</a>]</span> reserve_hint: Eagerly reserving
memory for not-quite-sized lazy ranges
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_slide"><a href="#__cpp_lib_ranges_slide" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_slide</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2442R1">[<a href="https://wg21.link/p2442r1" role="doc-biblioref">P2442R1</a>]</span> Windowing range adaptors:
views::chunk and views::slide
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_starts_ends_with"><a href="#__cpp_lib_ranges_starts_ends_with" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_starts_ends_with</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P1659R3">[<a href="https://wg21.link/p1659r3" role="doc-biblioref">P1659R3</a>]</span> starts_with and ends_with
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_stride"><a href="#__cpp_lib_ranges_stride" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_stride</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P1899R3">[<a href="https://wg21.link/p1899r3" role="doc-biblioref">P1899R3</a>]</span> stride_view
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_to_container"><a href="#__cpp_lib_ranges_to_container" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_to_container</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P1206R7">[<a href="https://wg21.link/p1206r7" role="doc-biblioref">P1206R7</a>]</span> Conversions from ranges to
containers
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ranges_to_input"><a href="#__cpp_lib_ranges_to_input" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_to_input</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P3137R3">[<a href="https://wg21.link/p3137r3" role="doc-biblioref">P3137R3</a>]</span> views::to_input
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_ranges_zip"><a href="#__cpp_lib_ranges_zip" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ranges_zip</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ranges<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P2321R2">[<a href="https://wg21.link/p2321r2" role="doc-biblioref">P2321R2</a>]</span> zip
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ratio"><a href="#__cpp_lib_ratio" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ratio</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>ratio<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2734R0">[<a href="https://wg21.link/p2734r0" role="doc-biblioref">P2734R0</a>]</span> Adding the new 2022 SI prefixes
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_raw_memory_algorithms"><a href="#__cpp_lib_raw_memory_algorithms" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_raw_memory_algorithms</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0040R3">[<a href="https://wg21.link/p0040r3" role="doc-biblioref">P0040R3</a>]</span> Extending memory management
tools
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3369R0">[<a href="https://wg21.link/p3369r0" role="doc-biblioref">P3369R0</a>]</span> constexpr for
uninitialized_default_construct <br/><span class="citation" data-cites="P3508R0">[<a href="https://wg21.link/p3508r0" role="doc-biblioref">P3508R0</a>]</span> Wording for constexpr for
specialized memory algorithms
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_rcu"><a href="#__cpp_lib_rcu" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_rcu</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>rcu<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2545R4">[<a href="https://wg21.link/p2545r4" role="doc-biblioref">P2545R4</a>]</span> Read-Copy Update (RCU)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_reference_from_temporary"><a href="#__cpp_lib_reference_from_temporary" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_reference_from_temporary</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2255R2">[<a href="https://wg21.link/p2255r2" role="doc-biblioref">P2255R2</a>]</span> A type trait to detect
reference binding to temporary
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_reference_wrapper"><a href="#__cpp_lib_reference_wrapper" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_reference_wrapper</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2944R3">[<a href="https://wg21.link/p2944r3" role="doc-biblioref">P2944R3</a>]</span> Comparisons for
reference_wrapper
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_remove_cvref"><a href="#__cpp_lib_remove_cvref" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_remove_cvref</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0550R2">[<a href="https://wg21.link/p0550r2" role="doc-biblioref">P0550R2</a>]</span> Transformation Trait
remove_cvref
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_result_of_sfinae"><a href="#__cpp_lib_result_of_sfinae" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_result_of_sfinae</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201210</span></code>
</td>
<td>
<span class="citation" data-cites="N3462">[<a href="https://wg21.link/n3462" role="doc-biblioref">N3462</a>]</span>
<code class="sourceCode cpp">std<span class="op">::</span>result_of</code> and
SFINAE
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_robust_nonmodifying_seq_ops"><a href="#__cpp_lib_robust_nonmodifying_seq_ops" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_robust_nonmodifying_seq_ops</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3671">[<a href="https://wg21.link/n3671" role="doc-biblioref">N3671</a>]</span>
Making non-modifying sequence operations more robust: Revision 2
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_sample"><a href="#__cpp_lib_sample" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_sample</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0220R1">[<a href="https://wg21.link/p0220r1" role="doc-biblioref">P0220R1</a>]</span> Adopt Library Fundamentals V1
TS Components for C++17 (R1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_saturation_arithmetic"><a href="#__cpp_lib_saturation_arithmetic" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_saturation_arithmetic</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>numeric<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P0543R3">[<a href="https://wg21.link/p0543r3" role="doc-biblioref">P0543R3</a>]</span> Saturation arithmetic
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_scoped_lock"><a href="#__cpp_lib_scoped_lock" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_scoped_lock</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>mutex<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201703</span></code>
</td>
<td>
<span class="citation" data-cites="P0156R2">[<a href="https://wg21.link/p0156r2" role="doc-biblioref">P0156R2</a>]</span> Variadic
<code class="sourceCode cpp">lock_guard</code> (Rev. 4)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_semaphore"><a href="#__cpp_lib_semaphore" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_semaphore</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>semaphore<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1135R6">[<a href="https://wg21.link/p1135r6" role="doc-biblioref">P1135R6</a>]</span> The C++20 Synchronization
Library
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_senders"><a href="#__cpp_lib_senders" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_senders</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>execution<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202406</span></code>
</td>
<td>
<span class="citation" data-cites="P2300R10">[<a href="https://wg21.link/p2300r10" role="doc-biblioref">P2300R10</a>]</span> <code class="sourceCode cpp">std<span class="op">::</span>execution</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_shared_mutex"><a href="#__cpp_lib_shared_mutex" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_shared_mutex</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>shared_mutex<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201505</span></code>
</td>
<td>
<span class="citation" data-cites="N4508">[<a href="https://wg21.link/n4508" role="doc-biblioref">N4508</a>]</span> A
proposal to add shared_mutex (untimed) (Revision 4)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_shared_ptr_arrays"><a href="#__cpp_lib_shared_ptr_arrays" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_shared_ptr_arrays</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0497R0">[<a href="https://wg21.link/p0497r0" role="doc-biblioref">P0497R0</a>]</span> Fixes to shared_ptr support for
arrays
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201707</span></code>
</td>
<td>
<span class="citation" data-cites="P0674R1">[<a href="https://wg21.link/p0674r1" role="doc-biblioref">P0674R1</a>]</span> Extending make_shared to
Support Arrays
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_shared_ptr_weak_type"><a href="#__cpp_lib_shared_ptr_weak_type" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_shared_ptr_weak_type</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0163R0">[<a href="https://wg21.link/p0163r0" role="doc-biblioref">P0163R0</a>]</span> <code class="sourceCode cpp">shared_ptr<span class="op">::</span>weak_type</code>
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_shared_timed_mutex"><a href="#__cpp_lib_shared_timed_mutex" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_shared_timed_mutex</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>shared_mutex<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201402</span></code>
</td>
<td>
<span class="citation" data-cites="N3891">[<a href="https://wg21.link/n3891" role="doc-biblioref">N3891</a>]</span> A
proposal to rename <code class="sourceCode cpp">shared_mutex</code> to
<code class="sourceCode cpp">shared_timed_mutex</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_shift"><a href="#__cpp_lib_shift" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_shift</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0769R2">[<a href="https://wg21.link/p0769r2" role="doc-biblioref">P0769R2</a>]</span> Add shift to <code class="sourceCode cpp"><span class="op">&lt;</span>algorithm<span class="op">&gt;</span></code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P2440R1">[<a href="https://wg21.link/p2440r1" role="doc-biblioref">P2440R1</a>]</span> ranges::iota,
ranges::shift_left, and ranges::shift_right
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_simd"><a href="#__cpp_lib_simd" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_simd</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>simd<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P1928R15">[<a href="https://wg21.link/p1928r15" role="doc-biblioref">P1928R15</a>]</span> std::simd - Merge
data-parallel types from the Parallelism TS 2
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2933R4">[<a href="https://wg21.link/p2933r4" role="doc-biblioref">P2933R4</a>]</span> Extend <bit> header function
with overloads for std::simd <br/><span class="citation" data-cites="P3287R3">[<a href="https://wg21.link/p3287r3" role="doc-biblioref">P3287R3</a>]</span> Exploration of namespaces for
std::simd <br/><span class="citation" data-cites="P3441R2">[<a href="https://wg21.link/p3441r2" role="doc-biblioref">P3441R2</a>]</span> Rename simd_split to simd_chunk
</bit></td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_simd_complex"><a href="#__cpp_lib_simd_complex" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_simd_complex</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>simd<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2663R7">[<a href="https://wg21.link/p2663r7" role="doc-biblioref">P2663R7</a>]</span> Proposal to support interleaved
complex values in std::simd
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_smart_pointer_owner_equality"><a href="#__cpp_lib_smart_pointer_owner_equality" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_smart_pointer_owner_equality</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P1901R2">[<a href="https://wg21.link/p1901r2" role="doc-biblioref">P1901R2</a>]</span> Enabling the Use of weak_ptr as
Keys in Unordered Associative Containers
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_smart_ptr_for_overwrite"><a href="#__cpp_lib_smart_ptr_for_overwrite" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_smart_ptr_for_overwrite</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P1020R1">[<a href="https://wg21.link/p1020r1" role="doc-biblioref">P1020R1</a>]</span> Smart pointer creation with
default initialization <br/><span class="citation" data-cites="P1973R1">[<a href="https://wg21.link/p1973r1" role="doc-biblioref">P1973R1</a>]</span> Rename _default_init functions
(NB Comment DE002)
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_source_location"><a href="#__cpp_lib_source_location" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_source_location</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>source_location<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1208R6">[<a href="https://wg21.link/p1208r6" role="doc-biblioref">P1208R6</a>]</span> Adopt source location from
Library Fundamentals V3 for C++20
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="4">
<span id="__cpp_lib_span"><a href="#__cpp_lib_span" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_span</code></a></span>
</td>
<td rowspan="4">
<code class="sourceCode cpp"><span class="op">&lt;</span>span<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0122R7">[<a href="https://wg21.link/p0122r7" role="doc-biblioref">P0122R7</a>]</span> span: bounds-safe views for
sequences of objects <br/><span class="citation" data-cites="LWG3274">[<a href="https://wg21.link/lwg3274" role="doc-biblioref">LWG3274</a>]</span> Missing feature test macro for
<code class="sourceCode cpp"><span class="op">&lt;</span>span<span class="op">&gt;</span></code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P1024R3">[<a href="https://wg21.link/p1024r3" role="doc-biblioref">P1024R3</a>]</span> Usability Enhancements for
<code class="sourceCode cpp">std<span class="op">::</span>span</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202002</span></code>
</td>
<td>
<span class="citation" data-cites="P1976R2">[<a href="https://wg21.link/p1976r2" role="doc-biblioref">P1976R2</a>]</span> Fixed-size
<code class="sourceCode cpp">span</code> construction from dynamic range
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2821R5">[<a href="https://wg21.link/p2821r5" role="doc-biblioref">P2821R5</a>]</span> span.at() <br/><span class="citation" data-cites="P2833R2">[<a href="https://wg21.link/p2833r2" role="doc-biblioref">P2833R2</a>]</span> Freestanding Library: inout
expected span
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_span_initializer_list"><a href="#__cpp_lib_span_initializer_list" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_span_initializer_list</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>span<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2447R6">[<a href="https://wg21.link/p2447r6" role="doc-biblioref">P2447R6</a>]</span> std::span over an initializer
list
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_spanstream"><a href="#__cpp_lib_spanstream" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_spanstream</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>spanstream<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P0448R4">[<a href="https://wg21.link/p0448r4" role="doc-biblioref">P0448R4</a>]</span> A strstream replacement using
span as buffer
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_ssize"><a href="#__cpp_lib_ssize" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_ssize</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>iterator<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201902</span></code>
</td>
<td>
<span class="citation" data-cites="P1227R2">[<a href="https://wg21.link/p1227r2" role="doc-biblioref">P1227R2</a>]</span> Signed ssize() functions,
unsigned size() functions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_sstream_from_string_view"><a href="#__cpp_lib_sstream_from_string_view" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_sstream_from_string_view</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>sstream<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2495R3">[<a href="https://wg21.link/p2495r3" role="doc-biblioref">P2495R3</a>]</span> Interfacing stringstreams with
string_view
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_stacktrace"><a href="#__cpp_lib_stacktrace" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_stacktrace</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>stacktrace<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202011</span></code>
</td>
<td>
<span class="citation" data-cites="P0881R7">[<a href="https://wg21.link/p0881r7" role="doc-biblioref">P0881R7</a>]</span> A Proposal to add stacktrace
library
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_start_lifetime_as"><a href="#__cpp_lib_start_lifetime_as" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_start_lifetime_as</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2590R2">[<a href="https://wg21.link/p2590r2" role="doc-biblioref">P2590R2</a>]</span> Explicit lifetime management
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_starts_ends_with"><a href="#__cpp_lib_starts_ends_with" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_starts_ends_with</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string_view<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0457R2">[<a href="https://wg21.link/p0457r2" role="doc-biblioref">P0457R2</a>]</span> String Prefix and Suffix
Checking
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_stdatomic_h"><a href="#__cpp_lib_stdatomic_h" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_stdatomic_h</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>stdatomic<span class="op">.</span>h<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202011</span></code>
</td>
<td>
<span class="citation" data-cites="P0943R6">[<a href="https://wg21.link/p0943r6" role="doc-biblioref">P0943R6</a>]</span> Support C atomics in C++
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_string_contains"><a href="#__cpp_lib_string_contains" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_string_contains</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string_view<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202011</span></code>
</td>
<td>
<span class="citation" data-cites="P1679R3">[<a href="https://wg21.link/p1679r3" role="doc-biblioref">P1679R3</a>]</span> String Contains function
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_string_resize_and_overwrite"><a href="#__cpp_lib_string_resize_and_overwrite" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_string_resize_and_overwrite</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202110</span></code>
</td>
<td>
<span class="citation" data-cites="P1072R10">[<a href="https://wg21.link/p1072r10" role="doc-biblioref">P1072R10</a>]</span>
basic_string::resize_and_overwrite
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_string_udls"><a href="#__cpp_lib_string_udls" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_string_udls</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3642">[<a href="https://wg21.link/n3642" role="doc-biblioref">N3642</a>]</span>
User-defined Literals for Standard Library Types (part 1 - version 4)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="4">
<span id="__cpp_lib_string_view"><a href="#__cpp_lib_string_view" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_string_view</code></a></span>
</td>
<td rowspan="4">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>string_view<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201603</span></code>
</td>
<td>
<span class="citation" data-cites="P0220R1">[<a href="https://wg21.link/p0220r1" role="doc-biblioref">P0220R1</a>]</span> Adopt Library Fundamentals V1
TS Components for C++17 (R1)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0254R2">[<a href="https://wg21.link/p0254r2" role="doc-biblioref">P0254R2</a>]</span> Integrating <code class="sourceCode cpp">std<span class="op">::</span>string_view</code>
and
<code class="sourceCode cpp">std<span class="op">::</span>string</code>
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0858R0">[<a href="https://wg21.link/p0858r0" role="doc-biblioref">P0858R0</a>]</span> Constexpr iterator requirements
<br/><span class="citation" data-cites="LWG3257">[<a href="https://wg21.link/lwg3257" role="doc-biblioref">LWG3257</a>]</span> Missing feature testing macro
update from P0858
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2591R5">[<a href="https://wg21.link/p2591r5" role="doc-biblioref">P2591R5</a>]</span> Concatenation of strings and
string views
</td>
</tr>
<tr style="background-color: white">
<td rowspan="3">
<span id="__cpp_lib_submdspan"><a href="#__cpp_lib_submdspan" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_submdspan</code></a></span>
</td>
<td rowspan="3">
<code class="sourceCode cpp"><span class="op">&lt;</span>mdspan<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2630R4">[<a href="https://wg21.link/p2630r4" role="doc-biblioref">P2630R4</a>]</span> Submdspan
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202403</span></code>
</td>
<td>
<span class="citation" data-cites="P2642R6">[<a href="https://wg21.link/p2642r6" role="doc-biblioref">P2642R6</a>]</span> Padded mdspan layouts
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202411</span></code>
</td>
<td>
<span class="citation" data-cites="P3355R1">[<a href="https://wg21.link/p3355r1" role="doc-biblioref">P3355R1</a>]</span> Fix submdspan for C++26
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_syncbuf"><a href="#__cpp_lib_syncbuf" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_syncbuf</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>syncstream<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0053R7">[<a href="https://wg21.link/p0053r7" role="doc-biblioref">P0053R7</a>]</span> C++ Synchronized Buffered
Ostream
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201803</span></code>
</td>
<td>
<span class="citation" data-cites="P0753R2">[<a href="https://wg21.link/p0753r2" role="doc-biblioref">P0753R2</a>]</span> Manipulators for C++
Synchronized Buffered Ostream
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_text_encoding"><a href="#__cpp_lib_text_encoding" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_text_encoding</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>text_encoding<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P1885R12">[<a href="https://wg21.link/p1885r12" role="doc-biblioref">P1885R12</a>]</span> Naming Text Encodings to
Demystify Them
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_three_way_comparison"><a href="#__cpp_lib_three_way_comparison" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_three_way_comparison</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>compare<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0768R1">[<a href="https://wg21.link/p0768r1" role="doc-biblioref">P0768R1</a>]</span> Library Support for the
Spaceship (Comparison) Operator
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P1614R2">[<a href="https://wg21.link/p1614r2" role="doc-biblioref">P1614R2</a>]</span> The Mothership Has Landed:
Adding
<code class="sourceCode cpp"><span class="op">&lt;=&gt;</span></code> to
the Library
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_to_address"><a href="#__cpp_lib_to_address" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_to_address</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201711</span></code>
</td>
<td>
<span class="citation" data-cites="P0653R2">[<a href="https://wg21.link/p0653r2" role="doc-biblioref">P0653R2</a>]</span> Utility to convert a pointer to
a raw pointer
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_to_array"><a href="#__cpp_lib_to_array" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_to_array</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>array<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201907</span></code>
</td>
<td>
<span class="citation" data-cites="P0325R4">[<a href="https://wg21.link/p0325r4" role="doc-biblioref">P0325R4</a>]</span> to_array from LFTS with updates
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_to_chars"><a href="#__cpp_lib_to_chars" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_to_chars</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>charconv<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201611</span></code>
</td>
<td>
<span class="citation" data-cites="P0067R5">[<a href="https://wg21.link/p0067r5" role="doc-biblioref">P0067R5</a>]</span> Elementary string conversions,
revision 5 <br/><span class="citation" data-cites="P0682R1">[<a href="https://wg21.link/p0682r1" role="doc-biblioref">P0682R1</a>]</span> Repairing elementary string
conversions <br/><span class="citation" data-cites="LWG3137">[<a href="https://wg21.link/lwg3137" role="doc-biblioref">LWG3137</a>]</span> Header for
<code class="sourceCode cpp">__cpp_lib_to_chars</code>
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2497R0">[<a href="https://wg21.link/p2497r0" role="doc-biblioref">P2497R0</a>]</span> Testing for success or failure
of charconv functions
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_to_string"><a href="#__cpp_lib_to_string" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_to_string</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>string<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2587R3">[<a href="https://wg21.link/p2587r3" role="doc-biblioref">P2587R3</a>]</span> to_string or not to_string
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_to_underlying"><a href="#__cpp_lib_to_underlying" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_to_underlying</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202102</span></code>
</td>
<td>
<span class="citation" data-cites="P1682R2">[<a href="https://wg21.link/p1682r2" role="doc-biblioref">P1682R2</a>]</span> std::to_underlying
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_transformation_trait_aliases"><a href="#__cpp_lib_transformation_trait_aliases" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_transformation_trait_aliases</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3655">[<a href="https://wg21.link/n3655" role="doc-biblioref">N3655</a>]</span>
TransformationTraits Redux, v2
</td>
</tr>
<tr style="background-color: white">
<td rowspan="2">
<span id="__cpp_lib_transparent_operators"><a href="#__cpp_lib_transparent_operators" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_transparent_operators</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>functional<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201210</span></code>
</td>
<td>
<span class="citation" data-cites="N3421">[<a href="https://wg21.link/n3421" role="doc-biblioref">N3421</a>]</span>
Making Operator Functors <code class="sourceCode cpp">greater<span class="op">&lt;&gt;</span></code>
</td>
</tr>
<tr style="background-color: white">
<td>
<code class="sourceCode cpp"><span class="dv">201510</span></code>
</td>
<td>
<span class="citation" data-cites="P0074R0">[<a href="https://wg21.link/p0074r0" role="doc-biblioref">P0074R0</a>]</span> Making <code class="sourceCode cpp">std<span class="op">::</span>owner_less</code>
more flexible
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_trivially_relocatable"><a href="#__cpp_lib_trivially_relocatable" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_trivially_relocatable</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>memory<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202502</span></code>
</td>
<td>
<span class="citation" data-cites="P2786R13">[<a href="https://wg21.link/p2786r13" role="doc-biblioref">P2786R13</a>]</span> Trivial Relocatability For
C++26
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_tuple_element_t"><a href="#__cpp_lib_tuple_element_t" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_tuple_element_t</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201402</span></code>
</td>
<td>
<span class="citation" data-cites="N3887">[<a href="https://wg21.link/n3887" role="doc-biblioref">N3887</a>]</span>
Consistent Metafunction Aliases
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="2">
<span id="__cpp_lib_tuple_like"><a href="#__cpp_lib_tuple_like" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_tuple_like</code></a></span>
</td>
<td rowspan="2">
<code class="sourceCode cpp"><span class="op">&lt;</span>map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202207</span></code>
</td>
<td>
<span class="citation" data-cites="P2165R4">[<a href="https://wg21.link/p2165r4" role="doc-biblioref">P2165R4</a>]</span> Compatibility between tuple,
pair and tuple-like objects
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202311</span></code>
</td>
<td>
<span class="citation" data-cites="P2819R2">[<a href="https://wg21.link/p2819r2" role="doc-biblioref">P2819R2</a>]</span> Add tuple protocol to complex
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_tuples_by_type"><a href="#__cpp_lib_tuples_by_type" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_tuples_by_type</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>tuple<span class="op">&gt;</span></code>
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201304</span></code>
</td>
<td>
<span class="citation" data-cites="N3670">[<a href="https://wg21.link/n3670" role="doc-biblioref">N3670</a>]</span>
Wording for Addressing Tuples by Type: Revision 2
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_type_identity"><a href="#__cpp_lib_type_identity" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_type_identity</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201806</span></code>
</td>
<td>
<span class="citation" data-cites="P0887R1">[<a href="https://wg21.link/p0887r1" role="doc-biblioref">P0887R1</a>]</span> The identity metafunction
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_type_trait_variable_templates"><a href="#__cpp_lib_type_trait_variable_templates" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_type_trait_variable_templates</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201510</span></code>
</td>
<td>
<span class="citation" data-cites="P0006R0">[<a href="https://wg21.link/p0006r0" role="doc-biblioref">P0006R0</a>]</span> Adopt Type Traits Variable
Templates from Library Fundamentals TS for C++17
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_uncaught_exceptions"><a href="#__cpp_lib_uncaught_exceptions" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_uncaught_exceptions</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>exception<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4259">[<a href="https://wg21.link/n4259" role="doc-biblioref">N4259</a>]</span>
Wording for <code class="sourceCode cpp">std<span class="op">::</span>uncaught_exceptions</code>
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_unordered_map_try_emplace"><a href="#__cpp_lib_unordered_map_try_emplace" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_unordered_map_try_emplace</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>unordered_map<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N4279">[<a href="https://wg21.link/n4279" role="doc-biblioref">N4279</a>]</span>
Improved insertion interface for unique-key maps (Revision 2.3)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="1">
<span id="__cpp_lib_unreachable"><a href="#__cpp_lib_unreachable" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_unreachable</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>utility<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">202202</span></code>
</td>
<td>
<span class="citation" data-cites="P0627R6">[<a href="https://wg21.link/p0627r6" role="doc-biblioref">P0627R6</a>]</span> Function to mark unreachable
code
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_unwrap_ref"><a href="#__cpp_lib_unwrap_ref" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_unwrap_ref</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201811</span></code>
</td>
<td>
<span class="citation" data-cites="P0318R1">[<a href="https://wg21.link/p0318r1" role="doc-biblioref">P0318R1</a>]</span> unwrap_ref_decay and
unwrap_reference <br/><span class="citation" data-cites="LWG3348">[<a href="https://wg21.link/lwg3348" role="doc-biblioref">LWG3348</a>]</span> __cpp_lib_unwrap_ref in wrong
header
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td rowspan="4">
<span id="__cpp_lib_variant"><a href="#__cpp_lib_variant" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_variant</code></a></span>
</td>
<td rowspan="4">
<code class="sourceCode cpp"><span class="op">&lt;</span>variant<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201606</span></code>
</td>
<td>
<span class="citation" data-cites="P0088R3">[<a href="https://wg21.link/p0088r3" role="doc-biblioref">P0088R3</a>]</span> Variant: a type-safe union for
C++17 (v8) <br/><span class="citation" data-cites="P0393R3">[<a href="https://wg21.link/p0393r3" role="doc-biblioref">P0393R3</a>]</span> Making Variant Greater Equal
<br/><span class="citation" data-cites="P0032R3">[<a href="https://wg21.link/p0032r3" role="doc-biblioref">P0032R3</a>]</span> Homogeneous interface for
variant, any and optional (Revision 3)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202102</span></code>
</td>
<td>
<span class="citation" data-cites="P2162R2">[<a href="https://wg21.link/p2162r2" role="doc-biblioref">P2162R2</a>]</span> Inheriting from std::variant
(resolving LWG3052)
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202106</span></code>
</td>
<td>
<span class="citation" data-cites="P2231R1">[<a href="https://wg21.link/p2231r1" role="doc-biblioref">P2231R1</a>]</span> Add further constexpr support
for optional/variant
</td>
</tr>
<tr style="background-color: #f6f8fa">
<td>
<code class="sourceCode cpp"><span class="dv">202306</span></code>
</td>
<td>
<span class="citation" data-cites="P2637R3">[<a href="https://wg21.link/p2637r3" role="doc-biblioref">P2637R3</a>]</span> Member visit
</td>
</tr>
<tr style="background-color: white">
<td rowspan="1">
<span id="__cpp_lib_void_t"><a href="#__cpp_lib_void_t" style="text-decoration:none"><code class="sourceCode cpp">__cpp_lib_void_t</code></a></span>
</td>
<td rowspan="1">
<code class="sourceCode cpp"><span class="op">&lt;</span>type_traits<span class="op">&gt;</span></code>
</td>
<td>
<code class="sourceCode cpp"><span class="dv">201411</span></code>
</td>
<td>
<span class="citation" data-cites="N3911">[<a href="https://wg21.link/n3911" role="doc-biblioref">N3911</a>]</span>
TransformationTrait Alias <code class="sourceCode cpp">void_t</code>
</td>
</tr>
</table>
<h1 data-number="5" id="bibliography" style="border-bottom:1px solid #cccccc"><span class="header-section-number">5</span>
References<a class="self-link" href="#bibliography"></a></h1>
<div class="references csl-bib-body hanging-indent" data-entry-spacing="1" id="refs" role="doc-bibliography">
<div class="csl-entry" id="ref-CWG2615" role="doc-biblioentry">
[CWG2615] S. B. Tam. 2022-08-17. Missing __has_cpp_attribute(assume). <a href="https://wg21.link/cwg2615"><div class="csl-block">https://wg21.link/cwg2615</div></a>
</div>
<div class="csl-entry" id="ref-CWG2659" role="doc-biblioentry">
[CWG2659] CWG. 2022-12-02. Missing feature-test macro for lifetime
extension in range-for loop. <a href="https://wg21.link/cwg2659"><div class="csl-block">https://wg21.link/cwg2659</div></a>
</div>
<div class="csl-entry" id="ref-LWG2112" role="doc-biblioentry">
[LWG2112] Daniel Krügler. User-defined classes that cannot be derived
from. <a href="https://wg21.link/lwg2112"><div class="csl-block">https://wg21.link/lwg2112</div></a>
</div>
<div class="csl-entry" id="ref-LWG2247" role="doc-biblioentry">
[LWG2247] Joe Gottman. Type traits and std::nullptr_t. <a href="https://wg21.link/lwg2247"><div class="csl-block">https://wg21.link/lwg2247</div></a>
</div>
<div class="csl-entry" id="ref-LWG2285" role="doc-biblioentry">
[LWG2285] Zhihao Yuan. make_reverse_iterator. <a href="https://wg21.link/lwg2285"><div class="csl-block">https://wg21.link/lwg2285</div></a>
</div>
<div class="csl-entry" id="ref-LWG2296" role="doc-biblioentry">
[LWG2296] Daryle Walker. std::addressof should be constexpr. <a href="https://wg21.link/lwg2296"><div class="csl-block">https://wg21.link/lwg2296</div></a>
</div>
<div class="csl-entry" id="ref-LWG2911" role="doc-biblioentry">
[LWG2911] United States. An is_aggregate type trait is needed. <a href="https://wg21.link/lwg2911"><div class="csl-block">https://wg21.link/lwg2911</div></a>
</div>
<div class="csl-entry" id="ref-LWG3137" role="doc-biblioentry">
[LWG3137] S. B. Tam. Header for __cpp_lib_to_chars. <a href="https://wg21.link/lwg3137"><div class="csl-block">https://wg21.link/lwg3137</div></a>
</div>
<div class="csl-entry" id="ref-LWG3256" role="doc-biblioentry">
[LWG3256] Antony Polukhin. Feature testing macro for constexpr
algorithms. <a href="https://wg21.link/lwg3256"><div class="csl-block">https://wg21.link/lwg3256</div></a>
</div>
<div class="csl-entry" id="ref-LWG3257" role="doc-biblioentry">
[LWG3257] Antony Polukhin. Missing feature testing macro update from
P0858. <a href="https://wg21.link/lwg3257"><div class="csl-block">https://wg21.link/lwg3257</div></a>
</div>
<div class="csl-entry" id="ref-LWG3274" role="doc-biblioentry">
[LWG3274] Jonathan Wakely. Missing feature test macro for &lt;span&gt;.
<a href="https://wg21.link/lwg3274"><div class="csl-block">https://wg21.link/lwg3274</div></a>
</div>
<div class="csl-entry" id="ref-LWG3348" role="doc-biblioentry">
[LWG3348] Barry Revzin. __cpp_lib_unwrap_ref in wrong header. <a href="https://wg21.link/lwg3348"><div class="csl-block">https://wg21.link/lwg3348</div></a>
</div>
<div class="csl-entry" id="ref-LWG3356" role="doc-biblioentry">
[LWG3356] Barry Revzin. __cpp_lib_nothrow_convertible should be
__cpp_lib_is_nothrow_convertible. <a href="https://wg21.link/lwg3356"><div class="csl-block">https://wg21.link/lwg3356</div></a>
</div>
<div class="csl-entry" id="ref-LWG3393" role="doc-biblioentry">
[LWG3393] Barry Revzin. Missing/incorrect feature test macro for
coroutines. <a href="https://wg21.link/lwg3393"><div class="csl-block">https://wg21.link/lwg3393</div></a>
</div>
<div class="csl-entry" id="ref-LWG3437" role="doc-biblioentry">
[LWG3437] Jonathan Wakely. __cpp_lib_polymorphic_allocator is in the
wrong header. <a href="https://wg21.link/lwg3437"><div class="csl-block">https://wg21.link/lwg3437</div></a>
</div>
<div class="csl-entry" id="ref-LWG3621" role="doc-biblioentry">
[LWG3621] Jens Maurer. Remove feature-test macro
__cpp_lib_monadic_optional. <a href="https://wg21.link/lwg3621"><div class="csl-block">https://wg21.link/lwg3621</div></a>
</div>
<div class="csl-entry" id="ref-LWG3750" role="doc-biblioentry">
[LWG3750] Barry Revzin. Too many papers bump __cpp_lib_format. <a href="https://wg21.link/lwg3750"><div class="csl-block">https://wg21.link/lwg3750</div></a>
</div>
<div class="csl-entry" id="ref-LWG3751" role="doc-biblioentry">
[LWG3751] Barry Revzin. Missing feature macro for flat_set. <a href="https://wg21.link/lwg3751"><div class="csl-block">https://wg21.link/lwg3751</div></a>
</div>
<div class="csl-entry" id="ref-LWG3792" role="doc-biblioentry">
[LWG3792] Marc Mutz. __cpp_lib_constexpr_algorithms should also be
defined in &lt;utility&gt;. <a href="https://wg21.link/lwg3792"><div class="csl-block">https://wg21.link/lwg3792</div></a>
</div>
<div class="csl-entry" id="ref-LWG3807" role="doc-biblioentry">
[LWG3807] Daniel Marshall. The feature test macro for ranges::find_last
should be renamed. <a href="https://wg21.link/lwg3807"><div class="csl-block">https://wg21.link/lwg3807</div></a>
</div>
<div class="csl-entry" id="ref-LWG3887" role="doc-biblioentry">
[LWG3887] Alisdair Meredith. Version macro for allocate_at_least. <a href="https://wg21.link/lwg3887"><div class="csl-block">https://wg21.link/lwg3887</div></a>
</div>
<div class="csl-entry" id="ref-N1720" role="doc-biblioentry">
[N1720] R. Klarer, J. Maddock, B. Dawes, H. Hinnant. 2004-10-20.
Proposal to Add Static Assertions to the Core Language (Revision 3). <a href="https://wg21.link/n1720"><div class="csl-block">https://wg21.link/n1720</div></a>
</div>
<div class="csl-entry" id="ref-N1986" role="doc-biblioentry">
[N1986] H. Sutter, F. Glassborow. 2006-04-06. Delegating Constructors
(revision 3). <a href="https://wg21.link/n1986"><div class="csl-block">https://wg21.link/n1986</div></a>
</div>
<div class="csl-entry" id="ref-N2118" role="doc-biblioentry">
[N2118] Howard E. Hinnant. 2006-10-19. A Proposal to Add an Rvalue
Reference to the C++ Language: Proposed Wording: Revision 3. <a href="https://wg21.link/n2118"><div class="csl-block">https://wg21.link/n2118</div></a>
</div>
<div class="csl-entry" id="ref-N2235" role="doc-biblioentry">
[N2235] G. Dos Reis, B. Stroustrup, J. Maurer. 2007-04-17. Generalized
Constant Expressions—Revision 5. <a href="https://wg21.link/n2235"><div class="csl-block">https://wg21.link/n2235</div></a>
</div>
<div class="csl-entry" id="ref-N2242" role="doc-biblioentry">
[N2242] D. Gregor, J. Järvi, J. Maurer, J. Merrill. 2007-04-19. Proposed
Wording for Variadic Templates (Revision 2). <a href="https://wg21.link/n2242"><div class="csl-block">https://wg21.link/n2242</div></a>
</div>
<div class="csl-entry" id="ref-N2249" role="doc-biblioentry">
[N2249] Lawrence Crowl. 2007-04-19. New Character Types in C++. <a href="https://wg21.link/n2249"><div class="csl-block">https://wg21.link/n2249</div></a>
</div>
<div class="csl-entry" id="ref-N2258" role="doc-biblioentry">
[N2258] G. Dos Reis, B. Stroustrup. 2007-04-19. Templates Aliases. <a href="https://wg21.link/n2258"><div class="csl-block">https://wg21.link/n2258</div></a>
</div>
<div class="csl-entry" id="ref-N2343" role="doc-biblioentry">
[N2343] J. Järvi, B. Stroustrup, G. Dos Reis. 2007-07-18. Decltype
(revision 7): proposed wording. <a href="https://wg21.link/n2343"><div class="csl-block">https://wg21.link/n2343</div></a>
</div>
<div class="csl-entry" id="ref-N2439" role="doc-biblioentry">
[N2439] Bronek Kozicki. 2007-10-05. Extending move semantics to *this
(revised wording). <a href="https://wg21.link/n2439"><div class="csl-block">https://wg21.link/n2439</div></a>
</div>
<div class="csl-entry" id="ref-N2442" role="doc-biblioentry">
[N2442] L. Crowl, B. Dawes. 2007-10-05. Raw and Unicode String Literals;
Unified Proposal (Rev. 2). <a href="https://wg21.link/n2442"><div class="csl-block">https://wg21.link/n2442</div></a>
</div>
<div class="csl-entry" id="ref-N2540" role="doc-biblioentry">
[N2540] A. Meredith, M. Wong, J. Maurer. 2008-02-29. Inheriting
Constructors (revision 5). <a href="https://wg21.link/n2540"><div class="csl-block">https://wg21.link/n2540</div></a>
</div>
<div class="csl-entry" id="ref-N2660" role="doc-biblioentry">
[N2660] Lawrence Crowl. 2008-06-13. Dynamic Initialization and
Destruction with Concurrency. <a href="https://wg21.link/n2660"><div class="csl-block">https://wg21.link/n2660</div></a>
</div>
<div class="csl-entry" id="ref-N2672" role="doc-biblioentry">
[N2672] J. Merrill, D. Vandevoorde. 2008-06-12. Initializer List
proposed wording. <a href="https://wg21.link/n2672"><div class="csl-block">https://wg21.link/n2672</div></a>
</div>
<div class="csl-entry" id="ref-N2756" role="doc-biblioentry">
[N2756] M. Spertus, B. Seymour. 2008-09-16. Non-static data member
initializers. <a href="https://wg21.link/n2756"><div class="csl-block">https://wg21.link/n2756</div></a>
</div>
<div class="csl-entry" id="ref-N2761" role="doc-biblioentry">
[N2761] J. Maurer, M. Wong. 2008-09-18. Towards support for attributes
in C++ (Revision 6). <a href="https://wg21.link/n2761"><div class="csl-block">https://wg21.link/n2761</div></a>
</div>
<div class="csl-entry" id="ref-N2765" role="doc-biblioentry">
[N2765] I. McIntosh, M. Wong, R. Mak, R. Klarer, et al. 2008-09-18.
User-defined Literals (aka. Extensible Literals (revision 5)). <a href="https://wg21.link/n2765"><div class="csl-block">https://wg21.link/n2765</div></a>
</div>
<div class="csl-entry" id="ref-N2782" role="doc-biblioentry">
[N2782] P. McKenney, L. Crowl. 2008-09-18. C++ Data-Dependency Ordering:
Function Annotation. <a href="https://wg21.link/n2782"><div class="csl-block">https://wg21.link/n2782</div></a>
</div>
<div class="csl-entry" id="ref-N2927" role="doc-biblioentry">
[N2927] Daveed Vandevoorde. 2009-07-15. New wording for C++0x Lambdas
(rev. 2). <a href="https://wg21.link/n2927"><div class="csl-block">https://wg21.link/n2927</div></a>
</div>
<div class="csl-entry" id="ref-N2930" role="doc-biblioentry">
[N2930] D. Gregor, B. Dawes. 2009-07-16. Range-Based For Loop Wording
(Without Concepts). <a href="https://wg21.link/n2930"><div class="csl-block">https://wg21.link/n2930</div></a>
</div>
<div class="csl-entry" id="ref-N3421" role="doc-biblioentry">
[N3421] Stephan T. Lavavej. 2012-09-20. Making Operator Functors
greater&lt;&gt;. <a href="https://wg21.link/n3421"><div class="csl-block">https://wg21.link/n3421</div></a>
</div>
<div class="csl-entry" id="ref-N3462" role="doc-biblioentry">
[N3462] E. Niebler, D. Walker, J. de Guzman. 2012-10-18. std::result_of
and SFINAE. <a href="https://wg21.link/n3462"><div class="csl-block">https://wg21.link/n3462</div></a>
</div>
<div class="csl-entry" id="ref-N3472" role="doc-biblioentry">
[N3472] James Dennett. 2012-10-19. Binary Literals in the C++ Core
Language. <a href="https://wg21.link/n3472"><div class="csl-block">https://wg21.link/n3472</div></a>
</div>
<div class="csl-entry" id="ref-N3545" role="doc-biblioentry">
[N3545] Walter E. Brown. 2013-03-12. An Incremental Improvement to
integral_constant. <a href="https://wg21.link/n3545"><div class="csl-block">https://wg21.link/n3545</div></a>
</div>
<div class="csl-entry" id="ref-N3638" role="doc-biblioentry">
[N3638] Jason Merrill. 2013-04-17. Return type deduction for normal
functions. <a href="https://wg21.link/n3638"><div class="csl-block">https://wg21.link/n3638</div></a>
</div>
<div class="csl-entry" id="ref-N3642" role="doc-biblioentry">
[N3642] Peter Sommerlad. 2013-04-18. User-defined Literals for Standard
Library Types (part 1 - version 4). <a href="https://wg21.link/n3642"><div class="csl-block">https://wg21.link/n3642</div></a>
</div>
<div class="csl-entry" id="ref-N3644" role="doc-biblioentry">
[N3644] Alan Talbot. 2013-04-18. Null Forward Iterators. <a href="https://wg21.link/n3644"><div class="csl-block">https://wg21.link/n3644</div></a>
</div>
<div class="csl-entry" id="ref-N3648" role="doc-biblioentry">
[N3648] D. Vandevoorde, V. Voutilainen. 2013-04-17. Wording Changes for
Generalized Lambda-capture. <a href="https://wg21.link/n3648"><div class="csl-block">https://wg21.link/n3648</div></a>
</div>
<div class="csl-entry" id="ref-N3649" role="doc-biblioentry">
[N3649] F. Vali, H. Sutter, D. Abrahams. 2013-04-19. Generic
(Polymorphic) Lambda Expressions (Revision 3). <a href="https://wg21.link/n3649"><div class="csl-block">https://wg21.link/n3649</div></a>
</div>
<div class="csl-entry" id="ref-N3651" role="doc-biblioentry">
[N3651] Gabriel Dos Reis. 2013-04-19. Variable Templates (Revision 1).
<a href="https://wg21.link/n3651"><div class="csl-block">https://wg21.link/n3651</div></a>
</div>
<div class="csl-entry" id="ref-N3652" role="doc-biblioentry">
[N3652] Richard Smith. 2013-04-18. Relaxing constraints on constexpr
functions / constexpr member functions and implicit const. <a href="https://wg21.link/n3652"><div class="csl-block">https://wg21.link/n3652</div></a>
</div>
<div class="csl-entry" id="ref-N3653" role="doc-biblioentry">
[N3653] V. Voutilainen, R. Smith. 2013-04-17. Member initializers and
aggregates. <a href="https://wg21.link/n3653"><div class="csl-block">https://wg21.link/n3653</div></a>
</div>
<div class="csl-entry" id="ref-N3654" role="doc-biblioentry">
[N3654] Beman Dawes. 2013-04-19. Quoted Strings Library Proposal
(Revision 2). <a href="https://wg21.link/n3654"><div class="csl-block">https://wg21.link/n3654</div></a>
</div>
<div class="csl-entry" id="ref-N3655" role="doc-biblioentry">
[N3655] Walter E. Brown. 2013-04-18. TransformationTraits Redux, v2. <a href="https://wg21.link/n3655"><div class="csl-block">https://wg21.link/n3655</div></a>
</div>
<div class="csl-entry" id="ref-N3656" role="doc-biblioentry">
[N3656] Stephan T. Lavavej. 2013-04-18. make_unique (Revision 1). <a href="https://wg21.link/n3656"><div class="csl-block">https://wg21.link/n3656</div></a>
</div>
<div class="csl-entry" id="ref-N3657" role="doc-biblioentry">
[N3657] J. Wakely, S. Lavavej, J. Muñoz. 2013-03-19. Adding
heterogeneous comparison lookup to associative containers (rev 4). <a href="https://wg21.link/n3657"><div class="csl-block">https://wg21.link/n3657</div></a>
</div>
<div class="csl-entry" id="ref-N3658" role="doc-biblioentry">
[N3658] Jonathan Wakely. 2013-04-18. Compile-time integer sequences. <a href="https://wg21.link/n3658"><div class="csl-block">https://wg21.link/n3658</div></a>
</div>
<div class="csl-entry" id="ref-N3668" role="doc-biblioentry">
[N3668] Jeffrey Yasskin. 2013-04-19. exchange() utility function,
revision 3. <a href="https://wg21.link/n3668"><div class="csl-block">https://wg21.link/n3668</div></a>
</div>
<div class="csl-entry" id="ref-N3670" role="doc-biblioentry">
[N3670] Mike Spertus. 2013-04-19. Wording for Addressing Tuples by Type:
Revision 2. <a href="https://wg21.link/n3670"><div class="csl-block">https://wg21.link/n3670</div></a>
</div>
<div class="csl-entry" id="ref-N3671" role="doc-biblioentry">
[N3671] M. Spertus, A. Pall. 2013-04-19. Making non-modifying sequence
operations more robust: Revision 2. <a href="https://wg21.link/n3671"><div class="csl-block">https://wg21.link/n3671</div></a>
</div>
<div class="csl-entry" id="ref-N3760" role="doc-biblioentry">
[N3760] Alberto Ganesh Barbati. 2013-09-01. [[deprecated]] attribute. <a href="https://wg21.link/n3760"><div class="csl-block">https://wg21.link/n3760</div></a>
</div>
<div class="csl-entry" id="ref-N3778" role="doc-biblioentry">
[N3778] Lawrence Crowl. 2013-09-27. C++ Sized Deallocation. <a href="https://wg21.link/n3778"><div class="csl-block">https://wg21.link/n3778</div></a>
</div>
<div class="csl-entry" id="ref-N3779" role="doc-biblioentry">
[N3779] Peter Sommerlad. 2013-09-24. User-defined Literals for
std::complex. <a href="https://wg21.link/n3779"><div class="csl-block">https://wg21.link/n3779</div></a>
</div>
<div class="csl-entry" id="ref-N3887" role="doc-biblioentry">
[N3887] Michael Park. 2013-12-26. Consistent Metafunction Aliases. <a href="https://wg21.link/n3887"><div class="csl-block">https://wg21.link/n3887</div></a>
</div>
<div class="csl-entry" id="ref-N3891" role="doc-biblioentry">
[N3891] G. Nishanov, H. Sutter. 2014-01-14. A proposal to rename
shared_mutex to shared_timed_mutex. <a href="https://wg21.link/n3891"><div class="csl-block">https://wg21.link/n3891</div></a>
</div>
<div class="csl-entry" id="ref-N3911" role="doc-biblioentry">
[N3911] Walter E. Brown. 2014-02-23. TransformationTrait Alias void_t.
<a href="https://wg21.link/n3911"><div class="csl-block">https://wg21.link/n3911</div></a>
</div>
<div class="csl-entry" id="ref-N3928" role="doc-biblioentry">
[N3928] Walter E. Brown. 2014-02-14. Extending static_assert, v2. <a href="https://wg21.link/n3928"><div class="csl-block">https://wg21.link/n3928</div></a>
</div>
<div class="csl-entry" id="ref-N4169" role="doc-biblioentry">
[N4169] Tomasz Kamiński. 2014-08-22. A proposal to add invoke function
template (Revision 1). <a href="https://wg21.link/n4169"><div class="csl-block">https://wg21.link/n4169</div></a>
</div>
<div class="csl-entry" id="ref-N4258" role="doc-biblioentry">
[N4258] Nicolai Josuttis. 2014-11-07. Cleaning up noexcept in the
Library (Rev 3). <a href="https://wg21.link/n4258"><div class="csl-block">https://wg21.link/n4258</div></a>
</div>
<div class="csl-entry" id="ref-N4259" role="doc-biblioentry">
[N4259] Herb Sutter. 2014-11-06. Wording for std::uncaught_exceptions.
<a href="https://wg21.link/n4259"><div class="csl-block">https://wg21.link/n4259</div></a>
</div>
<div class="csl-entry" id="ref-N4266" role="doc-biblioentry">
[N4266] Richard Smith. 2014-11-05. Attributes for namespaces and
enumerators. <a href="https://wg21.link/n4266"><div class="csl-block">https://wg21.link/n4266</div></a>
</div>
<div class="csl-entry" id="ref-N4268" role="doc-biblioentry">
[N4268] Richard Smith. 2014-11-05. Allow constant evaluation for all
non-type template arguments. <a href="https://wg21.link/n4268"><div class="csl-block">https://wg21.link/n4268</div></a>
</div>
<div class="csl-entry" id="ref-N4279" role="doc-biblioentry">
[N4279] Thomas Köpp. 2014-11-07. Improved insertion interface for
unique-key maps (Revision 2.3). <a href="https://wg21.link/n4279"><div class="csl-block">https://wg21.link/n4279</div></a>
</div>
<div class="csl-entry" id="ref-N4280" role="doc-biblioentry">
[N4280] Riccardo Marcangelo. 2014-11-06. Non-member size() and more
(Revison 2). <a href="https://wg21.link/n4280"><div class="csl-block">https://wg21.link/n4280</div></a>
</div>
<div class="csl-entry" id="ref-N4295" role="doc-biblioentry">
[N4295] Andrew Sutton, Richard Smith. 2014-11-07. Folding Expressions.
<a href="https://wg21.link/n4295"><div class="csl-block">https://wg21.link/n4295</div></a>
</div>
<div class="csl-entry" id="ref-N4389" role="doc-biblioentry">
[N4389] Zhihao Yuan. 2015-02-23. Wording for bool_constant, revision 1.
<a href="https://wg21.link/n4389"><div class="csl-block">https://wg21.link/n4389</div></a>
</div>
<div class="csl-entry" id="ref-N4508" role="doc-biblioentry">
[N4508] Gor Nishanov. 2015-05-05. A proposal to add shared_mutex
(untimed) (Revision 4). <a href="https://wg21.link/n4508"><div class="csl-block">https://wg21.link/n4508</div></a>
</div>
<div class="csl-entry" id="ref-N4510" role="doc-biblioentry">
[N4510] Zhihao Yuan. 2015-05-05. Minimal incomplete type support for
standard containers, revision 4. <a href="https://wg21.link/n4510"><div class="csl-block">https://wg21.link/n4510</div></a>
</div>
<div class="csl-entry" id="ref-P0005R4" role="doc-biblioentry">
[P0005R4] Alisdair Meredith. 2016-03-01. Adopt not_fn from Library
Fundamentals 2 for C++17. <a href="https://wg21.link/p0005r4"><div class="csl-block">https://wg21.link/p0005r4</div></a>
</div>
<div class="csl-entry" id="ref-P0006R0" role="doc-biblioentry">
[P0006R0] Alisdair Meredith. 2015-09-28. Adopt Type Traits Variable
Templates from Library Fundamentals TS for C++17. <a href="https://wg21.link/p0006r0"><div class="csl-block">https://wg21.link/p0006r0</div></a>
</div>
<div class="csl-entry" id="ref-P0007R1" role="doc-biblioentry">
[P0007R1] ADAM David Alan Martin, Alisdair Meredith. 2015-10-22.
Constant View: A proposal for a std::as_const helper function template.
<a href="https://wg21.link/p0007r1"><div class="csl-block">https://wg21.link/p0007r1</div></a>
</div>
<div class="csl-entry" id="ref-P0009R18" role="doc-biblioentry">
[P0009R18] Christian Trott, D.S. Hollman, Damien Lebrun-Grandie, Mark
Hoemmen, Daniel Sunderland, H. Carter Edwards, Bryce Adelstein Lelbach,
Mauro Bianco, Ben Sander, Athanasios Iliopoulos, John Michopoulos, Nevin
Liber. 2022-07-13. MDSPAN. <a href="https://wg21.link/p0009r18"><div class="csl-block">https://wg21.link/p0009r18</div></a>
</div>
<div class="csl-entry" id="ref-P0012R1" role="doc-biblioentry">
[P0012R1] Jens Maurer. 2015-10-22. Make exception specifications be part
of the type system, version 5. <a href="https://wg21.link/p0012r1"><div class="csl-block">https://wg21.link/p0012r1</div></a>
</div>
<div class="csl-entry" id="ref-P0013R1" role="doc-biblioentry">
[P0013R1] Jonathan Wakely. 2015-10-23. Logical Operator Type Traits
(revison 1). <a href="https://wg21.link/p0013r1"><div class="csl-block">https://wg21.link/p0013r1</div></a>
</div>
<div class="csl-entry" id="ref-P0017R1" role="doc-biblioentry">
[P0017R1] Oleg Smolsky. 2015-10-24. Extension to aggregate
initialization. <a href="https://wg21.link/p0017r1"><div class="csl-block">https://wg21.link/p0017r1</div></a>
</div>
<div class="csl-entry" id="ref-P0018R3" role="doc-biblioentry">
[P0018R3] H. Carter Edwards, Daveed Vandevoorde, Christian Trott, Hal
Finkel, Jim Reus, Robin Maffeo, Ben Sander. 2016-03-04. Lambda Capture
of *this by Value as [=,*this]. <a href="https://wg21.link/p0018r3"><div class="csl-block">https://wg21.link/p0018r3</div></a>
</div>
<div class="csl-entry" id="ref-P0019R8" role="doc-biblioentry">
[P0019R8] Daniel Sunderland, H. Carter Edwards, Hans Boehm, Olivier
Giroux, Mark Hoemmen, D. S. Hollman, Bryce Adelstein Lelbach, Jens
Maurer. 2018-06-07. Atomic Ref. <a href="https://wg21.link/p0019r8"><div class="csl-block">https://wg21.link/p0019r8</div></a>
</div>
<div class="csl-entry" id="ref-P0020R6" role="doc-biblioentry">
[P0020R6] H. Carter Edwards, Hans Boehm, Olivier Giroux, JF Bastien,
James Reus. 2017-11-10. Floating Point Atomic. <a href="https://wg21.link/p0020r6"><div class="csl-block">https://wg21.link/p0020r6</div></a>
</div>
<div class="csl-entry" id="ref-P0024R2" role="doc-biblioentry">
[P0024R2] Jared Hoberock. 2016-03-04. The Parallelism TS Should be
Standardized. <a href="https://wg21.link/p0024r2"><div class="csl-block">https://wg21.link/p0024r2</div></a>
</div>
<div class="csl-entry" id="ref-P0025R0" role="doc-biblioentry">
[P0025R0] Martin Moene, Niels Dekker. 2015-09-18. An algorithm to
<span>“clamp”</span> a value between a pair of boundary values. <a href="https://wg21.link/p0025r0"><div class="csl-block">https://wg21.link/p0025r0</div></a>
</div>
<div class="csl-entry" id="ref-P0030R1" role="doc-biblioentry">
[P0030R1] Benson Ma. 2015-11-06. Proposal to Introduce a 3-Argument
Overload to std::hypot. <a href="https://wg21.link/p0030r1"><div class="csl-block">https://wg21.link/p0030r1</div></a>
</div>
<div class="csl-entry" id="ref-P0031R0" role="doc-biblioentry">
[P0031R0] Antony Polukhin. 2015-09-09. A Proposal to Add Constexpr
Modifiers to reverse_iterator, move_iterator, array and Range Access. <a href="https://wg21.link/p0031r0"><div class="csl-block">https://wg21.link/p0031r0</div></a>
</div>
<div class="csl-entry" id="ref-P0032R3" role="doc-biblioentry">
[P0032R3] Vicente J. Botet Escriba. 2016-05-24. Homogeneous interface
for variant, any and optional (Revision 3). <a href="https://wg21.link/p0032r3"><div class="csl-block">https://wg21.link/p0032r3</div></a>
</div>
<div class="csl-entry" id="ref-P0033R1" role="doc-biblioentry">
[P0033R1] Jonathan Wakely, Peter Dimov. 2015-10-24. Re-enabling
shared_from_this (revision 1). <a href="https://wg21.link/p0033r1"><div class="csl-block">https://wg21.link/p0033r1</div></a>
</div>
<div class="csl-entry" id="ref-P0035R4" role="doc-biblioentry">
[P0035R4] Clark Nelson. 2016-06-21. Dynamic memory allocation for
over-aligned data. <a href="https://wg21.link/p0035r4"><div class="csl-block">https://wg21.link/p0035r4</div></a>
</div>
<div class="csl-entry" id="ref-P0036R0" role="doc-biblioentry">
[P0036R0] Thibaut Le Jehan. 2015-09-10. Unary Folds and Empty Parameter
Packs (Revision 1). <a href="https://wg21.link/p0036r0"><div class="csl-block">https://wg21.link/p0036r0</div></a>
</div>
<div class="csl-entry" id="ref-P0040R3" role="doc-biblioentry">
[P0040R3] Brent Friedman. 2016-06-24. Extending memory management tools.
<a href="https://wg21.link/p0040r3"><div class="csl-block">https://wg21.link/p0040r3</div></a>
</div>
<div class="csl-entry" id="ref-P0053R7" role="doc-biblioentry">
[P0053R7] Lawrence Crowl, Peter Sommerlad, Nicolai Josuttis, Pablo
Halpern. 2017-11-07. C++ Synchronized Buffered Ostream. <a href="https://wg21.link/p0053r7"><div class="csl-block">https://wg21.link/p0053r7</div></a>
</div>
<div class="csl-entry" id="ref-P0067R5" role="doc-biblioentry">
[P0067R5] Jens Maurer. 2016-11-11. Elementary string conversions,
revision 5. <a href="https://wg21.link/p0067r5"><div class="csl-block">https://wg21.link/p0067r5</div></a>
</div>
<div class="csl-entry" id="ref-P0074R0" role="doc-biblioentry">
[P0074R0] Jonathan Wakely. 2015-09-23. Making std::owner_less more
flexible. <a href="https://wg21.link/p0074r0"><div class="csl-block">https://wg21.link/p0074r0</div></a>
</div>
<div class="csl-entry" id="ref-P0083R3" role="doc-biblioentry">
[P0083R3] Alan Talbot, Jonathan Wakely, Howard Hinnant, James Dennett.
2016-06-24. Splicing Maps and Sets (Revision 5). <a href="https://wg21.link/p0083r3"><div class="csl-block">https://wg21.link/p0083r3</div></a>
</div>
<div class="csl-entry" id="ref-P0088R3" role="doc-biblioentry">
[P0088R3] Axel Naumann. 2016-06-23. Variant: a type-safe union for C++17
(v8). <a href="https://wg21.link/p0088r3"><div class="csl-block">https://wg21.link/p0088r3</div></a>
</div>
<div class="csl-entry" id="ref-P0091R3" role="doc-biblioentry">
[P0091R3] Mike Spertus, Faisal Vali, Richard Smith. 2016-06-24. Template
argument deduction for class templates (Rev. 6). <a href="https://wg21.link/p0091r3"><div class="csl-block">https://wg21.link/p0091r3</div></a>
</div>
<div class="csl-entry" id="ref-P0092R1" role="doc-biblioentry">
[P0092R1] Howard Hinnant. 2015-10-20. Polishing. <a href="https://wg21.link/p0092r1"><div class="csl-block">https://wg21.link/p0092r1</div></a>
</div>
<div class="csl-entry" id="ref-P0122R7" role="doc-biblioentry">
[P0122R7] Neil MacIntosh, Stephan T. Lavavej. 2018-03-16. span:
bounds-safe views for sequences of objects. <a href="https://wg21.link/p0122r7"><div class="csl-block">https://wg21.link/p0122r7</div></a>
</div>
<div class="csl-entry" id="ref-P0127R2" role="doc-biblioentry">
[P0127R2] James Touton, Mike Spertus. 2016-06-23. Declaring non-type
template arguments with auto. <a href="https://wg21.link/p0127r2"><div class="csl-block">https://wg21.link/p0127r2</div></a>
</div>
<div class="csl-entry" id="ref-P0135R1" role="doc-biblioentry">
[P0135R1] Richard Smith. 2016-06-20. Wording for guaranteed copy elision
through simplified value categories. <a href="https://wg21.link/p0135r1"><div class="csl-block">https://wg21.link/p0135r1</div></a>
</div>
<div class="csl-entry" id="ref-P0136R1" role="doc-biblioentry">
[P0136R1] Richard Smith. 2015-10-19. Rewording inheriting constructors
(core issue 1941 et al). <a href="https://wg21.link/p0136r1"><div class="csl-block">https://wg21.link/p0136r1</div></a>
</div>
<div class="csl-entry" id="ref-P0137R1" role="doc-biblioentry">
[P0137R1] Richard Smith. 2016-06-23. Core Issue 1776: Replacement of
class objects containing reference members. <a href="https://wg21.link/p0137r1"><div class="csl-block">https://wg21.link/p0137r1</div></a>
</div>
<div class="csl-entry" id="ref-P0152R1" role="doc-biblioentry">
[P0152R1] Olivier Giroux, JF Bastien, Jeff Snyder. 2016-03-02. constexpr
atomic&lt;T&gt;::is_always_lock_free. <a href="https://wg21.link/p0152r1"><div class="csl-block">https://wg21.link/p0152r1</div></a>
</div>
<div class="csl-entry" id="ref-P0154R1" role="doc-biblioentry">
[P0154R1] JF Bastien, Olivier Giroux. 2016-03-03. constexpr
std::thread::hardware_{true,false}_sharing_size. <a href="https://wg21.link/p0154r1"><div class="csl-block">https://wg21.link/p0154r1</div></a>
</div>
<div class="csl-entry" id="ref-P0156R2" role="doc-biblioentry">
[P0156R2] Mike Spertus. 2017-03-03. Variadic lock_guard (Rev. 4). <a href="https://wg21.link/p0156r2"><div class="csl-block">https://wg21.link/p0156r2</div></a>
</div>
<div class="csl-entry" id="ref-P0163R0" role="doc-biblioentry">
[P0163R0] Arthur O’Dwyer. 2015-10-23. shared_ptr::weak_type. <a href="https://wg21.link/p0163r0"><div class="csl-block">https://wg21.link/p0163r0</div></a>
</div>
<div class="csl-entry" id="ref-P0170R1" role="doc-biblioentry">
[P0170R1] Faisal Vali. 2016-03-01. Wording for Constexpr Lambda. <a href="https://wg21.link/p0170r1"><div class="csl-block">https://wg21.link/p0170r1</div></a>
</div>
<div class="csl-entry" id="ref-P0184R0" role="doc-biblioentry">
[P0184R0] Eric Niebler. 2016-02-11. Generalizing the Range-Based For
Loop. <a href="https://wg21.link/p0184r0"><div class="csl-block">https://wg21.link/p0184r0</div></a>
</div>
<div class="csl-entry" id="ref-P0185R1" role="doc-biblioentry">
[P0185R1] Daniel Krugler. 2016-03-01. Adding [nothrow-]swappable traits,
revision 3. <a href="https://wg21.link/p0185r1"><div class="csl-block">https://wg21.link/p0185r1</div></a>
</div>
<div class="csl-entry" id="ref-P0188R1" role="doc-biblioentry">
[P0188R1] Andrew Tomazos. 2016-02-29. Wording for [[fallthrough]]
attribute. <a href="https://wg21.link/p0188r1"><div class="csl-block">https://wg21.link/p0188r1</div></a>
</div>
<div class="csl-entry" id="ref-P0189R1" role="doc-biblioentry">
[P0189R1] Andrew Tomazos. 2016-02-29. Wording for [[nodiscard]]
attribute. <a href="https://wg21.link/p0189r1"><div class="csl-block">https://wg21.link/p0189r1</div></a>
</div>
<div class="csl-entry" id="ref-P0195R2" role="doc-biblioentry">
[P0195R2] Robert Haberlach, Richard Smith. 2016-11-08. Pack expansions
in using-declarations. <a href="https://wg21.link/p0195r2"><div class="csl-block">https://wg21.link/p0195r2</div></a>
</div>
<div class="csl-entry" id="ref-P0202R3" role="doc-biblioentry">
[P0202R3] Antony Polukhin. 2017-11-09. Add Constexpr Modifiers to
Functions in &lt;algorithm&gt; and &lt;utility&gt; Headers. <a href="https://wg21.link/p0202r3"><div class="csl-block">https://wg21.link/p0202r3</div></a>
</div>
<div class="csl-entry" id="ref-P0209R2" role="doc-biblioentry">
[P0209R2] Pablo Halpern. 2016-06-23. make_from_tuple: apply for
construction. <a href="https://wg21.link/p0209r2"><div class="csl-block">https://wg21.link/p0209r2</div></a>
</div>
<div class="csl-entry" id="ref-P0212R1" role="doc-biblioentry">
[P0212R1] Andrew Tomazos. 2016-03-01. Wording for [[maybe_unused]]
attribute. <a href="https://wg21.link/p0212r1"><div class="csl-block">https://wg21.link/p0212r1</div></a>
</div>
<div class="csl-entry" id="ref-P0217R3" role="doc-biblioentry">
[P0217R3] Jens Maurer. 2016-06-24. Proposed wording for structured
bindings. <a href="https://wg21.link/p0217r3"><div class="csl-block">https://wg21.link/p0217r3</div></a>
</div>
<div class="csl-entry" id="ref-P0218R1" role="doc-biblioentry">
[P0218R1] Beman Dawes. 2016-03-05. Adopt File System TS for C++17. <a href="https://wg21.link/p0218r1"><div class="csl-block">https://wg21.link/p0218r1</div></a>
</div>
<div class="csl-entry" id="ref-P0219R1" role="doc-biblioentry">
[P0219R1] Beman Dawes. 2016-06-24. Relative Paths for Filesystem. <a href="https://wg21.link/p0219r1"><div class="csl-block">https://wg21.link/p0219r1</div></a>
</div>
<div class="csl-entry" id="ref-P0220R1" role="doc-biblioentry">
[P0220R1] Beman Dawes. 2016-03-03. Adopt Library Fundamentals V1 TS
Components for C++17 (R1). <a href="https://wg21.link/p0220r1"><div class="csl-block">https://wg21.link/p0220r1</div></a>
</div>
<div class="csl-entry" id="ref-P0226R1" role="doc-biblioentry">
[P0226R1] Walter E. Brown, Axel Naumann, Edward Smith-Rowland.
2016-02-29. Mathematical Special Functions for C++17, v5. <a href="https://wg21.link/p0226r1"><div class="csl-block">https://wg21.link/p0226r1</div></a>
</div>
<div class="csl-entry" id="ref-P0245R1" role="doc-biblioentry">
[P0245R1] Thomas Koeppe. 2016-03-04. Hexadecimal float literals for C++.
<a href="https://wg21.link/p0245r1"><div class="csl-block">https://wg21.link/p0245r1</div></a>
</div>
<div class="csl-entry" id="ref-P0254R2" role="doc-biblioentry">
[P0254R2] Marshall Clow. 2016-06-24. Integrating std::string_view and
std::string. <a href="https://wg21.link/p0254r2"><div class="csl-block">https://wg21.link/p0254r2</div></a>
</div>
<div class="csl-entry" id="ref-P0258R2" role="doc-biblioentry">
[P0258R2] Michael Spencer. 2016-06-24. has_unique_object_representations
- wording. <a href="https://wg21.link/p0258r2"><div class="csl-block">https://wg21.link/p0258r2</div></a>
</div>
<div class="csl-entry" id="ref-P0288R9" role="doc-biblioentry">
[P0288R9] Matt Calabrese, Ryan McDougall. 2021-08-27. move_only_function
(was any_invocable). <a href="https://wg21.link/p0288r9"><div class="csl-block">https://wg21.link/p0288r9</div></a>
</div>
<div class="csl-entry" id="ref-P0292R2" role="doc-biblioentry">
[P0292R2] Jens Maurer. 2016-06-20. constexpr if: A slightly different
syntax. <a href="https://wg21.link/p0292r2"><div class="csl-block">https://wg21.link/p0292r2</div></a>
</div>
<div class="csl-entry" id="ref-P0295R0" role="doc-biblioentry">
[P0295R0] Walter E. Brown. 2016-03-01. Adopt Selected Library
Fundamentals V2 Components for C++17. <a href="https://wg21.link/p0295r0"><div class="csl-block">https://wg21.link/p0295r0</div></a>
</div>
<div class="csl-entry" id="ref-P0298R3" role="doc-biblioentry">
[P0298R3] Neil MacIntosh. 2017-03-03. A byte type definition. <a href="https://wg21.link/p0298r3"><div class="csl-block">https://wg21.link/p0298r3</div></a>
</div>
<div class="csl-entry" id="ref-P0307R2" role="doc-biblioentry">
[P0307R2] Tony Van Eerd. 2016-03-15. Making Optional Greater Equal
Again. <a href="https://wg21.link/p0307r2"><div class="csl-block">https://wg21.link/p0307r2</div></a>
</div>
<div class="csl-entry" id="ref-P0317R1" role="doc-biblioentry">
[P0317R1] Beman Dawes. 2016-10-15. Directory Entry Caching for
Filesystem. <a href="https://wg21.link/p0317r1"><div class="csl-block">https://wg21.link/p0317r1</div></a>
</div>
<div class="csl-entry" id="ref-P0318R1" role="doc-biblioentry">
[P0318R1] Vicente J. Botet Escribá. 2018-03-30. unwrap_ref_decay and
unwrap_reference. <a href="https://wg21.link/p0318r1"><div class="csl-block">https://wg21.link/p0318r1</div></a>
</div>
<div class="csl-entry" id="ref-P0323R12" role="doc-biblioentry">
[P0323R12] Vicente Botet, JF Bastien, Jonathan Wakely. 2022-01-07.
std::expected. <a href="https://wg21.link/p0323r12"><div class="csl-block">https://wg21.link/p0323r12</div></a>
</div>
<div class="csl-entry" id="ref-P0325R4" role="doc-biblioentry">
[P0325R4] Zhihao Yuan. 2019-07-29. to_array from LFTS with updates. <a href="https://wg21.link/p0325r4"><div class="csl-block">https://wg21.link/p0325r4</div></a>
</div>
<div class="csl-entry" id="ref-P0329R4" role="doc-biblioentry">
[P0329R4] Tim Shen, Richard Smith. 2017-07-12. Designated Initialization
Wording. <a href="https://wg21.link/p0329r4"><div class="csl-block">https://wg21.link/p0329r4</div></a>
</div>
<div class="csl-entry" id="ref-P0330R8" role="doc-biblioentry">
[P0330R8] JeanHeyd Meneide, Rein Halbersma. 2020-01-11. Literal Suffixes
for (signed) size_t. <a href="https://wg21.link/p0330r8"><div class="csl-block">https://wg21.link/p0330r8</div></a>
</div>
<div class="csl-entry" id="ref-P0339R6" role="doc-biblioentry">
[P0339R6] Pablo Halpern, Dietmar Kühl. 2019-02-22.
polymorphic_allocator&lt;&gt; as a vocabulary type. <a href="https://wg21.link/p0339r6"><div class="csl-block">https://wg21.link/p0339r6</div></a>
</div>
<div class="csl-entry" id="ref-P0355R7" role="doc-biblioentry">
[P0355R7] Howard E. Hinnant, Tomasz Kamiński. 2018-03-16. Extending
&lt;chrono&gt; to Calendars and Time Zones. <a href="https://wg21.link/p0355r7"><div class="csl-block">https://wg21.link/p0355r7</div></a>
</div>
<div class="csl-entry" id="ref-P0356R5" role="doc-biblioentry">
[P0356R5] Tomasz Kamiński. 2018-11-09. Simplified partial function
application. <a href="https://wg21.link/p0356r5"><div class="csl-block">https://wg21.link/p0356r5</div></a>
</div>
<div class="csl-entry" id="ref-P0386R2" role="doc-biblioentry">
[P0386R2] Hal Finkel, Richard Smith. 2016-06-24. Inline Variables. <a href="https://wg21.link/p0386r2"><div class="csl-block">https://wg21.link/p0386r2</div></a>
</div>
<div class="csl-entry" id="ref-P0392R0" role="doc-biblioentry">
[P0392R0] Nicolai Josuttis. 2016-06-23. Adapting string_view by
filesystem paths. <a href="https://wg21.link/p0392r0"><div class="csl-block">https://wg21.link/p0392r0</div></a>
</div>
<div class="csl-entry" id="ref-P0393R3" role="doc-biblioentry">
[P0393R3] Tony Van Eerd. 2016-06-21. Making Variant Greater Equal. <a href="https://wg21.link/p0393r3"><div class="csl-block">https://wg21.link/p0393r3</div></a>
</div>
<div class="csl-entry" id="ref-P0401R6" role="doc-biblioentry">
[P0401R6] Chris Kennelly, Jonathan Wakely. 2021-02-15. Providing size
feedback in the Allocator interface. <a href="https://wg21.link/p0401r6"><div class="csl-block">https://wg21.link/p0401r6</div></a>
</div>
<div class="csl-entry" id="ref-P0415R1" role="doc-biblioentry">
[P0415R1] Antony Polukhin. 2016-11-10. Constexpr for std::complex. <a href="https://wg21.link/p0415r1"><div class="csl-block">https://wg21.link/p0415r1</div></a>
</div>
<div class="csl-entry" id="ref-P0426R1" role="doc-biblioentry">
[P0426R1] Antony Polukhin. 2016-11-08. Constexpr for std::char_traits.
<a href="https://wg21.link/p0426r1"><div class="csl-block">https://wg21.link/p0426r1</div></a>
</div>
<div class="csl-entry" id="ref-P0428R2" role="doc-biblioentry">
[P0428R2] Louis Dionne. 2017-07-13. Familiar template syntax for generic
lambdas. <a href="https://wg21.link/p0428r2"><div class="csl-block">https://wg21.link/p0428r2</div></a>
</div>
<div class="csl-entry" id="ref-P0429R9" role="doc-biblioentry">
[P0429R9] Zach Laine. 2022-06-17. A Standard flat_map. <a href="https://wg21.link/p0429r9"><div class="csl-block">https://wg21.link/p0429r9</div></a>
</div>
<div class="csl-entry" id="ref-P0433R2" role="doc-biblioentry">
[P0433R2] Mike Spertus, Walter E. Brown, Stephan T. Lavavej. 2017-03-03.
Toward a resolution of US7 and US14: Integrating template deduction for
class templates into the standard library. <a href="https://wg21.link/p0433r2"><div class="csl-block">https://wg21.link/p0433r2</div></a>
</div>
<div class="csl-entry" id="ref-P0447R28" role="doc-biblioentry">
[P0447R28] Matt Bentley. 2024-12-16. Introduction of std::hive to the
standard library. <a href="https://wg21.link/p0447r28"><div class="csl-block">https://wg21.link/p0447r28</div></a>
</div>
<div class="csl-entry" id="ref-P0448R4" role="doc-biblioentry">
[P0448R4] Peter Sommerlad. 2021-03-01. A strstream replacement using
span as buffer. <a href="https://wg21.link/p0448r4"><div class="csl-block">https://wg21.link/p0448r4</div></a>
</div>
<div class="csl-entry" id="ref-P0457R2" role="doc-biblioentry">
[P0457R2] Mikhail Maltsev. 2017-11-11. String Prefix and Suffix
Checking. <a href="https://wg21.link/p0457r2"><div class="csl-block">https://wg21.link/p0457r2</div></a>
</div>
<div class="csl-entry" id="ref-P0463R1" role="doc-biblioentry">
[P0463R1] Howard Hinnant. 2017-07-13. endian, Just endian. <a href="https://wg21.link/p0463r1"><div class="csl-block">https://wg21.link/p0463r1</div></a>
</div>
<div class="csl-entry" id="ref-P0466R5" role="doc-biblioentry">
[P0466R5] Lisa Lippincott. 2019-07-26. Layout-compatibility and
Pointer-interconvertibility Traits. <a href="https://wg21.link/p0466r5"><div class="csl-block">https://wg21.link/p0466r5</div></a>
</div>
<div class="csl-entry" id="ref-P0476R2" role="doc-biblioentry">
[P0476R2] JF Bastien. 2017-11-10. Bit-casting object representations. <a href="https://wg21.link/p0476r2"><div class="csl-block">https://wg21.link/p0476r2</div></a>
</div>
<div class="csl-entry" id="ref-P0479R5" role="doc-biblioentry">
[P0479R5] Clay Trychta. 2018-03-16. Proposed wording for likely and
unlikely attributes. <a href="https://wg21.link/p0479r5"><div class="csl-block">https://wg21.link/p0479r5</div></a>
</div>
<div class="csl-entry" id="ref-P0482R6" role="doc-biblioentry">
[P0482R6] Tom Honermann. 2018-11-09. char8_t: A type for UTF-8
characters and strings (Revision 6). <a href="https://wg21.link/p0482r6"><div class="csl-block">https://wg21.link/p0482r6</div></a>
</div>
<div class="csl-entry" id="ref-P0493R5" role="doc-biblioentry">
[P0493R5] Al Grant, Al Grant, Bronek Kozicki, Tim Northover. 2024-02-12.
Atomic maximum/minimum. <a href="https://wg21.link/p0493r5"><div class="csl-block">https://wg21.link/p0493r5</div></a>
</div>
<div class="csl-entry" id="ref-P0497R0" role="doc-biblioentry">
[P0497R0] Jonathan Wakely. 2016-11-10. Fixes to shared_ptr support for
arrays. <a href="https://wg21.link/p0497r0"><div class="csl-block">https://wg21.link/p0497r0</div></a>
</div>
<div class="csl-entry" id="ref-P0505R0" role="doc-biblioentry">
[P0505R0] Howard Hinnant. 2016-11-09. Wording for GB 50. <a href="https://wg21.link/p0505r0"><div class="csl-block">https://wg21.link/p0505r0</div></a>
</div>
<div class="csl-entry" id="ref-P0512R0" role="doc-biblioentry">
[P0512R0] Mike Spertus, Richard Smith, Faisal Vali. 2016-11-10. Class
Template Argument Deduction Assorted NB resolution and issues. <a href="https://wg21.link/p0512r0"><div class="csl-block">https://wg21.link/p0512r0</div></a>
</div>
<div class="csl-entry" id="ref-P0515R3" role="doc-biblioentry">
[P0515R3] Herb Sutter, Jens Maurer, Walter E. Brown. 2017-11-10.
Consistent comparison. <a href="https://wg21.link/p0515r3"><div class="csl-block">https://wg21.link/p0515r3</div></a>
</div>
<div class="csl-entry" id="ref-P0522R0" role="doc-biblioentry">
[P0522R0] James Touton, Hubert Tong. 2016-11-11. DR: Matching of
template template-arguments excludes compatible templates. <a href="https://wg21.link/p0522r0"><div class="csl-block">https://wg21.link/p0522r0</div></a>
</div>
<div class="csl-entry" id="ref-P0533R9" role="doc-biblioentry">
[P0533R9] Oliver Rosten, Edward Rosten. 2021-11-12. constexpr for cmath
and cstdlib. <a href="https://wg21.link/p0533r9"><div class="csl-block">https://wg21.link/p0533r9</div></a>
</div>
<div class="csl-entry" id="ref-P0543R3" role="doc-biblioentry">
[P0543R3] Jens Maurer. 2023-07-19. Saturation arithmetic. <a href="https://wg21.link/p0543r3"><div class="csl-block">https://wg21.link/p0543r3</div></a>
</div>
<div class="csl-entry" id="ref-P0550R2" role="doc-biblioentry">
[P0550R2] Walter E. Brown. 2017-07-17. Transformation Trait
remove_cvref. <a href="https://wg21.link/p0550r2"><div class="csl-block">https://wg21.link/p0550r2</div></a>
</div>
<div class="csl-entry" id="ref-P0553R4" role="doc-biblioentry">
[P0553R4] Jens Maurer. 2019-03-01. Bit operations. <a href="https://wg21.link/p0553r4"><div class="csl-block">https://wg21.link/p0553r4</div></a>
</div>
<div class="csl-entry" id="ref-P0556R3" role="doc-biblioentry">
[P0556R3] Jens Maurer. 2018-06-06. Integral power-of-2 operations. <a href="https://wg21.link/p0556r3"><div class="csl-block">https://wg21.link/p0556r3</div></a>
</div>
<div class="csl-entry" id="ref-P0586R2" role="doc-biblioentry">
[P0586R2] Federico Kircheis. 2020-02-12. Safe integral comparisons. <a href="https://wg21.link/p0586r2"><div class="csl-block">https://wg21.link/p0586r2</div></a>
</div>
<div class="csl-entry" id="ref-P0595R2" role="doc-biblioentry">
[P0595R2] Richard Smith, Andrew Sutton, Daveed Vandevoorde. 2018-11-09.
std::is_constant_evaluated. <a href="https://wg21.link/p0595r2"><div class="csl-block">https://wg21.link/p0595r2</div></a>
</div>
<div class="csl-entry" id="ref-P0604R0" role="doc-biblioentry">
[P0604R0] Daniel Krugler, Pablo Halpern, Jonathan Wakely. 2017-03-03.
Resolving GB 55, US 84, US 85, US 86. <a href="https://wg21.link/p0604r0"><div class="csl-block">https://wg21.link/p0604r0</div></a>
</div>
<div class="csl-entry" id="ref-P0609R3" role="doc-biblioentry">
[P0609R3] Aaron Ballman. 2024-03-21. Attributes for Structured Bindings.
<a href="https://wg21.link/p0609r3"><div class="csl-block">https://wg21.link/p0609r3</div></a>
</div>
<div class="csl-entry" id="ref-P0620R0" role="doc-biblioentry">
[P0620R0] Jason Merrill. 2017-03-02. Drafting for class template
argument deduction issues. <a href="https://wg21.link/p0620r0"><div class="csl-block">https://wg21.link/p0620r0</div></a>
</div>
<div class="csl-entry" id="ref-P0627R6" role="doc-biblioentry">
[P0627R6] Jens Maurer. 2021-10-25. Function to mark unreachable code. <a href="https://wg21.link/p0627r6"><div class="csl-block">https://wg21.link/p0627r6</div></a>
</div>
<div class="csl-entry" id="ref-P0631R8" role="doc-biblioentry">
[P0631R8] Lev Minkovsky, John McFarlane. 2019-07-28. Math Constants. <a href="https://wg21.link/p0631r8"><div class="csl-block">https://wg21.link/p0631r8</div></a>
</div>
<div class="csl-entry" id="ref-P0645R10" role="doc-biblioentry">
[P0645R10] Victor Zverovich. 2019-07-18. Text Formatting. <a href="https://wg21.link/p0645r10"><div class="csl-block">https://wg21.link/p0645r10</div></a>
</div>
<div class="csl-entry" id="ref-P0646R1" role="doc-biblioentry">
[P0646R1] Marc Mutz. 2018-06-08. Improving the Return Value of
Erase-Like Algorithms I: list/forward list. <a href="https://wg21.link/p0646r1"><div class="csl-block">https://wg21.link/p0646r1</div></a>
</div>
<div class="csl-entry" id="ref-P0653R2" role="doc-biblioentry">
[P0653R2] Glen Joseph Fernandes. 2017-11-09. Utility to convert a
pointer to a raw pointer. <a href="https://wg21.link/p0653r2"><div class="csl-block">https://wg21.link/p0653r2</div></a>
</div>
<div class="csl-entry" id="ref-P0660R10" role="doc-biblioentry">
[P0660R10] Nicolai Josuttis, Lewis Baker, Billy O’Neal, Herb Sutter,
Anthony Williams. 2019-07-21. Stop Token and Joining Thread. <a href="https://wg21.link/p0660r10"><div class="csl-block">https://wg21.link/p0660r10</div></a>
</div>
<div class="csl-entry" id="ref-P0674R1" role="doc-biblioentry">
[P0674R1] Peter Dimov, Glen Fernandes. 2017-07-12. Extending make_shared
to Support Arrays. <a href="https://wg21.link/p0674r1"><div class="csl-block">https://wg21.link/p0674r1</div></a>
</div>
<div class="csl-entry" id="ref-P0682R1" role="doc-biblioentry">
[P0682R1] Jens Maurer. 2017-07-12. Repairing elementary string
conversions. <a href="https://wg21.link/p0682r1"><div class="csl-block">https://wg21.link/p0682r1</div></a>
</div>
<div class="csl-entry" id="ref-P0718R2" role="doc-biblioentry">
[P0718R2] Alisdair Meredith. 2017-11-10. Revising atomic_shared_ptr for
C++20. <a href="https://wg21.link/p0718r2"><div class="csl-block">https://wg21.link/p0718r2</div></a>
</div>
<div class="csl-entry" id="ref-P0722R3" role="doc-biblioentry">
[P0722R3] Richard Smith, Andrew Hunter. 2018-03-17. Efficient sized
delete for variable sized classes. <a href="https://wg21.link/p0722r3"><div class="csl-block">https://wg21.link/p0722r3</div></a>
</div>
<div class="csl-entry" id="ref-P0732R2" role="doc-biblioentry">
[P0732R2] Jeff Snyder, Louis Dionne. 2018-06-06. Class Types in Non-Type
Template Parameters. <a href="https://wg21.link/p0732r2"><div class="csl-block">https://wg21.link/p0732r2</div></a>
</div>
<div class="csl-entry" id="ref-P0734R0" role="doc-biblioentry">
[P0734R0] Andrew Sutton. 2017-07-14. Wording Paper, C++ extensions for
Concepts. <a href="https://wg21.link/p0734r0"><div class="csl-block">https://wg21.link/p0734r0</div></a>
</div>
<div class="csl-entry" id="ref-P0753R2" role="doc-biblioentry">
[P0753R2] Peter Sommerlad, Pablo Halpern. 2018-03-16. Manipulators for
C++ Synchronized Buffered Ostream. <a href="https://wg21.link/p0753r2"><div class="csl-block">https://wg21.link/p0753r2</div></a>
</div>
<div class="csl-entry" id="ref-P0754R2" role="doc-biblioentry">
[P0754R2] Alan Talbot. 2018-03-13. &lt;version&gt;. <a href="https://wg21.link/p0754r2"><div class="csl-block">https://wg21.link/p0754r2</div></a>
</div>
<div class="csl-entry" id="ref-P0758R1" role="doc-biblioentry">
[P0758R1] Daniel Krügler. 2018-06-06. Implicit conversion traits and
utility functions. <a href="https://wg21.link/p0758r1"><div class="csl-block">https://wg21.link/p0758r1</div></a>
</div>
<div class="csl-entry" id="ref-P0768R1" role="doc-biblioentry">
[P0768R1] Walter E. Brown. 2017-11-10. Library Support for the Spaceship
(Comparison) Operator. <a href="https://wg21.link/p0768r1"><div class="csl-block">https://wg21.link/p0768r1</div></a>
</div>
<div class="csl-entry" id="ref-P0769R2" role="doc-biblioentry">
[P0769R2] Dan Raviv. 2018-06-06. Add shift to &lt;algorithm&gt;. <a href="https://wg21.link/p0769r2"><div class="csl-block">https://wg21.link/p0769r2</div></a>
</div>
<div class="csl-entry" id="ref-P0780R2" role="doc-biblioentry">
[P0780R2] Barry Revzin. 2018-03-14. Allow pack expansion in lambda
init-capture. <a href="https://wg21.link/p0780r2"><div class="csl-block">https://wg21.link/p0780r2</div></a>
</div>
<div class="csl-entry" id="ref-P0784R7" role="doc-biblioentry">
[P0784R7] Daveed Vandevoorde, Peter Dimov,Louis Dionne, Nina Ranns,
Richard Smith, Daveed Vandevoorde. 2019-07-22. More constexpr
containers. <a href="https://wg21.link/p0784r7"><div class="csl-block">https://wg21.link/p0784r7</div></a>
</div>
<div class="csl-entry" id="ref-P0792R14" role="doc-biblioentry">
[P0792R14] Vittorio Romeo, Zhihao Yuan, Jarrad Waterloo. 2023-02-09.
function_ref: a non-owning reference to a Callable. <a href="https://wg21.link/p0792r14"><div class="csl-block">https://wg21.link/p0792r14</div></a>
</div>
<div class="csl-entry" id="ref-P0798R8" role="doc-biblioentry">
[P0798R8] Sy Brand. 2021-10-15. Monadic operations for std::optional. <a href="https://wg21.link/p0798r8"><div class="csl-block">https://wg21.link/p0798r8</div></a>
</div>
<div class="csl-entry" id="ref-P0811R3" role="doc-biblioentry">
[P0811R3] S. Davis Herring. 2019-02-22. Well-behaved interpolation for
numbers and pointers. <a href="https://wg21.link/p0811r3"><div class="csl-block">https://wg21.link/p0811r3</div></a>
</div>
<div class="csl-entry" id="ref-P0840R2" role="doc-biblioentry">
[P0840R2] Richard Smith. 2018-03-12. Language support for empty objects.
<a href="https://wg21.link/p0840r2"><div class="csl-block">https://wg21.link/p0840r2</div></a>
</div>
<div class="csl-entry" id="ref-P0843R14" role="doc-biblioentry">
[P0843R14] Gonzalo Brito Gadeschi, Timur Doumler, Nevin Liber, David
Sankel. 2024-06-26. inplace_vector. <a href="https://wg21.link/p0843r14"><div class="csl-block">https://wg21.link/p0843r14</div></a>
</div>
<div class="csl-entry" id="ref-P0847R7" role="doc-biblioentry">
[P0847R7] Barry Revzin, Gašper Ažman, Sy Brand, Ben Deane. 2021-07-14.
Deducing this. <a href="https://wg21.link/p0847r7"><div class="csl-block">https://wg21.link/p0847r7</div></a>
</div>
<div class="csl-entry" id="ref-P0848R3" role="doc-biblioentry">
[P0848R3] Barry Revzin, Casey Carter. 2019-07-28. Conditionally Trivial
Special Member Functions. <a href="https://wg21.link/p0848r3"><div class="csl-block">https://wg21.link/p0848r3</div></a>
</div>
<div class="csl-entry" id="ref-P0858R0" role="doc-biblioentry">
[P0858R0] Antony Polukhin. 2017-11-11. Constexpr iterator requirements.
<a href="https://wg21.link/p0858r0"><div class="csl-block">https://wg21.link/p0858r0</div></a>
</div>
<div class="csl-entry" id="ref-P0859R0" role="doc-biblioentry">
[P0859R0] Richard Smith. 2017-11-09. Core Issue 1581: When are constexpr
member functions defined? <a href="https://wg21.link/p0859r0"><div class="csl-block">https://wg21.link/p0859r0</div></a>
</div>
<div class="csl-entry" id="ref-P0879R0" role="doc-biblioentry">
[P0879R0] Antony Polukhin. 2017-12-29. Constexpr for swap and swap
related functions. <a href="https://wg21.link/p0879r0"><div class="csl-block">https://wg21.link/p0879r0</div></a>
</div>
<div class="csl-entry" id="ref-P0881R7" role="doc-biblioentry">
[P0881R7] Antony Polukhin, Alexey Gorgurov. 2020-09-16. A Proposal to
add stacktrace library. <a href="https://wg21.link/p0881r7"><div class="csl-block">https://wg21.link/p0881r7</div></a>
</div>
<div class="csl-entry" id="ref-P0883R2" role="doc-biblioentry">
[P0883R2] Nicolai Josuttis. 2019-11-08. Fixing Atomic Initialization. <a href="https://wg21.link/p0883r2"><div class="csl-block">https://wg21.link/p0883r2</div></a>
</div>
<div class="csl-entry" id="ref-P0887R1" role="doc-biblioentry">
[P0887R1] Timur Doumler. 2018-03-18. The identity metafunction. <a href="https://wg21.link/p0887r1"><div class="csl-block">https://wg21.link/p0887r1</div></a>
</div>
<div class="csl-entry" id="ref-P0892R2" role="doc-biblioentry">
[P0892R2] Barry Revzin, Stephan T. Lavavej. 2018-06-08. explicit(bool).
<a href="https://wg21.link/p0892r2"><div class="csl-block">https://wg21.link/p0892r2</div></a>
</div>
<div class="csl-entry" id="ref-P0896R4" role="doc-biblioentry">
[P0896R4] Eric Niebler, Casey Carter, Christopher Di Bella. 2018-11-09.
The One Ranges Proposal. <a href="https://wg21.link/p0896r4"><div class="csl-block">https://wg21.link/p0896r4</div></a>
</div>
<div class="csl-entry" id="ref-P0898R3" role="doc-biblioentry">
[P0898R3] Casey Carter, Eric Niebler. 2018-06-08. Standard Library
Concepts. <a href="https://wg21.link/p0898r3"><div class="csl-block">https://wg21.link/p0898r3</div></a>
</div>
<div class="csl-entry" id="ref-P0912R5" role="doc-biblioentry">
[P0912R5] Gor Nishanov. 2019-02-22. Merge Coroutines TS into C++20
working draft. <a href="https://wg21.link/p0912r5"><div class="csl-block">https://wg21.link/p0912r5</div></a>
</div>
<div class="csl-entry" id="ref-P0919R3" role="doc-biblioentry">
[P0919R3] Mateusz Pusz. 2018-11-09. Heterogeneous lookup for unordered
containers. <a href="https://wg21.link/p0919r3"><div class="csl-block">https://wg21.link/p0919r3</div></a>
</div>
<div class="csl-entry" id="ref-P0920R2" role="doc-biblioentry">
[P0920R2] Mateusz Pusz. 2019-02-22. Precalculated hash values in lookup.
<a href="https://wg21.link/p0920r2"><div class="csl-block">https://wg21.link/p0920r2</div></a>
</div>
<div class="csl-entry" id="ref-P0943R6" role="doc-biblioentry">
[P0943R6] Hans Boehm. 2020-11-15. Support C atomics in C++. <a href="https://wg21.link/p0943r6"><div class="csl-block">https://wg21.link/p0943r6</div></a>
</div>
<div class="csl-entry" id="ref-P0960R3" role="doc-biblioentry">
[P0960R3] Ville Voutilainen, Thomas Köppe. 2019-02-22. Allow
initializing aggregates from a parenthesized list of values. <a href="https://wg21.link/p0960r3"><div class="csl-block">https://wg21.link/p0960r3</div></a>
</div>
<div class="csl-entry" id="ref-P0980R1" role="doc-biblioentry">
[P0980R1] Louis Dionne. 2019-07-19. Making std::string constexpr. <a href="https://wg21.link/p0980r1"><div class="csl-block">https://wg21.link/p0980r1</div></a>
</div>
<div class="csl-entry" id="ref-P1001R2" role="doc-biblioentry">
[P1001R2] Alisdair Meredith, Pablo Halpern. 2019-02-22. Target
Vectorization Policies from Parallelism V2 TS to C++20. <a href="https://wg21.link/p1001r2"><div class="csl-block">https://wg21.link/p1001r2</div></a>
</div>
<div class="csl-entry" id="ref-P1002R1" role="doc-biblioentry">
[P1002R1] Louis Dionne. 2018-11-10. Try-catch blocks in constexpr
functions. <a href="https://wg21.link/p1002r1"><div class="csl-block">https://wg21.link/p1002r1</div></a>
</div>
<div class="csl-entry" id="ref-P1004R2" role="doc-biblioentry">
[P1004R2] Louis Dionne. 2019-07-19. Making std::vector constexpr. <a href="https://wg21.link/p1004r2"><div class="csl-block">https://wg21.link/p1004r2</div></a>
</div>
<div class="csl-entry" id="ref-P1006R1" role="doc-biblioentry">
[P1006R1] Louis Dionne. 2018-10-07. Constexpr in std::pointer_traits. <a href="https://wg21.link/p1006r1"><div class="csl-block">https://wg21.link/p1006r1</div></a>
</div>
<div class="csl-entry" id="ref-P1007R3" role="doc-biblioentry">
[P1007R3] Timur Doumler, Chandler Carruth. 2018-11-07.
std::assume_aligned. <a href="https://wg21.link/p1007r3"><div class="csl-block">https://wg21.link/p1007r3</div></a>
</div>
<div class="csl-entry" id="ref-P1020R1" role="doc-biblioentry">
[P1020R1] Glen Joseph Fernandes, Peter Dimov. 2018-11-06. Smart pointer
creation with default initialization. <a href="https://wg21.link/p1020r1"><div class="csl-block">https://wg21.link/p1020r1</div></a>
</div>
<div class="csl-entry" id="ref-P1023R0" role="doc-biblioentry">
[P1023R0] Tristan Brindle. 2018-05-06. constexpr comparison operators
for std::array. <a href="https://wg21.link/p1023r0"><div class="csl-block">https://wg21.link/p1023r0</div></a>
</div>
<div class="csl-entry" id="ref-P1024R3" role="doc-biblioentry">
[P1024R3] Tristan Brindle. 2019-02-22. Usability Enhancements for
std::span. <a href="https://wg21.link/p1024r3"><div class="csl-block">https://wg21.link/p1024r3</div></a>
</div>
<div class="csl-entry" id="ref-P1032R1" role="doc-biblioentry">
[P1032R1] Antony Polukhin. 2018-10-01. Misc constexpr bits. <a href="https://wg21.link/p1032r1"><div class="csl-block">https://wg21.link/p1032r1</div></a>
</div>
<div class="csl-entry" id="ref-P1035R7" role="doc-biblioentry">
[P1035R7] Christopher Di Bella, Casey Carter, Corentin Jabot.
2019-08-02. Input Range Adaptors. <a href="https://wg21.link/p1035r7"><div class="csl-block">https://wg21.link/p1035r7</div></a>
</div>
<div class="csl-entry" id="ref-P1048R1" role="doc-biblioentry">
[P1048R1] Juan Alday. 2020-10-16. A proposal for a type trait to detect
scoped enumerations. <a href="https://wg21.link/p1048r1"><div class="csl-block">https://wg21.link/p1048r1</div></a>
</div>
<div class="csl-entry" id="ref-P1061R10" role="doc-biblioentry">
[P1061R10] Barry Revzin, Jonathan Wakely. 2024-11-24. Structured
Bindings can introduce a Pack. <a href="https://wg21.link/p1061r10"><div class="csl-block">https://wg21.link/p1061r10</div></a>
</div>
<div class="csl-entry" id="ref-P1064R0" role="doc-biblioentry">
[P1064R0] Peter Dimov, Vassil Vassilev. 2018-05-04. Allowing Virtual
Function Calls in Constant Expressions. <a href="https://wg21.link/p1064r0"><div class="csl-block">https://wg21.link/p1064r0</div></a>
</div>
<div class="csl-entry" id="ref-P1065R2" role="doc-biblioentry">
[P1065R2] Barry Revzin, Tomasz Kaminski. 2019-07-28. constexpr INVOKE.
<a href="https://wg21.link/p1065r2"><div class="csl-block">https://wg21.link/p1065r2</div></a>
</div>
<div class="csl-entry" id="ref-P1068R11" role="doc-biblioentry">
[P1068R11] Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey
Nikolaev, Alina Elizarova. 2024-04-02. Vector API for random number
generation. <a href="https://wg21.link/p1068r11"><div class="csl-block">https://wg21.link/p1068r11</div></a>
</div>
<div class="csl-entry" id="ref-P1072R10" role="doc-biblioentry">
[P1072R10] Chris Kennelly, Mark Zeren. 2021-09-15.
basic_string::resize_and_overwrite. <a href="https://wg21.link/p1072r10"><div class="csl-block">https://wg21.link/p1072r10</div></a>
</div>
<div class="csl-entry" id="ref-P1073R3" role="doc-biblioentry">
[P1073R3] Richard Smith, Andrew Sutton, Daveed Vandevoorde. 2018-11-06.
Immediate functions. <a href="https://wg21.link/p1073r3"><div class="csl-block">https://wg21.link/p1073r3</div></a>
</div>
<div class="csl-entry" id="ref-P1084R2" role="doc-biblioentry">
[P1084R2] Walter E. Brown, Casey Carter. 2018-11-06. Today’s
return-type-requirements Are Insufficient. <a href="https://wg21.link/p1084r2"><div class="csl-block">https://wg21.link/p1084r2</div></a>
</div>
<div class="csl-entry" id="ref-P1099R5" role="doc-biblioentry">
[P1099R5] Gašper Ažman, Jonathan Mueller. 2019-07-20. Using Enum. <a href="https://wg21.link/p1099r5"><div class="csl-block">https://wg21.link/p1099r5</div></a>
</div>
<div class="csl-entry" id="ref-P1103R3" role="doc-biblioentry">
[P1103R3] Richard Smith. 2019-02-22. Merging Modules. <a href="https://wg21.link/p1103r3"><div class="csl-block">https://wg21.link/p1103r3</div></a>
</div>
<div class="csl-entry" id="ref-P1115R3" role="doc-biblioentry">
[P1115R3] Marc Mutz. 2019-11-25. Improving the Return Value of
Erase-Like Algorithms II: Free erase/erase if. <a href="https://wg21.link/p1115r3"><div class="csl-block">https://wg21.link/p1115r3</div></a>
</div>
<div class="csl-entry" id="ref-P1132R7" role="doc-biblioentry">
[P1132R7] JeanHeyd Meneide, Todor Buyukliev, Isabella Muerte.
2021-04-16. out_ptr - a scalable output pointer abstraction. <a href="https://wg21.link/p1132r7"><div class="csl-block">https://wg21.link/p1132r7</div></a>
</div>
<div class="csl-entry" id="ref-P1135R6" role="doc-biblioentry">
[P1135R6] David Olsen, Olivier Giroux, JF Bastien, Detlef Vollmann,
Bryce Lelbach. 2019-07-20. The C++20 Synchronization Library. <a href="https://wg21.link/p1135r6"><div class="csl-block">https://wg21.link/p1135r6</div></a>
</div>
<div class="csl-entry" id="ref-P1143R2" role="doc-biblioentry">
[P1143R2] Eric Fiselier. 2019-07-18. Adding the constinit keyword. <a href="https://wg21.link/p1143r2"><div class="csl-block">https://wg21.link/p1143r2</div></a>
</div>
<div class="csl-entry" id="ref-P1169R4" role="doc-biblioentry">
[P1169R4] Barry Revzin, Casey Carter. 2022-04-11. static operator(). <a href="https://wg21.link/p1169r4"><div class="csl-block">https://wg21.link/p1169r4</div></a>
</div>
<div class="csl-entry" id="ref-P1185R2" role="doc-biblioentry">
[P1185R2] Barry Revzin. 2019-02-22. &lt;=&gt; != ==. <a href="https://wg21.link/p1185r2"><div class="csl-block">https://wg21.link/p1185r2</div></a>
</div>
<div class="csl-entry" id="ref-P1206R7" role="doc-biblioentry">
[P1206R7] Corentin Jabot, Eric Niebler, Casey Carter. 2022-01-21.
Conversions from ranges to containers. <a href="https://wg21.link/p1206r7"><div class="csl-block">https://wg21.link/p1206r7</div></a>
</div>
<div class="csl-entry" id="ref-P1208R6" role="doc-biblioentry">
[P1208R6] Corentin Jabot, Robert Douglas, Daniel Krugler, Peter
Sommerlad. 2019-08-02. Adopt source location from Library Fundamentals
V3 for C++20. <a href="https://wg21.link/p1208r6"><div class="csl-block">https://wg21.link/p1208r6</div></a>
</div>
<div class="csl-entry" id="ref-P1209R0" role="doc-biblioentry">
[P1209R0] Alisdair Meredith, Stephan T. Lavavej. 2018-10-04. Adopt
Consistent Container Erasure from Library Fundamentals 2 for C++20. <a href="https://wg21.link/p1209r0"><div class="csl-block">https://wg21.link/p1209r0</div></a>
</div>
<div class="csl-entry" id="ref-P1222R4" role="doc-biblioentry">
[P1222R4] Zach Laine. 2022-06-13. A Standard flat_set. <a href="https://wg21.link/p1222r4"><div class="csl-block">https://wg21.link/p1222r4</div></a>
</div>
<div class="csl-entry" id="ref-P1223R5" role="doc-biblioentry">
[P1223R5] Zach Laine. 2022-06-17. find_last. <a href="https://wg21.link/p1223r5"><div class="csl-block">https://wg21.link/p1223r5</div></a>
</div>
<div class="csl-entry" id="ref-P1227R2" role="doc-biblioentry">
[P1227R2] Jorg Brown. 2019-02-22. Signed ssize() functions, unsigned
size() functions. <a href="https://wg21.link/p1227r2"><div class="csl-block">https://wg21.link/p1227r2</div></a>
</div>
<div class="csl-entry" id="ref-P1272R4" role="doc-biblioentry">
[P1272R4] Isabella Muerte, Corentin Jabot. 2021-09-25. Byteswapping for
fun&amp;&amp;nuf. <a href="https://wg21.link/p1272r4"><div class="csl-block">https://wg21.link/p1272r4</div></a>
</div>
<div class="csl-entry" id="ref-P1301R4" role="doc-biblioentry">
[P1301R4] JeanHeyd Meneide, Isabella Muerte. 2019-08-05.
[[nodiscard(<span>“should have a reason”</span>)]]. <a href="https://wg21.link/p1301r4"><div class="csl-block">https://wg21.link/p1301r4</div></a>
</div>
<div class="csl-entry" id="ref-P1327R1" role="doc-biblioentry">
[P1327R1] Peter Dimov, Vassil Vassilev, Richard Smith. 2018-11-08.
Allowing dynamic_cast, polymorphic typeid in Constant Expressions. <a href="https://wg21.link/p1327r1"><div class="csl-block">https://wg21.link/p1327r1</div></a>
</div>
<div class="csl-entry" id="ref-P1328R1" role="doc-biblioentry">
[P1328R1] Peter Dimov. 2021-05-03. Making std::type_info::operator==
constexpr. <a href="https://wg21.link/p1328r1"><div class="csl-block">https://wg21.link/p1328r1</div></a>
</div>
<div class="csl-entry" id="ref-P1330R0" role="doc-biblioentry">
[P1330R0] Louis Dionne, David Vandevoorde. 2018-11-10. Changing the
active member of a union inside constexpr. <a href="https://wg21.link/p1330r0"><div class="csl-block">https://wg21.link/p1330r0</div></a>
</div>
<div class="csl-entry" id="ref-P1331R2" role="doc-biblioentry">
[P1331R2] CJ Johnson. 2019-07-26. Permitting trivial default
initialization in constexpr contexts. <a href="https://wg21.link/p1331r2"><div class="csl-block">https://wg21.link/p1331r2</div></a>
</div>
<div class="csl-entry" id="ref-P1353R0" role="doc-biblioentry">
[P1353R0] John Spicer. 2017-11-09. Missing Feature Test Macros. <a href="https://wg21.link/p1353r0"><div class="csl-block">https://wg21.link/p1353r0</div></a>
</div>
<div class="csl-entry" id="ref-P1357R1" role="doc-biblioentry">
[P1357R1] Walter E. Brown, Glen J. Fernandes. 2019-02-22. Traits for
[Un]bounded Arrays. <a href="https://wg21.link/p1357r1"><div class="csl-block">https://wg21.link/p1357r1</div></a>
</div>
<div class="csl-entry" id="ref-P1361R2" role="doc-biblioentry">
[P1361R2] Victor Zverovich, Daniela Engert, Howard E. Hinnant.
2019-07-19. Integration of chrono with text formatting. <a href="https://wg21.link/p1361r2"><div class="csl-block">https://wg21.link/p1361r2</div></a>
</div>
<div class="csl-entry" id="ref-P1383R2" role="doc-biblioentry">
[P1383R2] Oliver Rosten. 2023-06-15. More constexpr for cmath and
complex. <a href="https://wg21.link/p1383r2"><div class="csl-block">https://wg21.link/p1383r2</div></a>
</div>
<div class="csl-entry" id="ref-P1423R3" role="doc-biblioentry">
[P1423R3] Tom Honermann. 2019-07-20. char8_t backward compatibility
remediation. <a href="https://wg21.link/p1423r3"><div class="csl-block">https://wg21.link/p1423r3</div></a>
</div>
<div class="csl-entry" id="ref-P1425R4" role="doc-biblioentry">
[P1425R4] Corentin Jabot. 2021-03-05. Iterators pair constructors for
stack and queue. <a href="https://wg21.link/p1425r4"><div class="csl-block">https://wg21.link/p1425r4</div></a>
</div>
<div class="csl-entry" id="ref-P1452R2" role="doc-biblioentry">
[P1452R2] Hubert Tong. 2019-07-18. On the non-uniform semantics of
return-type-requirements. <a href="https://wg21.link/p1452r2"><div class="csl-block">https://wg21.link/p1452r2</div></a>
</div>
<div class="csl-entry" id="ref-P1466R3" role="doc-biblioentry">
[P1466R3] Howard E. Hinnant. 2019-07-17. Miscellaneous minor fixes for
chrono. <a href="https://wg21.link/p1466r3"><div class="csl-block">https://wg21.link/p1466r3</div></a>
</div>
<div class="csl-entry" id="ref-P1612R1" role="doc-biblioentry">
[P1612R1] Arthur O’Dwyer. 2019-07-20. Relocate Endian’s Specification.
<a href="https://wg21.link/p1612r1"><div class="csl-block">https://wg21.link/p1612r1</div></a>
</div>
<div class="csl-entry" id="ref-P1614R2" role="doc-biblioentry">
[P1614R2] Barry Revzin. 2019-07-28. The Mothership Has Landed: Adding
&lt;=&gt; to the Library. <a href="https://wg21.link/p1614r2"><div class="csl-block">https://wg21.link/p1614r2</div></a>
</div>
<div class="csl-entry" id="ref-P1630R1" role="doc-biblioentry">
[P1630R1] Barry Revzin. 2019-07-17. Spaceship needs a tune-up. <a href="https://wg21.link/p1630r1"><div class="csl-block">https://wg21.link/p1630r1</div></a>
</div>
<div class="csl-entry" id="ref-P1645R1" role="doc-biblioentry">
[P1645R1] Ben Deane. 2019-05-14. constexpr for numeric algorithms. <a href="https://wg21.link/p1645r1"><div class="csl-block">https://wg21.link/p1645r1</div></a>
</div>
<div class="csl-entry" id="ref-P1651R0" role="doc-biblioentry">
[P1651R0] Tomasz Kamiński. 2019-06-07. bind_front should not unwrap
reference_wrapper. <a href="https://wg21.link/p1651r0"><div class="csl-block">https://wg21.link/p1651r0</div></a>
</div>
<div class="csl-entry" id="ref-P1652R1" role="doc-biblioentry">
[P1652R1] Zhihao Yuan, Victor Zverovich. 2019-07-18. Printf corner cases
in std::format. <a href="https://wg21.link/p1652r1"><div class="csl-block">https://wg21.link/p1652r1</div></a>
</div>
<div class="csl-entry" id="ref-P1659R3" role="doc-biblioentry">
[P1659R3] Christopher Di Bella. 2021-02-19. starts_with and ends_with.
<a href="https://wg21.link/p1659r3"><div class="csl-block">https://wg21.link/p1659r3</div></a>
</div>
<div class="csl-entry" id="ref-P1661R1" role="doc-biblioentry">
[P1661R1] Tomasz Kamiński. 2019-07-18. Remove dedicated precalculated
hash lookup interface. <a href="https://wg21.link/p1661r1"><div class="csl-block">https://wg21.link/p1661r1</div></a>
</div>
<div class="csl-entry" id="ref-P1668R1" role="doc-biblioentry">
[P1668R1] Erich Keane. 2019-07-17. Enabling constexpr Intrinsics By
Permitting Unevaluated inline-assembly in constexpr Functions. <a href="https://wg21.link/p1668r1"><div class="csl-block">https://wg21.link/p1668r1</div></a>
</div>
<div class="csl-entry" id="ref-P1673R13" role="doc-biblioentry">
[P1673R13] Mark Hoemmen, Daisy Hollman,Christian Trott,Daniel
Sunderland,Nevin Liber,Alicia KlinvexLi-Ta Lo,Damien
Lebrun-Grandie,Graham Lopez,Peter Caday,Sarah Knepper,Piotr
Luszczek,Timothy Costa. 2023-12-18. A free function linear algebra
interface based on the BLAS. <a href="https://wg21.link/p1673r13"><div class="csl-block">https://wg21.link/p1673r13</div></a>
</div>
<div class="csl-entry" id="ref-P1679R3" role="doc-biblioentry">
[P1679R3] Wim Leflere, Paul Fee. 2020-07-22. String Contains function.
<a href="https://wg21.link/p1679r3"><div class="csl-block">https://wg21.link/p1679r3</div></a>
</div>
<div class="csl-entry" id="ref-P1682R2" role="doc-biblioentry">
[P1682R2] JeanHeyd Meneide. 2021-01-16. std::to_underlying. <a href="https://wg21.link/p1682r2"><div class="csl-block">https://wg21.link/p1682r2</div></a>
</div>
<div class="csl-entry" id="ref-P1716R3" role="doc-biblioentry">
[P1716R3] Tomasz Kamiński. 2019-11-07. ranges compare algorithm are
over-constrained. <a href="https://wg21.link/p1716r3"><div class="csl-block">https://wg21.link/p1716r3</div></a>
</div>
<div class="csl-entry" id="ref-P1754R1" role="doc-biblioentry">
[P1754R1] Herb Sutter, Casey Carter, Gabriel Dos Reis, Eric Niebler,
Bjarne Stroustrup, Andrew Sutton, Ville Voutilainen. 2019-07-18. Rename
concepts to standard_case for C++20, while we still can. <a href="https://wg21.link/p1754r1"><div class="csl-block">https://wg21.link/p1754r1</div></a>
</div>
<div class="csl-entry" id="ref-P1759R6" role="doc-biblioentry">
[P1759R6] Elias Kosunen. 2023-05-17. Native handles and file streams. <a href="https://wg21.link/p1759r6"><div class="csl-block">https://wg21.link/p1759r6</div></a>
</div>
<div class="csl-entry" id="ref-P1771R1" role="doc-biblioentry">
[P1771R1] Peter Sommerlad. 2019-07-19. [[nodiscard]] for constructors.
<a href="https://wg21.link/p1771r1"><div class="csl-block">https://wg21.link/p1771r1</div></a>
</div>
<div class="csl-entry" id="ref-P1774R8" role="doc-biblioentry">
[P1774R8] Timur Doumler. 2022-06-14. Portable assumptions. <a href="https://wg21.link/p1774r8"><div class="csl-block">https://wg21.link/p1774r8</div></a>
</div>
<div class="csl-entry" id="ref-P1811R0" role="doc-biblioentry">
[P1811R0] Richard Smith, Gabriel Dos Reis. 2019-08-07. Relaxing
redefinition restrictions for re-exportation robustness. <a href="https://wg21.link/p1811r0"><div class="csl-block">https://wg21.link/p1811r0</div></a>
</div>
<div class="csl-entry" id="ref-P1814R0" role="doc-biblioentry">
[P1814R0] Mike Spertus. 2019-07-28. Wording for Class Template Argument
Deduction for Alias Templates. <a href="https://wg21.link/p1814r0"><div class="csl-block">https://wg21.link/p1814r0</div></a>
</div>
<div class="csl-entry" id="ref-P1816R0" role="doc-biblioentry">
[P1816R0] Timur Doumler. 2019-07-18. Wording for class template argument
deduction for aggregates. <a href="https://wg21.link/p1816r0"><div class="csl-block">https://wg21.link/p1816r0</div></a>
</div>
<div class="csl-entry" id="ref-P1869R1" role="doc-biblioentry">
[P1869R1] Tomasz Kamiński, Michał Dominiak. 2019-11-06. Rename
<span>“condition_variable_any”</span> interruptible wait methods. <a href="https://wg21.link/p1869r1"><div class="csl-block">https://wg21.link/p1869r1</div></a>
</div>
<div class="csl-entry" id="ref-P1885R12" role="doc-biblioentry">
[P1885R12] Corentin Jabot, Peter Brett. 2023-04-05. Naming Text
Encodings to Demystify Them. <a href="https://wg21.link/p1885r12"><div class="csl-block">https://wg21.link/p1885r12</div></a>
</div>
<div class="csl-entry" id="ref-P1899R3" role="doc-biblioentry">
[P1899R3] Christopher Di Bella, Tim Song. 2022-07-11. stride_view. <a href="https://wg21.link/p1899r3"><div class="csl-block">https://wg21.link/p1899r3</div></a>
</div>
<div class="csl-entry" id="ref-P1901R2" role="doc-biblioentry">
[P1901R2] Daryl Haresign. 2023-04-05. Enabling the Use of weak_ptr as
Keys in Unordered Associative Containers. <a href="https://wg21.link/p1901r2"><div class="csl-block">https://wg21.link/p1901r2</div></a>
</div>
<div class="csl-entry" id="ref-P1902R1" role="doc-biblioentry">
[P1902R1] Barry Revzin. 2019-11-25. Missing feature-test macros
2017-2019. <a href="https://wg21.link/p1902r1"><div class="csl-block">https://wg21.link/p1902r1</div></a>
</div>
<div class="csl-entry" id="ref-P1907R1" role="doc-biblioentry">
[P1907R1] Jens Maurer. 2019-11-08. Inconsistencies with non-type
template parameters. <a href="https://wg21.link/p1907r1"><div class="csl-block">https://wg21.link/p1907r1</div></a>
</div>
<div class="csl-entry" id="ref-P1928R15" role="doc-biblioentry">
[P1928R15] Matthias Kretz. 2024-11-22. std::simd - Merge data-parallel
types from the Parallelism TS 2. <a href="https://wg21.link/p1928r15"><div class="csl-block">https://wg21.link/p1928r15</div></a>
</div>
<div class="csl-entry" id="ref-P1938R3" role="doc-biblioentry">
[P1938R3] Barry Revzin, Daveed Vandevoorde, Richard Smith, Andrew
Sutton. 2021-03-22. if consteval. <a href="https://wg21.link/p1938r3"><div class="csl-block">https://wg21.link/p1938r3</div></a>
</div>
<div class="csl-entry" id="ref-P1956R1" role="doc-biblioentry">
[P1956R1] Vincent Reverdy. 2020-02-27. On the naming of low-level bit
manipulation functions. <a href="https://wg21.link/p1956r1"><div class="csl-block">https://wg21.link/p1956r1</div></a>
</div>
<div class="csl-entry" id="ref-P1964R2" role="doc-biblioentry">
[P1964R2] Tim Song. 2020-02-15. Wording for boolean-testable. <a href="https://wg21.link/p1964r2"><div class="csl-block">https://wg21.link/p1964r2</div></a>
</div>
<div class="csl-entry" id="ref-P1973R1" role="doc-biblioentry">
[P1973R1] Nicolai Josuttis. 2020-02-12. Rename _default_init functions
(NB Comment DE002). <a href="https://wg21.link/p1973r1"><div class="csl-block">https://wg21.link/p1973r1</div></a>
</div>
<div class="csl-entry" id="ref-P1976R2" role="doc-biblioentry">
[P1976R2] Tomasz Kamiński. 2020-02-11. Fixed-size <span>“span”</span>
construction from dynamic-size range. <a href="https://wg21.link/p1976r2"><div class="csl-block">https://wg21.link/p1976r2</div></a>
</div>
<div class="csl-entry" id="ref-P2071R2" role="doc-biblioentry">
[P2071R2] Tom Honermann, Steve Downey, Peter Bindels, Corentin Jabot, R.
Martinho Fernandes. 2022-03-27. Named universal character escapes. <a href="https://wg21.link/p2071r2"><div class="csl-block">https://wg21.link/p2071r2</div></a>
</div>
<div class="csl-entry" id="ref-P2075R6" role="doc-biblioentry">
[P2075R6] Ilya Burylov, Ruslan Arutyunyan; Andrey Nikolaev; Alina
Elizarova; Pavel Dyakov; John Salmon. 2024-06-28. Philox as an extension
of the C++ RNG engines. <a href="https://wg21.link/p2075r6"><div class="csl-block">https://wg21.link/p2075r6</div></a>
</div>
<div class="csl-entry" id="ref-P2077R3" role="doc-biblioentry">
[P2077R3] Konstantin Boyarinov, Sergey Vinogradov; Ruslan Arutyunyan.
2021-10-15. Heterogeneous erasure overloads for associative containers.
<a href="https://wg21.link/p2077r3"><div class="csl-block">https://wg21.link/p2077r3</div></a>
</div>
<div class="csl-entry" id="ref-P2093R14" role="doc-biblioentry">
[P2093R14] Victor Zverovich. 2022-03-25. Formatted output. <a href="https://wg21.link/p2093r14"><div class="csl-block">https://wg21.link/p2093r14</div></a>
</div>
<div class="csl-entry" id="ref-P2128R6" role="doc-biblioentry">
[P2128R6] Corentin Jabot, Isabella Muerte, Daisy Hollman, Christian
Trott, Mark Hoemmen. 2021-09-14. Multidimensional subscript operator. <a href="https://wg21.link/p2128r6"><div class="csl-block">https://wg21.link/p2128r6</div></a>
</div>
<div class="csl-entry" id="ref-P2136R3" role="doc-biblioentry">
[P2136R3] Zhihao Yuan. 2021-04-30. invoke_r. <a href="https://wg21.link/p2136r3"><div class="csl-block">https://wg21.link/p2136r3</div></a>
</div>
<div class="csl-entry" id="ref-P2162R2" role="doc-biblioentry">
[P2162R2] Barry Revzin. 2021-02-18. Inheriting from std::variant
(resolving LWG3052). <a href="https://wg21.link/p2162r2"><div class="csl-block">https://wg21.link/p2162r2</div></a>
</div>
<div class="csl-entry" id="ref-P2164R9" role="doc-biblioentry">
[P2164R9] Corentin Jabot. 2022-12-07. views::enumerate. <a href="https://wg21.link/p2164r9"><div class="csl-block">https://wg21.link/p2164r9</div></a>
</div>
<div class="csl-entry" id="ref-P2165R4" role="doc-biblioentry">
[P2165R4] Corentin Jabot. 2022-07-15. Compatibility between tuple, pair
and tuple-like objects. <a href="https://wg21.link/p2165r4"><div class="csl-block">https://wg21.link/p2165r4</div></a>
</div>
<div class="csl-entry" id="ref-P2169R4" role="doc-biblioentry">
[P2169R4] Corentin Jabot, Michael Park. 2023-06-16. A Nice Placeholder
With No Name. <a href="https://wg21.link/p2169r4"><div class="csl-block">https://wg21.link/p2169r4</div></a>
</div>
<div class="csl-entry" id="ref-P2198R7" role="doc-biblioentry">
[P2198R7] Ben Craig. 2022-12-14. Freestanding Feature-Test Macros and
Implementation-Defined Extensions. <a href="https://wg21.link/p2198r7"><div class="csl-block">https://wg21.link/p2198r7</div></a>
</div>
<div class="csl-entry" id="ref-P2216R3" role="doc-biblioentry">
[P2216R3] Victor Zverovich. 2021-02-15. std::format improvements. <a href="https://wg21.link/p2216r3"><div class="csl-block">https://wg21.link/p2216r3</div></a>
</div>
<div class="csl-entry" id="ref-P2231R1" role="doc-biblioentry">
[P2231R1] Barry Revzin. 2021-02-12. Add further constexpr support for
optional/variant. <a href="https://wg21.link/p2231r1"><div class="csl-block">https://wg21.link/p2231r1</div></a>
</div>
<div class="csl-entry" id="ref-P2242R3" role="doc-biblioentry">
[P2242R3] Ville Voutilainen. 2021-07-13. Non-literal variables (and
labels and gotos) in constexpr functions. <a href="https://wg21.link/p2242r3"><div class="csl-block">https://wg21.link/p2242r3</div></a>
</div>
<div class="csl-entry" id="ref-P2248R8" role="doc-biblioentry">
[P2248R8] Giuseppe D’Angelo. 2024-03-20. Enabling list-initialization
for algorithms. <a href="https://wg21.link/p2248r8"><div class="csl-block">https://wg21.link/p2248r8</div></a>
</div>
<div class="csl-entry" id="ref-P2255R2" role="doc-biblioentry">
[P2255R2] Tim Song. 2021-10-14. A type trait to detect reference binding
to temporary. <a href="https://wg21.link/p2255r2"><div class="csl-block">https://wg21.link/p2255r2</div></a>
</div>
<div class="csl-entry" id="ref-P2266R3" role="doc-biblioentry">
[P2266R3] Arthur O’Dwyer. 2022-03-26. Simpler implicit move. <a href="https://wg21.link/p2266r3"><div class="csl-block">https://wg21.link/p2266r3</div></a>
</div>
<div class="csl-entry" id="ref-P2273R3" role="doc-biblioentry">
[P2273R3] Andreas Fertig. 2021-11-09. Making std::unique_ptr constexpr.
<a href="https://wg21.link/p2273r3"><div class="csl-block">https://wg21.link/p2273r3</div></a>
</div>
<div class="csl-entry" id="ref-P2278R4" role="doc-biblioentry">
[P2278R4] Barry Revzin. 2022-06-17. cbegin should always return a
constant iterator. <a href="https://wg21.link/p2278r4"><div class="csl-block">https://wg21.link/p2278r4</div></a>
</div>
<div class="csl-entry" id="ref-P2286R8" role="doc-biblioentry">
[P2286R8] Barry Revzin. 2022-05-16. Formatting Ranges. <a href="https://wg21.link/p2286r8"><div class="csl-block">https://wg21.link/p2286r8</div></a>
</div>
<div class="csl-entry" id="ref-P2291R3" role="doc-biblioentry">
[P2291R3] Daniil Goncharov, Karaev Alexander. 2021-09-23. Add Constexpr
Modifiers to Functions to_chars and from_chars for Integral Types in
Header. <a href="https://wg21.link/p2291r3"><div class="csl-block">https://wg21.link/p2291r3</div></a>
</div>
<div class="csl-entry" id="ref-P2300R10" role="doc-biblioentry">
[P2300R10] Eric Niebler, Michał Dominiak, Georgy Evtushenko, Lewis
Baker, Lucian Radu Teodorescu, Lee Howes, Kirk Shoop, Michael Garland,
Bryce Adelstein Lelbach. 2024-06-28. `std::execution`. <a href="https://wg21.link/p2300r10"><div class="csl-block">https://wg21.link/p2300r10</div></a>
</div>
<div class="csl-entry" id="ref-P2302R4" role="doc-biblioentry">
[P2302R4] Christopher Di Bella. 2022-04-17. std::ranges::contains. <a href="https://wg21.link/p2302r4"><div class="csl-block">https://wg21.link/p2302r4</div></a>
</div>
<div class="csl-entry" id="ref-P2321R2" role="doc-biblioentry">
[P2321R2] Tim Song. 2021-06-11. zip. <a href="https://wg21.link/p2321r2"><div class="csl-block">https://wg21.link/p2321r2</div></a>
</div>
<div class="csl-entry" id="ref-P2322R6" role="doc-biblioentry">
[P2322R6] Barry Revzin. 2022-04-22. ranges::fold. <a href="https://wg21.link/p2322r6"><div class="csl-block">https://wg21.link/p2322r6</div></a>
</div>
<div class="csl-entry" id="ref-P2325R3" role="doc-biblioentry">
[P2325R3] Barry Revzin. 2021-05-14. Views should not be required to be
default constructible. <a href="https://wg21.link/p2325r3"><div class="csl-block">https://wg21.link/p2325r3</div></a>
</div>
<div class="csl-entry" id="ref-P2338R4" role="doc-biblioentry">
[P2338R4] Ben Craig. 2023-02-09. Freestanding Library: Character
primitives and the C library. <a href="https://wg21.link/p2338r4"><div class="csl-block">https://wg21.link/p2338r4</div></a>
</div>
<div class="csl-entry" id="ref-P2363R5" role="doc-biblioentry">
[P2363R5] Konstantin Boyarinov, Sergey Vinogradov, Ruslan Arutyunyan.
2023-02-10. Extending associative containers with the remaining
heterogeneous overloads. <a href="https://wg21.link/p2363r5"><div class="csl-block">https://wg21.link/p2363r5</div></a>
</div>
<div class="csl-entry" id="ref-P2372R3" role="doc-biblioentry">
[P2372R3] Victor Zverovich, Corentin Jabot. 2021-09-12. Fixing locale
handling in chrono formatters. <a href="https://wg21.link/p2372r3"><div class="csl-block">https://wg21.link/p2372r3</div></a>
</div>
<div class="csl-entry" id="ref-P2374R4" role="doc-biblioentry">
[P2374R4] Sy Brand, Michał Dominiak. 2022-07-13.
views::cartesian_product. <a href="https://wg21.link/p2374r4"><div class="csl-block">https://wg21.link/p2374r4</div></a>
</div>
<div class="csl-entry" id="ref-P2387R3" role="doc-biblioentry">
[P2387R3] Barry Revzin. 2021-12-17. Pipe support for user-defined range
adaptors. <a href="https://wg21.link/p2387r3"><div class="csl-block">https://wg21.link/p2387r3</div></a>
</div>
<div class="csl-entry" id="ref-P2389R2" role="doc-biblioentry">
[P2389R2] Bryce Adelstein Lelbach, Mark Hoemmen. 2024-06-24. `dextents`
Index Type Parameter. <a href="https://wg21.link/p2389r2"><div class="csl-block">https://wg21.link/p2389r2</div></a>
</div>
<div class="csl-entry" id="ref-P2404R3" role="doc-biblioentry">
[P2404R3] Justin Bassett. 2022-07-08. Move-only types for
equality_comparable_with, totally_ordered_with, and
three_way_comparable_with. <a href="https://wg21.link/p2404r3"><div class="csl-block">https://wg21.link/p2404r3</div></a>
</div>
<div class="csl-entry" id="ref-P2407R5" role="doc-biblioentry">
[P2407R5] Ben Craig, Emil Meissner. 2023-07-26. Freestanding Library:
Partial Classes. <a href="https://wg21.link/p2407r5"><div class="csl-block">https://wg21.link/p2407r5</div></a>
</div>
<div class="csl-entry" id="ref-P2408R5" role="doc-biblioentry">
[P2408R5] David Olsen. 2022-04-22. Ranges iterators as inputs to
non-Ranges algorithms. <a href="https://wg21.link/p2408r5"><div class="csl-block">https://wg21.link/p2408r5</div></a>
</div>
<div class="csl-entry" id="ref-P2415R2" role="doc-biblioentry">
[P2415R2] Barry Revzin, Tim Song. 2021-10-15. What is a view? <a href="https://wg21.link/p2415r2"><div class="csl-block">https://wg21.link/p2415r2</div></a>
</div>
<div class="csl-entry" id="ref-P2417R2" role="doc-biblioentry">
[P2417R2] Daniil Goncharov. 2022-07-16. A more constexpr bitset. <a href="https://wg21.link/p2417r2"><div class="csl-block">https://wg21.link/p2417r2</div></a>
</div>
<div class="csl-entry" id="ref-P2418R2" role="doc-biblioentry">
[P2418R2] Victor Zverovich. 2021-09-24. Add support for
std::generator-like types to std::format. <a href="https://wg21.link/p2418r2"><div class="csl-block">https://wg21.link/p2418r2</div></a>
</div>
<div class="csl-entry" id="ref-P2419R2" role="doc-biblioentry">
[P2419R2] Victor Zverovich, Peter Brett. 2022-07-15. Clarify handling of
encodings in localized formatting of chrono types. <a href="https://wg21.link/p2419r2"><div class="csl-block">https://wg21.link/p2419r2</div></a>
</div>
<div class="csl-entry" id="ref-P2440R1" role="doc-biblioentry">
[P2440R1] Tim Song. 2021-12-06. ranges::iota, ranges::shift_left, and
ranges::shift_right. <a href="https://wg21.link/p2440r1"><div class="csl-block">https://wg21.link/p2440r1</div></a>
</div>
<div class="csl-entry" id="ref-P2441R2" role="doc-biblioentry">
[P2441R2] Barry Revzin. 2022-01-28. views::join_with. <a href="https://wg21.link/p2441r2"><div class="csl-block">https://wg21.link/p2441r2</div></a>
</div>
<div class="csl-entry" id="ref-P2442R1" role="doc-biblioentry">
[P2442R1] Tim Song. 2021-12-06. Windowing range adaptors: views::chunk
and views::slide. <a href="https://wg21.link/p2442r1"><div class="csl-block">https://wg21.link/p2442r1</div></a>
</div>
<div class="csl-entry" id="ref-P2443R1" role="doc-biblioentry">
[P2443R1] Tim Song. 2021-11-19. views::chunk_by. <a href="https://wg21.link/p2443r1"><div class="csl-block">https://wg21.link/p2443r1</div></a>
</div>
<div class="csl-entry" id="ref-P2445R1" role="doc-biblioentry">
[P2445R1] Gašper Ažman. 2022-05-13. forward_like. <a href="https://wg21.link/p2445r1"><div class="csl-block">https://wg21.link/p2445r1</div></a>
</div>
<div class="csl-entry" id="ref-P2446R2" role="doc-biblioentry">
[P2446R2] Barry Revzin. 2022-02-15. views::as_rvalue. <a href="https://wg21.link/p2446r2"><div class="csl-block">https://wg21.link/p2446r2</div></a>
</div>
<div class="csl-entry" id="ref-P2447R6" role="doc-biblioentry">
[P2447R6] Arthur O’Dwyer, Federico Kircheis. 2023-12-18. std::span over
an initializer list. <a href="https://wg21.link/p2447r6"><div class="csl-block">https://wg21.link/p2447r6</div></a>
</div>
<div class="csl-entry" id="ref-P2448R2" role="doc-biblioentry">
[P2448R2] Barry Revzin. 2022-01-27. Relaxing some constexpr
restrictions. <a href="https://wg21.link/p2448r2"><div class="csl-block">https://wg21.link/p2448r2</div></a>
</div>
<div class="csl-entry" id="ref-P2465R3" role="doc-biblioentry">
[P2465R3] Stephan T. Lavavej, Gabriel Dos Reis, Bjarne Stroustrup,
Jonathan Wakely. 2022-03-11. Standard Library Modules std and
std.compat. <a href="https://wg21.link/p2465r3"><div class="csl-block">https://wg21.link/p2465r3</div></a>
</div>
<div class="csl-entry" id="ref-P2467R1" role="doc-biblioentry">
[P2467R1] Jonathan Wakely. 2022-02-18. Support exclusive mode for
fstreams. <a href="https://wg21.link/p2467r1"><div class="csl-block">https://wg21.link/p2467r1</div></a>
</div>
<div class="csl-entry" id="ref-P2474R2" role="doc-biblioentry">
[P2474R2] Michał Dominiak. 2022-07-13. views::repeat. <a href="https://wg21.link/p2474r2"><div class="csl-block">https://wg21.link/p2474r2</div></a>
</div>
<div class="csl-entry" id="ref-P2494R2" role="doc-biblioentry">
[P2494R2] Michał Dominiak. 2022-07-13. Relaxing range adaptors to allow
for move only types. <a href="https://wg21.link/p2494r2"><div class="csl-block">https://wg21.link/p2494r2</div></a>
</div>
<div class="csl-entry" id="ref-P2495R3" role="doc-biblioentry">
[P2495R3] Michael Hava. 2023-04-19. Interfacing stringstreams with
string_view. <a href="https://wg21.link/p2495r3"><div class="csl-block">https://wg21.link/p2495r3</div></a>
</div>
<div class="csl-entry" id="ref-P2497R0" role="doc-biblioentry">
[P2497R0] Jonathan Wakely. 2023-01-25. Testing for success or failure of
charconv functions. <a href="https://wg21.link/p2497r0"><div class="csl-block">https://wg21.link/p2497r0</div></a>
</div>
<div class="csl-entry" id="ref-P2502R2" role="doc-biblioentry">
[P2502R2] Casey Carter. 2022-06-03. std::generator: Synchronous
Coroutine Generator for Ranges. <a href="https://wg21.link/p2502r2"><div class="csl-block">https://wg21.link/p2502r2</div></a>
</div>
<div class="csl-entry" id="ref-P2505R5" role="doc-biblioentry">
[P2505R5] Jeff Garland. 2022-09-28. Monadic Functions for std::expected.
<a href="https://wg21.link/p2505r5"><div class="csl-block">https://wg21.link/p2505r5</div></a>
</div>
<div class="csl-entry" id="ref-P2508R1" role="doc-biblioentry">
[P2508R1] Barry Revzin. 2022-01-18. Exposing std::basic-format-string.
<a href="https://wg21.link/p2508r1"><div class="csl-block">https://wg21.link/p2508r1</div></a>
</div>
<div class="csl-entry" id="ref-P2510R3" role="doc-biblioentry">
[P2510R3] Mark de Wever. 2022-05-23. Formatting pointers. <a href="https://wg21.link/p2510r3"><div class="csl-block">https://wg21.link/p2510r3</div></a>
</div>
<div class="csl-entry" id="ref-P2513R3" role="doc-biblioentry">
[P2513R3] JeanHeyd Meneide, Tom Honermann. 2022-06-17. char8_t
Compatibility and Portability Fix. <a href="https://wg21.link/p2513r3"><div class="csl-block">https://wg21.link/p2513r3</div></a>
</div>
<div class="csl-entry" id="ref-P2520R0" role="doc-biblioentry">
[P2520R0] Barry Revzin. 2022-01-16. move_iterator should be a random
access iterator. <a href="https://wg21.link/p2520r0"><div class="csl-block">https://wg21.link/p2520r0</div></a>
</div>
<div class="csl-entry" id="ref-P2540R1" role="doc-biblioentry">
[P2540R1] Steve Downey. 2022-03-14. Empty Product for certain Views. <a href="https://wg21.link/p2540r1"><div class="csl-block">https://wg21.link/p2540r1</div></a>
</div>
<div class="csl-entry" id="ref-P2542R8" role="doc-biblioentry">
[P2542R8] Hui Xie, S. Levent Yilmaz. 2024-03-20. views::concat. <a href="https://wg21.link/p2542r8"><div class="csl-block">https://wg21.link/p2542r8</div></a>
</div>
<div class="csl-entry" id="ref-P2545R4" role="doc-biblioentry">
[P2545R4] Paul E. McKenney, Michael Wong, Maged M. Michael, Geoffrey
Romer, Andrew Hunter, Arthur O’Dwyer, Daisy Hollman, JF Bastien, Hans
Boehm, David Goldblatt, Frank Birbacher, Erik Rigtorp, Tomasz Kamiński,
Jens Maurer. 2023-03-08. Read-Copy Update (RCU). <a href="https://wg21.link/p2545r4"><div class="csl-block">https://wg21.link/p2545r4</div></a>
</div>
<div class="csl-entry" id="ref-P2546R5" role="doc-biblioentry">
[P2546R5] René Ferdinand Rivera Morell. 2023-07-05. Debugging Support.
<a href="https://wg21.link/p2546r5"><div class="csl-block">https://wg21.link/p2546r5</div></a>
</div>
<div class="csl-entry" id="ref-P2548R6" role="doc-biblioentry">
[P2548R6] Michael Florian Hava. 2023-06-15. copyable_function. <a href="https://wg21.link/p2548r6"><div class="csl-block">https://wg21.link/p2548r6</div></a>
</div>
<div class="csl-entry" id="ref-P2562R1" role="doc-biblioentry">
[P2562R1] Oliver Rosten. 2022-06-14. constexpr Stable Sorting. <a href="https://wg21.link/p2562r1"><div class="csl-block">https://wg21.link/p2562r1</div></a>
</div>
<div class="csl-entry" id="ref-P2564R3" role="doc-biblioentry">
[P2564R3] Barry Revzin. 2022-11-11. consteval needs to propagate up. <a href="https://wg21.link/p2564r3"><div class="csl-block">https://wg21.link/p2564r3</div></a>
</div>
<div class="csl-entry" id="ref-P2573R2" role="doc-biblioentry">
[P2573R2] Yihe Li. 2024-03-22. = delete(<span>“should have a
reason”</span>); <a href="https://wg21.link/p2573r2"><div class="csl-block">https://wg21.link/p2573r2</div></a>
</div>
<div class="csl-entry" id="ref-P2585R1" role="doc-biblioentry">
[P2585R1] Barry Revzin. 2022-07-15. Improving default container
formatting. <a href="https://wg21.link/p2585r1"><div class="csl-block">https://wg21.link/p2585r1</div></a>
</div>
<div class="csl-entry" id="ref-P2587R3" role="doc-biblioentry">
[P2587R3] Victor Zverovich. 2022-08-28. to_string or not to_string. <a href="https://wg21.link/p2587r3"><div class="csl-block">https://wg21.link/p2587r3</div></a>
</div>
<div class="csl-entry" id="ref-P2588R3" role="doc-biblioentry">
[P2588R3] Gonzalo Brito, Eric A Niebler, Anthony Williams, Thomas
Rodgers. 2023-02-07. Relax std::barrier phase completion step
guarantees. <a href="https://wg21.link/p2588r3"><div class="csl-block">https://wg21.link/p2588r3</div></a>
</div>
<div class="csl-entry" id="ref-P2589R1" role="doc-biblioentry">
[P2589R1] Nevin Liber. 2022-11-11. static operator[]. <a href="https://wg21.link/p2589r1"><div class="csl-block">https://wg21.link/p2589r1</div></a>
</div>
<div class="csl-entry" id="ref-P2590R2" role="doc-biblioentry">
[P2590R2] Timur Doumler, Richard Smith. 2022-07-15. Explicit lifetime
management. <a href="https://wg21.link/p2590r2"><div class="csl-block">https://wg21.link/p2590r2</div></a>
</div>
<div class="csl-entry" id="ref-P2591R5" role="doc-biblioentry">
[P2591R5] Giuseppe D’Angelo. 2024-03-20. Concatenation of strings and
string views. <a href="https://wg21.link/p2591r5"><div class="csl-block">https://wg21.link/p2591r5</div></a>
</div>
<div class="csl-entry" id="ref-P2592R3" role="doc-biblioentry">
[P2592R3] Giuseppe D’Angelo. 2023-02-10. Hashing support for std::chrono
value classes. <a href="https://wg21.link/p2592r3"><div class="csl-block">https://wg21.link/p2592r3</div></a>
</div>
<div class="csl-entry" id="ref-P2599R2" role="doc-biblioentry">
[P2599R2] Nevin Liber. 2022-06-23. index _type &amp; size_type in
mdspan. <a href="https://wg21.link/p2599r2"><div class="csl-block">https://wg21.link/p2599r2</div></a>
</div>
<div class="csl-entry" id="ref-P2602R2" role="doc-biblioentry">
[P2602R2] Barry Revzin. 2022-11-07. Poison Pills are Too Toxic. <a href="https://wg21.link/p2602r2"><div class="csl-block">https://wg21.link/p2602r2</div></a>
</div>
<div class="csl-entry" id="ref-P2604R0" role="doc-biblioentry">
[P2604R0] Christian Trott. 2022-06-15. MDSPAN: rename pointer and
contiguous. <a href="https://wg21.link/p2604r0"><div class="csl-block">https://wg21.link/p2604r0</div></a>
</div>
<div class="csl-entry" id="ref-P2609R3" role="doc-biblioentry">
[P2609R3] John Eivind Helset. 2023-02-10. Relaxing Ranges Just A Smidge.
<a href="https://wg21.link/p2609r3"><div class="csl-block">https://wg21.link/p2609r3</div></a>
</div>
<div class="csl-entry" id="ref-P2613R1" role="doc-biblioentry">
[P2613R1] Yihe Le. 2022-06-29. Add the missing `empty` to `mdspan`. <a href="https://wg21.link/p2613r1"><div class="csl-block">https://wg21.link/p2613r1</div></a>
</div>
<div class="csl-entry" id="ref-P2630R4" role="doc-biblioentry">
[P2630R4] Christian Trott, Mark Hoemmen, Damien Lebrun-Grandie, Nevin
Liber. 2023-06-22. Submdspan. <a href="https://wg21.link/p2630r4"><div class="csl-block">https://wg21.link/p2630r4</div></a>
</div>
<div class="csl-entry" id="ref-P2637R3" role="doc-biblioentry">
[P2637R3] Barry Revzin. 2023-06-15. Member visit. <a href="https://wg21.link/p2637r3"><div class="csl-block">https://wg21.link/p2637r3</div></a>
</div>
<div class="csl-entry" id="ref-P2641R4" role="doc-biblioentry">
[P2641R4] Barry Revzin. 2023-06-15. Checking if a union alternative is
active. <a href="https://wg21.link/p2641r4"><div class="csl-block">https://wg21.link/p2641r4</div></a>
</div>
<div class="csl-entry" id="ref-P2642R6" role="doc-biblioentry">
[P2642R6] Christian Trott, Mark Hoemmen, Damien Lebrun-Grandie, Nicolas
Morales, Malte Förster, Jiaming Yuan. 2024-01-19. Padded mdspan layouts.
<a href="https://wg21.link/p2642r6"><div class="csl-block">https://wg21.link/p2642r6</div></a>
</div>
<div class="csl-entry" id="ref-P2644R1" role="doc-biblioentry">
[P2644R1] Nicolai Josuttis, Herb Sutter, Titus Winter, Hana Dusíková,
Fabio Fracassi, Victor Zverovich, Bryce Adelstein Lelbach, Peter
Sommerlad. 2022-11-13. Final Fix of Broken Range based for Loop Rev 1.
<a href="https://wg21.link/p2644r1"><div class="csl-block">https://wg21.link/p2644r1</div></a>
</div>
<div class="csl-entry" id="ref-P2647R1" role="doc-biblioentry">
[P2647R1] Barry Revzin, Jonathan Wakely. 2022-11-08. Permitting static
constexpr variables in constexpr functions. <a href="https://wg21.link/p2647r1"><div class="csl-block">https://wg21.link/p2647r1</div></a>
</div>
<div class="csl-entry" id="ref-P2655R3" role="doc-biblioentry">
[P2655R3] Hui Xie, S. Levent Yilmaz, Tim Song. 2023-02-07.
common_reference_t of reference_wrapper Should Be a Reference Type. <a href="https://wg21.link/p2655r3"><div class="csl-block">https://wg21.link/p2655r3</div></a>
</div>
<div class="csl-entry" id="ref-P2662R3" role="doc-biblioentry">
[P2662R3] Corentin Jabot, Pablo Halpern. 2023-12-18. Pack Indexing. <a href="https://wg21.link/p2662r3"><div class="csl-block">https://wg21.link/p2662r3</div></a>
</div>
<div class="csl-entry" id="ref-P2663R7" role="doc-biblioentry">
[P2663R7] Daniel Towner, Ruslan Arutyunyan. 2025-02-17. Proposal to
support interleaved complex values in std::simd. <a href="https://wg21.link/p2663r7"><div class="csl-block">https://wg21.link/p2663r7</div></a>
</div>
<div class="csl-entry" id="ref-P2674R1" role="doc-biblioentry">
[P2674R1] Timur Doumler, Vittorio Romeo. 2022-11-12. A trait for
implicit lifetime types. <a href="https://wg21.link/p2674r1"><div class="csl-block">https://wg21.link/p2674r1</div></a>
</div>
<div class="csl-entry" id="ref-P2697R1" role="doc-biblioentry">
[P2697R1] Michael Florian Hava. 2023-06-15. Interfacing bitset with
string_view. <a href="https://wg21.link/p2697r1"><div class="csl-block">https://wg21.link/p2697r1</div></a>
</div>
<div class="csl-entry" id="ref-P2714R1" role="doc-biblioentry">
[P2714R1] Zhihao Yuan, Tomasz Kamiński. 2023-06-16. Bind front and back
to NTTP callables. <a href="https://wg21.link/p2714r1"><div class="csl-block">https://wg21.link/p2714r1</div></a>
</div>
<div class="csl-entry" id="ref-P2718R0" role="doc-biblioentry">
[P2718R0] Joshua Berne, Nicolai Josuttis. 2022-11-11. Wording for
P2644R1 Fix for Range-based for Loop. <a href="https://wg21.link/p2718r0"><div class="csl-block">https://wg21.link/p2718r0</div></a>
</div>
<div class="csl-entry" id="ref-P2734R0" role="doc-biblioentry">
[P2734R0] Marc Mutz. 2022-11-30. Adding the new 2022 SI prefixes. <a href="https://wg21.link/p2734r0"><div class="csl-block">https://wg21.link/p2734r0</div></a>
</div>
<div class="csl-entry" id="ref-P2738R1" role="doc-biblioentry">
[P2738R1] Corentin Jabot, David Ledger. 2023-02-13. constexpr cast from
void*: towards constexpr type-erasure. <a href="https://wg21.link/p2738r1"><div class="csl-block">https://wg21.link/p2738r1</div></a>
</div>
<div class="csl-entry" id="ref-P2741R3" role="doc-biblioentry">
[P2741R3] Corentin Jabot. 2023-06-16. user-generated static_assert
messages. <a href="https://wg21.link/p2741r3"><div class="csl-block">https://wg21.link/p2741r3</div></a>
</div>
<div class="csl-entry" id="ref-P2747R2" role="doc-biblioentry">
[P2747R2] Barry Revzin. 2024-03-19. constexpr placement new. <a href="https://wg21.link/p2747r2"><div class="csl-block">https://wg21.link/p2747r2</div></a>
</div>
<div class="csl-entry" id="ref-P2757R3" role="doc-biblioentry">
[P2757R3] Barry Revzin. 2023-06-15. Type checking format args. <a href="https://wg21.link/p2757r3"><div class="csl-block">https://wg21.link/p2757r3</div></a>
</div>
<div class="csl-entry" id="ref-P2786R13" role="doc-biblioentry">
[P2786R13] Pablo Halpern, Joshua Berne, Corentin Jabot, Pablo Halpern,
Lori Hughes. 2025-02-14. Trivial Relocatability For C++26. <a href="https://wg21.link/p2786r13"><div class="csl-block">https://wg21.link/p2786r13</div></a>
</div>
<div class="csl-entry" id="ref-P2810R4" role="doc-biblioentry">
[P2810R4] René Ferdinand Rivera Morell, Ben Craig. 2024-03-21.
is_debugger_present is_replaceable. <a href="https://wg21.link/p2810r4"><div class="csl-block">https://wg21.link/p2810r4</div></a>
</div>
<div class="csl-entry" id="ref-P2819R2" role="doc-biblioentry">
[P2819R2] Michael Florian Hava, Christoph Hofer. 2023-12-18. Add tuple
protocol to complex. <a href="https://wg21.link/p2819r2"><div class="csl-block">https://wg21.link/p2819r2</div></a>
</div>
<div class="csl-entry" id="ref-P2821R5" role="doc-biblioentry">
[P2821R5] Jarrad J. Waterloo. 2023-12-18. span.at(). <a href="https://wg21.link/p2821r5"><div class="csl-block">https://wg21.link/p2821r5</div></a>
</div>
<div class="csl-entry" id="ref-P2833R2" role="doc-biblioentry">
[P2833R2] Ben Craig. 2023-09-14. Freestanding Library: inout expected
span. <a href="https://wg21.link/p2833r2"><div class="csl-block">https://wg21.link/p2833r2</div></a>
</div>
<div class="csl-entry" id="ref-P2835R7" role="doc-biblioentry">
[P2835R7] Gonzalo Brito Gadeschi, Mark Hoemmen, Carter H. Edwards, Bryce
Adelstein Lelbach. 2024-11-18. Expose std::atomic_ref’s object address.
<a href="https://wg21.link/p2835r7"><div class="csl-block">https://wg21.link/p2835r7</div></a>
</div>
<div class="csl-entry" id="ref-P2836R1" role="doc-biblioentry">
[P2836R1] Christopher Di Bella. 2023-07-11. std::basic_const_iterator
should follow its underlying type’s convertibility. <a href="https://wg21.link/p2836r1"><div class="csl-block">https://wg21.link/p2836r1</div></a>
</div>
<div class="csl-entry" id="ref-P2841R7" role="doc-biblioentry">
[P2841R7] Corentin Jabot, Gašper Ažman, James Touton, Hubert Tong.
2025-02-15. Concept and variable-template template-parameters. <a href="https://wg21.link/p2841r7"><div class="csl-block">https://wg21.link/p2841r7</div></a>
</div>
<div class="csl-entry" id="ref-P2845R8" role="doc-biblioentry">
[P2845R8] Victor Zverovich. 2024-03-21. Formatting of
std::filesystem::path. <a href="https://wg21.link/p2845r8"><div class="csl-block">https://wg21.link/p2845r8</div></a>
</div>
<div class="csl-entry" id="ref-P2846R6" role="doc-biblioentry">
[P2846R6] Corentin Jabot. 2025-02-15. reserve_hint: Eagerly reserving
memory for not-quite-sized lazy ranges. <a href="https://wg21.link/p2846r6"><div class="csl-block">https://wg21.link/p2846r6</div></a>
</div>
<div class="csl-entry" id="ref-P2893R3" role="doc-biblioentry">
[P2893R3] Jody Hagins, Arthur O’Dwyer. 2024-03-22. Variadic Friends. <a href="https://wg21.link/p2893r3"><div class="csl-block">https://wg21.link/p2893r3</div></a>
</div>
<div class="csl-entry" id="ref-P2897R7" role="doc-biblioentry">
[P2897R7] Mark Hoemmen, Damien Lebrun-Grandie, Nicolas Manual Morales,
Christian Trott. 2024-11-22. aligned_accessor: An mdspan accessor
expressing pointer overalignment. <a href="https://wg21.link/p2897r7"><div class="csl-block">https://wg21.link/p2897r7</div></a>
</div>
<div class="csl-entry" id="ref-P2900R14" role="doc-biblioentry">
[P2900R14] Joshua Berne, Timur Doumler, Andrzej Krzemieński. 2025-02-14.
Contracts for C++. <a href="https://wg21.link/p2900r14"><div class="csl-block">https://wg21.link/p2900r14</div></a>
</div>
<div class="csl-entry" id="ref-P2909R4" role="doc-biblioentry">
[P2909R4] Victor Zverovich. 2023-12-18. Fix formatting of code units as
integers (Dude, where’s my char?). <a href="https://wg21.link/p2909r4"><div class="csl-block">https://wg21.link/p2909r4</div></a>
</div>
<div class="csl-entry" id="ref-P2918R2" role="doc-biblioentry">
[P2918R2] Victor Zverovich. 2023-12-18. Runtime format strings II. <a href="https://wg21.link/p2918r2"><div class="csl-block">https://wg21.link/p2918r2</div></a>
</div>
<div class="csl-entry" id="ref-P2933R4" role="doc-biblioentry">
[P2933R4] Daniel Towner, Ruslan Arutyunyan. 2025-02-17. Extend
&lt;bit&gt; header function with overloads for std::simd. <a href="https://wg21.link/p2933r4"><div class="csl-block">https://wg21.link/p2933r4</div></a>
</div>
<div class="csl-entry" id="ref-P2937R0" role="doc-biblioentry">
[P2937R0] Ben Craig. 2023-07-02. Freestanding: Remove strtok. <a href="https://wg21.link/p2937r0"><div class="csl-block">https://wg21.link/p2937r0</div></a>
</div>
<div class="csl-entry" id="ref-P2944R3" role="doc-biblioentry">
[P2944R3] Barry Revzin. 2024-03-21. Comparisons for reference_wrapper.
<a href="https://wg21.link/p2944r3"><div class="csl-block">https://wg21.link/p2944r3</div></a>
</div>
<div class="csl-entry" id="ref-P2976R1" role="doc-biblioentry">
[P2976R1] Ben Craig. 2024-05-05. Freestanding Library: algorithm,
numeric, and random. <a href="https://wg21.link/p2976r1"><div class="csl-block">https://wg21.link/p2976r1</div></a>
</div>
<div class="csl-entry" id="ref-P2985R0" role="doc-biblioentry">
[P2985R0] Giuseppe D’Angelo. 2023-10-09. A type trait for detecting
virtual base classes. <a href="https://wg21.link/p2985r0"><div class="csl-block">https://wg21.link/p2985r0</div></a>
</div>
<div class="csl-entry" id="ref-P2997R1" role="doc-biblioentry">
[P2997R1] Barry Revzin, Tim Song. 2024-03-22. Removing the common
reference requirement from the indirectly invocable concepts. <a href="https://wg21.link/p2997r1"><div class="csl-block">https://wg21.link/p2997r1</div></a>
</div>
<div class="csl-entry" id="ref-P3019R11" role="doc-biblioentry">
[P3019R11] Jonathan Coe, Antony Peacock, Sean Parent. 2024-11-23.
Vocabulary Types for Composite Class Design. <a href="https://wg21.link/p3019r11"><div class="csl-block">https://wg21.link/p3019r11</div></a>
</div>
<div class="csl-entry" id="ref-P3050R2" role="doc-biblioentry">
[P3050R2] Mark Hoemmen. 2024-08-13. Fix C++26 by optimizing
linalg::conjugated for noncomplex value types. <a href="https://wg21.link/p3050r2"><div class="csl-block">https://wg21.link/p3050r2</div></a>
</div>
<div class="csl-entry" id="ref-P3068R6" role="doc-biblioentry">
[P3068R6] Hana Dusíková. 2024-11-19. Allowing exception throwing in
constant-evaluation. <a href="https://wg21.link/p3068r6"><div class="csl-block">https://wg21.link/p3068r6</div></a>
</div>
<div class="csl-entry" id="ref-P3074R7" role="doc-biblioentry">
[P3074R7] Barry Revzin. 2025-02-14. trivial unions (was
std::uninitialized&lt;T&gt;). <a href="https://wg21.link/p3074r7"><div class="csl-block">https://wg21.link/p3074r7</div></a>
</div>
<div class="csl-entry" id="ref-P3107R5" role="doc-biblioentry">
[P3107R5] Victor Zverovich. 2024-03-21. Permit an efficient
implementation of std::print. <a href="https://wg21.link/p3107r5"><div class="csl-block">https://wg21.link/p3107r5</div></a>
</div>
<div class="csl-entry" id="ref-P3137R3" role="doc-biblioentry">
[P3137R3] Tim Song. 2025-02-10. views::to_input. <a href="https://wg21.link/p3137r3"><div class="csl-block">https://wg21.link/p3137r3</div></a>
</div>
<div class="csl-entry" id="ref-P3138R5" role="doc-biblioentry">
[P3138R5] Tim Song. 2024-11-18. views::cache_latest. <a href="https://wg21.link/p3138r5"><div class="csl-block">https://wg21.link/p3138r5</div></a>
</div>
<div class="csl-entry" id="ref-P3168R2" role="doc-biblioentry">
[P3168R2] David Sankel, Marco Foco, Darius Neațu, Barry Revzin.
2024-06-25. Give std::optional Range Support. <a href="https://wg21.link/p3168r2"><div class="csl-block">https://wg21.link/p3168r2</div></a>
</div>
<div class="csl-entry" id="ref-P3222R0" role="doc-biblioentry">
[P3222R0] Mark Hoemmen. 2024-04-08. Fix C++26 by adding transposed
special cases for P2642 layouts. <a href="https://wg21.link/p3222r0"><div class="csl-block">https://wg21.link/p3222r0</div></a>
</div>
<div class="csl-entry" id="ref-P3235R3" role="doc-biblioentry">
[P3235R3] Victor Zverovich. 2024-06-26. std::print more types faster
with less memory. <a href="https://wg21.link/p3235r3"><div class="csl-block">https://wg21.link/p3235r3</div></a>
</div>
<div class="csl-entry" id="ref-P3287R3" role="doc-biblioentry">
[P3287R3] Matthias Kretz. 2025-02-13. Exploration of namespaces for
std::simd. <a href="https://wg21.link/p3287r3"><div class="csl-block">https://wg21.link/p3287r3</div></a>
</div>
<div class="csl-entry" id="ref-P3309R3" role="doc-biblioentry">
[P3309R3] Hana Dusíková. 2024-12-16. constexpr atomic and atomic_ref. <a href="https://wg21.link/p3309r3"><div class="csl-block">https://wg21.link/p3309r3</div></a>
</div>
<div class="csl-entry" id="ref-P3355R1" role="doc-biblioentry">
[P3355R1] Mark Hoemmen. 2024-10-15. Fix submdspan for C++26. <a href="https://wg21.link/p3355r1"><div class="csl-block">https://wg21.link/p3355r1</div></a>
</div>
<div class="csl-entry" id="ref-P3369R0" role="doc-biblioentry">
[P3369R0] Giuseppe D’Angelo. 2024-07-28. constexpr for
uninitialized_default_construct. <a href="https://wg21.link/p3369r0"><div class="csl-block">https://wg21.link/p3369r0</div></a>
</div>
<div class="csl-entry" id="ref-P3372R3" role="doc-biblioentry">
[P3372R3] Hana Dusíková. 2025-02-11. constexpr containers and adapters.
<a href="https://wg21.link/p3372r3"><div class="csl-block">https://wg21.link/p3372r3</div></a>
</div>
<div class="csl-entry" id="ref-P3378R2" role="doc-biblioentry">
[P3378R2] Hana Dusíková. 2025-02-11. constexpr exception types. <a href="https://wg21.link/p3378r2"><div class="csl-block">https://wg21.link/p3378r2</div></a>
</div>
<div class="csl-entry" id="ref-P3379R0" role="doc-biblioentry">
[P3379R0] Jonathan Wakely. 2024-08-27. Constrain std::expected equality
operators. <a href="https://wg21.link/p3379r0"><div class="csl-block">https://wg21.link/p3379r0</div></a>
</div>
<div class="csl-entry" id="ref-P3441R2" role="doc-biblioentry">
[P3441R2] Daniel Towner, Ruslan Arutyunyan. 2025-01-30. Rename
simd_split to simd_chunk. <a href="https://wg21.link/p3441r2"><div class="csl-block">https://wg21.link/p3441r2</div></a>
</div>
<div class="csl-entry" id="ref-P3471R4" role="doc-biblioentry">
[P3471R4] Konstantin Varlamov, Louis Dionne. 2025-02-14. Standard
Library Hardening. <a href="https://wg21.link/p3471r4"><div class="csl-block">https://wg21.link/p3471r4</div></a>
</div>
<div class="csl-entry" id="ref-P3508R0" role="doc-biblioentry">
[P3508R0] Giuseppe D’Angelo, Michael Schellenberger Costa. 2024-11-20.
Wording for constexpr for specialized memory algorithms. <a href="https://wg21.link/p3508r0"><div class="csl-block">https://wg21.link/p3508r0</div></a>
</div>
<div class="csl-entry" id="ref-P3542R0" role="doc-biblioentry">
[P3542R0] Brian Bi. 2024-12-16. Abolish the term <span>“converting
constructor.”</span> <a href="https://wg21.link/p3542r0"><div class="csl-block">https://wg21.link/p3542r0</div></a>
</div>
</div>
</div>
</div>
</body>
      
      
            
          </article>
    

    
  <footer>
    
    
    <div class="back-to-top">
      <a href="#">Back to Top</a>
    </div>
  </footer>

</div>

        </div>
        
        <div id="root-footer"></div>
      </div>
    </div>

    <footer id="bottom" role="contentinfo">
      <div class="container">
        &copy; <a href="/home/terms-of-use">Copyright</a> 2025 Standard C++ Foundation. 
        All rights reserved.
        <ul id="nav-sub">
<li class="first"><a href="https://isocpp.org/home/terms-of-use">Terms of Use</a></li>
<li class="last"><a href="https://isocpp.org/home/privacy-policy">Privacy Policy</a></li>
</ul>
        <br>Hosted by <a href="https://m.do.co/c/32f291566cf7" target="_blank">DigitalOcean</a>
        , supported by <a href="https://princexml.com/" target="_blank">Prince XML</a>
      </div>
    </footer>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="https://isocpp.org/javascript/jquery.min"><\/script>')</script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
    <script>window.jQuery.ui || document.write('<script src="https://isocpp.org/javascript/jquery-ui.min"><\/script>')</script>
    
    <script type="text/javascript" charset="utf-8" src="https://isocpp.org/?ACT=comment_editor"></script>
    <script type="text/javascript">
	        					$(document).ready(function() {
									$("*[id^=likee_]").click(function(){
										var ids = $(this).attr("id").split("_");
										if (ids[1]=="c"){
											id=ids[2];
											c="c_";
											isCom="true";
										} else {
											id=ids[1];
											c="";
											isCom="false";
										}
										
										$.ajax({
	   										type: "POST",
	   										url: "/std/standing-documents/sd-6-sg10-feature-test-recommendations",
	   										data: "likee=true&entry_id="+id+"&isCom="+isCom,
	   										success: function(msg){
	     										//alert( "Data Saved: " + msg );
	   										}
	 									});
	 									
	 									$(this).replaceWith("<strong>"+$(this).html()+"</strong>");
	 									$("#dislikee_"+c+id).replaceWith("<span>"+$("#dislikee_"+c+id).html()+"</span>");
	 									$("#scoreeCount_"+c+id).html(parseInt($("#scoreeCount_"+c+id).html())+1);
	 									$("#likeeCount_"+c+id).html(parseInt($("#likeeCount_"+c+id).html())+1);
	 									$("#likeeReplace_"+c+id).replaceWith("");
	 									$("#likeeShow_"+c+id).replaceWith($("#likeeShow_"+c+id).html());
									});
									
									$("*[id^=dislikee_]").click(function(){
										var ids = $(this).attr("id").split("_");
										if (ids[1]=="c"){
											id=ids[2];
											c="c_";
											isCom="true";
										} else {
											id=ids[1];
											c="";
											isCom="false";
										}
										$.ajax({
	   										type: "POST",
	   										url: "/std/standing-documents/sd-6-sg10-feature-test-recommendations",
	   										data: "dislikee=true&entry_id="+id+"&isCom="+isCom,
	   										success: function(msg){
	     										//alert( "Data Saved: " + msg );
	   										}
	 									});
	 									
	 									$(this).replaceWith("<strong>"+$(this).html()+"</strong>");
	 									$("#likee_"+c+id).replaceWith("<span>"+$("#likee_"+c+id).html()+"</span>");
	 									$("#scoreeCount_"+c+id).html(parseInt($("#scoreeCount_"+c+id).html())-1);
	 									$("#dislikeeCount_"+c+id).html(parseInt($("#dislikeeCount_"+c+id).html())+1);
	 									$("#likeeReplace_"+c+id).replaceWith("");
	 									$("#likeeShow_"+c+id).replaceWith($("#likeeShow_"+c+id).html());
									});
								
								});	
	        			  </script>
    
    <script type="text/javascript" src="/js/isocpp.lib.min.js"></script>
    <script type="text/javascript" src="/js/global.js"></script>

        
    <script type="text/javascript">
      $("#top nav a").each(function() {
        var aSeg1 = $(this).attr("href").replace("http://", "").replace("https://", "").split("/")[1];
        if (aSeg1 == "std") {$(this).parent().addClass("here");}
      });
    </script>

  </body>
</html>
