<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>PL22.16/08-0207 = WG21/<a hRef="../2008/n2697.html">N2697</a> -- Minutes of WG21 Meeting, June 9-15, 2008</title></head><body>
<pre><br>
                                        Doc No:   SC22/WG21/<a hRef="../2008/n2697.html">N2697</a>
                                                  PL22.16/08-0207
                                        Date:     2008-06-30
                                        Project:  JTC1.22.32
                                        Reply to: Robert Klarer
                                                  IBM Canada, Ltd.
                                                  klarer@ca.ibm.com
</pre>

<h1>
Minutes of WG21 Meeting, June 8-15, 2008
</h1>

<h2>
1. Opening activities
</h2>
<p>
Clamage called the meeting to order at 09:00 (UTC+2) on Monday, June 8, 2008
</p>

<h3>
1.1 Opening comments
</h3>
<p>
Jean-Paul Rigault described the arrangements and facilities for the meeting.
</p>

<h3>
1.2 Introductions
</h3>
<p>
Clamage had the attendees introduce themselves.
</p>

<h3>
1.3 Meeting guidelines (Anti-Trust)
</h3>
<p>
Clamage reviewed the patent disclosure rules.
</p>

<h3>
1.4 Membership, voting rights, and procedures for the meeting
</h3>
<p>Nelson reviewed membership rules. Nelson then circulated the
attendance list and membership list. Clamage reviewed voting rules and reviewed
procedures for the meeting.
</p>

