Document Number:

WG21/N1108

 

X3J16/97-0070

Date:

20 July 1997

Project:

Programming Language C++

Reply-To:

Sean A. Corfield

 

sean@ocsltd.com

J16 Meeting No. 24
WG21 Meeting No. 19
14-18 July 1997
US TAG Meeting 18 July 1997 (Appendix B)

BSI
389 Chiswick High Rd
London, UK

1. Opening activities

Clamage convened the meeting as chair at 9:05 GMT on Monday, 14 July 1997. Miller was vice-chair, and Corfield was the secretary.

BSI hosted the meeting.

1.1 Opening comments

Clamage noted that whereas the Nashua meeting was devoted to J16 resolution of US ballot comments, the London meeting would be devoted to WG21 resolution of all the NB ballot comments.

1.2 Introductions

Corfield circulated an attendance list each day, which is attached as Appendix A of these minutes. Miller circulated a copy of the membership list (SD-2 = 97-0001R3) for members to make corrections.

1.3 Membership, voting rights, and procedures for the meeting

Clamage reminded the attendees that this is a co-located meeting of WG21 and J16. (The joint membership is denoted WG21+J16 in these minutes.)

Clamage explained the voting rules:

Jean Stride, BSI, explained the facilities provided by the BSI.

Corfield explained the computing facilities provided by Object Consultancy Services Ltd and the Internet facilities provided by Demon Internet Services Ltd.

1.4 Distribution of position papers, WG progress reports, WG work plans for the week, and other documents that were not distributed before the meeting.

Deferred to 1.7.

1.5 Approval of the minutes of the previous meeting

Corfield said that he had not received any corrections for the minutes.

Motion by Dawes/Lajoie:

Move we approve N1059 = 97-0021 as the minutes of the previous meeting.

Motion passed J16: lots yes, 0 no, 0 abstain.

1.6 Agenda review and approval

Deferred to 1.7.

1.7 Report on the WG21 Sunday meeting

Plum summarized the WG21 meeting discussions. [Note: see N1106 = 97-0068 for details.]

Plauger asked for the ISO ballot vote to be noted in the minutes:

11 yes without comments

6 yes with comments

5 no with comments

1 abstain

1 not voting

Plum reiterated our goal of closing every issue at this meeting.

1.8 Liaison reports

Benito gave the WG14 (C language) liaison report. ISO C is currently in the registration ballot. The ISO C committee have added inline, declarations in for loops and extended identifiers, all in a manner compatible with C++. He said they have also added a bool type compatible with C++, either as a keyword or as a macro.

1.9 New business requiring actions by the committee

Colvin introduced a revision of the paper from Abrahams on exception safety in the library.

2. Working Paper for Draft Proposed Standard

2.1 Review of changes in the Working Paper (Committee Draft)

Koenig said a few typographical bugs have been fixed since Nashua.

3. Organize subgroups, establish working procedures.

There were three Core Language Working Groups chaired by Lajoie, Adamczyk and Gibbons, and two Library Working Groups chaired by Dawes and Schwarz.

The committees recessed at 10:25am.

4. WG sessions (Monday, Tuesday, Wednesday)

The committees reconvened at 16:00 on Wednesday afternoon.

5. General session I

The WG chairs summarised their progress.

6. General session II

Clamage said that WGs would present only controversial issues today.

6.1 Core II Language WG

Adamczyk presented the "major" issues from his group detailed in N1091 = 97-0053. Only one item generated any discussion.

Adamczyk explained the resolution of Canada comment 10, as described in N1084 = 97-0046 and noted that this passed with large majority in the combined Core WG.

Straw vote passed J16: 19 yes, 3 no, a few abstain.

Straw vote passed WG21: 3 yes, 1 no, 2 abstain. A count of W21 representatives showed Germany, Netherlands, France, Sweden, Canada, USA and UK were present. Japan was temporarily absent.

6.2 Core III Language WG

Stroustrup presented his proposal, N1043 = 97-0005, to change the handling of default arguments so that they are checked at instantiation instead of declaration.

Clamage explained the background to the proposal.

template< class T > void foo( const T& = T() );
struct C { C(int); };
C c;
foo( c );	// fails on T()

There was a library proposal considered that would introduce:

template< class U > U default_value()
	{ return U(); }
template< class T > void foo( const T& = default_value<T>() );

Gibbons said that Core III felt the language did not need to change to support this usage - it was an editorial issue over when an expression is "used". Plum established that no one actually objected to this clarification.

There was extensive discussion about how to characterize the proposal for a vote. Plauger said that Stroustrup's proposal needs a vote in its own right.

Straw vote on Stroustrup's proposal passed J16: 27 yes, 8 no.

