<!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-0294 = WG21/<a hRef="../2008/n2784.html">N2784</a> -- Minutes of WG21 Meeting, September 15-20, 2008</title></head><body>
<pre><br>
                                        Doc No:   SC22/WG21/<a hRef="../2008/n2784.html">N2784</a>
                                                  PL22.16/08-0294
                                        Date:     2008-10-06
                                        Project:  JTC1.22.32
                                        Reply to: Robert Klarer
                                                  IBM Canada, Ltd.
                                                  klarer@ca.ibm.com
</pre>

<h1>
Minutes of WG21 Meeting, September 15-20, 2008
</h1>

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

<h3>
1.1 Opening comments
</h3>
<p>
Crowl 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>

<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/n2720.pdf">PL22.16/08-0230 = WG21/<a hRef="../2008/n2720.pdf">N2720</a></a>).</p>

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

<p>Approved by unanimous consent.</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>
Adamczyk reported that there are eleven papers in the queue of things to be discussed by CWG at this meeting.
The CWG's most important task this week is to get concepts ready to be voted in, but the CWG's goal is to get all eleven papers in the queue reviewed and made the subject of formal motions.
</p>

<h4>Library Working Group (LWG)</h4>
<p>
Hinnant reported that
there was an unofficial concepts meeting between meetings, and that
the LWG may split into concepts and non-concepts groups for the duration of the week.
</p>

<h4>Concurrency Working Group (EWG)</h4>
<p>
Boehm reported that the EWG
"... will meet with [the LWG] for a little bit in order to get the ground rules straightened out [regarding the use of multithreading in the C++ Standard Library]."
</p>

<h4>Evolution Working Group (EWG)</h4>
<p>
Crowl recalled that there were things that were explicitly deferred at the last meeting to this meeting.
</p>
<p>
Gregor asked whether there is any feasible path for those things to get into the CD at this meeting and, if not, whether the group should devote resources to them.
</p>
<p>
Plauger requested that Crowl and Glassborow quickly prioritize the EWG's work, to see whether it was likely that these items would remain unresolved by the end of the week.
</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-0191 = WG21/<a hRef="../2008/n2681.html">N2681</a></a>)</b></p>

<p>
Miller proposed the following friendly amendment: "Correct the document number of the paper title "Solving the SFINAE problem for expressions."  It was identified as 2658, but it should be 2634.
</p>
<p>
Klarer proposed the following friendly amendment: "Correct the spelling of Hedquist's name under agenda item 1.7."
</p>

<table border="1">
<tbody><tr><td><b>Mover:</b> Dawes</td></tr>
<tr><td><b>Seconder:</b> Plauger</td></tr>
</tbody></table>

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

<h3>
1.8 Report on the WG21 Monday meeting
</h3>

<h3>
1.9 Liaison reports
</h3>
<h4>WG14 Liaison</h4>
<p>
Stoughton reported that WG14 is in the beginning of a revision cycle of the C standard.
</p>
<p>
Plum reported that he took a number of C++ innovations and drafted them as C extensions, including:
</p>
<ul>
<li>static_assert</li>
<li>raw strings</li>
<li>utf-8 strings</li>
</ul>
<p>
Rao asked whether the C memory model will be consistent with the C++ memory model.
Nelson explained that C is going to adopt the same granularity that C++ did, and
Stoughton expanded on this, noting that compatibility with C++ was "a big driving factor to WG14's decisions."
</p>

<h4>POSIX Liaison</h4>
<p>
Stoughton noted that a Liaison Statement can be located on the Wiki.
</p>

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

<h4>1.10.1 Draft WP report and approval</h4>

<p>
The most recent working paper is  <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2723"> PL22.16/08-0233 = WG21/<a hRef="../2008/n2723.pdf">N2723</a></a>.   The Editor's Report is <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2724.pdf">PL22.16/08-0234 = WG21/<a hRef="../2008/n2724.html">N2724</a></a>.
</p>

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

<p>
Hinnant indicated that <a hRef="../2008/n2723.pdf">N2723</a> has a change that Project Editor believes is editorial.  Hinnant, however, believes that the change is not editorial, and he hesitates to accept <a hRef="../2008/n2723.pdf">N2723</a> because he is unsure of the procedure.
</p>

<p>
Plauger recommended approving the paper and treating the issue, if there is one, with high priority.
</p>