<h3>
1.5 Agenda review and approval
</h3>
<p>Clamage presented the agenda (document <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2611.pdf">PL22.16/08-0121 = WG21/<a hRef="../2008/n2611.pdf">N2611</a></a>).</p>

<p><b>Motion to approve the agenda:</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Hedquist</td></tr>
<tr><td><b>Seconder:</b> Stoughton</td></tr>
</tbody></table>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>PL22.16</td>
<td>unanimous consent</td>
</tr>
<tr>
<td>WG21</td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>
<p>

</p><h3>1.6 Distribution of position papers, WG progress reports, WG
work plans for the week, and other documents that were not distributed
before the meeting.
</h3>

<p>Each of the Working Group chairs presented their plans for the coming week.</p>

<h4>Core Working Group (CWG)</h4>
<p>
</p>

<h4>Library Working Group (LWG)</h4>
<p>
</p>

<h4>Evolution Working Group (EWG)</h4>
<p>
</p>

<h3>
1.7 Approval of the minutes of the previous meeting
</h3>

<p><b>Motion to approve the minutes (document <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2592.html">PL22.16/08-0102 = WG21/<a hRef="../2008/n2592.html">N2592</a></a>)</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Hedwick</td></tr>
<tr><td><b>Seconder:</b> Klarer</td></tr>
</tbody></table>
<p>
P. J. Plauger observed that it's unclear, in subsection 10.1 of document <a hRef="../2008/n2592.html">N2592</a>, why Library Working Group Motion 2 did not carry.  Accordingly, he proposed a friendly amendment to the motion to approve the minutes.
</p>
<p>
<b>Amendment:</b>
Add the following text to the account of Library Working Group Motion 2 in the minutes.
</p>
<blockquote>
Because there was no clear consensus among participating WG21 member nations, the convenor ruled that this motion did not carry.  Poll results among WG21 voting members was:
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>WG21</td>
<td>2</td>
<td>2</td>
<td>1</td>
</tr>
</tbody></table>
</blockquote>

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

<h3>
1.8 Report on the WG21 Monday meeting
</h3>
<p>
Sutter reported that
seven countries are represented at this meeting; all seven have voting status.
</p>

<p>
As head of the UK delegation, Glassborow made a declaration on behalf of the BSI.  The main points of this declaration were:
</p>
<ol>
<li>it is the position of the BSI that, if C++0x specifies concepts as a core language facility, the C++ Standard Library must be modified to exploit this facility</li>
<li>the BSI believes that the specification of concepts -- especially as they are applied to the C++ Standard Library -- needs time to mature, as the C++ community gains experience with the implementation and use of concepts</li>
<li>the BSI intends to vote "No" on any C++0x FCD ballot that contains concepts and that is issued within the next two years; their feeling is that the C++ committee needs to give themselves two more years to refine the document.
</li>
</ol>

<p>
Much discussion ensued.
</p>

<p>
Sutter summarized the preceding discussion thusly:
<blockquote>I don't think that anyone is considering not having concepts at all.  The question is which bucket [i.e. which project or document] will contain concepts?
</blockquote>
Sutter then asked an open question to Working Group chairs: what will be the quality of the paper if we issue an FCD document at the end of this meeting?
<p>

<p>
Adamczyk replied that, even concepts were taken off the table, there are several substantial language features that are still in the pipeline, and that he "would be very uncomfortable with voting something out this meeting."
</p>

<p>
Hinnant reminded Sutter that, at the present, there are dangling references in the WD, and that he hoped that these will be resolved at the present meeting, but there is no guarantee that will happen.
</p>

<p>
Vollmann asked how much time will spent at this meeting by the Core Working Group on concepts, if any work is done at all?
Adamczyk explained that concepts is in good shape, but it's also an extremely large proposal, at 87 pages.  It's not clear that the CWG can review the proposal at the same level of detail that they review other things.  For example, the proposal has not been subject to the same line-by-line detail that other items routinely are.
Adamczyk indicated that he "would be nervous about voting it in, but in terms of substance, it is correct."
</p>

<p>
Vollmann restated his question: "how much time do you need?"
Adamczyk responded by observing that "that depends on how much assurance you need that it is correct."
</p>

<p>
Spicer observed that the committee shouldn't take for granted that it can delay the introduction of concepts to some indefinite point in the future; the people that we have available to work on the item now may not be available later.
</p>

<p>
Gregor stated his opinion that there may be bugs in the specification of concepts that will not be discovered until a second implementation is attempted.  The line-by-line review may not be as effective.
</p>

<p>
When asked to elaborate on BSI's position that the standard must include a conceptualized library if it includes concepts as a core language feature, Glassborow explained that, if the committee puts concepts into the core langage and not the library, they will largely be ignored, and the discovery of defects in the specification will be further delayed.  Also, if the standard library is not conceptualized, it will be difficult for users to exercise the feature.
</p>

<p>
Dos Reis agreed with BSI's position on this: "my perspective is that concepts in the language without library counterparts is not viable."
</p>

<p>
Meredith expressed concern that compile times will suffer drastically with concepts.
</p>

<p>
Stroustrup opined that shipping concepts without the library is useless; it will not help users to think in terms of concepts, and users will think that concepts are "not good enough."
Futher, Stroustrup expressed doubts that a two-year slip would help: "with two more years, we will get proposals for new features, new libraries, and enhancements to concepts.  Much of the two-year period will inevitably be devoted to items other than concepts."
Stroustrup noted, though, that the BSI position is not unreasonable, and it was to be expected that someone would express it.
</p>

<p>Discussion ensued.</p>

<p>
<b>Motion.</b>
Move that we discontinue work on concepts for C++0X.
</p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Plauger</td></tr>
<tr><td><b>Seconder:</b> Glassborow</td></tr>
</tbody></table>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>5</td>
<td>lots</td>
<td>4</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>1</td>
<td>5</td>
<td>1</td>
</tr>
</tbody></table>

<p>
Sutter ruled that work would continue on concepts.
</p>

<p>
Plum observed "now that we know that concepts are in the mix of work for this week, we don't need to talk about our publication schedule."
</p>

<p>
Plauger noted that "we must know by the end of this meeting that we either commit or not commit to shipping an FCD at the next meeting."
</p>

<h3>
1.9 Liaison reports
</h3>
<h4>WG14 Liaison</h4>
<p>
Plauger reported that the Special Math IS for C is going to final ballot and that the C++ committee should take corresponding actions.
As well, Plauger reported that the C committee agreed to publish a threading model based on the C++ model.
</p>

<p>
Nelson reported on an issue that was raised by WG14 with respect to the threading model.
In the current model, given a struct with two chars beside each other, two different threads can access these chars separately without causing a data race.  There is concern that this inhibits certain optimizations, including the combining of stores.

There was at least some discussion of allowing the programmer to control the granularity of memory location through the use of a pragma or something similar.
</p>

<p>
Kosnick asked whether there was any interest in standardizing the atomics.  
Nelson answered that the memory model and atomics were presented to WG14 in one paper.  There was no controversy concerning the atomics.
</p>

<h4>POSIX Liaison</h4>
<p>
Stoughton reported that the group will be meeting next week in Redding.
The goal of the meeting is to prepare a document outline.
There was no liaison statement to make at this meeting because the group had not met since the last C++ meeting.
</p>

<h4>Other Working Group: Vulnerabilities (OWGV) Liaison</h4>
<p>Plum reported that, at the next SC22 plenary, this group may become a regular WG.  Plum also reported that OWGV is making good progress, and that an editing meeting will be conducted in "a month or so" to refine the draft document.
</p>

<h3>
1.10 Editor's report and WP approval
</h3>

<p>
Becker reported that document <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2508"> 08-0098 = WG21/<a hRef="../2008/n2588.pdf">N2588</a></a> has all of the edits that were approved at Bellevue.  A later revision, <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2606.pdf">PL22.16/08-0116 = WG21/<a hRef="../2008/n2606.pdf">N2606</a></a> differs from <a hRef="../2008/n2588.pdf">N2588</a> only in that it contains some editorial changes.</p>

<p>
Meredith noted that this document contains dangling references, as expected.
</p>

<p><b>Motion to accept the working paper</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Paterno</td></tr>
<tr><td><b>Seconder:</b> Widman</td></tr>
</tbody></table>
<b>Approved by unanimous consent.</b>

<h3>
1.11 New business requiring actions by the committee
</h3>

<h2>
2. Organize subgroups, establish working procedures.
</h2>

<p>We have three subgroups: Core, Library, and Evolution.  There will be a subgroup of Evolution to deal with issues relating to concurrency.</p>

<p>The committee broke into subgroups at 10:30 (GMT+10).</p>

<h2>
3. WG sessions (Core, Library, Performance, Evolution).
</h2>

<h2>
4. WG sessions continue.
</h2>

<h2>
5. WG sessions continue.
</h2>

<h2>
6. WG sessions continue.
</h2>

<h2>
7. General session.
</h2>

<h3>
7.1 WG status and progress reports.
</h3>

<p>
Adamczyk gave the following report on the proposals that the Core Working Group intends to move on Saturday:
</p>
<blockquote>
<p>
1)  <a hRef="../2008/n2659.htm">N2659</a>, "Thread-Local Storage".  Adds the <tt>thread_local</tt> keyword.
</p>

<p>
2)  <a hRef="../2008/n2656.htm">N2656</a>, "Core issue 654 wording" adds conversions from 0 to 
<tt>nullptr_t</tt> (requested by library), also
<tt>reinterpret_cast</tt> from <tt>nullptr_t</tt>
to integer (for templates) and
implicit conversion from <tt>nullptr_t</tt> convertible to <tt>bool</tt>.
</p>

