[libcxx-commits] [clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

Krystian Stasiowski via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jul 15 09:07:33 PDT 2024


sdkrystian wrote:

> I think the next reland needs to cover the non-type template case, so that we have a way to suppress the warning for all cases (this gives developer time to do the cleanup transition).

@hokein The problem with the non-type template case is that we would have to check the validity of constructs outside the potential _template-argument-list_ in order to disambiguate. For example, `w.x<y>::z` may be a valid expression (interpreted as `((w.x) < y) > ::z`) if the type of `w` is a class type that declares a member `x`, `::z` exists, and both `<` and `>` comparisons are valid. 

> I wonder if we should consider deploying that change NOT as a DR such that it would only affect C++23+ conformance, that might alleviate some of the pain points.

@cor3ntin Yes, this is what I was thinking and is the resolution I prefer. 

https://github.com/llvm/llvm-project/pull/98547


More information about the libcxx-commits mailing list