Subject: SC22 N2642 - Comment Disposition of FCD 14882 - C++

From: "william c. rinehuls" <[email-masked]>
Date: Wed, 7 Jan 1998 17:42:46 -0500 (EST)

________________ beginning of title page ____________________________
ISO/IEC JTC 1/SC22
Programming languages, their environments and system software interfaces
Secretariat:  U.S.A.  (ANSI)

ISO/IEC JTC 1/SC22
N2642

TITLE:
Disposition of Comments Report for FCD 14882 - Information technology -
Programming languages - Programming language C++

DATE ASSIGNED:
1998-01-07

SOURCE:
Secretariat, ISO/IEC JTC 1/SC22

BACKWARD POINTER:
N/A

DOCUMENT TYPE:
Disposition of Comments Report

PROJECT NUMBER:
JTC 1.22.32

STATUS:
N/A

ACTION IDENTIFIER:
FYI

DUE DATE:
N/A

DISTRIBUTION:
Text

CROSS REFERENCE:
SC22 N2490

DISTRIBUTION FORM:
Def

Address reply to:
ISO/IEC JTC 1/SC22 Secretariat
William C. Rinehuls
8457 Rushing Creek Court
Springfield, VA 22153 USA
Telephone:  +1 (703) 912-9680
Fax:  +1 (703) 912-2973
email:  [email-masked]

_________________ end of title page; beginning of report ____________

           Disposition of Comments for Final CD (FCD) 14882:
           Information Technology - Programming Languages -
                      Programming Language C++

The text of the comments is available in ISO/IEC JTC1/SC22 N2490,
Summary of Voting on Final CD (FCD) 14882.  The text of the 330
comments received is quite lengthy.  Since SC22 N2490 is available
electronically, the text of the comments is not re-captured here.

Each response is identified by the relevant clause or subclause number,
the line number of the comment in SC22 N2490, the name of the country
providing the comment, and some further unique identification.

There were 41 comments that were not accepted, and 299 comments that
were accepted.  Each delegation from countries providing comments has
reported that the changes made to produce the Final DIS (FDIS) 14882
were acceptable to that delegation.

In the interests of further brevity, part 1 of this Disposition of
Comments will list the 41 comments that were not accepted, including
some rationale for the rejection.  Then part 2 will simply list the
comments that were accepted.  For details of the eventual disposition,
see the specified clause or subclause of FDIS 14882.

1. Comments that were not accepted, accompanied by reasons from WG21

14.8.2/4	L0230 Australia 3
The WG determined that the template argument deduction process would be  
impossibly complex if user-defined conversions were considered during  
deduction.  Althought some restricted cases might be practical, the WG  
decided that such limited functionality did not justify the complexity.

2.8	L0457 France 6
The WG decided to keep this rule exactly as it is in the C standard.  

21.3	L1003 France 20
[certain basic_string argument types not orthogonal] The WG has discussed  
this issue a number of times, and went over it again in London in response  
to the French NB comment.  The issue results from specifying an interface  
which caters to both  traditional string approaches and STL approaches.   
The WG does not wish to change the basic_string interface because it is  
already complex, and further changes would likely make it even more  
complex and idiosyncratic.

3.7.3.1	L1150 Ireland 1
The WG examined the possibility of allowing operator new and operator  
delete to be declared static, inline or in namespaces.  This creates  
problems with name look up and the one definition rule.  It was decided  
that such an important change is too sweeping to be considered as a  
comment on the final CD.

17.	L1789 UK 654
[Library resource usage policy] While one specific change was made to a  
table, and many library exception safety issues were dealt with in  
response to other NB comments, the larger issue of general library  
resource usage policy was not dealt with because the WG did not know how  
to do so.

1.8/9	L1891 UK 263
Comment Germany 1 caused this area of the WP to be reworked and the  
questioned sentence was removed.  

5.2.1	L1943 UK Ed-89
All operators described in Clause 5 require that their operand(s) be of a  
specific type.  Conversions to that type are not allowed.  Operands of  
class types are handled by Clause 13.

6.4/1	L1995 UK 632
The limitation is needed because of the parsing ambiguity between  
declarations and expressions.  The contents of: if ( int (x) ) return;  
would be considered a declaration under the rules in [stmt.ambig].  But  
that would break existing code in which such an expression is currently  
an explicit cast. Thus the current limitation in the WP that the  
initializations in conditions use the "=" form. 18.6.1	L2233 UK 665
[exception::what() NTBS return questioned] The WG believes the current  
wording is clear and unambiguous.

