<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

   <meta http-equiv="content-type" content="text/html;charset=UTF-8">

   <style type="text/css">

   /*
CSS stylesheet is based on killwing's flavored markdown style:
https://gist.github.com/2937864
*/
body{
    margin: 0 auto;
    font: 13px/1.231 Helvetica, Arial, sans-serif;
    color: #444444;
    line-height: 1;
    max-width: 960px;
    padding: 5px;
}
h1, h2, h3, h4 {
    color: #111111;
    font-weight: 400;
}
h1, h2, h3, h4, h5, p {
    margin-bottom: 16px;
    padding: 0;
}
h1 {
    font-size: 28px;
}
h2 {
    font-size: 22px;
    margin: 20px 0 6px;
}
h3 {
    font-size: 21px;
}
h4 {
    font-size: 18px;
}
h5 {
    font-size: 16px;
}
a {
    color: #0099ff;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
}
a:link,a:visited{
 text-decoration:none;
}
a:hover{
 text-decoration:underline;
}
ul, ol {
    padding: 0;
    margin: 0;
}
li {
    line-height: 24px;
    margin-left: 44px;
}
li ul, li ul {
    margin-left: 24px;
}
ul, ol {
    font-size: 14px;
    line-height: 20px;
    max-width: 540px;
}

p {
    font-size: 14px;
    line-height: 20px;
    max-width: 540px;
    margin-top: 3px;
}

pre {
    padding: 0px 4px;
    max-width: 800px;
    white-space: pre-wrap;
    font-family: Consolas, Monaco, Andale Mono, monospace;
    line-height: 1.5;
    font-size: 13px;
    border: 1px solid #ddd;
    background-color: #f7f7f7;
    border-radius: 3px;
}
code {
    font-family: Consolas, Monaco, Andale Mono, monospace;
    line-height: 1.5;
    font-size: 13px;
    border: 1px solid #ddd;
    background-color: #f7f7f7;
    border-radius: 3px;
}
pre code {
    border: 0px;
}
aside {
    display: block;
    float: right;
    width: 390px;
}
blockquote {
    border-left:.5em solid #40AA53;
    padding: 0 2em;
    margin-left:0;
    max-width: 476px;
}
blockquote  cite {
    font-size:14px;
    line-height:20px;
    color:#bfbfbf;
}
blockquote cite:before {
    content: '\2014 \00A0';
}

blockquote p {  
    color: #666;
    max-width: 460px;
}
hr {
    height: 1px;
    border: none;
    border-top: 1px dashed #0066CC
}

button,
input,
select,
textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
}
button, input {
  line-height: normal;
  *overflow: visible;
}
button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
}
input[type=checkbox], input[type=radio] {
  cursor: pointer;
}
/* override default chrome & firefox settings */
input:not([type="image"]), textarea {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}