<p>
Becker explained that the editor's report contains information about those cases where he felt it was necessary to apply his individual discretion to the task of reflecting the committee's decisions to the existing text.
</p>

<p>
Becker also noted that the current draft is twice the length of the C++03 standard.
</p>

<h4>1.10.2 29124 Special Math Functions report and approval</h4>

<p>
Meredith reported that BSI strongly object to the organization of this paper, since it requires changes to existing standard headers, and that makes it difficult for a third party to implement a library based on this specification. 
</p>

<p>
Plauger indicated that this objection can be addressed as an NB comment
</p>

<p>
The most recent working paper is <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2717"> PL22.16/08-0227 = WG21/<a hRef="../2008/n2717.pdf">N2717</a></a>.
</p>

<p><b>Motion to advance <a hRef="../2008/n2717.pdf">N2717</a> to ISO for Ballot</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Plauger</td></tr>
<tr><td><b>Seconder:</b> Brown</td></tr>
</tbody></table>

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

<h4>1.10.3 Decimal TR report and approval</h4>

<p>
The most recent working paper is  <a href="http:://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2732"> PL22.16/08-0242 = WG21/<a hRef="../2008/n2732.pdf">N2732</a></a>.
</p>

<p><b>Motion to advance <a hRef="../2008/n2732.pdf">N2732</a> to ISO for Ballot</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Klarer</td></tr>
<tr><td><b>Seconder:</b> Dawes</td></tr>
</tbody></table>

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

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

<h4>1.11.1 Status of TR2 (make progress or close)</h4>

<p><b>Motion to close TR2</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Stoughton</td></tr>
<tr><td><b>Seconder:</b> Dawes</td></tr>
</tbody></table>

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

<h4>1.11.2 Status of Modules TR (make progress or close)</h4>
<p><b>Motion to close Modules TR</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Vandevoorde</td></tr>
<tr><td><b>Seconder:</b> Gregor</td></tr>
</tbody></table>

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

<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 (UTC-8).</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:
<blockquote>
<p>
Motion 1: The usual motion about issues in Ready status in the latest Core Issues list, <a hRef="../2008/n2714.html">N2714</a>.
Question about conflict between 594 and <a hRef="../2008/n2762.htm">N2762</a>.
</p>

<p>
Motion 2:
<a hRef="../2008/n2757.htm">N2757</a> "Expedited core issues handling (revision 2)", i.e., resolutions for core issues numbered 220, 592, 606, 614, 624, 681, 683, 688. Some issues we would normally move to Ready for next time, but wanted to fast-track to get into the CD.
</p>
<p>
Note that no action is being taken on the deprecated conversion of strings to <tt>char *</tt>.  We're pretty sure we don't want to take away that conversion, at least because of C compatibility issues, but we have yet to decide if we want the conversion to apply only to the string kinds that were in C++2003 or to all the new string kinds.  In any case, the current situation (allowed for old and some, but not all, new strings) is unacceptable.
</p>

<p> 
Motion 3:
<a hRef="../2008/n2756.htm">N2756</a> "Non-static data member initializers".
Note that use of "auto" for non-static data members (<a hRef="../2008/n2713.html">N2713</a>) is dead; there
are indeed technical reasons why that's a bad idea.  Also, the paper being adopted adds {}-form initializers for non-static data members but doesn't change non-static data member initializers, so {}-form initializers for those would have to come later from some other paper.
</p>

<p>
Motion 4:
<a hRef="../2008/n2764.pdf">N2764</a> "Forward declaration of enumerations (rev. 3)".  Allows forward declaration of an enum type.  This is not incomplete forward declarations as many implementations have:  The forward-declared enum has a known size/base type and you can declare objects of that type; you just don't have the enumerators.
</p>

<p>
Motion 5:
<a hRef="../2008/n2762.htm">N2762</a> "Not So Trivial Issues with Trivial".  Continues the POD/trivial type cleanup.
</p>

<p>
Motion 6:
<a hRef="../2008/n2752.htm">N2752</a> "Proposed Text for Bidirectional Fences".  Memory model issues.  Includes library changes, blessed by the LWG.
</p>

<p>
Motion 7:
<a hRef="../2008/n2765.pdf">N2765</a> "User-defined Literals (aka. Extensible Literals (revision 5)".
The syntax for the name of the operator functions was changed at this meeting,
to
<code>
operator "" xxxx()
</code>
Note that the space between "" and the xxxx suffix name is required, for now.
There's also some remaining desire for a way to make the operator functions once-only, so that literal value computation is not done more than once for, say, a user-defined literal in a loop.  That's left as a possible future work item.
</p>

