C++ Logo


Advanced search

Subject: Re: [std-proposals] extern noexcept
From: Walt Karas (wkaras_at_[hidden])
Date: 2019-09-24 09:28:09

On 2019-09-24 01:06, Walt Karas via Std-Proposals wrote:
> (Side question:? shouldn't the Standard require a diagnostic if a
> noexcept function calls noexcept(false) functions on some codepath?)

Andrey Semashev via Std-Proposals wrote:
  No, because that function (1) may not actually throw, (2) may be inside
  a try block or may not be called in runtime and (3) program termination
  in case of an exception may be intended.
But points 1 and 2 contradict the premise of the question.  try/catch statements would I suppose be required to have catch (...) in noexcept functions.  For point 3, is there really a guarantee this will cause termination?  Seems like the exception could still be caught higher in the call stack, and some objects could potentially not get destroyed.  It seems better to encourage:
void calls_throwing_stuff() noxecept{  // stuff}
to be changed to something like:
void calls_throwing_stuff() noxecept{  try {    // stuff  } catch (...) std::terminate();}

STD-PROPOSALS list run by herb.sutter at gmail.com

Standard Proposals Archives on Google Groups