<p>
On the latter, we feel <tt>nullptr_t</tt> should be the same as
pointers, and pointers are currently convertible to <tt>bool</tt>
everywhere, e.g.,
</p>
<code>
int *p = 0;
bool b = p;
bool c = nullptr;  // ??
</code>
<p>
We're moving this forward in that form, and there may be a paper
next time to restrict the conversion for both types if that
doesn't seem to break existing code.
</p>

<p>
Note that the wording for this was not in the pre-meeting mailing.
</p>

<p>
3)  <a hRef="../2008/n2657.htm">N2657</a>, "Local and Unnamed Types as Template Arguments".  The difference
from the previous version is that local and unnamed types are not given
external linkage -- they're just allowed as template arguments.  Note
also that unnamed types <em>are</em> allowed; there was some question about that
last time.
</p>

<p>
4)  <a hRef="../2008/n2658.pdf">N2658</a>, "Constness of Lambda Functions (Revision 1)".
Slight change from pre-meeting version: generated function is
<tt>const</tt> by default, adding <tt>mutable</tt> makes it non-const.

</p>

<p>
5)  <a hRef="../2008/n2634.html">N2634</a>, "Solving the SFINAE problem for expressions".
As proposed a few meetings back:
All expression and type errors in template deduction cause
deduction failure, not hard errors.
</p>

<p>
6)  <a hRef="../2008/n2664.htm">N2664</a>, "C++ Data-Dependency Ordering: Atomics and Memory Model".
Definition of terms "carries a dependency", "is dependency-ordered before",
"inter-thread happens before".  Library <tt>memory_order_consume</tt>,
<tt>kill_dependency</tt>.  Library changes approved by concurrency
group.
</p>

<p>
7)  <a hRef="../2008/n2660.htm">N2660</a>, "Dynamic Initialization and Destruction with Concurrency".
</p>

<p>
8)  <a hRef="../2008/n2672.htm">N2672</a>, "Initializer List proposed wording".
This is a compromise proposal that all the interested parties have
endorsed.  Concerns about explicit constructors and
conversions to unexpected third-party types are resolved,
at least enough to win everyone's approval.
Narrowing checking is still in there.
Includes library changes, believed to have been checked
by LWG.
</p>

<p>
9)  <a hRef="../2008/n2670.htm">N2670</a>, "Minimal Support for Garbage Collection and Reachability-Based
Leak Detection (revised)".  Reachability of pointers, library
functions <tt>declare_reachable</tt>, <tt>undeclare_reachable</tt>.
</p>

<p>
10)  All "ready" issues in <a hRef="../2008/n2608.html">N2608</a>, the most recent core issues list.
</p>
</blockquote>

<p>As well, Adamczyk gave updated status on items that will not be the subject of a motion at this meeting:</p>

<blockquote>
<p>
1)  D2628, "Non-static data member initializers".  Largely ready,
but wording interacts extensively with the initializer lists
proposal, so the paper will be updated for the pre-SF mailing
and should be ready to be voted in at that point.
</p>

<p>
2)  D2663, "Towards support for attributes in C++ (Revision 5)".
We made a number of changes, and will review an updated paper
next time.
</p>

<p>
3)  <a hRef="../2007/n2378.pdf">N2378</a>, "User-defined Literals
(aka. Extensible Literals (revision 3))".
We requested some minor updates.  There was discussion of
allowing/requiring implementations to evaluate constant-creation
code just once; that's still being studied.  If there's no
change in that area, this should be in good shape for
next time.
</p>

<p>
4)  <a hRef="../2008/n2617.pdf">N2617</a>, "Proposed Wording for Concepts (Revision 6)".
Still some substantial changes (already addressed in updated wording).
More wording review is needed.
</p>

<p>
5)  Not looked at this time, still in the queue:
</p>
<ul>
<li>
<a hRef="../2007/n2394.html">N2394</a>, "Wording for range-based for-loop (revision 3)".  Waiting on
concepts; otherwise believed to be ready.
</li>
<li>
<a hRef="../2008/n2582.html">N2582</a>, "Unified Function Syntax".  [] instead of auto as function
return type.
</li>
<li>
<a hRef="../2008/n2646.pdf">N2646</a>, "Concept Implication and Requirement Propagation".
</li>
<li>
<a hRef="../2008/n2581.pdf">N2581</a>, "Named Requirements for C++0X Concepts".
</li>

<li>
<a hRef="../2008/n2583.html">N2583</a>, "Default Move Functions".
</li>
<li>
<a hRef="../2008/n2584.html">N2584</a>, "Default Swap Functions".
</li>
<li>
<a hRef="../2008/n2568.pdf">N2568</a>, "Forward declaration of enumerations (rev. 1)".
</li>
<li>
<a hRef="../2008/n2631.html">N2631</a>, "Resolving the difference between C and C++ with regards
to object representation of integers".
</li>
<li>
<a hRef="../2008/n2643.html">N2643</a>, "C++ Data-Dependency Ordering: Function Annotation".
</li>
</ul>
</blockquote>