<p>
Motion 8:
<a hRef="../2008/n2761.pdf">N2761</a> "Towards support for attributes in C++ (Revision 6)".
The paper is ready for a vote, if not quite at the level of refinement we usually like to see.  There was a significant syntax change for the position of attributes on statements just this week.
There are three builtin attributes: <tt>align</tt>, <tt>noreturn</tt>, and <tt>final</tt>.
An additional builtin attribute, <tt>carries_dependency</tt>, is proposed in the motion following this one.

</p>
<p>
There's some controversy about this feature:
<ul>
<li>
Pro: It allows introduction of small features without adding a keyword. These features admittedly end up somewhat as second-class citizens, but they would probably not have a chance at all if they had to get a keyword.  The alignas keyword can be dropped and replaced by an attribute.
</li>
<li>
Pro: IBM and CodeGear have already implemented something close to this proposal.
</li>
<li>
Pro:
The C committee is looking at adding the same syntax.
</li>
<li>
Pro:
In theory, having a standard syntax for attributes should allow vendors to eliminate their old vendor-specific forms and use the standard form.
</li>
<li>

Con: It's not going to happen.  Microsoft's declspec and GNU's attribute forms will doubtless be around anyway.
</li>
<li>
Con: The syntax, using [[...]], conflicts with the syntax used by Microsoft for their (very different) attributes.  Microsoft has said they will probably not implement these standard attributes.
</li>
<li>
Con: There's controversy about whether attributes should be allowed to affect semantics.  CWG is pretty clear about the fact that they can.  If you think you want to restrict attributes so they can't affect semantics, you should probably vote against this proposal, because it won't be possible to stop that.
</li>
<li>
Con: The proposal allows attributes in all kinds of places, without really saying what that means.  For example, it allows attributes to apply to types, but doesn't really say how that would affect the type system.  We're saved on that only because no builtin attributes that apply to types are being proposed.  Vendors who add such attributes would have to define what they mean in detail.
</li>
</ul>
<p>
Also note that BSI wants attributes, but doesn't want them added later if they're not in the CD.  So it's sort of now or never.
</p>

<p>
Motion 9:
<a hRef="../2008/n2782.htm">N2782</a> "C++ Data-Dependency Ordering: Function Annotation".  The <tt>carries_dependency</tt> attribute.
</p>

<p>
Motion 10:
<a hRef="../2008/n2773.pdf">N2773</a> "Proposed Wording for Concepts (Revision 9)".
Continued progress on this, but there were still some significant changes in the
proposal just this week.  It would be nice to have more time, but it's a marquee feature which has to be in the CD, a lot of thought has gone into it, and it's been (mostly) implemented.
</p>

<p>
Motion 11:
<a hRef="../2008/n2782.htm">N2782</a> "Named Requirements for C++0X Concepts".  Syntactic sugar to make concept requirements more compact.
</p>

<p>
Motion 12:
<a hRef="../2008/n2778.htm">N2778</a> "Wording for range-based for-loop (revision 3)".  The range-based
for loop, including library changes (waiting for confirmation) blessed by the LWG.  Requires concepts.
</p>

<p>
Motion 13:
<a hRef="../2008/n2763.htm">N2763</a> "Unified Function Syntax".  Whether "auto" or "[]" should be used in the late-specified return type syntax.   Lots of controversy, which is mostly about aesthetic preference, but also about
</p>
<ul>

<li>
For auto: it's a placeholder for a type, just like other uses of auto.
</li>
<li>
For []: It's an introducer for a callable object, just like lambdas, and selecting [] gives a path forward to adding other similar callable objects, in particular local functions.
(It should be noted that there was widespread agreement on both sides of the issue that if local functions are added the "[]" syntax would be good for them.)
</li>
</ul>

</blockquote>

<h4>Library Working Group</h4>

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

<h4>Future meetings:</h4>

<p>
<b>2-6 March 2009, Summit NJ:</b>
</p>
<p>
This meeting will be sponsored by EDG, Dinkumware, and Plum Hall, though other potential sponsors are urged to volunteer funds.
</p>

<p>
<b>13-18 July 2009, Frankfurt Germany.</b>
</p>