Straw vote on Stroustrup's proposal passed WG21: 5 yes, 0 no, 2 abstain.

Straw vote on adding default_value<T>() to the library failed: 0 yes, lots no.

Straw vote on adding an unknown number of extra signatures to the library failed: 1 yes, lots no.

6.3 Library WG

Dawes explained the proposed resolution to the problem of ambiguities between container member functions taking iterator ranges as parameters (and 'size_t, T' signatures). The proposed resolution is to add wording that the library should "do the right thing". There were no questions about this issue.

Dawes then discussed the proposal for introducing an exception safety policy to the library. This was not controversial.

Dawes then discussed the problem that pointers to C library functions had non-portable linkage. Plum asked for clarification. Dawes explained what the LWG decided:

Dawes then explained the proposed restrictions on what signal handler functions could do (in answer to a German ballot comment). There were no questions.

Plum presented some work on whether C library routines should be in global namespace or in std namespace.

There was quite a bit of discussion about why C library names were put into std in the first place.

Straw vote in favor of adding both clarifications passed: 22 yes, 1 no, 11 abstain.

Plum volunteered to write this up as a formal proposal.

6.4 Core I WG

Lajoie presented N1094 = 97-0056 which proposes that operator new() and operator delete() can be declared static or inline.

Straw vote passed J16: 14 yes, 4 no, 16 abstain. Straw vote passed WG21: 3 yes, 0 no, 4 abstain.

Glassborow suggested that we defer a decision until we have Ireland's feedback on the proposal. Plum asked for a volunteer to liaise with Ireland's technical experts about the issue. Miller volunteered.

Lajoie explained the proposed clarification of when copies of objects can be elided, noting this answered an Australian comment. She said the WP is too broad and allows copies to be elided when they can still be used.

Lajoie said the two cases they wanted to explicitly allow are:

  1. elision of copy of temporary values,
  2. elision of copy of return value.

Preference straw vote:

Straw vote on no change: 4 yes.

Straw vote on removing 12.8p15 (remove optimizations): 0 yes.

Straw vote on accepting the proposal and pursuing further changes: 20 yes.

Straw vote on accepting the proposal and not pursuing further changes: 5 yes.

Lajoie said Core would conduct further work to look at other optimizations.

6.5 Core III Language WG (continued)

Gibbons explained the proposal to remove template template arguments. The background is that having discovered some problems, the Core III WG investigated the issue and then became concerned that there were more problems lurking. Brück spoke out against removing a language feature at this stage and feels it would be better to address the German comment by specifying the semantics more fully. Unruh said that as originator of the comment, he would be satisfied by the addition of a single bullet that clarified how template template arguments interact with partial ordering.

Straw vote to remove template template arguments failed: 13 yes, 18 no.

Gibbons said the feature stays so we still have to address the German comment.

Gibbons also mentioned two issues which were explicitly rejected, both of which were considered unnecessary extensions.

6.6 Library II (locale/iostream) WG

Schwarz presented the resolutions from his group. He said they have resolved every issue and produced a list of all the differences. They have also fully specified money_punct in a paper that has been prepared at this meeting but it is too early to go for a straw vote on it yet.

6.7 Other issues

Myers discussed an issue arising from overloading enums. Nelson showed a real example:

(enumval) == (charval) // is ambiguous because:
string::operator==( charval );
string::string( charval );

So the result was string( enumval ).operator==( charval ); A straw vote indicated that Core II should attempt to resolve this.

6.8 Disposition of comments

Plum asked WG chairs to draft responses to the NB comments (or delegate someone to do it for them). For comments with which we agreed, this will be easy, but for comments that we rejected the responses should indicate the due care and attention that the committee applied to the issue.

Myers asked what we should do about errors we find in the document. Dawes said they should go on an issue list for later resolution. Unruh asked that any major issues be raised more visibly. Clamage suggested the reflector be used to discuss any such issues.

7. Distribution of formal motions

A list of the papers which would constitute the formal motions was distributed. The majority of the papers consisted of troff diffs that should be applied to the WP.

8. Review of the meeting

Clamage said this had been a very productive meeting and thanked everyone for their cooperation.

8.1 Formal motions

Koenig asked Clamage to confirm that the next meeting agenda will include a vote to approve the WP once at the end of the meeting since we are producing an interim WP only. Clamage agreed. Clamage then counted J16 voting members (29 out of a possible 34) and WG21 voting members (8).

Core I

1. Motion by Lajoie/Miller to adopt various small Core language changes:

Move we amend the WP as described in N1095 = 97-0057 "Core I WP Changes" by Lajoie, Miller, Nelson.

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

2. Motion by Lajoie/Stump to clarify copy elision:

Move we amend the WP as described in N1103 = 97-0065R1 "Copy Elision" by Lajoie