<p>
On the topic of concepts, Widman reported that he would be surprised if the committee encountered anything that required a significant design change. While noting that he was not proposing that they be voted into the Working Draft at this meeting, he asserted that "concepts are in better shape than you think."
</p>

<p>
Dos Reis disagreed with this point of view, indicating that some design issues remain.
</p>

<p>
Spicer opined that more review is necessary before the committee can decide that concepts are close to being done.
</p>

<p>
Gregor reported that, while there are design points that could be revisited, the specification of the procedure by which concepts are translated is now coherent; no parts of it depend on "magic."
</p>

<h4>Library Working Group</h4>

<p>
Hinnant reviewed the LWG formal motions (see below).
</p>

Marcus reported that the LWG had reviewed three papers about concepts in the C++ Standard Library, covering:
<ul>
<li>Foundation Concepts</li>
<li>Algorithms</li>
<li>Iterators</li>
</ul>

<p>
Plum asked as to the status of proposals for date and time library facilities.
Hinnant replied that paper <a hRef="../2008/n2615.html">N2615</a> in the pre-meeting mailing has been revised and is being put forward as <a hRef="../2008/n2661.htm">N2661</a>.
</p>

<h4>Future meetings:</h4>

<p>Sutter proposed the following revised timetable for publication of the standard.  According to this timetable, a Committee Draft will be issued for ballot in September 2008, and a Final Committee Draft will be issued for ballot in October 2009.
</p>

<table border=1>
<tr>
<th>
Date
</th>
<th>
Location
</th>
<th>
Activity
</th>
</tr>
<tr>
<td>
June 2008
</td>
<td>
Sofia Antipolis
</td>
<td>
complete features
</td>
</tr>
<tr>
<td>
Sept 2008
</td>
<td>
San Francisco
</td>
<td>
complete features<br/>
ship CD<br/>
4 months (3 months for ballot + 1 month for buffer)
</td>
</tr>
<tr>
<td>
Mar(?) 2009
</td>
<td>
TBD
</td>
<td>
complete features<br/>
resolve comments
</td>
</tr>
<tr>
<td>
Jul(?) 2009
</td>
<td>
Frankfurt
</td>
<td>
complete features<br/>
resolve comments
</td>
</tr>
<tr>
<td>
Oct(?) 2009
</td>
<td>
TBD
</td>
<td>
resolve comments<br/>
ship FCD<br/>
5 months (4 ballot + 1 buffer)
</td>
</tr>
<tr>
<td>
2010-A
</td>
<td>
TBD
</td>
<td>
resolve comments
</td>
</tr>
<tr>
<td>
2010-B
</td>
<td>
TBD
</td>
<td>
resolve comments
</td>
</tr>
<tr>
<td>
2010-C
</td>
<td>
TBD
</td>
<td>
resolve comments<br/>
ship FDIS<br/>
&gt;= 6 months (2 ballot + &gt;=4 publication)
</td>
</tr>
</table>

<p>
Crowl asked whether there is an enforced time delay between shipping a CD  and shipping an FCD.
Sutter explained that there is none, except that CD ballot comments must be resolved, and that will take two meetings.
</p>

<p>
Glassborow indicated that BSI would be much happier with this schedule, and
expressed hope that once the CD is shipped, implementors will provide the new language features early enough that the committee can benefit by the availability of those implementations to improve the quality of the standard.
</p>

<p>
Spicer asked how long it takes for ISO to issue a Working Draft for ballot.
Sutter replied that, based on past experience, it takes "a small number of days."
</p>

<p>
Meredith disagreed with Glassborow's interpretation of the BSI position and reported two specific concerns that had been expressed among the UK panel.  First, the UK wanted greater assurance that concepts would not imply unacceptable performance penalties.  Second, there was concern that the committee was already approaching burnout due to the aggressive schedule.
</p>

<p>
Reponding to Meredith's first point, Sutter noted that the committee was at this time being asked only to commit to issuing a CD after the next meeting.  Thoughthere is a tentative plan to issue an FCD twelve months later, that is a decision that can be made in the future.
</p>

<p>
Meredith asserted that the committee will need more than twelve months after issuing the CD to complete a document that is suitable for FCD ballot.
</p>

<p>
Observing that this issue will most impact the incoming convenor, Dawes requested that P. J. Plauger comment on it.  Plauger replied that the decision to issue a CD at the next meeting is "...the most planning that we can do right now."
</p>

<p>
Maurer, noting that he thinks that the plan is viable, asked whether 
there was any possibility of allowing the NBs more time to submit comments on the CD.

Sutter confirmed that there was, but that it was unnecessary to do so.
He explained that the ISO directives allow the ballot period to be extended, but that they shall not exceed six months total.  However, since the proposed plan is to give NBs two chances to comment, the need for extended ballot periods is greatly mitigated.
</p>

<p>
Stroustrup commented on the necessity of maintaining the pace of progress, and expressed a concern that a long schedule skip without planned intermediate steps would slow that pace.
</p>

