MCPcopy Create free account
hub / github.com/andreasfertig/cppinsights / InsertTemplateArgs

Method InsertTemplateArgs

CodeGenerator.h:218–239  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

216
217 template<typename T>
218 void InsertTemplateArgs(const T& t)
219 {
220 if constexpr(std::is_same_v<T, FunctionDecl>) {
221 if(const auto* tmplArgs = t.getTemplateSpecializationArgs()) {
222 InsertTemplateArgs(*tmplArgs);
223 }
224 } else if constexpr(std::is_same_v<T, VarTemplateSpecializationDecl>) {
225 InsertTemplateArgs(t.getTemplateArgs());
226
227 } else if constexpr(requires { t.template_arguments(); }) {
228 if constexpr(std::is_same_v<DeclRefExpr, T>) {
229 if(0 == t.getNumTemplateArgs()) {
230 return;
231 }
232 }
233
234 InsertTemplateArgs(t.template_arguments());
235
236 } else if constexpr(requires { t.asArray(); }) {
237 InsertTemplateArgs(t.asArray());
238 }
239 }
240
241 void InsertTemplateArgs(const ClassTemplateSpecializationDecl& clsTemplateSpe);
242

Callers

nothing calls this directly

Calls 1

AppendMethod · 0.80

Tested by

no test coverage detected