Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/lib/Sema/SemaDeclCXX.cpp | ||
---|---|---|
11014 | I'd add here "The template name may not be qualified. [temp.deduct.guide]". This is pretty important to the logic here and never explicitly written down. | |
11027 | It's not quite clear what you're implying by this:
The latter is correct, because the grammar only allows a simple-template-id (the name must be an identifier, no NNS allowed). I'm not actually sure we want a comment here about qualified names at all - not including it in the || is correct whether or not it could occur here. By the way, the following code is correctly rejected by clang, but accepted by GCC and MSVC: namespace ns { template <typename> class X {}; template <typename T> X(T) -> ns::X<T>; } (We're in the right scope, so this isn't just about secondary diagnostics) | |
11029 | The meaning of this || is not clear. Maybe bool SimplyWritten = ...? Maybe also // A Using TemplateName can't actually be valid (either it's qualified, or we're in the wrong scope). But we have diagnosed these problems already. |
I'd add here "The template name may not be qualified. [temp.deduct.guide]".
This is pretty important to the logic here and never explicitly written down.