<p>
Witt suggested that the only way to maintain the committee's focus is to have a tight schedule, and Stroustrup agreed.
</p>

<p>
Plum, addressing Maurer's earlier question about the lengths of the ballot periods, advised the committee to be very consistent about using the minimum time for NB comments, noting that NBs have every opportunity to participate directly in the standardization effort.
</p>

<p>
Glassborow agreed, adding that the Working Draft has been continuously available to the rest of the world throughout this process.  He also reported that 
BSI will vote no to the introduction of any new feature from now until completion.
</p>

<p>
Meredith asked for an explanation of the phrase "feature complete" on Sutter's slide.
</p>

<p>
Sutter indicated that he hopes that, as a minimum, the CD would specify concepts in the core language and that the library would include foundation concepts, conceptualized algorithms, and conceptualized iterators.
</p>

<p>
Stroustrup indicated that he would like to see a conceptualized library in the CD.
</p>

<p>
Observing that there are some minor cases in the library (eg the use of enable_if in two places in the diagnostics library), in which existing entities should eventually be replaced by the use of concepts. Dawes asked Stroustrup whether he expected that such cases be addressed prior to shipping the CD.
Stroustrup replied that he did not, arguing that details and corner cases are less important than emphasizing that the committee is serious enough about concepts to use them in major ways.
</p>


<p>
Meredith argued that the committee has to get the library specifications of concepts 100% right before FDIS because of the backwards-compatibility implications of changing them.  For this reason, he indicated that he would be more confident about conceptualizing the library after CD.
</p>

<p>
Sutter expressed hope that a CD that contains a library that is at least partially conceptualized would encourage library implementors to provide such a library so that the community can gain experience with concepts, thereby enhancing the eventual quality of the standard.
</p>

<p>
Dos Reis suggested that it will take many years to get the library 100% right.  He encouraged the committee to take a chance, because it is unreasonable to require 100% correctness before shipping.
</p>

<p>
Discussion ensued.
</p>

<p>
Gregor disagreed with the foregoing characterization of the risks to library, arguing that errors in template constraints can be fixed through Defect Reports.
</p>

<p>
Discussion ensued.
</p>

<p>
Nelson challenged the assumption that the publication of a core language or library feature in a CD, will hasten the arrival of an implementation of that feature.  Implementors consider many factors when they decide when to implement a given feature.
</p>

<p>
Sutter invited implementors to comment on whether appearance in a CD expedites implementation.
</p>

<p>
Adamczyk reported whether the feature is in a CD is "irrelevant to [EDG]."
Caves indicated it is similarly irrelevant to Microsoft.
</p>

<p>
Plauger commented that each of the vendors that Dinkumare, Ltd. has been talking to has a different shopping list for what features they want.  A CD may help stablize dialects by influencing the order in which features are implemented.
</p>

<p>
Clamage indicated that he is a lot more comfortable setting a schedule for development when a draft is feature complete.
</p>

<p>
Dos Reis reported that, for this round of GCC, a decision has been made to accept patches if they were accepted in the current draft.  "We are not going to accept patches in the current version if they are not in the working paper."
</p>

<p>
Meredith reported that Borland do their scheduling based on the perceived cost of implementation of a feature.
</p>

<p>
Sebor reported that Rogue Wave begins to exploit a core language feature in their library once they have a stable compiler that supports it.
</p>

<p>
Discussion ensued
</p>

<p>
<b>
Straw Poll:</b> In favor of shipping a CD with concepts in the core language and the library at the end of the September 2008 meeting in San Francisco?
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<h3>
7.2 Presentation and discussion of DRs ready to be voted on.  Straw votes taken.</h3>

<h4>Core Working Group</h4>

<p>
<b>Motion 1.</b>
Move WG21/<a hRef="../2008/n2659.htm">N2659</a> "Thread-Local Storage" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 2.</b>
Move WG21/<a hRef="../2008/n2656.htm">N2656</a> "Core issue 654 wording" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 3.</b>
Move WG21/<a hRef="../2008/n2657.htm">N2657</a> "Local and Unnamed Types as Template Arguments" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 4.</b>
Move WG21/<a hRef="../2008/n2658.pdf">N2658</a> "Constness of Lambda Functions (Revision 1)" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 5.</b>
Move WG21/<a hRef="../2008/n2658.pdf">N2658</a> "Solving the SFINAE problem for expressions" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 6.</b>
Move WG21/<a hRef="../2008/n2664.htm">N2664</a> "C++ Data-Dependency Ordering: Atomics and Memory Model" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 7.</b>
Move WG21/<a hRef="../2008/n2672.htm">N2672</a> "Initializer List proposed wording" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 8.</b>
Move WG21/<a hRef="../2008/n2670.htm">N2670</a> "Minimal Support for Garbage Collection and Reachability-Based Leak Detection (revised)" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>0</td>
<td>5</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>0</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 9.</b>
Move WG21/<a hRef="../2008/n2660.htm">N2660</a> "Dynamic Initialization and Destruction with Concurrency" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td></td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>0</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 10.</b>
Move we apply the resolutions of all issues marked "ready" from <a hRef="../2008/n2608.html">N2608</a> to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<h4>Library Working Group</h4>