input[type="search"] {
  -webkit-appearance: textfield;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
label,
input,
select,
textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: normal;
  line-height: normal;
  margin-bottom: 18px;
}
input[type=checkbox], input[type=radio] {
  cursor: pointer;
  margin-bottom: 0;
}
input[type=text],
input[type=password],
textarea,
select {
  display: inline-block;
  width: 210px;
  padding: 4px;
  font-size: 13px;
  font-weight: normal;
  line-height: 18px;
  height: 18px;
  color: #808080;
  border: 1px solid #ccc;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
select, input[type=file] {
  height: 27px;
  line-height: 27px;
}
textarea {
  height: auto;
}

/* grey out placeholders */
:-moz-placeholder {
  color: #bfbfbf;
}
::-webkit-input-placeholder {
  color: #bfbfbf;
}

input[type=text],
input[type=password],
select,
textarea {
  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
  transition: border linear 0.2s, box-shadow linear 0.2s;
  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}
input[type=text]:focus, input[type=password]:focus, textarea:focus {
  outline: none;
  border-color: rgba(82, 168, 236, 0.8);
  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
  -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
}

/* buttons */
button {
  display: inline-block;
  padding: 4px 14px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 18px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  background-color: #0064cd;
  background-repeat: repeat-x;
  background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
  background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
  background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
  background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
  background-image: -o-linear-gradient(top, #049cdb, #0064cd);
  background-image: linear-gradient(top, #049cdb, #0064cd);
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  border: 1px solid #004b9a;
  border-bottom-color: #003f81;
  -webkit-transition: 0.1s linear all;
  -moz-transition: 0.1s linear all;
  transition: 0.1s linear all;
  border-color: #0064cd #0064cd #003f81;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
button:hover {
  color: #fff;
  background-position: 0 -15px;
  text-decoration: none;
}
button:active {
  -webkit-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
/* table  */
table {
    border-spacing: 0;
    border: 1px solid #ccc;
}
td, th{
    border: 1px solid #ccc;
    padding: 5px;
}
/* code syntax highlight.
Documentation: http://www.mdcharm.com/documentation/code_syntax_highlighting.html#custom_your_own
 */
pre .literal,
pre .comment,
pre .template_comment,
pre .diff .header,
pre .javadoc {
    color: #008000;
}

pre .keyword,
pre .css .rule .keyword,
pre .winutils,
pre .javascript .title,
pre .nginx .title,
pre .subst,
pre .request,
pre .status {
    color: #0000FF;
    font-weight: bold
}

pre .number,
pre .hexcolor,
pre .python .decorator,
pre .ruby .constant {
    color: #0000FF;
}

pre .string,
pre .tag .value,
pre .phpdoc,
pre .tex .formula {
    color: #D14
}

pre .title,
pre .id {
    color: #900;
    font-weight: bold
}

pre .javascript .title,
pre .lisp .title,
pre .clojure .title,
pre .subst {
    font-weight: normal
}

pre .class .title,
pre .haskell .type,
pre .vhdl .literal,
pre .tex .command {
    color: #458;
    font-weight: bold
}

pre .tag,
pre .tag .title,
pre .rules .property,
pre .django .tag .keyword {
    color: #000080;
    font-weight: normal
}

pre .attribute,
pre .variable,
pre .lisp .body {
    color: #008080
}

pre .regexp {
    color: #009926
}

pre .class {
    color: #458;
    font-weight: bold
}

pre .symbol,
pre .ruby .symbol .string,
pre .lisp .keyword,
pre .tex .special,
pre .prompt {
    color: #990073
}

pre .built_in,
pre .lisp .title,
pre .clojure .built_in {
    color: #0086b3
}

pre .preprocessor,
pre .pi,
pre .doctype,
pre .shebang,
pre .cdata {
    color: #999;
    font-weight: bold
}

pre .deletion {
    background: #fdd
}

pre .addition {
    background: #dfd
}

pre .diff .change {
    background: #0086b3
}

pre .chunk {
    color: #aaa
}

pre .markdown .header {
    color: #800;
    font-weight: bold;
}

pre .markdown .blockquote {
    color: #888;
}

pre .markdown .link_label {
    color: #88F;
}

pre .markdown .strong {
    font-weight: bold;
}

pre .markdown .emphasis {
    font-style: italic;
}

   </style>

   

   

</head>

<body>

    <h1>WG21 2017-07 Toronto Record of Discussion</h1>

<p>ISO/IEC JTC1 SC22 WG21 N4690 — 2017-08-03</p>

<p>Patrice Roy, <a href="mailto:Patrice.Roy@USherbrooke.ca">Patrice.Roy@USherbrooke.ca</a></p>

<p>July 10 - July 15, 2017 - Toronto, ON, Canada</p>

<p>Chair: Clark Nelson</p>

<h2>1. Opening activities (Monday 9:00)</h2>

<h3>1.1 Opening comments, welcome from host (PL22.16)</h3>

<p>Wong welcomes everyone, and thanks sponsors. He reminds people of a social event set for
Wednesday and for which registration is required.</p>

<h3>1.2 Meeting guidelines (PL22.16)</h3>

<p>Every participant is responsible for understanding and abiding by the <a href="http://www.incits.org/standards-information/legal-info">INCITS Antitrust Guidelines</a> and <a href="http://www.incits.org/dotAsset/63b6e457-53b9-4933-9835-7c74e77ca2fd.pdf">Patent Policy</a>
and the <a href="http://www.iso.org/iso/codes_of_conduct.pdf">ISO Code of Conduct</a>.</p>

<h3>1.3 Membership, voting rights, and procedures for the meeting (PL22.16)</h3>

<p>The chair requests that prospective PL22.16 members inform the chair (Nelson) 
or vice-chair (Spicer) that they are present.</p>

<p>Spicer explains the attendance sheet rules and requests people adding
themselves print their names clearly.</p>

<p>Sutter explains that the two-stage plenary session that was the norm in previous meetings
has been fused into a single plenary session scheduled for Saturday, 8:30 up to 14:00 at most.
There will be no plenary session on Friday afternoon.</p>

<p>Meredith expresses concern that 8:00 PM Friday deadline is a too late. Sutter states there is
room to adjust that deadline in future meetings. Nelson expresses hope that motions will be
displayed on the voting page before the deadline for the most part.</p>

<h3>1.4 Introductions</h3>

<p>Representatives from the following countries:</p>

<p>Canada
Finland
France
Poland
Russia
Spain
Switzerland
UK
US</p>

<h3>1.5 Agenda review and approval (PL22.16 motion)</h3>

<p>Agenda is in a revision of <a href="https://wg21.link/n4662">N4662</a>, posted on the wiki.</p>

<p>Clow moved to adopt the agenda, Dawes seconded.</p>

<p>Approved by unanimous consent (for both WG21 and .16 polls).</p>

<h3>1.6 Editor&#39;s reports, approval of working drafts</h3>

<table><thead>
<tr>
<th>Document</th>
<th align="center">Editor&#39;s Report</th>
<th align="center">Prospective WD</th>
</tr>
</thead><tbody>
<tr>
<td>C++20 Standard</td>
<td align="center"><a href="https://wg21.link/n4661">N4661</a></td>
<td align="center"><a href="https://wg21.link/n4659">N4659</a></td>
</tr>
<tr>
<td>Modules TS</td>
<td align="center"><a href="https://wg21.link/n4668">N4668</a></td>
<td align="center"><a href="https://wg21.link/n4667">N4667</a></td>
</tr>
<tr>
<td>Coroutines TS</td>
<td align="center"><a href="https://wg21.link/n4650">N4650</a></td>
<td align="center"><a href="https://wg21.link/n4649">N4649</a></td>
</tr>
<tr>
<td>Ranges TS</td>
<td align="center"><a href="https://wg21.link/n4672">N4672</a></td>
<td align="center"><a href="https://wg21.link/n4671">N4671</a></td>
</tr>
<tr>
<td>Networking TS</td>
<td align="center"><a href="https://wg21.link/n4657">N4657</a></td>
<td align="center"><a href="https://wg21.link/n4656">N4656</a></td>
</tr>
<tr>
<td>Parallelism TS</td>
<td align="center"><a href="https://wg21.link/n4670">N4670</a></td>
<td align="center"><a href="https://wg21.link/n4669">N4669</a></td>
</tr>
<tr>
<td>Concepts TS</td>
<td align="center"><a href="https://wg21.link/n4675">N4675</a></td>
<td align="center"><a href="https://wg21.link/n4674">N4674</a></td>
</tr>
</tbody></table>

<p>Approved by unanimous consent.</p>

<h3>1.7 Approval of the minutes of the previous meetings (PL22.16 motion)</h3>

<table><thead>
<tr>
<th>Meeting</th>
<th align="center">Minutes</th>
</tr>
</thead><tbody>
<tr>
<td>WG21 Kona</td>
<td align="center"><a href="https://wg21.link/n4654">N4654</a></td>
</tr>
<tr>
<td>PL22.16 Kona</td>
<td align="center"><a href="https://wg21.link/n4655">N4655</a></td>
</tr>
<tr>
<td>WG21 pre-Toronto administrative telecon</td>
<td align="center"><a href="https://wg21.link/n4676">N4676</a></td>
</tr>
</tbody></table>

<p>Adlestein-Lelbach moved to accept the PL22.16 Kona minutes, Alday seconded.
Approved by unanimous consent.</p>

<p>WG21 minutes approved by unanimous consent.</p>

<h2>2. Liaison reports, and WG21 study group reports (see pre-meeting WG21 telecon minutes)</h2>

<p>Already summarized in the pre-meeting minutes</p>

<h2>3. WG progress reports and work plans for the week (Core, Evolution, Library, Library Evolution)</h2>

<p>Already summarized in the pre-meeting minutes</p>

<h2>4. New business requiring action by the committee</h2>

<p>Nothing was mentioned for this item</p>

<h2>5. Organize working groups and study groups, establish working procedures</h2>

<p>(Clarify rooms available for evening sessions)</p>

<h2>6. WG and SG sessions</h2>

<p>The WG and SG chairs must arrange for any proposals to be written up in the
form of a motion, and made available by 8:00 PM Friday.</p>

<h2>7. Review of the meeting (Saturday 8:30 AM)</h2>

<p>WG and SG status and progress reports. Presentation and discussion of proposals
to be considered for consensus adoption by full WG21.</p>

<p>Sutter reminds members of the rules for transcripts and other ways of contributing
to social media, e.g. not while the plenary session is ongoing</p>

<p>Sutter describes the voting procedures, including voting rights</p>

<p>Sutter informs members that today is Nelson&#39;s last meeting as WG21 chair &gt;applause&lt;</p>

<p>Spicer is expected to chair starting with the Albuquerque meeting. It seems probable
that Finkel will serve as co-chair. This remains to be confirmed</p>

<p><strong>SG5: Transactional memory (Wong)</strong></p>

<p>We continue to meet regularly and are currently discussing the effects of <code>shared_ptr</code> inside a transaction because of how often <code>shared_ptr</code> exists in real code. </p>

<p>The central question we have been exploring is how fast can atomics and smart ptrs be outside a transaction if they have to interact with a transaction. One possible solution to make transactional <code>shared_ptr</code> safe to use is to make non-transactional <code>shared_ptr</code> (code outside of transactions) be converted into a mini-transactional section (just containing the <code>shared_ptr</code>). This way transactional <code>shared_ptr</code> knows how to interact with them</p>

<p><strong>SG6: Numerics (Brown, replacing Crowl)</strong></p>

<p>Thanks those who came. Looked at five papers, rejected one, sent one to LWG (to be
processed at ulterior meetings), sent others back to authors with feedback.</p>

<p><strong>SG7: Reflection/Compile-Time Programming (Carruth)</strong></p>

<p>Held an evening session. Looked at three things: expanding basic reflection / introspection,
high-level metaprogramming, and a primary use-case for code injection in the library through
Sutter&#39;s metaclass proposal.</p>

<p>Gave feedback to authors. No paper was sent to any Working Group. Encouragement given to
Sutter to pursue the metaclass work.</p>

<p>Some papers not discussed have finished progressing through LEWG and are going to LWG</p>

<p><strong>SG10: Feature test (Nelson)</strong></p>

<p>Sutter brought a paper to EWG to reconsider how SG10 recommandations are handled. Essentially,
SG10 plans to &quot;take it slow&quot;. Moving in direction to make WG21 vote on the actual document. No
radical changes during this meeting</p>

<p>Q: support for requiring feature-test macro?</p>

<p>Nelson: not for the moment</p>

<p>Tong: the straw polls page referenced no feature-test document to approve</p>

<p>Nelson: that was intentional; we weren&#39;t ready to take such a step at this meeting</p>

<p>Sutter: consensus is to leave it as a standalone document</p>

<p>Voutilainen: EWG does not want to reconsider its approach at this time</p>

<p>Nelson: should WG21 approve this in plenary, we need more work to be done in working groups
first. There is no motion to move today</p>

<p><strong>SG12: Undefined and unspecified behavior (Dos Reis)</strong></p>

<p>Met on Thursday afternoon. We had Stephen Michell, chair of WG23, come and explain the work
they do. We looked at how SG12 could establish collaboration work with WG23 and bring sensible
recommendations with respect to C++. We will try to have colocated meetings starting with the
Albuquerque meeting</p>

<p>Today, WG23 shows &quot;this is bad code, don&#39;t do this&quot;. SG12 looks to guide users in writing
better code and provide guidance for this. We want to give C++ a more accurate image to WG23.</p>

<p>We looked at Lippincott&#39;s paper on assertion semantics.</p>

<p>We looked at a paper on <code>memcpy()</code> and object lifetime, and were Ok with its direction, so EWG
will have a paper on this topic at Albuquerque</p>

<p><strong>SG14: Games &amp; low latency (Wong)</strong></p>

<p>SG14 holds monthly telecon calls. Lately, we&#39;ve addressed slot-maps, fixed point, ring span,
hazard pointers, RCU, thread attributes, intrusive containers, colony and stack, heterogeneous
computing, etc.</p>

<p>We have people everywhere in various subcommittees. We hope to have some papers get into C++20 </p>

<p><strong>SG1: Concurrency (Boehm)</strong></p>

<p>We met all week, and discussed the Concurrency TS in order to get it into C++20. We ended up
moving small pieces</p>

<p>We discussed latches and barriers. We&#39;re moving latches as is, but agreed that a part of the
barrier design will need to be revisited. We hope to bring it into C++20</p>

<p>We moved Meredith&#39;s paper for atomic smart pointers. The feature is controversial but we agreed
the proposal is an improvement. This is being renamed, and deprecates the old facilities</p>

<p>The <code>future.then()</code> feature was expected to be controversial but in the end it wasn&#39;t, as the vote
was very much against. Everyone wants it, but everyone agrees it needs more work. There are
pieces that are ready and will move forward</p>

<p>We talked a lot about the memory model. We had academic papers proving it correct on PowerPC
where it actually wasn&#39;t. However, it turns out there are good architectural reasons for them to
do what they do on PowerPC</p>

<p>There are plans to strenghten <code>memory_order_seq_cst</code> fences and make them more usable</p>

<p>Nothing will be moved today for Parallellism TS v2</p>

<p>The Concurrency TS v2 does not yet exist but we talked about it. We have a variant of
<code>joining_thread</code> with collaborative cancellation; we think it&#39;s missing something and are trying
to convince the author of that &gt;laughs!&lt;</p>

<p>One high-level technique we hope to advertise to programmers has been brought up</p>

<p>Stackful coroutines were discussed, as well as ways to better preserve SG1 history and avoid
repeating ourselves</p>

<p>Thanks the minute-takers &gt;applause&lt;</p>

<p>Q: does the paper about stackful coroutines target the Coroutines TS?</p>

<p>Boehm: it would be a different TS. There was prior consensus that they do different things
from what the stackless coroutines do</p>

<p><strong>Evolution (Voutilainen)</strong></p>

<p>We did some patching of our existing functionality for template argument deduction</p>

<p>There was no consensus for argument binding</p>

<p>There were comments on the coroutines TS</p>

<p>For modules, we approved an interface syntax. There was no consensus about partitions.
Evolution supports the insertion of a word at the top to identify modules. Issues were
raised</p>

<p>We had design consensus on concepts, and continue exploration on how to get an
abbreviated syntax. Many thanks to Core for getting the wording ready &gt;applause&lt;</p>

<p>There are forthcoming bits: we are moving forward with type-constrained lambdas, new
uses of template. We want to make some forms on new valid in constant expressions</p>

<p>We talked about Lippincott&#39;s paper on assertions</p>

<p>Maurer: the modifications to modules are on issues list?</p>

<p>Voutilainen: yes</p>

<p><strong>Library Evolution (Yasskin)</strong></p>

<p>Bad news: we did not get through about 40 papers. I will set-up a spreadsheet to get
reviews in between meetings</p>

<p>We missed two papers due to inappropriate audience; they were sent to the wrong working
group</p>

<p>We finished NB comments on coroutines, ranges and networking</p>

<p>We looked at a paper for integrating contracts into the library</p>

<p>We have paper for integrating concepts into the library</p>

<p>We approved two DRs against C++17, and started removing deprecated features</p>

<p>SIMD, static reflection and <code>atomic_shared_ptr</code> were forwarded to LWG</p>

<p>We are getting closer to a 2D graphics TS</p>

<p>We reviewed Sutter&#39;s spaceship operator, several containers (thanks SG14), as well as
several papers on text and Unicode</p>

<p>My time as chair of LEWG is almost done. Winters should chair LEWG starting with
the Jacksonville meeting</p>

<p><strong>Core (Miller)</strong></p>

<p>Core has been meeting intensively all week. We did almost all review material instead
of issues processing. There will be no ready issues for Albuquerque, but there might be
some tentatively ready issues following telecons we will hold in the meantime</p>

<p>TS-related material proposals for C++20</p>

<p>There were Core-related NB comments for PDTS ballot of Coroutines. Overall motions on
this are to be handled by LWG</p>

<p>We reviewed a requested change for the range-based for</p>

<p>We spent time on the Parallelism TS&#39;s vector wavefront policies</p>

<p>C++20 material not moved this meeting includes conversions to arrays of unknown bound
(progressing well, expected for Albuquerque)</p>

<p>Voutilainen: does it need to return to Evolution?</p>

<p>Miller: no</p>

<p>Being able to use the <code>template</code> keyword in unqualified ids, to avoid the compiler seeing
<code>&#39;&lt;&#39;</code> as a less-than symbol. Spicer and Smith are working on a different approach, approved
by EWG. This should not affect existing well-formed programs</p>

<p>Vandevoorde mentions the following case:</p>

<pre><code>f&lt;x&gt;(1);
</code></pre>

<p>with <code>f</code> a function of type <code>F</code> and <code>x</code> a value of class type <code>X</code>, which could today be valid in
the presence of an overloaded operator like:</p>

<pre><code>int operator&lt;(F&amp;, X);
</code></pre>

<p>whereas with the new rule it will now be invalid.</p>

<p>We looked at lambdas in unevaluated contexts. We do not have a conclusion yet</p>

<p>Meredith: is it correct that we&#39;re accepting the for loop from the ranges TS, but we
rejected doing so for the coroutines TS as it would have been too soon?</p>

<p>Miller: I was not involved in the other session. I do not know the answer</p>

<p>Voutilainen: I suppose we need to do a DR</p>

<p>C++20 motions include default member initialization for bitfields, fixing <code>const</code>-qualified
pointer to members, allowing lambda capture of <code>[=,this]</code>, comma omission and deletion in
macro expansion, designated initializers (a subset only of the similar C facility, due to
differences in the way objects are initialized), template parameter syntax for generic
lambdas, constructor template argument deduction vs <code>initializer_list</code> constructors (copy,
not wrap, following EWG recommendation in Kona), and concepts</p>

<p>We will be moving integration of the modified concepts TS today</p>

<p>We will have a PDTS motion for modules with a single substantive change: require a
syntactic identification of the interface module to distinguish it from the
implementation modules </p>

<p>We normally produce a document for a ballot based on a working draft approved at the
beginning of the week, which we vote at the end. For modules this week, there was only one
proposal document, but we changed a lot of the syntactic descriptions and touched the
grammar so we wanted to make sure people could see what we did. Thus, we are bringing a
complete, revised document for straw poll instead of bringing changes to apply to a document.</p>

<p>This means you can look at the actual document to see if you like it. We are not taking a
separate vote on the changes. If you do not like them, vote against the document</p>

<p>Sutter: this is not the first time we did this; we went that way for Ranges too. Thanks
for doing the extra work</p>

<p>Miller: we thought it would be helpful to present the merged document at the current meeting</p>

<h4>CWG Motions</h4>

<p><strong>Motion 1</strong>
Move to accept as Defect Reports the issues in P0710R1 (Core Language &quot;ready&quot; issues) and apply their proposed resolutions to the C++ working paper.</p>

<p>Miller: this is an R1, as with the document in the pre-meeting mailing there were concerns
on an issue and we adjusted accordingly</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 2</strong>
Move to accept as Defect Reports the issues in P0711R0 (Core Language &quot;tentatively ready&quot; issues) and apply their proposed resolutions to the C++ working paper.</p>

<p>Miller: tentatively ready means they were worked on during teleconferences</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 3</strong>
Move to accept as Defect Reports the issues in P0727R0 (Core Issue 1299: Temporary objects vs temporary expressions) and apply their proposed resolutions to the C++ working paper.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 4</strong>
Move to apply the changes in P0683R1 (Default member initializers for bit-fields (revision 1)) to the C++ working paper.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 5</strong>
Move to apply the changes in P0704R1 (Fixing const-qualified pointers to members) to the C++ working paper.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 6</strong>
Move to apply the changes in P0409R2 (Allow lambda capture [=, this]) to the C++ working paper.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 7</strong>
Move to apply the changes in P0306R4 (Comma omission and comma deletion) to the C++ working paper.</p>

<p>Q: intent to reach out to the C committee with this?</p>

<p>Köppe: it has been presented to WG14. They seem to want it</p>

<p>Nelson: there is general agreement</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 8</strong>
Move to apply the changes in P0329R4 (Designated Initialization Wording) to the C++ working paper.</p>

<p>Garçia: I have reservation that this feature promotes a low-level style of programming,
leading to things that can be done with constructors</p>

<p>Smith: one cannot achieve C compatibility with constructors</p>

<p>Romer: when passing a large number of arguments to an API, using an &quot;options struct&quot; can give
cleaner syntax with names at the call site</p>

<p>Voutilainen: we should not reopen Evolution discussion</p>

<p>Sutter: it&#39;s fine to raise concerns, but we do not want to extend technical discussions to plenary</p>

<p>Voutilainen: Evolution discussed this extensively and sent it forward</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">39</td>
<td align="center">2</td>
<td align="center">2</td>
</tr>
</tbody></table>

<p>Motion passed.</p>

<p><strong>Motion 9</strong>
Move to apply the changes in P0428R2 (Familiar template syntax for generic lambdas) to the C++ working paper.</p>

<p>Joly: I think it complicates the definition of lambdas, and I see an intersection with concepts
as syntax resembles suggested terse syntax. I will oppose this</p>

<p>Dionne: all this does is allow specifying the types of the parameter list in a lambda. It does not
touch concepts</p>

<p>Sutter: was this discussed in Evolution, and if so, what was the result?</p>

<p>Voutilainen: I am not sure &gt;laughs&lt;</p>

<p>García: lambda syntax is meant to write simple functions in a short way. This helps write long lambdas</p>

<p>Spicer: it&#39;s already possible to write long lambdas. This is important functionality, don&#39;t use it if
you don&#39;t want it</p>

<p>Voutilainen: the support for this proposal was very strong</p>

<p>Vandevoorde: sometimes, this shortens lambdas</p>

<p>Voutilainen: this makes lambdas and functions more uniform</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">41</td>
<td align="center">2</td>
<td align="center">4</td>
</tr>
</tbody></table>

<p>The two that opposed were national body representatives (Spain, France), but speaking for themselves,
not for their respective national bodies</p>

<p>Motion passed.</p>

<p><strong>Motion 10</strong>
Move to apply the changes in P0702R1 (Language support for Constructor Template Argument Deduction) to the C++ working paper and accept it as a Defect Report.</p>

<p>Josuttis: I thought this was already in C++17</p>

<p>Spertus: is this a DR?</p>

<p>Miller: it is a defect report against C++17</p>

<p>Voutilainen: some implementers have already implemented the proposal</p>

<p>Sutter: C++17 is not being discussed, as it is in ballot. We should be saying &quot;against the C++20
working paper&quot;</p>

<p>Miller: agreed. For C++20, but as a DR</p>

<p>Meredith: was this discussed in LEWG or LWG</p>

<p>Yasskin: not this week</p>

<p>Clow: not this week</p>

<p>Josuttis: it was discussed in prior meetings</p>

<p>Carruth: it fixes an inconsistency in the feature for a special case where the wording did not say
what we meant</p>

<p>Miller: it was a slightly controversial change. There was consensus after the change that this was
what it should say, but that consensus was not there at first</p>

<p>Meredith: it seems to me to be a &quot;different consistency&quot; more than fixing an inconsistency</p>

<p>Carruth: there was clear consensus in Evolution to make that case behave as proposed to unify the
feature, after discussion</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">36</td>
<td align="center">4</td>
<td align="center">8</td>
</tr>
</tbody></table>

<p>Motion passed.</p>

<p><strong>Motion 11</strong>
Move to apply the changes in P0734R0 (Wording Paper, C++ extensions for Concepts) to the C++ working paper.</p>

<p>Voutilainen: two days ago, I asked Smith if we would see that motion in plenary. He bet me a dollar.
Here it is Sir (gives a dollar to Smith) &gt;applause&lt;</p>

<p>Sutter: thanks Core for all the work &gt;applause&lt;</p>

<p>Miller: it&#39;s very impressive to know this is an R0 paper for something discussed since Bristol</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">41</td>
<td align="center">2</td>
<td align="center">6</td>
</tr>
</tbody></table>

<p>Motion passed.</p>

<p><strong>Motion 12</strong>
Move to direct the convener to transmit N4681 (Working Draft, Extensions to C++ for Modules) for PDTS ballot. </p>

<p>Miller: this document has the usual disclaimer of being incomplete, but the content after the
first page is exactly what will be balloted</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">33</td>
<td align="center">8</td>
<td align="center">7</td>
</tr>
</tbody></table>

<p>Motion passed.</p>

<p><strong>Library (Clow)</strong></p>

<p>LWG worked late in the night in the last few meetings. We expected more reasonable work hours
this time, but no</p>

<p>We have 24 motions, including three TSs being sent. Congratulations to all the authors</p>

<p>We have a couple of DRs against C++17</p>

<p>LEWG sent us many things, around six papers, about half of which we got to</p>

<p>We reviewed future work, including span, scope_guard, synchronized_ostream</p>

<p>There will be many issues in ready status after this meeting</p>

<p>I edited the motions page this morning, one non-normative (I added the numbers, as all of the
motions were numbered &#39;N&#39;) and one normative as motions 32-33 are now DRs. I had failed to
put them on the motions page</p>

<p>I would like to thank our scribe Billy &gt;applause&lt; and everyone who worked really hard to get
these motions out</p>

<h4>LWG Motions</h4>

<h5>Coroutines TS</h5>

<p><strong>Motion 13</strong>
Move that we apply the changes in P0664R1 (Coroutine TS NB Comments / Issues) to the Coroutines TS.</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">43</td>
<td align="center">1</td>
<td align="center">3</td>
</tr>
</tbody></table>

<p>Motion passed.</p>

<p>Vollmann says his voting against due to unsatisfactory resolution of his NB comments</p>

<p><strong>Motion 14</strong>
Move that we appoint an editing committee of Geoffrey Romer, Bryce Lelbach, Gor Nishanov, and Marshall Clow, to verify the correctness of the Coroutines TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.</p>

<p>Meredith: we can do this because the PDTS ballot came in with essentially no &quot;no&quot; vote</p>

<p>Sutter: TSs now have just one ballot. We vote, we publish</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">45</td>
<td align="center">2</td>
<td align="center">4</td>
</tr>
</tbody></table>

<p>Motion passed.</p>

<h5>Ranges TS</h5>

<p><strong>Motion 15</strong>
Move that we apply the changes in P0663R0 (Ranges TS “Ready” Issues for the July 2017 (Toronto) meeting) to the Ranges TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 16</strong>
Move that we apply the changes in P0740R0 (Ranges TS “Immediate” Issues for the July 2017 (Toronto) meeting) to the Ranges TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 17</strong>
Move that we apply the changes in P0541R1 (Ranges TS: Post-Increment on Input and Output Iterators) to the Ranges TS.</p>

<p>Clow: all papers that follow in this section respond to NB comments on the Ranges TS</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 18</strong>
Move that we apply the changes in P0547R2 (Ranges TS: Assorted Object Concept Fixes) to the Ranges TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 19</strong>
Move that we apply the changes in P0579R1 (Constexpr for <code>&lt;experimental/ranges/iterator&gt;</code>) to the Ranges TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 20</strong>
Move that we apply the changes in P0651R1 (Switch the Ranges TS to Use Variable Concepts) to the Ranges TS.</p>

<p>Sommerlad: the Ranges TS was based on C++14, but we just changed the syntax for concepts. What
does it imply?</p>

<p>Niebler: the Ranges TS is based on concepts as published</p>

<p>Joly: does the fact that we now only use variable concepts impact the Ranges TS?</p>

<p>Niebler: we will have to adapt a few things</p>

<p>Sutter: we expect the results of motion 22 to help in doing that before Albuquerque</p>

<p>Herring: do I understand that changes this week will help work on the Ranges TS in the future?</p>

<p>Clow: exact</p>

<p>Niebler: all changes are syntactic</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 21</strong>
Move that we apply the changes in P0662R0 (Wording for Ranges TS Issue 345 / US-2: Update ranged-for-loop wording) to the Ranges TS.</p>

<p>Maurer: wasn&#39;t this a Core motion?</p>

<p>Clow: yes, but we&#39;re moving it</p>

<p>Miller: it has Core wording but we did not move this</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 22</strong>
Move that we appoint an editing committee of Eric Niebler, Casey Carter, Marshall Clow and Guy Davidson to verify the correctness of the Ranges TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.</p>

<p>Approved by unanimous consent</p>

<h5>Networking TS</h5>

<p><strong>Motion 23</strong>
Move that we apply the changes in P0728R0 (Wording for Networking PDTS ballot comment 005) to the Networking TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 24</strong>
Move that we apply the changes in P0729R0 (Proposed wording for Networking TS NB comment GB 9) to the Networking TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 25</strong>
Move that we apply the changes in P0742R0 (Wording for Networking PDTS ballot comment resolutions) to the Networking TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 26</strong>
Move that we apply the changes in P0746R0 (Wording for Networking PDTS ballot comment 011 (US-10)) to the Networking TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 27</strong>
Move that we apply the changes in P0747R1 (Wording for Networking PDTS ballot comment 026 (GB-15), but not 027 (GB-16)) to the Networking TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 28</strong>
Move that we apply the changes in P0748R0 (Wording for Networking PDTS ballot comments on reentrancy) to the Networking TS.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 29</strong>
Move that we appoint an editing committee of Jonathan Wakely, Chris Kohlhoff, Lars Gullik Bjønnes, Mikael Kilpeläinen, and Marshall Clow to verify the correctness of the Networking TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.</p>

<p>Approved by unanimous consent</p>

<h5>Parallelism TS</h5>

<p><strong>Motion 30</strong>
Move that we apply the changes in P0076R4 (Vector and Wavefront Policies) to the Parallelism TS V2. </p>

<p>Approved by unanimous consent</p>

<h5>C++ Working Paper</h5>

<p><strong>Motion 31</strong>
Move to apply to the C++ working paper the proposed resolutions of all of the issues in P0698R0 (C++ Standard Library Issues to be moved in Toronto).</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 32</strong>
Move to apply to the C++ working paper the proposed resolutions of all of the issues in P0699R0 C++ Standard Library Issues Resolved Directly In Toronto.</p>

<p>Clow: there are two issues moved as DRs against C++17. One is in allocation support for variant
(it was not implementable), and we had failed to remove it from the C++ standard. Another is in
filesystem, as something referred to a part that had been removed, so we fixed that</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 33</strong>
Move that we apply the changes in P0463R1 (Endian just Endian) to the C++ working paper.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 34</strong>
Move that we apply the changes in P0682R1 (Repairing elementary string conversions) to the C++ working paper. This also resolves LWG issue 2955.</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 35</strong>
Move <ins>to acccept as a Defect Report and</ins><del>that we</del> apply the changes in P0739R0 (Some improvements to class template argument deduction integration into the standard library) to the C++ working paper.</p>

<p>Clow: LEWG considered that they had passed it on to us, expecting it to be accepted as a
DR against C++17. Along the way, information got lost and we did not process it right away,
so I might come back with the same paper in Albuquerque to treat is as a DR</p>

<p>Tong: are we presuming that the DIS will pass?</p>

<p>Clow: yes. If it does not, we will have a lot to do</p>

<p>Yasskin: can we make it a DR now? Unless it causes discomfort...</p>

<p>Maurer: this changes the signature of a constructor in an incompatible way</p>

<p>Clow: it is intentional</p>

<p>Sutter: there is the option of asking the whole group assembled here if they are willing
to accept it as a DR</p>

<p>Sutter: is there any objection to treating it as a DR?</p>

<p>(no objection)</p>

<p>Approved by unanimous consent</p>

<p><strong>Motion 36</strong>
Move that we apply the changes in P0674R1 (Extending make_shared to Support Arrays) to the C++ working paper. This also resolves LWG issue 2070. </p>

<p>Maurer: should this be treated as a DR?</p>

<p>Clow: we did not discuss this as such</p>

<p>Sutter: the process was different in this case. We can discuss it in Albuquerque</p>

<p>Myers: who wants this?</p>

<p>Clow: Peter Dimov</p>

<p>Yasskin: I do not personally remember this paper. It was processed earlier than Kona</p>

<p>Josuttis: it solves the inconsistency with <code>unique_ptr</code></p>

<p>Myers: we will be voting against this</p>

<p>Tong: I&#39;d like to ask a question about the process in motion 35</p>

<p>Sutter: out of order</p>

<p>Objection to unanimous consent</p>

<table><thead>
<tr>
<th align="center">Favor</th>
<th align="center">Opposed</th>
<th align="center">Abstain</th>
</tr>
</thead><tbody>
<tr>
<td align="center">34</td>
<td align="center">1</td>
<td align="center">14</td>
</tr>
</tbody></table>

<p>Motion passed.</p>

<p>Tong: am I to understand that we expect an FDIS ballot?</p>

<p>Sutter: if the DIS ballot succeeds, we can avoid the FDIS ballot and go directly
to IS. If there is opposition from a NB to the DIS, we will have to do an FDIS</p>

<p>Voutilainen: we are not doing anything to... (missed it)</p>

<p>Tong: the response from WG21 would be no consensus for that change, no?</p>

<p>Sutter: we will deal with it if it happens, but... please don&#39;t do that &gt;laughs!&lt;.
Please don&#39;t do things such as requesting new features at this stage. Do that for C++20</p>

<p>Sutter: from our point of view, we finished the technical work for C++17 in Kona, and
we&#39;re moving on to C++20</p>

<p>Nelson: we have finished the motions &gt;applause&lt;</p>

<p>Sutter: now, for the direction group</p>

<p>Stroustrup: we want to make a list of changes to describe how we&#39;d like to deal with
those changes. Winters will prepare something for vote in Albuquerque. We will try to
gather feedback for the Bill of Rights and return in Albuquerque. Dawes will look for
a way to gather library proposals</p>

<h2>8. Closing activities (Saturday 11:16)</h2>

<p>Nelson: if you did not check your mark on the attendance sheet, go see Spicer after the meeting</p>

<p>Nelson: I have an announcement. INCITS has sent an email about fees, but it contained an
important piece of information: the fees are less for small companies and those in education,
but you have to tell INCITS by August 30 if you want to benefit from this</p>

<p>Brown: I have two brief motions. I want to move to thank the host &gt;applause&lt;. I would also like
us to thank the following:</p>

<ul>
<li>The officers and convener,</li>
<li>The project editors (and their minions),</li>
<li>The WG and SG chairs,</li>
<li>The note-takers/scribes,</li>
<li>The paper authors and their reviewers,</li>
<li>The bringers of treats,</li>
<li>Those who subsidize and facilitate our participation,</li>
<li>Our C++ colleagues everywhere,
and</li>
<li>Our loved ones, who do without us as we labor on C++!</li>
</ul>

<h3>8.1 PL22.16 motions, if any</h3>

<p>None.</p>

<h3>8.2 Issues delayed until today</h3>

<p>None.</p>

<h2>9. Plans for the future (PL22.16)</h2>

<h3>9.1 Next and following meetings</h3>

<ul>
<li>2017-11-06/11: Albuquerque, NM, US (<a href="https://wg21.link/n4633">N4633</a>)</li>
</ul>

<p>Edwards: as a FYI, my company is not allowed to cover food and drinks. The hotel
room rates are very low and it provides breakfast and lunch. You have to call the
hotel to get the rates. We can facilitate a social event but we cannot sponsor it
due to company rules, so if you want to sponsor one, contact me</p>

<ul>
<li>2018-03-12/17: Jacksonville, FL, US</li>
<li>2018-06-04/09: Rapperswil, CH (<a href="https://wg21.link/n4673">N4673</a>)</li>
</ul>

<p>Sutter: Sommerlad has informed me that it might be good to make reservations now
as there will be a triathlon at the same time and there will be many people there</p>

<p>Sommerlad: there are other accommodations not too far away (1-2 trains stops) should
it be required, but they are not as convenient</p>

<p>Sutter: in the fall of 2018, the dates are not chosen yet, but we are looking to
San Diego</p>

<p>Sutter: I have a queue of European hosts. The plan is, for 2019, to go to Northern
Ireland in Belfast (Caves reacts!), which Orr claims is safe &gt;laughs!&lt;</p>

<p>Spicer: to be clear, it is permitted to send papers more than 24 hours before the
deadline &gt;laughs!&lt;</p>

<p>Sutter: in 2020, we are looking at Bulgaria on the coast of the Black Sea (Zeren
describes)</p>

<p>Sutter: is there any objection to holding a meeting in Cologne during 2019? (approximately
16 hands go up)</p>

<p>Adlestein-Lelbach: for us, it&#39;s a different approval process to &quot;go international&quot;</p>

<p>Sutter: &quot;takes longer&quot; is not a problem, but &quot;can&#39;t come&quot; would be. Follow-up discussions
will occur on the reflector</p>

<p>Riegel: for some of us, travelling three times per year across the Atlantic like in 2017
is quite costly</p>

<p>Sutter: for how many of you have the three North-American meeting of 2017 be a problem?
(approximately 16 hands go up)</p>

<p>Meredith: show of hands to see for whom it&#39;s a hardship to come to North America 2-3 times
per year (hands go up, but there was no count as far as I know)</p>

<h3>9.2 Mailings</h3>

<ul>
<li>2017-07-31: Post-Toronto</li>
<li>2017-10-16: Pre-Albuquerque</li>
</ul>

<p>Deadline for papers is 14:00 UTC.</p>

<p>Meredith: do we send the papers to Spicer?</p>

<p>Nelson: yes</p>

<h2>10. Adjournment (PL22.16 motion)</h2>

<p>Clow moved to adjourn. Hedquist seconded.</p>

<p>Plenary concludes at 11:40 AM</p>

<h2>11. Attendance</h2>

<p>The column &quot;WG21&quot; designates official PL22.16 or WG21 status (&quot;P&quot;, &quot;A&quot;, &quot;E&quot;, &quot;M&quot;)</p>

<p>The column &quot;PL22.16&quot; indicates organizations eligible to vote by &quot;V&quot;, and advisory membership by &quot;A&quot;.</p>

<h3>PL22.16 members</h3>

<table><thead>
<tr>
<th>Company / Organization</th>
<th align="center">NB</th>
<th>Representative</th>
<th align="center">WG21</th>
<th align="center">PL22.16</th>
</tr>
</thead><tbody>
<tr>
<td>Amazon</td>
<td align="center"></td>
<td>Louis Dionne</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Amazon</td>
<td align="center"></td>
<td>John McFarlane</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>AMD</td>
<td align="center"></td>
<td>Siu Chi Chan</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>Apple</td>
<td align="center"></td>
<td>Duncan Exon Smith</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Apple</td>
<td align="center">CA</td>
<td>JF Bastien</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Apple</td>
<td align="center"></td>
<td>Tim Northover</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Apple</td>
<td align="center"></td>
<td>Bruno Cardoso Lopes</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Argonne National Lab</td>
<td align="center"></td>
<td>Hal Finkel</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Bloomberg</td>
<td align="center"></td>
<td>John Lakos</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Bloomberg</td>
<td align="center">UK</td>
<td>Alisdair Meredith</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Bloomberg</td>
<td align="center">UK</td>
<td>Dietmar Kühl</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Bloomberg</td>
<td align="center"></td>
<td>David Sankel</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Bloomberg</td>
<td align="center"></td>
<td>Alexander Beels</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>Brown</td>
<td align="center"></td>
<td>Walter E. Brown</td>
<td align="center">E</td>
<td align="center"></td>
</tr>
<tr>
<td>Cisco Systems</td>
<td align="center"></td>
<td>Lars Gullik Bjønnes</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Edison Design Group</td>
<td align="center"></td>
<td>John H. Spicer</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Edison Design Group</td>
<td align="center"></td>
<td>Daveed Vandevoorde</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Edison Design Group</td>
<td align="center"></td>
<td>Jens Maurer</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Edison Design Group</td>
<td align="center"></td>
<td>William M. Miller</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>EPAM Systems Inc</td>
<td align="center"></td>
<td>Mateusz Pusz</td>
<td align="center">P</td>
<td align="center"></td>
</tr>
<tr>
<td>Facebook</td>
<td align="center"></td>
<td>Louis Brandy</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Facebook</td>
<td align="center"></td>
<td>Eric Niebler</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Facebook</td>
<td align="center"></td>
<td>Lee Howes</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Facebook</td>
<td align="center"></td>
<td>Maged Michael</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Facebook</td>
<td align="center"></td>
<td>Nathan Sidwell</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>FlightSafety International</td>
<td align="center"></td>
<td>Billy Baker</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>Chandler Carruth</td>
<td align="center">A</td>
<td align="center">V</td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>Geoffrey Romer</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>Hans Boehm</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>James Dennett</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>Jeffrey Yasskin</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Google</td>
<td align="center">UK</td>
<td>Richard Smith</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>Thomas Koeppe</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>Titus Winters</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Google</td>
<td align="center"></td>
<td>Gennadiy Civil v</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>GrammaTech Inc,</td>
<td align="center"></td>
<td>Aaron Ballman</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>GreenWireSoft</td>
<td align="center"></td>
<td>Juan Alday</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>IBM</td>
<td align="center"></td>
<td>Paul E. McKenney</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>IBM</td>
<td align="center">CA</td>
<td>Hubert Tong</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>IBM</td>
<td align="center">CA</td>
<td>Shuo Feng Liu</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>Intel</td>
<td align="center"></td>
<td>Clark Nelson</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Intel</td>
<td align="center"></td>
<td>Pablo Halpern</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Intel</td>
<td align="center"></td>
<td>Erich Keane</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>Lawrence Berkeley</td>
<td align="center"></td>
<td>Bryce Adelstein-Lelbach</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Lawrence Berkeley</td>
<td align="center"></td>
<td>Brian Van Straalen</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Lawrence Livermore</td>
<td align="center"></td>
<td>James Frederick Reus</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Linden Research, Inc.</td>
<td align="center"></td>
<td>Nat Goodspeed</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Los Alamos National Laboratory</td>
<td align="center"></td>
<td>S. Davis Herring</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Louisiana State University</td>
<td align="center"></td>
<td>Hartmut Kaiser</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>LTK Engineering</td>
<td align="center"></td>
<td>Alan Talbot</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Microsoft</td>
<td align="center"></td>
<td>Jonathan Caves</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Microsoft</td>
<td align="center"></td>
<td>Gabriel Dos Reis</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Microsoft</td>
<td align="center"></td>
<td>Herb Sutter</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Microsoft</td>
<td align="center"></td>
<td>Gor Nishanov</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Microsoft</td>
<td align="center"></td>
<td>Andrew Pardoe</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Microsoft</td>
<td align="center"></td>
<td>Casey Carter</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Microsoft</td>
<td align="center"></td>
<td>Billy R. O&#39;Neal III</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>MongoDB</td>
<td align="center"></td>
<td>Adam Martin</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>MongoDB</td>
<td align="center"></td>
<td>Nathan Myers</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Morgan Stanley</td>
<td align="center"></td>
<td>Bjarne Stroustrup</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>NVidia</td>
<td align="center"></td>
<td>Jared Hoberock</td>
<td align="center">A</td>
<td align="center">V</td>
</tr>
<tr>
<td>NVidia</td>
<td align="center"></td>
<td>Olivier Giroux</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Oak Ridge National Laboratory</td>
<td align="center"></td>
<td>Graham Lopez</td>
<td align="center">P</td>
<td align="center"></td>
</tr>
<tr>
<td>Oracle</td>
<td align="center"></td>
<td>Maxim Kartashev</td>
<td align="center">A</td>
<td align="center">V</td>
</tr>
<tr>
<td>Perennial</td>
<td align="center"></td>
<td>Barry Hedquist</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Perennial</td>
<td align="center"></td>
<td>Beman G. Dawes</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Plum Hall</td>
<td align="center">FI</td>
<td>Ville Voutilainen</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>Programming Research Group</td>
<td align="center"></td>
<td>Christof Meerwald</td>
<td align="center">A</td>
<td align="center">V</td>
</tr>
<tr>
<td>Qualcomm</td>
<td align="center"></td>
<td>Marshall Clow</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Red Hat</td>
<td align="center"></td>
<td>Torvald Riegel</td>
<td align="center">A</td>
<td align="center">V</td>
</tr>
<tr>
<td>Ripple Labs</td>
<td align="center"></td>
<td>Howard E. Hinnant</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Sandia National Labs</td>
<td align="center"></td>
<td>Carter Edwards</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Sony Computer Entertainment</td>
<td align="center"></td>
<td>Michael Spencer</td>
<td align="center">A</td>
<td align="center">V</td>
</tr>
<tr>
<td>Symantec</td>
<td align="center"></td>
<td>Mike Spertus</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Synopsys</td>
<td align="center"></td>
<td>Thierry Lavoie</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
<tr>
<td>Synopsys</td>
<td align="center"></td>
<td>Tom Honermann</td>
<td align="center">A</td>
<td align="center"></td>
</tr>
<tr>
<td>University of Akron</td>
<td align="center"></td>
<td>Andrew Sutton</td>
<td align="center">P</td>
<td align="center">V</td>
</tr>
</tbody></table>

<h3>Other WG21 members</h3>

<table><thead>
<tr>
<th>Company / Organization</th>
<th align="center">NB</th>
<th>Representative</th>
<th align="center">WG21</th>
</tr>
</thead><tbody>
<tr>
<td>Codeplay</td>
<td align="center">CA</td>
<td>Michael Wong</td>
<td align="center">M</td>
</tr>
<tr>
<td>Mozilla</td>
<td align="center">CA</td>
<td>Botond Ballo</td>
<td align="center">M</td>
</tr>
<tr>
<td>Christie Digital</td>
<td align="center">CA</td>
<td>Tony Van Eerd</td>
<td align="center">M</td>
</tr>
<tr>
<td>Université de Sherbrooke</td>
<td align="center">CA</td>
<td>Patrice Roy</td>
<td align="center">M</td>
</tr>
<tr>
<td>CERN</td>
<td align="center">CH</td>
<td>Axel Naumann</td>
<td align="center">M</td>
</tr>
<tr>
<td>Vollmann Engineering</td>
<td align="center">CH</td>
<td>Detlef Vollmann</td>
<td align="center">M</td>
</tr>
<tr>
<td>HSR</td>
<td align="center">CH</td>
<td>Peter Sommerlad</td>
<td align="center">M</td>
</tr>
<tr>
<td></td>
<td align="center">CH</td>
<td>Mauro Bianco</td>
<td align="center">M</td>
</tr>
<tr>
<td>University Carlos III</td>
<td align="center">ES</td>
<td>J. Daniel García</td>
<td align="center">M</td>
</tr>
<tr>
<td>CryptoTec</td>
<td align="center">FI</td>
<td>Mikael Kilpeläinen</td>
<td align="center">M</td>
</tr>
<tr>
<td></td>
<td align="center">FR</td>
<td>Loïc Joly</td>
<td align="center">M</td>
</tr>
<tr>
<td>Symantec</td>
<td align="center">UK</td>
<td>Dinka Ranns</td>
<td align="center">M</td>
</tr>
<tr>
<td>PDT Partners</td>
<td align="center">UK</td>
<td>Jeff Snyder</td>
<td align="center">M</td>
</tr>
<tr>
<td></td>
<td align="center">UK</td>
<td>Roger Orr</td>
<td align="center">M</td>
</tr>
<tr>
<td>Jetbrains</td>
<td align="center">UK</td>
<td>Timur Doumler</td>
<td align="center">M</td>
</tr>
</tbody></table>

<h3>Participating non-members</h3>

<table><thead>
<tr>
<th>Company / Organization</th>
<th align="center">NB</th>
<th>Representative</th>
</tr>
</thead><tbody>
<tr>
<td></td>
<td align="center"></td>
<td>Allan Deutsch</td>
</tr>
<tr>
<td>KEWB Computing</td>
<td align="center"></td>
<td>Bob Steagall</td>
</tr>
<tr>
<td>Canada Seneca</td>
<td align="center"></td>
<td>Chris Szarwinski</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Faisal Vali</td>
</tr>
<tr>
<td>Creative Assembly</td>
<td align="center"></td>
<td>Guy Davidson</td>
</tr>
<tr>
<td>Blizzard</td>
<td align="center"></td>
<td>James Touton</td>
</tr>
<tr>
<td>University of Nice</td>
<td align="center"></td>
<td>Jean-Paul Rigault</td>
</tr>
<tr>
<td>Numscale</td>
<td align="center"></td>
<td>Joel Falcou</td>
</tr>
<tr>
<td>Graphcore</td>
<td align="center"></td>
<td>Jon Chesterfield</td>
</tr>
<tr>
<td>Tanium</td>
<td align="center"></td>
<td>Lisa Lippincott</td>
</tr>
<tr>
<td>VMWare</td>
<td align="center"></td>
<td>Mark Zeren</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Matt Calabrese</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Melissa Mears</td>
</tr>
<tr>
<td>Nokia</td>
<td align="center"></td>
<td>Michał Dominiak</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Michael Park</td>
</tr>
<tr>
<td>Bob Taco Industries</td>
<td align="center"></td>
<td>Michael McLaughlin</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Michael Young</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Nicolai Josuttis</td>
</tr>
<tr>
<td>University of Windsor</td>
<td align="center"></td>
<td>Paul Preney</td>
</tr>
<tr>
<td>KCG Holdings</td>
<td align="center"></td>
<td>Robert Douglas</td>
</tr>
<tr>
<td>Xilinx</td>
<td align="center"></td>
<td>Ronan Keryell</td>
</tr>
<tr>
<td>Nokia</td>
<td align="center"></td>
<td>Vicente J. Botet Escriba</td>
</tr>
<tr>
<td>ARM</td>
<td align="center"></td>
<td>Will Deacon</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Yander Alexsander [illegible]</td>
</tr>
<tr>
<td>Cadence</td>
<td align="center"></td>
<td>Zach Laine</td>
</tr>
</tbody></table>

<p>`</p>


</body>

</html>