Motion passed J16: lots yes, 2 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

Core II

3. Motion by Adamczyk/Welch to adopt various small Core language changes:

Move we amend the WP as described in N1104 = 97-0066 "Core II WP Changes" by Adamczyk

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

3a. Motion by Adamczyk/Welch to clarify overload resolution:

Move we amend the WP as described in N1084 = 97-0046 "Change to lvalue/rvalue resolution of overload" by Adamczyk

Motion passed J16: 19 yes, 5 no, 5 abstain.
Motion passed WG21: 4 yes, 0 no, 4 abstain.

The WG21 vote caused some discussion. The WG agreed to review this issue before the next meeting.

Core III

4. Motion by Lajoie/Gibbons to accept a revised clause 4 [templates]

Move we amend the WP by replacing clause 14 by N1089 = 97-0051 "Revised template clause" by Lajoie

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 7 yes, 0 no, 1 abstain.

Gibbons explained that this revision contained only non-controversial issues and that N1101 = 97-0063R1- to be voted on later - included the larger resolutions.

5. Motion by Spicer/Gibbons to clarify template argument deduction:

Move we amend the WP as described in N1090 = 97-0052 "Revised template argument deduction" by Spicer

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

6. Motion by Spicer/Lajoie to adopt various small clarifications to templates:

Move we amend the WP as described in N1092 = 97-0054 "Core III WP changes part 1" by Spicer

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

7. Motion by Brück/Corfield to change when default arguments are checked:

Move we amend the WP as described in N1093 = 97-0055 "Default arguments" by Stroustrup

Motion passed J16: 24 yes, 5 no, 0 abstain.
Motion passed WG21: 7 yes, 0 no, 1 abstain.

8. Motion by Gibbons/Lajoie to adopt various Core language clarifications:

Move we amend the WP as described in N1101 = 97-0063R1 "Core III WP changes part 2" by Gibbons.

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

Library I

9. Motion by Rumsby/Dawes to adopt various small Library changes:

Move we amend the WP as described in N1098 = 97-0060 "Library WP changes" by Rumsby

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

10. Motion by Rumsby/Dawes to adopt some Library clarifications:

Move we amend the WP as described in N1102 = 97-0064 "Other Library changes" by Rumsby

Motion passed J16: lots yes, 1 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

11. Motion by Unruh/Dawes to clarify what names the C library reserves:

Move we amend the WP as described in N1105 = 97-0067 "The C library and global names" by Plum

Motion passed J16: lots yes, 0 no, 2 abstain.
Motion passed WG21: 7 yes, 0 no, 1 abstain.

Library II

12. Motion by Schwarz/Andersson to clarify money and time format in locale:

Move we amend the WP as described in N1096 = 97-0058 "Clarification of locale money and time formats" by Myers, Kühl

Motion passed J16: lots yes, 0 no, 3 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

13. Motion by Schwarz/Andersson to adopt various small changes to locale:

Move we amend the WP as described in N1097 = 97-0059 "Changes to locale" by Plum

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

14. Motion by Schwarz/Rumsby to adopt various small changes to iostream:

Move we amend the WP as described in N1099 = 97-0061 "Changes to iostream" by Schwarz

Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.

15. Motion by Rumsby/Clamage to thank the hosts:

Move we thank Jean Stride and BSI for hosting the meeting, Programming Research for the reception, Glassborow and the ACCU for refreshments at breaks, Corfield and Object Consultancy Services for loan of computer equipment

Motion passed WG21+J16 by acclamation.

8.2 Review of action items, decisions made, and documents approved by the committee

The following issues have been deferred and need resolution at or before the New Jersey meeting in November:

Koenig reminded the committee of the outstanding problem with enum and overloading. This is a core issue (Core 889) and the WG21 representatives present in London were unanimous that the problem needs a resolution.

Dawes said that the LWG still needs to add explicit to some signatures (the exception and fpos constructors). This change is previously approved but not yet in the draft and addresses Germany's comment 191 and USA comment CD2-27-036.

Dawes noted there are also half a dozen "editorial" comments outstanding which include a couple of substantive but minor issues.

The committee will also consider further issues from the reflector and private email subject to unanimous consent of WG21.

Unruh raised the issue of auto_ptr again since this was controversial within WG21. He also noted that the resolution regarding C library and namespaces might not satisfy Germany.

Someone noted that the rvalue/lvalue overload resolution adjustment needs to be revisited after feedback from National Bodies.

8.3 Issues delayed until Friday

None.

9. Plans for the future

9.1 Next meeting

Koenig said the next meeting would be 9-14 November at Headquarters Plaza Hotel in Morristown, NJ hosted by AT&T. Clamage said the WG will complete resolution of CD2 ballot comments and produce the DIS for submission.