<p>
<b>Motion 1.</b>
Move we apply the resolutions to the following issues from <a hRef="../2008/n2612.html">N2612</a> to the C++0X Working Paper:
</p>
<p>
387, 518, 550, 574, 595, 596, 612, 618, 629, 638, 672, 673, 685, 710, 715, 722, 740, 743, 744, 746, 749, 755, 759, 761, 766, 768, 770, 775, 777, 778, 781, 782, 783, 789, 792, 798
</p>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 2.</b>
Move: The committee requests the LWG defer discussion of new proposals that would add features to the C++0x standard library until after the C++0x ships..
</p>

<p>
Crowl expressed his opposition to this motion, arguing that it is unclear what is meant by 'new proposal,' and that Internal discipline should be sufficient.
</p>
<p>
Dawes explained that this motion is meant to save LWG some time, so that the LWG subgroup chair does not feel obliged to devote agenda time to new proposals just so that the group can discuss their technical merits before deeming them to have arrived too late.
</p>

<p>
Discussion ensued.
</p>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>5</td>
<td>0</td>
<td>2</td>
</tr>
</tbody></table>

<p>
<b>Motion 3.</b>
Move we apply <a hRef="../2008/n2514.html">N2514</a> "Implicit Conversion Operators for Atomics" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>5</td>
<td>0</td>
<td>2</td>
</tr>
</tbody></table>

<p>
<b>Motion 4.</b>
Move we apply <a hRef="../2008/n2667.htm">N2667</a> "Reserved namespaces for POSIX" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>1</td>
<td>3</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 5.</b>
Move we apply <a hRef="../2008/n2668.htm">N2668</a> "Concurrency Modifications to Basic String" to the C++0X Working Paper.
</p>

<p>
Both HP and Rogue Wave expressed strong opposition to this motion, on the basis that it may force vendors to break ABI compatibility.
</p>

<p>
Discussion ensued.
</p>

<p>
Dawes noted that great effort was made to accomodate the concerns of those vendors who were opposed to the motion, but that no technical solution was found that allowed all vendors to preserve ABI compatibility.
</p>

<p>
More discussion ensued.
</p>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>10</td>
<td>7</td>
<td>10</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>5</td>
<td>1</td>
<td>1</td>
</tr>
</tbody></table>

<p>
Sutter asked whether the NBs agreed to the withdrawal of this motion from formal votes.
Dos Reis answered that withdrawal would be fine, as long there was assurance that the committee could vote on this issue in the future.
</p>
<p>
There was agreement that this proposal would not be moved during Friday's session.
</p>
<p>
Rao, while noting HP's objection to the proposal, declared that "I believe that the LWG concurrency group did the best they could [to accomodate HP's concerns]."
</p>

<p>
<b>Motion 6.</b>
Move we apply <a hRef="../2008/n2678.htm">N2678</a> "Error Handling Specification for Chapter 30 (Threads) (Revision 1)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 7.</b>
Move we apply <a hRef="../2008/n2661.htm">N2661</a> "A Foundation to Sleep On" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 8.</b>
Move we apply <a hRef="../2008/n2675.pdf">N2675</a> "noncopyable utility class (revision 1)" to the C++0X Working Paper.
</p>

<p>
Stroustrup drew the committee's attention attention to Halpern's comments in reflector message c++lwg-xxxxxx and asked if that point had been raised in LWG.
Hinnant replied that it had not.
</p>

<p>
Discussion ensued.
</p>

<p>
Plum argued that, by marking a base class noncopyable, a programmer is allowing a static code analyzer to detect violations.
</p>

<p>
Witt observed that the Boost noncopyable class has been popular.
</p>

<p>
Discussion ensued.
</p>

<p>
Dos Reis asked whether the use of a noncopyable utility class imposes a space penalty, and Hinnant answered that it does.
</p>

<p>
Discussion ensued.
</p>

<p>
Because of the controversy, Meredith withdrew the paper.
</p>

<p>
<b>Motion 9.</b>
Move we apply <a hRef="../2008/n2674.htm">N2674</a> "Shared_ptr atomic access, revision 1" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td></td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>5</td>
<td>1</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 10.</b>
Move we apply <a hRef="../2008/n2666.pdf">N2666</a> "More STL algorithms (revision 2)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 11.</b>
Move we apply <a hRef="../2008/n2669.htm">N2669</a> "Thread-Safety in the Standard Library (Rev 2)" to the C++0X Working Paper.
</p>

<p>
Dawes announced that the LWG knows that there will be valid objections with the wording in this paper.  Problems with the wording will be addressed as issues.
</p>

<p>
Sebor argued that there are some requirements imposed on the implementation that will be difficult to satisfy performantly.
</p>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>13</td>
<td>5</td>
<td>7</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>1</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 12.</b>
Move we apply <a hRef="../2007/n2435.htm">N2435</a> "Explicit bool for Smart Pointers" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 13.</b>
Move we apply <a hRef="../2008/n2677.pdf">N2677</a> "Foundational Concepts" to the C++0X Working Paper.
</p>

<p>
Hinnant noted that this paper uses a core language feature that has not yet been voted into the paper.
</p>

<p>
Glassborow stated that, as a matter of principle, the committee should not introduce dangling pointers to the Working Draft.
</p>

<p>
Discussion ensued.
</p>

<p>
The motion was withdrawn.
</p>

