================
@@ -3488,6 +3460,110 @@ class UnresolvedLookupExpr final
}
};
+/// A template-id naming a variable template or a concept through a template
+/// template parameter.
+class DependentTemplateIdExpr final
+ : public Expr,
+ private llvm::TrailingObjects<DependentTemplateIdExpr,
+ ASTTemplateKWAndArgsInfo,
+ TemplateArgumentLoc> {
+ friend class ASTStmtReader;
+ friend class ASTStmtWriter;
+ friend TrailingObjects;
+
+ NestedNameSpecifierLoc QualifierLoc;
+
+ DeclarationNameInfo NameInfo;
+
+ TemplateName Name;
+
+ DependentTemplateIdExpr(const ASTContext &Context,
+ NestedNameSpecifierLoc QualifierLoc,
+ SourceLocation TemplateKWLoc,
+ const DeclarationNameInfo &NameInfo,
+ TemplateName Name,
+ const TemplateArgumentListInfo &TemplateArgs);
+
+ DependentTemplateIdExpr(EmptyShell Empty, unsigned NumTemplateArgs);
+
+ unsigned numTrailingObjects(OverloadToken<ASTTemplateKWAndArgsInfo>) const {
+ return 1;
----------------
erichkeane wrote:
IF there is always 1, why do trailing objects?
https://github.com/llvm/llvm-project/pull/216729
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits