This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 113d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-03-20


160. Missing std:: qualification

Section: 9.3.3  [dcl.ambig.res]     Status: CD1     Submitter: Al Stevens     Date: 23 Aug 1999

[Moved to DR at 10/01 meeting.]

9.3.3 [dcl.ambig.res] paragraph 3 shows an example that includes <cstddef> with no using declarations or directives and refers to size_t without the std:: qualification.

Many references to size_t throughout the document omit the std:: namespace qualification.

This is a typical case. The use of std:: is inconsistent throughout the document.

In addition, the use of exception specifications should be examined for consistency.

(See also issue 282.)

Proposed resolution:

In 6.9.1 [intro.execution] paragraph 9, replace all two instances of "sig_atomic_t" by "std::sig_atomic_t".

In 6.2 [basic.def] paragraph 4, replace all three instances of "string" by "std::string" in the example and insert "#include <string>" at the beginning of the example code.

In 6.9.3.1 [basic.start.main] paragraph 4, replace

Calling the function
void exit(int);
declared in <cstdlib>...

by

Calling the function std::exit(int) declared in <cstdlib>...

and also replace "exit" by "std::exit" in the last sentence of that paragraph.

In 6.9.3.1 [basic.start.main] first sentence of paragraph 5, replace "exit" by "std::exit".

In 6.9.3.2 [basic.start.static] paragraph 4, replace "terminate" by "std::terminate".

In 6.9.3.3 [basic.start.dynamic] paragraph 1, replace "exit" by "std::exit" (see also issue 28).

In 6.9.3.3 [basic.start.dynamic] paragraph 3, replace all three instances of "atexit" by "std::atexit" and both instances of "exit" by "std::exit" (see also issue 28).

In 6.9.3.3 [basic.start.dynamic] paragraph 4, replace

Calling the function
void abort();
declared in <cstdlib>...

by

Calling the function std::abort() declared in <cstdlib>...
and "atexit" by "std::atexit" (see also issue 28).

In 6.7.5.5.2 [basic.stc.dynamic.allocation] paragraph 1 third sentence, replace "size_t" by "std::size_t".

In 6.7.5.5.2 [basic.stc.dynamic.allocation] paragraph 3, replace "new_handler" by "std::new_handler". Furthermore, replace "set_new_handler" by "std::set_new_handler" in the note.

In 6.7.5.5.2 [basic.stc.dynamic.allocation] paragraph 4, replace "type_info" by "std::type_info" in the note.

In 6.7.5.5.3 [basic.stc.dynamic.deallocation] paragraph 3, replace all four instances of "size_t" by "std::size_t".

In 6.7.3 [basic.life] paragraph 5, replace "malloc" by "std::malloc" in the example code and insert "#include <cstdlib>" at the beginning of the example code.

In 6.8 [basic.types] paragraph 2, replace "memcpy" by "std::memcpy" (the only instance in the footnote and both instances in the example) and replace "memmove" by "std::memmove" in the footnote (see also issue 43).

In 6.8 [basic.types] paragraph 3, replace "memcpy" by "std::memcpy", once in the normative text and once in the example (see also issue 43).

In 6.8.2 [basic.fundamental] paragraph 8 last sentence, replace "numeric_limits" by "std::numeric_limits".

In 7.6.1.7 [expr.dynamic.cast] paragraph 9 second sentence, replace "bad_cast" by "std::bad_cast".

In 7.6.1.8 [expr.typeid] paragraph 2, replace "type_info" by "std::type_info" and "bad_typeid" by "std::bad_typeid".

In 7.6.1.8 [expr.typeid] paragraph 3, replace "type_info" by "std::type_info".

In 7.6.1.8 [expr.typeid] paragraph 4, replace both instances of "type_info" by "std::type_info".

In 7.6.2.5 [expr.sizeof] paragraph 6, replace both instances of "size_t" by "std::size_t".

In 7.6.2.8 [expr.new] paragraph 11 last sentence, replace "size_t" by "std::size_t".

In 7.6.6 [expr.add] paragraph 6, replace both instances of "ptrdiff_t" by "std::ptrdiff_t".

