What should happen when the assert message expression throws?
    Walter Bright 
    newshound2 at digitalmars.com
       
    Fri Nov 18 20:41:54 UTC 2022
    
    
  
On 11/18/2022 4:36 AM, RazvanN wrote:
> I have stumbled upon: https://issues.dlang.org/show_bug.cgi?id=17226
Yes, an interesting problem.
I suggest that have the format() template do the check at compile time, 
analogously to the way printf() formats are statically checked.
The signature of format() is:
   immutable(Char)[] format(Char, Args...)(in Char[] fmt, Args args)
so it should be doable as a template constraint.
This would be a good initiative anyway, as it will benefit all uses of format(). 
And if this enables format() itself to be nothrow, even better!
Of course, this does not solve the *general* problem of arguments to assert() 
throwing, but as others suggested, that can be dealt with by:
1. won't fix - too bad, so sad!
2. require such arguments to be nothrow, which is a more robust solution
    
    
More information about the Digitalmars-d
mailing list