0.6.3
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
Functions
Forward template for convertions to ID from various entities

Detailed Description

These methods provide the main mechanism for generating globally unique identifiers for all elements in the diagrams. The identifiers must be unique between different translation units in order for element relationships to be properly rendered in diagrams.

Functions

template<typename T >
eid_t clanguml::common::to_id (const T &declaration)
 
template<>
eid_t clanguml::common::to_id (const std::string &full_name)
 
eid_t clanguml::common::to_id (const clang::QualType &type, const clang::ASTContext &ctx)
 
template<>
eid_t clanguml::common::to_id (const clang::NamespaceDecl &declaration)
 
template<>
eid_t clanguml::common::to_id (const clang::CXXRecordDecl &declaration)
 
template<>
eid_t clanguml::common::to_id (const clang::RecordDecl &declaration)
 
template<>
eid_t clanguml::common::to_id (const clang::ObjCCategoryDecl &type)
 
template<>
eid_t clanguml::common::to_id (const clang::ObjCInterfaceDecl &type)
 
template<>
eid_t clanguml::common::to_id (const clang::ObjCProtocolDecl &type)
 
template<>
eid_t clanguml::common::to_id (const clang::EnumDecl &declaration)
 
template<>
eid_t clanguml::common::to_id (const clang::TagDecl &declaration)
 
template<>
eid_t clanguml::common::to_id (const clang::EnumType &type)
 
template<>
eid_t clanguml::common::to_id (const clang::TemplateSpecializationType &type)
 
template<>
eid_t clanguml::common::to_id (const std::filesystem::path &type)
 

Function Documentation

◆ to_id() [1/14]

template<>
eid_t clanguml::common::to_id ( const clang::CXXRecordDecl &  declaration)

Definition at line 512 of file clang_utils.cc.

513{
514 return to_id(get_qualified_name(declaration));
515}

◆ to_id() [2/14]

template<>
eid_t clanguml::common::to_id ( const clang::EnumDecl &  declaration)

Definition at line 502 of file clang_utils.cc.

503{
504 return to_id(get_qualified_name(declaration));
505}

◆ to_id() [3/14]

template<>
eid_t clanguml::common::to_id ( const clang::EnumType &  type)

Definition at line 517 of file clang_utils.cc.

518{
519 return to_id(*t.getDecl());
520}

◆ to_id() [4/14]

template<>
eid_t clanguml::common::to_id ( const clang::NamespaceDecl &  declaration)

Definition at line 477 of file clang_utils.cc.

478{
479 return to_id(get_qualified_name(declaration));
480}

◆ to_id() [5/14]

template<>
eid_t clanguml::common::to_id ( const clang::ObjCCategoryDecl &  type)

Definition at line 487 of file clang_utils.cc.

488{
489 return to_id(fmt::format("__objc__category__{}", type.getNameAsString()));
490}

◆ to_id() [6/14]

template<>
eid_t clanguml::common::to_id ( const clang::ObjCInterfaceDecl &  type)

Definition at line 492 of file clang_utils.cc.

493{
494 return to_id(fmt::format("__objc__interface__{}", type.getNameAsString()));
495}

◆ to_id() [7/14]

template<>
eid_t clanguml::common::to_id ( const clang::ObjCProtocolDecl &  type)

Definition at line 497 of file clang_utils.cc.

498{
499 return to_id(fmt::format("__objc__protocol__{}", type.getNameAsString()));
500}

◆ to_id() [8/14]

eid_t clanguml::common::to_id ( const clang::QualType &  type,
const clang::ASTContext &  ctx 
)

Definition at line 472 of file clang_utils.cc.

473{
474 return to_id(common::to_string(type, ctx));
475}

◆ to_id() [9/14]

template<>
eid_t clanguml::common::to_id ( const clang::RecordDecl &  declaration)

Definition at line 482 of file clang_utils.cc.

483{
484 return to_id(get_qualified_name(declaration));
485}

◆ to_id() [10/14]

template<>
eid_t clanguml::common::to_id ( const clang::TagDecl &  declaration)

Definition at line 507 of file clang_utils.cc.

508{
509 return to_id(get_qualified_name(declaration));
510}

◆ to_id() [11/14]

template<>
eid_t clanguml::common::to_id ( const clang::TemplateSpecializationType &  type)

◆ to_id() [12/14]

template<>
eid_t clanguml::common::to_id ( const std::filesystem::path &  type)

Definition at line 522 of file clang_utils.cc.

523{
524 return to_id(file.lexically_normal().string());
525}

◆ to_id() [13/14]

template<>
eid_t clanguml::common::to_id ( const std::string &  full_name)

Definition at line 466 of file clang_utils.cc.

467{
468 return static_cast<eid_t>(
469 static_cast<uint64_t>(std::hash<std::string>{}(full_name)));
470}

◆ to_id() [14/14]

template<typename T >
eid_t clanguml::common::to_id ( const T &  declaration)