Topic: The C++ Standard, Footnotes and Normative Behavior


Author: kanze.james@neuf.fr (James Kanze)
Date: Wed, 16 Aug 2006 16:25:36 GMT
Raw View
Greg Herlihy wrote:
 > Pete Becker wrote:
 >> Greg Herlihy wrote:
 >>> Footnote #170 is normative. Only those paragraphs that being
 >>> with "Example:' or "Note:" are non-normative and 17.4.4.1
 >>> contains neither.  Besides, what sense would it make to use
 >>> the word "must" in non-normative text?

 >> Under ISO rules, footnotes are not normative.

 > More precisely, footnotes describe a Standard's normative
 > behavior - even if they do not define it themselves.  As the C
 > Standard puts it, "Footnotes are provided to emphasize
 > consequences of the rules described in that subclause or
 > elsewhere in this International Standard."

That's the intent, of course.  The point of their not being
normative is that in cases where there is a contradiction, or
where the standard clearly doesn't say anything, then they don't
hold.  I think, however, that the standard's body would consider
such a footnote a defect, needing correction.

 > Now how one would be able to deduce some of the footnotes in
 > the C++ Standard (including 170, which reads  "C++ headers
 > must include a C++ header that contains any needed
 > definition") from the rules found in the main body of text is
 > - at least to me - not at all clear.

Nor to me.  More generally, it's not clear at all what a
standard header can or cannot include---can a standard header
include a non-standard header, for example?  (In practice, all
of them do, even in C.  Which, in practice, makes the
implementation non-conforming, at least if the wrong -I option
is given.)

--=20
James Kanze                                    kanze.james@neuf.fr
Conseils en informatique orient=E9e objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France +33 (0)1 30 23 00 34

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]





Author: gennaro_prota@yahoo.com (Gennaro Prota)
Date: Thu, 17 Aug 2006 16:34:59 GMT
Raw View
On Wed, 16 Aug 2006 16:25:36 GMT, kanze.james@neuf.fr (James Kanze)
wrote:

>Nor to me.  More generally, it's not clear at all what a
>standard header can or cannot include---can a standard header
>include a non-standard header, for example?

On a related note, this confirms my interpretation that there's no
such a thing as a "non standard header", just "source file". But not
everybody agrees. We came upon the question on the Boost list and,
after a long discussion (getting nowhere), Beman decided to file the
following:

 <http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_active.html#370>

--
Gennaro Prota

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]





Author: "Greg Herlihy" <greghe@pacbell.net>
Date: Mon, 7 Aug 2006 22:10:03 CST
Raw View
Pete Becker wrote:
> Greg Herlihy wrote:
> >
> > Footnote #170 is normative. Only those paragraphs that being with
> > "Example:' or "Note:" are non-normative and 17.4.4.1 contains neither.
> > Besides, what sense would it make to use the word "must" in
> > non-normative text?
> >
>
> Under ISO rules, footnotes are not normative.

More precisely, footnotes describe a Standard's normative behavior -
even if they do not define it themselves. As the C Standard puts it,
"Footnotes are provided to emphasize consequences of the rules
described in that subclause or elsewhere in this International
Standard."

Now how one would be able to deduce some of the footnotes in the C++
Standard (including 170, which reads  "C++ headers must include a C++
header that contains any needed definition") from the rules found in
the main body of text is - at least to me - not at all clear.

Greg

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]