c++c++11language-lawyerisoc++14

Are notes and examples in the core language specification of the C++ Standard non-normative?


Often on SO (and elsewhere) I have seen the claim that notes and examples in the C++ Standard are not normative - I have probably made this claim myself a few times.

However, I could not find evidence of this fact in the core language specification of the C++ Standard (at the moment I am looking at the n3979 Working Draft for C++14).

The closest quote I could find is in paragraph 17.5.1.2/2:

Paragraphs labeled “Note(s):” or “Example(s):” are informative, other paragraphs are normative.

However, unless I'm mistaken that paragraph only applies to the Library part (i.e. Clauses 18 through 30 and Annex D).

Hence the question: Are all notes and examples in the C++ Standard non-normative? How about footnotes?


Solution

  • See §6.5 of the ISO/IEC Directives Part 2. Notes, examples, and footnotes are all considered "informational", as opposed to "normative".

    For notes and examples:

    Notes and examples integrated in the text of a document shall only be used for giving additional information intended to assist the understanding or use of the document. They shall not contain requirements ("shall"; see 3.3.1 and Table H.1) or any information considered indispensable for the use of the document, e.g. instructions (imperative; see Table H.1), recommendations ("should"; see 3.3.2 and Table H.2) or permission ("may"; see Table H.3). Notes may be written as a statement of fact.

    For footnotes:

    Footnotes to the text give additional information; their use shall be kept to a minimum. As is the case for notes and examples integrated in the text (see 6.5.1) footnotes shall not contain requirements or any information considered indispensable for the use of the document.

    However, note that footnotes to figures and tables can contain requirements.