In 7.6.6 [expr.add] paragraph 8, replace "ptrdiff_t" by "std::ptrdiff_t".

In 8.7 [stmt.jump] paragraph 2, replace "exit" by "std::exit" and "abort" by "std::abort" in the note.

In 9.3.3 [dcl.ambig.res] paragraph 3, replace "size_t" by "std::size_t" in the example.

In 9.5 [dcl.fct.def] paragraph 5, replace "printf" by "std::printf" in the note.

In 11.4.7 [class.dtor] paragraph 13, replace "size_t" by "std::size_t" in the example.

In 11.4.11 [class.free] paragraph 2, replace all four instances of "size_t" by "std::size_t" in the example.

In 11.4.11 [class.free] paragraph 6, replace both instances of "size_t" by "std::size_t" in the example.

In 11.4.11 [class.free] paragraph 7, replace all four instances of "size_t" by "std::size_t" in the two examples.

In 11.9.5 [class.cdtor] paragraph 4, replace "type_info" by "std::type_info".

In 12.5 [over.built] paragraph 13, replace all five instances of "ptrdiff_t" by "std::ptrdiff_t".

In 12.5 [over.built] paragraph 14, replace "ptrdiff_t" by "std::ptrdiff_t".

In 12.5 [over.built] paragraph 21, replace both instances of "ptrdiff_t" by "std::ptrdiff_t".

In 13.3 [temp.names] paragraph 4, replace both instances of "size_t" by "std::size_t" in the example. (The example is quoted in issue 96.)

In 13.4 [temp.arg] paragraph 1, replace "complex" by "std::complex", once in the example code and once in the comment.

In 13.9.4 [temp.expl.spec] paragraph 8, issue 24 has already corrected the example.

In 14.2 [except.throw] paragraph 6, replace "uncaught_exception" by "std::uncaught_exception".

In 14.2 [except.throw] paragraph 7, replace "terminate" by "std::terminate" and both instances of "unexpected" by "std::unexpected".

In 14.2 [except.throw] paragraph 8, replace "terminate" by "std::terminate".

In 14.3 [except.ctor] paragraph 3, replace "terminate" by "std::terminate".

In 14.4 [except.handle] paragraph 9, replace "terminate" by "std::terminate".

In 14.5 [except.spec] paragraph 8, replace "unexpected" by "std::unexpected".

In 14.5 [except.spec] paragraph 9, replace "unexpected" by "std::unexpected" and "terminate" by "std::terminate".

In 14.6 [except.special] paragraph 1, replace "terminate" by "std::terminate" and "unexpected" by "std::unexpected".

In the heading of 14.6.2 [except.terminate], replace "terminate" by "std::terminate".

In 14.6.2 [except.terminate] paragraph 1, footnote in the first bullet, replace "terminate" by "std::terminate". In the same paragraph, fifth bullet, replace "atexit" by "std::atexit". In the same paragraph, last bullet, replace "unexpected_handler" by "std::unexpected_handler".

In 14.6.2 [except.terminate] paragraph 2, replace

In such cases,
void terminate();
is called...

by

In such cases, std::terminate() is called...

and replace all three instances of "terminate" by "std::terminate".

In the heading of _N4606_.15.5.2 [except.unexpected], replace "unexpected" by "std::unexpected".

In _N4606_.15.5.2 [except.unexpected] paragraph 1, replace

...the function
void unexpected();
is called...

by

...the function std::unexpected() is called...
.

In _N4606_.15.5.2 [except.unexpected] paragraph 2, replace "unexpected" by "std::unexpected" and "terminate" by "std::terminate".

In _N4606_.15.5.2 [except.unexpected] paragraph 3, replace "unexpected" by "std::unexpected".

In the heading of 14.6.3 [except.uncaught], replace "uncaught_exception" by "std::uncaught_exception".

In 14.6.3 [except.uncaught] paragraph 1, replace

The function
bool uncaught_exception()
returns true...

by

The function std::uncaught_exception() returns true...
.

In the last sentence of the same paragraph, replace "uncaught_exception" by "std::uncaught_exception".