<p>
<b>19-24 October 2009, Santa Cruz, CA area:</b>
</p>
<p>Plauger noted that this meeting conflicts with OOPSLA, but that there is no viable alternative except to move the meeting to the last week of October, and to ask WG14 to convene during the week of October 19.
</p>
<p>
Two members reported concern about the scheduling conflict with OOPSLA, but in a subsequent show of hands, only six members favored moving the meeting to the last week of October, while eleven members opposed such a move.
</p>

<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 we apply the resolutions of all issues marked "ready" from <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2714.html">N2714</a> to the C++0X Working Paper, i.e. issues numbered 222, 594, 634, 637, 639, 647, 648, 649, 651, 659, 660, 671, 677, 679, 686.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 2.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2757.html">WG21/<a hRef="../2008/n2757.htm">N2757</a></a> "Expedited core issues handling (revision 2)" into the C++0X Working Paper, i.e. resolutions for core issues numbered 220, 592, 606, 614, 624, 681, 683, 688.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 3.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.html">WG21/<a hRef="../2008/n2756.htm">N2756</a></a> "Non-static data member initializers" into the C++0X Working Paper.
</p>

<p>
Nelson inquired as to whether this item had been implemented.
Caves replied, explaining that it had not.
</p>

<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>3</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 4.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2764.pdf">WG21/<a hRef="../2008/n2764.pdf">N2764</a></a> "Forward declaration of enumerations (rev. 3)" into the C++0X Working Paper.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 5.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2762.html">
WG21/<a hRef="../2008/n2762.htm">N2762</a></a> "Not So Trivial Issues with Trivial" into the C++0X Working Paper.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 6.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2752.html">
WG21/<a hRef="../2008/n2752.htm">N2752</a></a> "Proposed Text for Bidirectional Fences" into the C++0X Working Paper.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 7.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2765.pdf">
WG21/<a hRef="../2008/n2765.pdf">N2765</a></a> User-defined Literals (aka. Extensible Literals (revision 5) into the C++0X Working Paper.
</p>

<p>
Merrill asked what happened to the suggestion to change the declaration syntax to use "operator for."  Vandevoorde replied that there was no significant support for that idea.
</p>

<p>
Stoughton asked whether has this item been implemented.  Adamczyk explained that it had not.</p>

<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 8.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2761.html">
WG21/<a hRef="../2008/n2761.pdf">N2761</a></a> "Towards support for attributes in C++ (Revision 6)" into the C++0X Working Paper.
</p>

<p>
Abrahams asked "how do we ensure that vendors use the same attribute names for the same functionality?"
</p>
<p>
Adamczyk explained that "there is a facility for qualifying attribute names, but apart from that, market pressures will encourage convergence."
</p>

<p>
Meredith asked whether he, as a vendor, is allowed to do things with an attribute that I am not allowed to with a pragma.
</p>

<p>
Adamczyk answered that the syntax for usage is more selective than for pragmas.
</p>

<p>
Vandevoorde stated that this feature creates an opportunity for future language evolution, as the standard committee can add portable attributes in the future.
</p>

<p>
Dawes asked whether he will be, for example, forced to use to conditional compilation in BOOST code.
</p>

<p>
Merrill observed that code that requires vendor-specific extensions will always require conditional compilation for portability, regardless of whether or not attributes are used.
</p>

<p>
Witt agreed, arguing that attributes are no worse than the status quo, since the situation with #pragmas is the same.
</p>

<p>
Stroustrup asked whether it is true that a program is ill-formed if it uses a pragma that is ignored by the compiler.
</p>

<p>
Adamczyk explained that the implementation is free to specify that it ignores attributes that it doesn't understand.
</p>

<p>
Spertus asked whether it is true that Microsoft refuses to implement this feature.  Caves confirmed that it is.
</p>

<p>Discussion ensued.</p>

<p>
Glassborow noted that just about every major compiler already has attributes, and further opined "It's time we standardized the syntax for them."
</p>

<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>29</td>
<td>7</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 9.</b>
</p>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2782.html">WG21/<a hRef="../2008/n2782.htm">N2782</a></a> 
"C++ Data-Dependency Ordering: Function Annotation" into the C++0X Working Paper.
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 10.</b>
</p>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2773.pdf">WG21/<a hRef="../2008/n2773.pdf">N2773</a></a> 
"Proposed Wording for Concepts (Revision 9)" into the C++0X Working Paper.
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 11.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2780.pdf">WG21/<a hRef="../2008/n2780.pdf">N2780</a></a> 
"Named Requirements for C++0X Concepts" into the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 12.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2778.html">WG21/<a hRef="../2008/n2778.htm">N2778</a></a> 
"Wording for range-based for-loop (revision 3)" into the C++0X Working Paper.
</p>

<p>
Nelson asked whether this proposal has been implemented.
Gregor confirmed that it had.
</p>

<p>
Abrahams asked, for his information, why Vandevoorde was consistently voting against Concepts-related motions.
</p>
<p>
Vandevoorde explained that he does not have enough confidence in the quality of the core Concepts specification, and the risk of getting it wrong is too great.
</p>

<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>3</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 13.</b>
Move <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2763.html">WG21/<a hRef="../2008/n2763.htm">N2763</a></a> 
"Unified Function Syntax" into the C++0X Working Paper. 
</p>

<p>
Adamczyk recalled that, when lambda was voted into the WP, it was with the understanding that it would not prejudice the committee toward "auto" instead of "[]"
Further,
Adamczyk reported that this proposal does not completely resolve all of the grammar changes required to enable [].   The [] is a placeholder for a type, rather than an introducer. The grammar can later be modified to allow [] to act as an introducer.
</p>

<p>
Discussion ensued.
</p>

<p>
Glassborow reported that, assuming this motion is approved, the UK will be issuing an NB comment that they want [] to be an introducer rather than a placeholder for a type.
</p>

<p>
Discussion ensued.
</p>

<p>
Stroustrup reported that France will support the UK position on the use of brackets.
</p>

<p>
Caves suggested that the committee trying to create unity by using a notation that is different from what almost all programmers use today; that is confusing and unnecessary
</p>

<p>
Marcus expressed a preference that, when things are similar but not exactly the same, they should not look the same, to emphasize the distinction.
</p>

<p>
Merrill noted that this is a very large change in how people write C++, and that large projects will transition to any new notation gradually, so both forms will be evident in a single source tree.
</p>

<p>
Vandevoorde argued that the keyword "auto" is counter-intuitive, as there is nothing in the word auto that implies "placeholder."
</p>

<p>
Merrill agreed, but explained that auto looks like a specifier.
</p>

<p>
Spicer asked whether the bracket syntax introduces an ambiguity.
</p>

<p>
Adamczyk speculated that an ambiguity may arise once the grammar is modified to make the square brackets an introducer, just as implicit int created ambiguities.
</p>

<p>
Crowl expanded on this, noting that the ambiguity doesn't arise when the function has a late-specified return type.
</p>

<p>
Gibbons predicted that programmers will be tempted to define a macro like <tt>#define Function(name) []name</tt>.
</p>

<p>
Crowl observed that the difference in semantics that have been highlighted are not so much differences as restrictions.  For example, there are no default parameters for lambdas because it makes no sense to allow defaults for parameters that you can't be named anyway.  "It's not so much that functions and lambdas are inconsistent, but that different constraints apply."
</p>

<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>14</td>
<td>16</td>
<td>11</td>
</tr>
</tbody></table>

<p>
Plauger, noting that there appears to be no consensus, asked whether there is some state that in which the committee can leave the draft in that will appease all sides of the debate.
</p>

<p>
Spicer suggested that "perhaps we could agree that this is something that we can continue to work on."
</p>

<p>
Plauger agreed that "this is unequivocally an open issue
and the failure to reach consensus today should not prejudice the committee against any [future] proposal" that aims to solve the problem.
</p>

<h4>Library Working Group</h4>

<p>
<b>Motion 1.</b>
Move we apply the resolutions to the following issues from <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2727.html">N2727</a> to the C++0X Working Paper:

180, 387, 396, 522, 629, 691, 713, 714, 720, 728, 762, 769, 771, 772, 776, 779, 787, 805, 806, 807, 808, 809, 813, 824, 829, 842, 844, 848, 850, 852
</p>

<p>
Vandevoorde asked whether any of the issues in this list deal with Concepts.  Hinnant: "No."
</p>

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

<p>
<b>Motion 2.</b>
Move we apply the resolutions to the following issues to the C++0X Working Paper:

23, 675, 692, 698, 709, 734, 804, 820, 823 (requires foundational concepts), 843, 856

    These issues were not in Ready status in the pre-meeting mailing. However the LWG reviewed them and believes they should be go into the WP at this meeting because they are critical to the quality of the CD. 

</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 3.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2771.html">N2771</a> 
LWG Issues" to the C++0x working paper.

    858, 882 
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 4.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2783.html">N2783</a> 
"Collected Issues with Atomics" to the C++0x working paper.

    818, 845, 846, 864 
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 5.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2637.pdf">N2637</a> 
"Revisiting std::shared_ptr comparison" to the C++0X Working Paper.
</p>
<p>
Meredith recalled that this was controversial at the previous meeting, but that he has withdrawn his objections.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 6.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2755.html">N2755</a> 
"Concepts for the C++0x Standard Library: Chapter 17 -Introduction (Revision 2)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 7.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2774.pdf">N2774</a> 
"Foundational Concepts (Revision 5)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 8.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2777.pdf">N2777</a> 
 "Concepts for the C++0x Standard Library: Iterators (Revision 4)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 9.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2758.pdf">N2758</a> 
"Iterator Concepts for the C++0x Standard Library (Revision 6)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 10.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2759.pdf">N2759</a> 
"Concepts for the C++0x Standard Library: Algorithms (Revision 6)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 11.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2768.pdf">N2768</a> 
"Allocator Concepts, part 1 (revision 2)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>2</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 12.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2770.pdf">N2770</a> 
"Concepts for the C++0x Standard Library: Utilities (Revision 6)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 13.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2620.html">N2620</a> 
"Concepts for the C++0x Standard Library: Diagnostics Library" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 14.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2776.pdf">N2776</a> 
 "Concepts for the C++0x Standard Library: Containers (Revision 4)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 15.</b>
Move we apply only the changes for section 26.6 in the paper
<a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2736.pdf">N2736</a> 
"Concepts for the C++0x Standard Library: Numerics (Revision 4)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 16.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2779.html">N2779</a> 
"Concepts for clause 18 (Part 2)" to the C++0X Working Paper.
</p>
Austern: If the LWG takes the position that double is not EqualityComparable, that has implications beyond numeric_limits.
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>23</td>
<td>4</td>
<td>7</td>
</tr>
</tbody></table>

<p>
<b>Motion 17.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2668.html">N2668</a> 
"Concurrency Modifications to Basic String" to the C++0X Working Paper.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 18.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2748.html">N2748</a> 
"Strong Compare and Exchange" to the C++0X Working Paper.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 19.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2760.html">N2760</a> 
"Input/Output Library Thread Safety" to the C++0X Working Paper.
</p>

<p>
Dawes explained that this paper was not in the pre-meeting mailing, but the LWG felt this was non-controversial and that it is required for the completeness of the CD.
</p>

<p>
Halpern asked whether this proposal has been implemented.
Plauger explained that this proposal seeks to codify existing practice, so it has been implemented broadly.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 20.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2769.html">N2769</a> 
"Detailed Reporting for Input/Output Library Errors (Revision 2)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 21.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2772.pdf">N2772</a> 
 "Variadic Functions: Variadic Templates or Initializer Lists? (revision 1)" to the C++0X Working Paper.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 22.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2775.html">N2775</a> 
"Small library thread-safety revisions" to the C++0X Working Paper.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion 23.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2671.html">N2671</a> 
"An Asynchronous Future Value" with the name for the error category changed from "FUTURE" to "future" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td>1</td>
</tr>
</tbody></table>

<p>
<b>Motion 24.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2709.html">N2709</a> 
"Packaging Tasks for Asynchronous Execution" with the addition that it goes into the same section and header file as futures to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>21</td>
<td>3</td>
<td>17</td>
</tr>
</tbody></table>

<p>
<b>Motion 25.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2786.pdf">N2786</a> 
"Simplifying unique_copy (Revision 1)" to the C++0X Working Paper.
</p>
<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>many</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>
<b>Motion 26.</b>
Move we apply <a href="http:://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2530.html">N2530</a> 
"Making It Easier to Use std::type_info as an Index" to the C++0x working paper.
</p>
<p>
Meredith expressed his belief that a concepts constraints library there will enable better techniques for achieving the same end.
</p>
<p>Approved by unanimous consent.</p>

<p>
<b>Motion to move the Working Draft to Committee Draft Status</b>
</p>

<p>
Move we empower the Convenor to advance the Working Paper as amended by the foregoing motions to Committee Draft Status.
</p>

<table border="1">
<tbody><tr><td><b>Mover:</b> Klarer</td></tr>
<tr><td><b>Seconder:</b> Dawes</td></tr>
</tbody></table>

<table border="1">
<tbody><tr>
<td><b>favor</b></td>
<td><b>oppose</b></td>
<td><b>abstain</b></td>
</tr>
<tr>
<td>40</td>
<td>1</td>
<td></td>
</tr>
</tbody></table>

<p>A review committee was appointed to assist the Project Editor.  This committee consists of:
</p>
<ul>
<li>
Adamczyk
</li>
<li>
Hinnant
</li>
<li>
Dawes
</li>
<li>
Miller
</li>
<li>
Gregor
</li>
<li>
Meredith
</li>
<li>
Crowl
</li>
<li>
Brown
</li>
<li>
Widman
</li>
</ul>

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

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

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

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

<p>
Clamage reviewed all of the motions that were the subject of straw polls under Agenda Item 7, with the exception of CWG Motion 13, on Unified Function Syntax.
</p>

<p>
No objection was raised against any of the motions.
</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>

<p>
Adamczyk requested that members inform him about their plans to attend the Summit NJ meeting.
</p>

<p>
Maurer reported that the POSIX C++ bindings group will be meeting on the Friday before the WG21 meeting in Frankfurt.
</p>
<p>
Maurer also reported that there will be tours on the Saturday and Sunday preceding the WG21 meeting, and requested that members inform him about their plans to participate.</p>

<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>Oct 3, 2008</td>
</tr>
<tr>
<td>mid-term mailing</td>
<td>December 5, 2008</td>
</tr>
<tr>
<td>pre-Summit mailing</td>
<td>February 26, 2009</td>
</tr>
</tbody></table>

<h3>
11.3 Following meetings
</h3>
<p>
The following meetings are as follows:
</p>
<ol>
<li>March 2009, Summit NJ</li>
<li>July 2009, Frankfurt Germany</li>
<li>October 2009, Santa Cruz CA</li>
</ol>

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

<p>
Brown moved to thank the outgoing convenor.  Applause.
</p>

<p>
There was general agreement that new versions of the core and library issues lists would not appear in the mid-meeting mailing.
</p>

<p><b>Motion to adjourn</b></p>
<table border="1">
<tbody><tr><td><b>Mover:</b> Dawes</td></tr>
<tr><td><b>Seconder:</b> Nelson</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>BoostPro Computing</td>
<td>David Abrahams</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>Cilk Arts</td>
<td>Pablo Halpern</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>

<tr>
<td>CodeGear</td>
<td>Dawn Perchik</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>CodeGear</td>
<td>Lee Cantey</td>
<td></td>
<td></td>
<td>A</td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td>CodeGear</td>
<td>Dan Dean</td>
<td></td>
<td></td>
<td>A</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td>CodeGear</td>
<td>James Dennett</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></td>
</tr>

<tr>
<td>CodeGear</td>
<td>Vera Lychagina</td>
<td></td>
<td>A</td>
<td></td>
<td></td>
<td>A</td>
<td></td>
</tr>

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

<tr>
<td>Dawes</td>
<td>Beman G. Dawes</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>Bill Seymour</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></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></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></td>
</tr>

<tr>
<td>Dinkumware</td>
<td>Christopher Walker</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></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>Edison Design Group</td>
<td>Jens Maurer</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>Walter E. Brown</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>Matt Austern</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
</tr>

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

<tr>
<td>Google</td>
<td>Bill Gibbons</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></td>
</tr>

<tr>
<td>Google</td>
<td>James Dennett</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td>A</td>
<td></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>A</td>
<td>A</td>
<td>A</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>A</td>
</tr>

<tr>
<td>IBM</td>
<td>Paul McKenney</td>
<td></td>
<td></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>Oracle</td>
<td>Paolo Carlini</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
<td></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></td>
</tr>

<tr>
<td>Plum Hall</td>
<td>Thomas Plum</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></td>
<td></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>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></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>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></td>
<td></td>
<td></td>
<td></td>
<td></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>Bjarne Stroustrup</td>
<td></td>
<td></td>
<td></td>
<td>V</td>
<td>V</td>
<td>V</td>
</tr>

<tr>
<td>USENIX</td>
<td>Nick Stoughton</td>
<td>V</td>
<td>V</td>
<td>V</td>
<td></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>Amazon.com</td>
<td>Gary Powell</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td></td>
</tr>

<tr>
<td>University Carlos III/AFNOR</td>
<td>J. Daniel Garcia</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>

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