mizvekov added a comment.

In D99005#2860598 <https://reviews.llvm.org/D99005#2860598>, @Quuxplusone wrote:

> I have no strong/well-informed opinions here. I have an idea to offer, //if// 
> there is precedent for it. My idea is, keep it as an error if the rvalue 
> resolution finds nothing, but (1) fall back to an lvalue resolution //for 
> error-recovery purposes//, and (2) suppress the error in system headers. 
> Then, the usage in MSVC STL will keep working but only because it's in a 
> system header. I seem to recall that there is precedent for diagnostics that 
> are "non-downgradable error in user code, yet still suppressed in system 
> headers." If I'm imagining things, then please do not invent such a facility 
> purely for this feature.

That would still leave the effect of changing the deduced type of a 
`decltype(auto)` returning function. But I am on the same boat here in that I 
am not sure if you are imagining things as well :)

> My second choice is to do whatever minimalistic hack suffices to satisfy the 
> customer (Aaron etc. in this case), but only with the understanding that we 
> plan to eliminate that hack as soon as MSVC STL gets updated. My third choice 
> is to revert the whole thing and then land a new version of it that always 
> falls back to lvalue resolution, but with an on-by-default //warning// (not 
> error) (so this would probably affect a ton of your test cases); then the 
> user can downgrade that warning as a workaround.

Again, the change in flow where we make the expression an xvalue early and 
definitively before return type deduction occurs makes things more complicated.

My vote is the second choice, as I think making a workaround where we 
temporarily do the C++20 thing only in some contexts is far simpler, specially 
if we don't have to update a ton of test cases to cover it :)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99005/new/

https://reviews.llvm.org/D99005

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to