On Monday 26 August 2024 12:27:47 GMT-7 Giuseppe D'Angelo via Development 
wrote:
> Il 26/08/24 19:56, Thiago Macieira ha scritto:
> 
> > I'd like to request Qt code not obey that rule. In my opinion, it's a
> > defect
 in the contract implementation rather than on Qt code. The*pre* 
> > condition indicates something that must be true before the method is
> > called and therefore the method's own noexcept specification does not
> > apply*yet*.
> 
> As far as I've understood, that's only part of the issue. The other part 
> of the issue is that code calling the function may break: if you turn 
> the failed precondition check into an exception, the exception handling 
> will need to bubble it up through code which may not have set up the 
> correct unwinding state -- because it rightfully assumed that no 
> exception would escape out of a noexcept function.

How is that my problem? My code didn't throw. It was the user's action of
 a) turning precondition checks into runtime validations
 b) using exceptions for the runtime validation
 c) violating the precondition

that caused the problem.

In particular, I don't see why (b) should be used at all. A precondition 
violation implies that the state was unexpected at that point. How is an 
exception going to help recovering? That sounds like an exception that would 
bubble up all the way back to main() and at best perform an emergency save of 
state. But all of that is implementable with a termination handler too.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Principal Engineer - Intel DCAI Platform & System Engineering

Attachment: smime.p7s
Description: S/MIME cryptographic signature

-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to