[clang] [clang][AST] Pretty-print default template template args (PR #162134)
Andrey Ali Khan Bolshakov via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 6 12:54:46 PDT 2025
================
@@ -1190,7 +1190,11 @@ void DeclPrinter::printTemplateParameters(const TemplateParameterList *Params,
VisitNonTypeTemplateParmDecl(NTTP);
} else if (auto TTPD = dyn_cast<TemplateTemplateParmDecl>(Param)) {
VisitTemplateDecl(TTPD);
- // FIXME: print the default argument, if present.
+ if (TTPD->hasDefaultArgument() && !TTPD->defaultArgumentWasInherited()) {
+ Out << " = ";
+ TTPD->getDefaultArgument().getArgument().print(Policy, Out,
+ /*IncludeType=*/false);
+ }
----------------
bolshakov-a wrote:
And what about
```diff
--- a/clang/lib/AST/DeclPrinter.cpp
+++ b/clang/lib/AST/DeclPrinter.cpp
@@ -51,6 +51,15 @@ namespace {
void PrintObjCTypeParams(ObjCTypeParamList *Params);
void PrintOpenACCRoutineOnLambda(Decl *D);
+ template <typename T>
+ void VisitTemplateDefArg(const T* Arg) {
+ if (Arg->hasDefaultArgument() && !Arg->defaultArgumentWasInherited()) {
+ Out << " = ";
+ Arg->getDefaultArgument().getArgument().print(Policy, Out,
+ /*IncludeType=*/false);
+ }
+ }
+
public:
```
?
https://github.com/llvm/llvm-project/pull/162134
More information about the cfe-commits
mailing list