Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If the copy constructor for the exception object type throws during the copy initialization, std::terminate() is called, which can result in undefined behavior. For more information on implicitly calling std::terminate(), see ERR50-CPP. Do not call std::terminate(), std::abort(), or std::_Exit()abruptly terminate the program.

The copy constructor for an object thrown as an exception must be declared noexcept, including any implicitly-defined copy constructors. Note, any function declared noexcept that terminates by throwing an exception does not conform to ERR55-CPP. Honor exception specifications.

...