<p>
<b>Motion 14.</b>
Move we apply <a hRef="../2008/n2679.pdf">N2679</a> "Initializer List for Standard Containers (Revision 1)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 15.</b>
Move we apply <a hRef="../2008/n2680.pdf">N2680</a> "Proposed Wording for Placement Insert (Revision 1)" to the C++0X Working Paper.
</p>

<p>
Hinnant reported that this paper had a solution for pair<> that the LWG knows is not mature, so the current revision does not apply placement insert to pair.
</p>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>lots</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>


<h2>
8. WG sessions continue
</h2>

<h2>
9. WG sessions continue
</h2>

<h2>
10. Review of the meeting
</h2>

<p>
Clamage observed that, according to Robert's Rules, motions need not be moved and seconded, because they have been forwarded to the group by a subcommittee.
</p>

<h3>
10.1 Formal motions, including DRs to be resolved.
</h3>

<h4>Core Working Group</h4>

<p>
<b>Motion 1.</b>
Move WG21/<a hRef="../2008/n2659.htm">N2659</a> "Thread-Local Storage" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 2.</b>
Move WG21/<a hRef="../2008/n2656.htm">N2656</a> "Core issue 654 wording" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 3.</b>
Move WG21/<a hRef="../2008/n2657.htm">N2657</a> "Local and Unnamed Types as Template Arguments" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 4.</b>
Move WG21/<a hRef="../2008/n2658.pdf">N2658</a> "Constness of Lambda Functions (Revision 1)" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 5.</b>
Move WG21/<a hRef="../2008/n2658.pdf">N2658</a> "Solving the SFINAE problem for expressions" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>23</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 6.</b>
Move WG21/<a hRef="../2008/n2664.htm">N2664</a> "C++ Data-Dependency Ordering: Atomics and Memory Model" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 7.</b>
Move WG21/<a hRef="../2008/n2672.htm">N2672</a> "Initializer List proposed wording" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>23</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 8.</b>
Move WG21/<a hRef="../2008/n2670.htm">N2670</a> "Minimal Support for Garbage Collection and Reachability-Based Leak Detection (revised)" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>22</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 9.</b>
Move WG21/<a hRef="../2008/n2660.htm">N2660</a> "Dynamic Initialization and Destruction with Concurrency" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>23</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>0</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 10.</b>
Move we apply the resolutions of all issues marked "ready" from <a hRef="../2008/n2608.html">N2608</a> to the C++0X Working Paper, i.e. issues numbered 28, 118, 141, 276, 288, 485, 644, 661, 663, 666.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<h4>Library Working Group</h4>

<p>
<b>Motion 1.</b>
Move we apply the resolutions to the following issues from <a hRef="../2008/n2612.html">N2612</a> to the C++0X Working Paper:
</p>
<p>
387, 518, 550, 574, 595, 596, 612, 618, 629, 638, 672, 673, 685, 710, 715, 722, 740, 743, 744, 746, 749, 755, 759, 761, 766, 768, 770, 775, 777, 778, 781, 782, 783, 789, 792, 798
</p>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 2.</b>
</p>
<p>
Move: The committee requests the LWG defer discussion of new proposals that would add features to the C++0x standard library until after the C++0x ships.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>20</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>0</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 3.</b>
Move we apply <a hRef="../2008/n2514.html">N2514</a> "Implicit Conversion Operators for Atomics" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>0</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 4.</b>
Move we apply <a hRef="../2008/n2667.htm">N2667</a> "Reserved namespaces for POSIX" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>22</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 5.</b>
Move we apply <a hRef="../2008/n2678.htm">N2678</a> "Error Handling Specification for Chapter 30 (Threads) (Revision 1)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 6.</b>
Move we apply <a hRef="../2008/n2661.htm">N2661</a> "A Foundation to Sleep On" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>22</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 7.</b>
Move we apply <a hRef="../2008/n2674.htm">N2674</a> "Shared_ptr atomic access, revision 1" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>23</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>0</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 8.</b>
Move we apply <a hRef="../2008/n2666.pdf">N2666</a> "More STL algorithms (revision 2)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 9.</b>
Move we apply <a hRef="../2008/n2669.htm">N2669</a> "Thread-Safety in the Standard Library (Rev 2)" to the C++0X Working Paper.
</p>

<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>19</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>6</td>
<td>0</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 10.</b>
Move we apply <a hRef="../2007/n2435.htm">N2435</a> "Explicit bool for Smart Pointers" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 11.</b>
Move we apply <a hRef="../2008/n2679.pdf">N2679</a> "Initializer List for Standard Containers (Revision 1)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
<b>Motion 12.</b>
Move we apply <a hRef="../2008/n2680.pdf">N2680</a> "Proposed Wording for Placement Insert (Revision 1)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>WG</b></td>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td><b>PL22.16</b></td>
<td>unanimous consent</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td><b>WG21</b></td>
<td>7</td>
<td>0</td>
<td>0</td>
</tr>
</tbody></table>

<p>
Meredith made the following announcement on behalf of LWG: from this point forward, the library group would like all papers to include full concept wording.
</p>

<h3>10.2 Future meetings:</h3>
<p>
See 11.1, below.
</p>

<h3>
10.3 Issues delayed until Saturday
</h3>
<p>
None.
</p>

<h2>
11. Plans for the future
</h2>
<p>
</p>

<h3>
11.1 Next meeting
</h3>