20.3.2	L2273 UK 641
[+x identity needed for completeness] The WG did not believe that a desire  
for completeness was sufficient to justify a change at this point in the  
standardization process.

27.	L2639 UK 633
No change; all stream members are non-const.

13.3.2	L3083  Canada 10, core 779
The WP was made consistent, but the suggested change was not adopted.  

21.3.7.9	L3739 Germany CD2-21-012
[Extraction of C strings and basic_strings inconsistent re null bytes]   
The full Library group discussed this in Morristown.  There was consensus  
that the behavior is correct as specified.

21.3.7.9	L3769 Germany CD2-21-013
[Extraction of C strings and basic_strings inconsistent re width]  The  
full Library group discussed this in Morristown.  There was consensus  
that the behavior is correct as specified.

22.2.6	L4018 Germany CD2-22-026
The WG considered it too late for such changes.

22.2.6	L4038 Germany CD2-22-028
The WG considered it too late for such changes.

22.	L4070 Germany CD2-22-029
No change; it was not considered of sufficient utility.

27.5.2.4.2	L4273 Germany CD2-27-040
No consensus on a change.

22.2.5.3.1	L4550 Germany _222/5
There was no consensus for more specific semantics.

27.5.2	L4621 Germany 2752/
Left unspecified, deliberately.

22.2.2	L4758 Germany _222.2
No change was made, the behaviors are (only) as specified.

22.2.6.3.2	L5112 Germany _222632/
Consistency with C dictated no changes in the return type.

22.2.7.1.2	L5595 Germany _222712/a
No change was made.

25.	L5713 Germany _2.5
The working group determined that this information is present in other  
places in the working paper, specifically at each point where such a  
range is used. Adding it here would be redundant, and getting the  
description to fit all the uses of such ranges would be complicated.

Annex D.	L5842 Germany C-headers
Some concessions were made regarding external identifiers; after very  
lengthy debate, there was no consensus for further changes.

24.4.2	L5991 Germany _244.2
 The working group felt that this was a minor optimization at best, but  
constrains implementors and introduces a difference from other iterators.  
It was a small enough gain that we didn't feel it was worthwhile this late  
in the standardization process.

26.3	L6038 Germany _26.3
The working group felt that this provides only a small benefit, and we  
didn't feel it was worthwhile this late in the standardization process.

23.1.1	L6369 Sweden _231.1
[Assign not listed in table 66] The WG did not wish to make assign  
required for sequences.

26.3.2.7	L6406 Sweden _2632.7
Paragraph 5 contains the normative text that specifies default  
construction for new elements, so the repetition in this example is not  
normative.

14.6.4.2	L6996 USA Core3 1.11
[Editorial box 12] The WG discussed this posssibility and determined that  
this change would have no effect, since functions without external linkage  
are not considered.

14.3/6	L7094 USA Core3 2.2 core-759
During the discussion of this issue, it was determined that these  
conversions conflicted with the requirement that it be possible to use  
any template parameter as a template argument in a template-id within the  
body of the first template.  The WG decided to remove the conversions  
entirely.

14.?	L7116 USA Core3 2.4 N1053 issue 6.46
The WG concluded that although it would be appropriate to specify such  
rules, it would require extending notions of type equivalence to areas for  
which the draft does not currently have a rigorous basis for such  
specification; and that current implementations based on an informal  
notion of such equivalence appear to handle the problem correctly.  

14.7.2	L7186 USA Core3 2.10 Editorial box 14
The WG concluded that the presence of an explicit instantiation directive  
in one translation unit should not change the meaning of instantiation  
points in other translation units.

17.	L7420 USA lib CD2-17-003
WG21 had a long and detailed discussion, including an evening session in  
Morristown.  Some partial assistance with the C/C++ linkage problems was  
provided by changes in 17.4.3.1.3 [lib.extern.names].

21.1.2	L7810 USA lib CD2-21-009
String complexities are not specified The WG does not wish to constrain  
implementations of basic_string by specification of string complexities.   
This may be appropriate for the next revision of the standard.

