May 22, 1998
1. Major changes from CD1
Lots of reorganization:
-- Requirements that used to be in Definitions and
conventions (clause 2) have been moved to Conformance
(clause 4) in accordance with Part 3 of the ISO
-- The long-deferred reorganization of the beginning of
the Language clause (6.1 and 6.2) specified in N672 has
been completed with minor adjustments due to changes
made since N672 was adopted.
-- The requirements for the predefined identifier __func__
have been moved from Primary expressions (6.5.1) to
Identifiers (6.4.2), replacing the forward reference
that used to be there.
-- The UCN requirements that were spread all over the
place have been collected into their own subclause
-- The Library clause (7) is now ordered alphabetically by
header name and the headers that were previously under
7.1 have been moved up and ordered appropriately.
-- Each library subclause that contains function
definitions is now ordered alphabetically by function
-- The functions in <complex.h> has been organized into
subclauses that parallel <math.h>.
-- <inttypes.h> has been split into <inttypes.h> and
-- The Bibliography is no longer an annex and appears
after the annexes in accordance with Part 3 of the ISO
Note: In general, I've suppressed the diff marks that would
normally result from moving a whole subclause in order to
avoid hiding any changes to the actual text of the
The draft has been (mostly) updated to conform to Part 3 of
the ISO Directives. This involved minor reformatting of the
2 SC22/WG14 N827
Normative references (clause 2) and the footnotes, and major
reformatting of the Definitions and conventions (clause 3,
now Terms and definitions) and the examples. It also
involved removing all instances of the word ``must'' from
the draft (``must'' is reserved for legal obligations).
Definitions are only allowed to contain actual definitions
in the normative text; anything else must be a note or an
example. Things that were obviously requirements have been
moved elsewhere (generally to Conformance, see above), the
examples that used to be at the end of the clause have been
distributed to the appropriate definitions, anything else
has been made into a note. (Some of the notes appear to be
requirements, but I haven't figured out a good place to put
The dates and titles of all the ISO, IEC, and ANSI documents
in the Normative references (clause 2) and Bibliography have
TR 10176 has been removed from Normative references (clause
2) because there are no normative references to it (the
normative references are to annex H).
The title of clause 4 has been changed from ``Compliance''
to the more accurate ``Conformance''.
<stdbool.h> and <stdint.h> are now required for freestanding
implementations, complex support is not.
The UCN wording has been harmonized with the C++ standard as
discussed at the last meeting.
The Recommended practices have been slightly reworded to
conform to Part 3 of the ISO Directives.
<complex.h> and <math.h> subclauses now include the
prototypes for the float and long double versions of the
There have been minor corrections to the specifications of
atanh, nextafter, and logb in <math.h>.
The specifications for fprintf and fwprintf now come from a
common source file, so there are no longer any gratuitous
differences in wording between them. Similarly for fscanf
I've taken the liberty of defining the term length modifier
to refer to the h, l, etc. that can appear before a
conversion specifier. This makes the specifications easier
to understand and gives us a term we can use to refer to
SC22/WG14 N827 3
I've added the %F conversion specifier to the scanf
functions on the assumption that we just overlooked it when
we added it to printf.
The changes specified in the minutes of the previous meeting
(N812) including documents N804, N808, N809, and N810 have
been applied. I have also applied the changes specified by
editorial review groups in N816 and N817.
There have been lots of little formatting and wording
changes based on public and private comments -- all are
noted by diff marks in the draft.
2. Open Issues
Still need final words for a real boolean type (see N815).
Need to work out the interaction of VLAs with mixed
declarations and code.
The index still needs more work.
The text version of the draft has not been reviewed and
contains numerous formatting problems such as superscripts
overprinting information from the previous line and
There are many typesetting issues still to be addressed.
For example, there are many equations typeset as code and
vice versa, particularly in annexes E and F. Some of these
issues primarily affect the typeset version and some
primarily affect the text version.
All hyphenated terms should be examined to determine where
the hyphenation is appropriate and where it isn't. All
italicized terms should also be examined.
All of the cross references need to be checked for relevance
The draft still needs some work to fully comply with Part 3
of the ISO Directives. The major issues remaining are:
-- the Notes in Definitions mentioned above
-- the formatting of tables
-- we have many subclauses that contain text in addition
to subordinate subclauses; ISO strongly discourages
-- all references to a specific version of a standard must
include the date; it is not sufficient to include the
4 SC22/WG14 N827
date only in the Normative references or the
Bibliography as we currently do
-- annexes are required to appear in the order in which
they are cited in the text (and thus there has to be a
citation for each annex); if anyone has any strong
feelings about ordering, please let me know
-- ISO requires numbers to be formatted with a comma for
the decimal-point character and digits before and after
the decimal-point character to be in space-separated
groups of three; I believe we have more than adequate
justification for ignoring this requirement
-- Larry Jones