32 switch(parm->getKind()) {
33 case clang::TemplateArgument::ArgKind::Type: {
34 out.
names[0] = parm->getAsType().getAsString(pp);
36 spdlog::debug(
"type: {}", out.
names[0]);
39 case clang::TemplateArgument::ArgKind::Integral: {
40 llvm::SmallString<10> tmp_name;
41 parm->getAsIntegral().toString(tmp_name);
42 out.
names[0] = tmp_name.str().str();
44 spdlog::debug(
"integral: {}", out.
names[0]);
47 case clang::TemplateArgument::ArgKind::Pack: {
48 out.
names.resize(parm->pack_size());
49 for(
auto pack_it = parm->pack_begin(); pack_it != parm->pack_end(); pack_it++) {
50 switch(pack_it->getKind()) {
51 case clang::TemplateArgument::ArgKind::Type: {
52 out.
names[std::distance(parm->pack_begin(), pack_it)] = pack_it->getAsType().getAsString(pp);
55 case clang::TemplateArgument::ArgKind::Integral: {
56 llvm::SmallString<10>
name;
57 pack_it->getAsIntegral().toString(
name);
58 out.
names[std::distance(parm->pack_begin(), pack_it)] =
name.str().str();
69 case clang::TemplateArgument::ArgKind::Template: {
70 llvm::raw_string_ostream OS(out.
names[0]);
71#if INSTANTIATOR_LLVM_MAJOR > 13
72 parm->getAsTemplate().print(OS, pp, clang::TemplateName::Qualified::Fully);
74 parm->getAsTemplate().print(OS, pp,
false);