21.	L7835 USA lib CD2-21-010
Mutable iterators into strings are expensive The WG agreed that there is  
an issue here, but did not feel it was compelling enough to justify  
renaming functions at this point in the standardization process.

23.2.4	L8447 USA lib CD2-23-010
Is it possible to reclaim storage from a vector? The WG felt that there  
was some need, and that the best way to address the need would be the  
addition of a new function.  The WG did not wish to add such a function  
at this point in the standards process. This may be appropriate for the
next revision of the standard.

23.	L8497 USA lib CD2-23-012
Container insert will not accept const iterator The WG felt that the costs  
of the suggested change would outweigh the benefits.

23.	L8517 USA lib CD2-23-013
Container requirements do not talk about allocator interface Made moot by  
the solution to US CD2-23-018.

23.	L8533 USA lib CD2-23-014
Conversion of iterators to const_iterators The WG felt that the current  
wording is sufficient.

27.?	L9199 USA lib CD2-27-039
No consensus for any specific change.

2. Comments that were accepted

6.6.3	        L0199 Australia 1
12.8/1	        L0213 Australia 2
2.1/5	        L0331 France 1 
2.2	        L0368 France 2
2.3	        L0391 France 3
2.5	        L0405 France 4
2.6	        L0425 France 5 
3.2/4	        L0478 France 7
3.6.2/3	        L0497 France 8 
3.8	        L0547 France 9 
12.4/10	        L0562 France 10 
15.1/4	        L0588 France 11
15.2/2	        L0615 France 12
15.3/15	        L0702 France 13
15.3/16	        L0718 France 14
16.1   	        L0740 France 15 
21.1	        L0767 France 16 
21.1.3	        L0796 France 17 
21.1.3	        L0809 France 18  
21.3	        L0841 France 19  
21.3	        L1060 France 21 
21.3	        L1085 France 22  
21.3.1	        L1101 France 23  
21.3.1	        L1117 France 24  
2.1/1	        L1329 Japan 1 
2.1/1	        L1341 Japan 2 
21.1.2/1	L1350 Japan 3 
XE.1	        L1364 Japan 4 
20.4.5	        L1810 UK 629 
23.	        L1824 UK 669 
1.1/2	        L1864 UK 229 
1.8/6	        L1877 UK 573 
2.3	        L1904 UK Ed-273 
3.3.5/1	        L1920 UK 673 
5/4	        L1932 UK Ed-421 
5.3.3/6	        L1969 UK Ed-488 
5.3.4/3	        L1982 UK Ed-493 
7.3.2/3	        L2014 UK Ed-114 
16.2/4	        L2034 UK Ed-612 
17.	        L2048 UK Ed-682 
17.1	        L2063 UK Ed-648 
17.2.2.1.3.3/1	L2076 UK Ed-684 
17.3.1.2/4	L2088 UK 658 
17.3.1.3/2	L2102 UK 649 
18.4.1.1/3	L2113 UK 696 
18.4.2.1/2	L2146 UK 697 
18.5.1	        L2165 UK 664 
18.5.2/2	L2181 UK 699 
18.5.2/2	L2199 UK 701 
18.5.2/2	L2216 UK 700 
20.1.5	        L2246 UK 692 
20.1.5	        L2262 UK 675 
20.3.3/1	L2298 UK 676
20.3.5	        L2312 UK 693
20.3.6.1	L2331 UK 694
20.3.6.3	L2348 UK 695
20.4.4.3	L2366 UK 704
21.3.4	        L2384 UK 639
21.3.5.2	L2397 UK 671
23.1	        L2422 UK 677
23.1.2	        L2433 UK 680
23.1.2/2	L2445 UK Ed-678
23.1.2/7	L2459 UK 679
23.1	        L2470 UK 691
23.3.4/2	L2486 UK 681
24.4.1.1	L2497 UK 642
25.8	        L2534 UK 688
25.8	        L2546 UK 687
25.9	        L2563 UK Ed-689
25.9	        L2579 UK 702
26.2.2    	L2602 UK Ed-613
26.3.1	        L2615 UK Ed-706
26.3.9.1	L2627 UK 705
27.4.2	        L2657 UK 634
27.4.2.1.1	L2676 UK 635
27.4.2.7	L2697 UK 636
3.6.3	        L2728 Canada 1
5.3.1	        L2811 Canada 2
7.1.5.1	        L2847 Canada 3
8.3.6	        L2876 Canada 4, core-776
8.5.1	        L2902 Canada 5
9.5	        L2927 Canada 6
11.5	        L2953 Canada 7
12.2	        L3000  Canada 8
12.6.2	        L3038  Canada 9
14.3	        L3112  Canada 11
1.8/.19	        L3173 Germany 1
14/6	        L3204 Germany 2
18.7/1	        L3215 Germany 3
2.1.1/1	        L3258 Germany 4
7.5/2	        L3267 Germany 5
14.1/7	        L3282 Germany 6
14.3/9	        L3308 Germany 7
14.3/.11	L3332 Germany 8
14.5.4.2/1	L3345 Germany 9
14.5.5.2/2	L3356 Germany 10
14.6.1/3	L3367 Germany 11
14.6.4.3/1	L3381 Germany 12
14.7.2/4	L3401 Germany 13
22.	        L3532 Germany CD2-22-019
21.1.2	        L3795 Germany CD2-21-014
21.1.4	        L3821 Germany CD2-21-015
22.1.1.1.1	L3837 Germany CD2-22-004
22.2.6.3	L3876 Germany CD2-22-004
22.2.6.3	L3916 Germany CD2-22-022
22.2.1.5.2	L3937 Germany CD2-22-023
22.2.1.5	L3952 Germany CD2-22-024
22.2.1.1.2	L3983 Germany CD2-22-025
22.2.6.4	L4095 Germany CD2-22-030
22.2.6.1.2	L4116 Germany CD2-22-031
22.2.3.1.2	L4135 Germany CD2-22-032
22.2.5.3.1	L4154 Germany CD2-22-034
27.6.2.5.4	L4174 Germany CD2-27-031
27.6.2.5.4	L4201 Germany CD2-27-032
27.3	        L4253 Germany CD2-27-041
22.2.2.1.2	L4370 Germany _222212/
22.	        L4392 Germany 22. [see 24.1/7]
22.2.6    	L4458 Germany 22.2.6
22.1.1.1.1	L4519 Germany _221111/
22.2/5	        L4550 Germany _22.25
22.2.2.2.1	L4581 Germany _222221/
22.2.2.2.2	L4600 Germany _222222/a
22.2.2.2.2	L4664 Germany _222222/b
22.2.2.2.2	L4692 Germany _222222/c
22.2.2.2.2	L4713 Germany _222222/d
22.2.2.2.2	L4735 Germany _222222/e
XD.	        L4818 Germany _XD/
27.6.1.1.2	L4925 Germany _276112/
24.1.2	        L4975 Germany _241.2
21.1.4	        L5098 Germany _211.4
22.2.6.2.2	L5129 Germany _222622/
27.6.2.5.4	L5143 Germany CD2-27-003
27.4.4	        L5194 Germany CD2-27-012
27.8.1.4	L5213 Germany CD2-27-024
27.4.5.3	L5232 Germany CD2-27-025
27.7.3.1	L5248 Germany CD2-27-010
27.	        L5263 Germany CD2-27-011
27.4	        L5281 Germany CD2-27-013
27.6.1.1	L5297 Germany CD2-27-020
27.6.1.1	L5323 Germany CD2-27-021
27.8.1.4	L5346 Germany CD2-27-023
22.2.2.1.2	L5490 Germany _222212/
22.1.3.1	L5511 Germany 1 Editorial
22.2.2.2.2	L5530 Germany _222222/f
22.2.2.2.2	L5553 Germany _222222/g
22.2.2.1.2	L5574 Germany _222212/
22.2.2.1.2	L5620 Germany _222212/b
22.2.2.1.2	L5643 Germany _222212/c
22.2.2.1.2	L5665 Germany _222212/d
23.	        L5686 Germany _2.3
25.3.3.1	L5765 Germany _2533.1
23.	        L5903 Germany STL-excep-safety
23.	        L5938 Germany lib-excep-safety
19.1	        L5960 Germany _19.1
23.	        L5972 Germany _2.3b
26.3	        L6013 Germany _26.3
20.4.5.1	L6096 Germany _2045.1
24.4	        L6109 Germany _24.4
2.11	        L6138 Netherlands 2.11
3.6.2	        L6141 Netherlands 3.6.2
3.4.5	        L6147 Netherlands 3.4.5
10.3	        L6153 Netherlands 10.3
20.1.1    	L6156 Netherlands _201.1
22.1.1	        L6160 Netherlands _221.1a
22.1.1	        L6165 Netherlands _221.1b
22.1.1	        L6170 Netherlands _221.1c
22.1.1.1.1	L6174 Netherlands _221111/
22.2.2.2.2	L6178 Netherlands _222222/
26.3.2.7	L6182 Netherlands _2632.7
XA.4	        L6188 Netherlands _XA.4
2.3	        L6207 Norway 2.3
6.6.3	        L6227 Sweden 6.6.3
23.	        L6232 Sweden _2.3
23.	        L6265 Sweden _2.3b
23.	        L6317 Sweden _2.3c
21.3.4	        L6342 Sweden _213.4
23.2.2.4	L6348 Sweden _2322.4
27.6.2.1	L6356 Sweden _2762.1
21.3.3	        L6376 Sweden _213.3
21.3.3	        L6382 Sweden _213.3b
21.3.5.4/10	L6397 Sweden _2135.4_10
20.4.5	        L6413 Sweden _2045
23.	        L6420 Sweden lib-excep-safety 
1.3	        L6436 USA conformance 
7.1.2/4	        L6533 USA CD2-core 1-1, core-745 
3.4.2	        L6547 USA CD2-core 1-2, core-686 
3.4.3/5	        L6596 USA CD2-core 1-3, core-665 
5.2.4/2	        L6642 USA CD2-core 1-4 
7.3.3	        L6666 USA CD2-core 1-5 core-672 
7.5/7	        L6704 USA CD2-core 1-6 core-749 
8.5.2/1	        L6717 USA CD2-core 1-7 core-751 
9.5/3	        L6738 USA CD2-core 1-8 core-505 
5.3.4/9	        L6754 USA CD2-core 1-9 core-753 
12.8/13	        L6816 USA CD2-core 1-10  
12.7	        L6844 USA CD2-core 1-11  
12.7	        L6873 USA public comment 28 
5.2.9/10	L6877 USA core-774
5.2.1.1/2	L6881 USA 5.2.1.1 Paragraph 2
13.3.3	        L6886 USA core-778
12.3.2	        L6891 USA 97-0012/N1050
7.2	        L6895 USA core-683 
13.6/28	        L6899 USA core-756,734,682 
14.5.5.2/2	L6915 USA Core3 1.1  core-763
14.2/4	        L6924 USA Core3 1.2 core-765
14.6	        L6932 USA Core3 1.3 core-736 parts 2&3
14.5.4	        L6939 USA N1053 Core3 1.4 issue 6.49 and 6.53 item 3
14.5.4/5	L6947 USA Core3 1.5 N1053 issue 6.51
14.5.4	        L6955 USA Core3 1.6 N1053 issue 6.52
14.5.5.2	L6964 USA Core3 1.7 N1053 issue 6.55
14.5.5.2	L6970 USA Core3 1.8 N1053 issue 6.56
14.5.4/5	L6987 USA Core3 1.9 Editorial box 6
14.6.4.1	L6992 USA Core3 1.10 Editorial box 11
14.6.5/2	L7003 USA Core3 1.12 public comment 23
15.1	        L7009 USA Core3 1.13 public comment 26
14.6.4	        L7016 USA Core3 1.14 core-737
13.3.3/1	L7031 USA Core3 1.1
14.?	        L7037 USA Core3 1.16
14.?	        L7042 USA Core3 1.17
14.?	        L7048 USA Core3 1.18
14.?	        L7052 USA Core3 1.19
14.8.1	        L7069 USA Core3 1.20
14.?	        L7077 USA Core3 2.1 N1053 issue 6.54
14.6.4	        L7106 USA Core3 2.3 core-737
14.?	        L7128 USA Core3 2.5 N1053 issue 6.50
14.?	        L7143 USA Core3 2.6 N1053 issue 6.53
14.?  	        L7156 USA Core3 2.7 N1053 issue 6.58
14.?	        L7171 USA Core3 2.8 N1053 issue 8.11
14.6.1	        L7180 USA Core3 2.9 Editorial box 8
15.?	        L7197 USA Core3 2.11 core-769
2.2/2	        L7207 USA c-compat 22 Paragraph 2
2.13.1/2	L7262 USA c-compat 2.13.1 Paragraph 2
17.3.4.4/4	L7309 USA lib CD2-17-001
17.3.2.2/	L7349 USA lib CD2-17-002
18.1	        L7461 USA lib CD2-18-001
18.3	        L7490 USA lib CD2-18-002
20.4.2/1	L7531 USA lib CD2-20-001
20.3.8	        L7562 USA lib CD2-20-003
20.1.5	        L7665 USA lib CD2-20-004
21.3.4	        L7683 USA lib CD2-21-001
21.3.4	        L7713 USA lib CD2-21-001
21.3.3	        L7737 USA lib CD2-21-003
21.3.3/8	L7752 USA lib CD2-21-004
21.3.5.4	L7774 USA lib CD2-21-005
21.1.2	        L7791 USA lib CD2-21-007
22.2.1.3	L7858 USA lib CD2-22-001
22.2.2.1.2	L7913 USA lib CD2-22-002
22.2.2.2.2	L7937 USA lib CD2-22-003
22.1.1.1.1	L7962 USA lib CD2-22-004
22.1.1	        L7997 USA lib CD2-22-005
22.2.1.6	L8034 USA lib CD2-22-006
22.1	        L8056 USA lib CD2-22-007
22.1.1	        L8073 USA lib CD2-22-008
22.1.1	        L8089 USA lib CD2-22-009
22.1.1.1.2	L8108 USA lib CD2-22-010
22.1.1.1.2	L8125 USA lib CD2-22-011
22.1.1.2	L8150 USA lib CD2-22-012
22.1.2	        L8168 USA lib CD2-22-013
22.2.1.1	L8183 USA lib CD2-22-014
22.2.2.1.2	L8200 USA lib CD2-22-015
22.2.2.1.2	L8216 USA lib CD2-22-016
22.2.3.1.2	L8237 USA lib CD2-22-017
22.1.1.1.2	L8263 USA lib CD2-22-020
23.	        L8279 USA lib CD2-23-005
23.1.2	        L8339 USA lib CD2-23-006
23.	        L8375 USA lib CD2-23-007
23.	        L8412 USA lib CD2-23-009
23.1	        L8472 USA lib CD2-23-011
23.	        L8552 USA lib CD2-23-015
23.3.5.3	L8581 USA lib CD2-23-016
26.4.1	        L8600 USA lib CD2-26-002
26.2.6	        L8634 USA lib CD2-26-003
27.4.2.1.1	L8655 USA lib CD2-27-001
27.4	        L8680 USA lib CD2-27-002
27.6.2.5.4	L8716 USA lib CD2-27-003
27.2	        L8762 USA lib CD2-27-004
27.4.2.1.1	L8788 USA lib CD2-27-007
27.6.1.3	L8810 USA lib CD2-27-008
27.8.1.4	L8825 USA lib CD2-27-009
27.7.3.1	L8843 USA lib CD2-27-010
27.	        L8857 USA lib CD2-27-011
27.4.4	        L8873 USA lib CD2-27-012
27.4	        L8890 USA lib CD2-27-013
27.6.1.3	L8904 USA lib CD2-27-014
27.6.3	        L8922 USA lib CD2-27-015
27.4.2.5	L8940 USA lib CD2-27-017
27.6.1.1	L8952 USA lib CD2-27-020
27.6.1.1	L8971 USA lib CD2-27-021
27.8.1.4	L8991 USA lib CD2-27-023
27.8.1.4	L9005 USA lib CD2-27-024
27.4.5.3	L9022 USA lib CD2-27-025
27.6.3	        L9036 USA lib CD2-27-028
27.6.2.5.4	L9053 USA lib CD2-27-031
27.6.2.5.4	L9076 USA lib CD2-27-032
27.6.1.3	L9122 USA lib CD2-27-033
27.6.1.1.2	L9135 USA lib CD2-27-034
27.3.1	        L9148 USA lib CD2-27-035
27.4.2.7	L9159 USA lib CD2-27-036
27.6.2.5.3	L9170 USA lib CD2-27-037
27.8.1.4	L9183 USA lib CD2-27-038

________________ end of SC22 N2642 _____________________________________