Dear Peter, All,

On Tue, Aug 11, 2026 at 07:58:27AM +0200, [email protected] wrote:

> Hi Jim, all,
> 
> 
> I switched a bit the target, and try to do a minimal change raise to Win 10
> with modern compilers.
> As cheap as possible.
> 
> I found following issue:
> 
> *An override may not make a weaker promise about throwing than the thing it
> overrides* — because a caller holding a base pointer was told "this never
> throws" and may rely on it.

IMHO we should just get rid of all "throw" specifiers on methods and
functions.

According to [1] and [2] they are a bad idea on all C++ versions
supporting them, and they disseminate our code of hidden
std::unexpected() and std::terminate() calls.

They were deprecated in C++11 and removed in C++17.

References:
 1: http://www.gotw.ca/publications/mill22.htm
 2: https://devblogs.microsoft.com/oldnewthing/20180928-00/?p=99855

-- 
Arrigo

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to