<h3>
11.2 Mailings
</h3>
<p>
Nelson reported the following mailing deadlines:
</p><p>
<table border="1">
<tbody><tr>
<td>post-meeting mailing</td>
<td>June 27, 2008</td>
</tr>
<tr>
<td>mid-term mailing</td>
<td>July 25, 2008</td>
</tr>
<tr>
<td>pre-San Francisco mailing</td>
<td>August 22, 2008</td>
</tr>
</tbody></table>

<h3>
11.3 Following meetings
</h3>
<p>
The following meetings are as follows:
</p>
<ol>
<li>September 14-20, 2008 in the San Francisco Bay area -- this meeting will be co-located with WG14</li>
<li>March 2009, location TBD</li>
<li>July 2009, Frankfurt Germany</li>
<li>October 2009, location TBD</li>
</ol>

<p>
Plum moved to thank the host.  Applause.
</p>

<p><b>Motion to adjourn</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Hedquist</td></tr>
<tr><td><b>Seconder:</b> Spicer</td></tr>
</tbody></table>
<p>Unanimous consent.</p>

<h2>
Attendance
</h2>
<table class="right" border="1">
<tbody><tr>
<th>Company/Organization</th>
<th>Representative</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
</tr>

<tr>
<td>Adobe Systems</td>
<td>Mat Marcus</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Apple Computer</td>
<td>Howard E. Hinnant</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Bloomberg</td>
<td>John Lakos</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
</tr>

<tr>
<td>CodeGear</td>
<td>Alisdair Meredith</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Dawes</td>
<td>Beman G. Dawes</td>
<td></td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Dinkumware</td>
<td>P. J. Plauger</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Dinkumware</td>
<td>Tana Plauger</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Edison Design Group</td>
<td>J. Stephen Adamczyk</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Edison Design Group</td>
<td>Daveed Vandevoorde</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Edison Design Group</td>
<td>John H. Spicer</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Edison Design Group</td>
<td>Mike Herrick</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Edison Design Group</td>
<td>William M. Miller</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Fermi Nat. Accelerator Lab</td>
<td>Marc F. Paterno</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Gimpel Software</td>
<td>James Widman</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Google</td>
<td>Lawrence Crowl</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Hewlett-Packard</td>
<td>PremAnand Rao</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Hewlett-Packard</td>
<td>Hans Boehm</td>
<td></td>
<td></td>
<td></td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>IBM</td>
<td>Robert Klarer</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>IBM</td>
<td>Michael Wong</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></td>
</tr>

<tr>
<td>IBM</td>
<td>Paul McKenney</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></td>
</tr>

<tr>
<td>IBM</td>
<td>Raul Silvera</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></td>
</tr>

<tr>
<td>Indiana University</td>
<td>Doug Gregor</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Intel</td>
<td>Clark Nelson</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Microsoft</td>
<td>Jonathan Caves</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Microsoft</td>
<td>Herb Sutter</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>National ICT Australia</td>
<td>Manfred Doudar</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
</tr>

<tr>
<td>Oracle</td>
<td>Paolo Carlini</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
</tr>

<tr>
<td>Perennial</td>
<td>Barry Hedquist</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Plum Hall</td>
<td>Thomas Plum</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Plum Hall</td>
<td>Francis W. Glassborow</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Programming Research</td>
<td>Dietmar K&uuml;hl</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Red Hat</td>
<td>Jason Merrill</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Red Hat</td>
<td>Benjamin Kosnik</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>Rogue Wave Software</td>
<td>Martin Sebor</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
</tr>

<tr>
<td>Roundhouse Consulting</td>
<td>Pete Becker</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Sandia National Labs</td>
<td>K. Noel Belcourt</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
</tr>

<tr>
<td>Sun Microsystems</td>
<td>Stephen D. Clamage</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Symantec</td>
<td>Mike Spertus</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Tele Atlas</td>
<td>Alan Talbot</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Texas A&amp;M</td>
<td>Jaakko J&auml;rvi</td>
<td>A</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Texas A&amp;M</td>
<td>Bjarne Stroustrup</td>
<td>V</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></td>
</tr>

<tr>
<td>USENIX</td>
<td>Nick Stoughton</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
</tr>

<tr>
<td>Zephyr Associates</td>
<td>Thomas Witt</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Bruker Daltonics</td>
<td>Daniel Kr&uuml;gler</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td>HP</td>
<td>Christophe de Dinechin</td>
<td></td>
<td>N</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td>ILOG</td>
<td>Georges Schumacher</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td>INRIA</td>
<td>Sylvain Pion</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td>Integrable Solutions</td>
<td>Gabriel Dos Reis</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td>Interactive Data Managed Solutions</td>
<td>Jens Maurer</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td>Knearer</td>
<td>Winck Bruno</td>
<td></td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td></td>
</tr>

<tr>
<td>OCA</td>
<td>Alain Miniussi</td>
<td></td>
<td></td>
<td>N</td>
<td>N</td>
<td>N</td>
<td></td>
</tr>

<tr>
<td>TU Dresden</td>
<td>Peter Gottschling</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td></td>
</tr>

<tr>
<td>University of Nice</td>
<td>Jean-Paul Rigault</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td>Vollmann Engineering</td>
<td>Detlef Vollmann</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td></td>
<td>Alberto Ganesh Barbati</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td></td>
<td>Lo&iuml;c Joly</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>

</tbody></table>
</body></html>