Xazax-hun wrote:

>  I know that's a fair amount of effort though and we could maybe just live 
> with these being kind of broken... but at the same time, I couldn't support 
> standardization for these (as-is) either and that's unfortunate given the 
> interest both C and C++ have in improving safety around lifetime.

If we push for a deprecation and make projects migrate, propose something for 
standardization and the spelling or some other aspects change in the process, 
we would force two migrations on our users. I think the right course of action 
here might be to not deprecate the current behavior but propose the new 
spelling for standardization and only have one wave of deprecation when the new 
spelling is approved. What do you think?

> For example, with virtual inheritance, overriders cannot generally have a 
> more lax specification than the base function, but you can with lifetimebound

I would argue that this is something that we want to diagnose (as a warning). 
That being said, we could do the same with declaration attributes. 

> It's not an implication, it's the behavior specified by the standard.

I understand that part but I would argue that the standard is quite 
inconsistent. E.g., contracts have the position behind the parameter list, yet 
they apply to the declaration and not to the type. 

https://github.com/llvm/llvm-project/pull/196549
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to