Description
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.