9.2 Mailings

Miller said the usual schedules apply: 1st August is the deadline for post-London mailing.

9.3 Following meetings

Plum said it is hard to decide an agenda for the March '98 meeting yet since we will not know the result of the JTC1 letter ballot on the FDIS until just before the meeting, which will be in Sofia Antipolis, SE France. The meeting will be hosted by the University of Nice.

Motion by Corfield/Dawes:

Move we adjourn.

Motion passed WG21+J16: lots yes, 0 no.

The committees adjourned at 10:20 on Friday.

Appendix A

Name

Affiliation

M

T

W

Th

F

Becker, Pete

self

A

A

A

A

A

Dawes, Beman

self

V

V

V

V

V

Gibbons, Bill

self

V

V

V

V

V

Kühl, Dietmar

self

A

A

A

 

 

Langer, Angelika

self

A

A

A

A

A

Myers, Nathan

self

A

A

A

A

 

Koenig, Andrew

AT&T

V

V

V

V

V

Stroustrup, Bjarne

AT&T

A

A

A

A

A

Charney, Reg

Charney & Day

V

V

V

V

 

Sutter, Herb

CNTC

 

 

A

A

A

Comeau, Greg

Comeau Computing

V

V

 

V

V

Stump, Mike

Cygnus Solutions

V

V

V

V

V

Ward, Judy

Digital Equipment Corp

V

V

V

V

V

Whitman, Sandra

Digital Equipment Corp

A

A

A

A

A

Plauger, P. J.

Dinkumware Ltd

V

V

V

V

V

Plauger, Tana

Dinkumware Ltd

A

A

 

A

A

Brück, Dag

Dynasim AB

V

V

V

V

V

Adamczyk, Steve

Edison Design Group

V

V

V

V

V

Spicer, John

Edison Design Group

A

A

A

A

A

Jonsson, Fredrik

Ericsson Austria AG

V

V

V

V

V

Klarer, Robert

IBM

A

A

A

A

A

Lajoie, Josee

IBM

V

V

V

V

V

Lextrait, Vincent

ILOG

V

V

V

V

V

Colvin, Greg

IMR

V

V

V

V

V

Nelson, Clark

Intel

V

V

V

V

V

Sütö, Gyuszi

Intel

A

A

A

A

 

Schwarz, Jerry

Intrinsa

V

V

V

V

V

Andersson, Per

Ipso Object Software

V

V

V

V

V

Kumoluyi, Akin

Motorola

V

V

V

V

V

Corfield, Sean

Object Consultancy Services

V

 

 

V

V

Goldthwaite, Lois

Objectspace

A

A

 

 

 

Benito, J.

Perennial

V

V

V

V

V

Plum, Thomas

Plum Hall

V

V

V

V

V

Southworth, Mark

Programming Research

V

V

 

 

 

Wilcox, Tom

Rational Software Corp

V

V

V

V

V

Glassborow, Francis

Richfords

V

V

V

V

V

Smithey, Randy

Rogue Wave Software

V

V

V

V

V

Saks, Dan

Saks & Associates

V

V

V

V

V

Rouse, Jack

SAS Institute

V

V

V

V

V

Schilling, Jonathan

SCO

V

V

V

V

V

Austern, Matt

SGI

V

V

V

V

V

Unruh, Erwin

Siemens Nixdorf

V

V

V

V

V

Miller, William M.

Software Emancipation Tech

V

V

V

V

V

Clamage, Steve

Sun Microsystems

A

A

A

A

A

Crowl, Lawrence

Sun Microsystems

V

V

V

V

V

Welch, Jim

Sybase

V

V

V

V

V

Crowfoot, Norm

Xerox

V

V

V

V

V

Total Attending

 

46

45

42

44

41

Total Voting

 

34

33

31

33

32

Appendix B - J16 US TAG Meeting

Minutes of the U.S. TAG Meeting (recorded by William M. Miller)

 

The U.S. TAG convened immediately following the adjournment of the joint meeting of J16 and WG21, chaired by J16 IR Clark Nelson. Miller volunteered to record the minutes, since J16 secretary Corfield is not a member of the U.S. TAG. 25 of the 29 TAG members with voting rights were present, satisfying quorum requirements.

 

Nelson stated that the only business for the TAG at this meeting was to select the U.S. delegation for the next WG21 meeting. He explained that there had been requests that Beman Dawes be added to the delegation to represent the Library subgroup and that Benito had volunteered to leave the delegation. The suggested delegation of Clamage, Dawes, Koenig, Nelson, and Stroustrup was approved unanimously.

 

The U.S. TAG meeting adjourned at 10:25 a.m.