0.5.4
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
Functions
clanguml::common::visitor::detail Namespace Reference

Functions

std::string map_type_parameter_to_template_parameter (const clang::ClassTemplateSpecializationDecl *decl, const std::string &tp)
 
std::string map_type_parameter_to_template_parameter (const clang::TypeAliasTemplateDecl *decl, const std::string &tp)
 

Function Documentation

◆ map_type_parameter_to_template_parameter() [1/2]

std::string clanguml::common::visitor::detail::map_type_parameter_to_template_parameter ( const clang::ClassTemplateSpecializationDecl *  decl,
const std::string &  tp 
)

Definition at line 26 of file template_builder.cc.

28{
29 const auto [depth0, index0, qualifier0] =
30 common::extract_template_parameter_index(tp);
31
32 for (auto i = 0U; i < decl->getDescribedTemplateParams()->size(); i++) {
33 const auto *param = decl->getDescribedTemplateParams()->getParam(i);
34
35 if (i == index0) {
36 return param->getNameAsString();
37 }
38 }
39
40 return tp;
41}

◆ map_type_parameter_to_template_parameter() [2/2]

std::string clanguml::common::visitor::detail::map_type_parameter_to_template_parameter ( const clang::TypeAliasTemplateDecl *  decl,
const std::string &  tp 
)

Definition at line 43 of file template_builder.cc.

45{
46 const auto [depth0, index0, qualifier0] =
47 common::extract_template_parameter_index(tp);
48
49 for (auto i = 0U; i < decl->getTemplateParameters()->size(); i++) {
50 const auto *param = decl->getTemplateParameters()->getParam(i);
51
52 if (i == index0) {
53 return param->getNameAsString();
54 }
55 }
56
57 return tp;
58}