Skip to content

"terminate is called" inconsistency #3079

Closed
@jwakely

Description

@jwakely

Clause [except] consistently says "the function std::terminate is called".

[support.start.term] says "the function std::terminate shall be called" (which is an incorrect use of "shall", and redundant std-qualification).

[terminate.handler] says "The type of a handler function to be called by std::terminate() when terminating exception processing" (redundant qualification, completely bogus to use () when referring to a function by name, rather than describing a function call expression).

[execpol.seq], [execpol.par], [execpol.parunseq], and [execpol.unseq] say "terminate() shall be called" (incorrect "shall", unclear if it's trying to name the function or show a call expression, but arguably either is correct).

[stopsource] and [stopcallback.constr] (added by P0660R10, #3072) say "terminate() is called".

[thread.thread.constr] and [thread.jthread.constr] (the latter added by P0660R10 #3072) say "terminate shall be called" (incorrect "shall").

[thread.thread.destr] and [thread.thread.assign] say "calls terminate()".

[thread.condition.condvar] says "terminate() shall be called" many times (incorrect "shall").

This is a mess.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions