0.6.2
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 510 of file clang_utils.cc.

511{
512 return to_id(get_qualified_name(declaration));
513}

◆ to_id() [2/14]

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

Definition at line 500 of file clang_utils.cc.

501{
502 return to_id(get_qualified_name(declaration));
503}

◆ to_id() [3/14]

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

Definition at line 515 of file clang_utils.cc.

516{
517 return to_id(*t.getDecl());
518}

◆ to_id() [4/14]

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

Definition at line 475 of file clang_utils.cc.

476{
477 return to_id(get_qualified_name(declaration));
478}

◆ to_id() [5/14]

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

Definition at line 485 of file clang_utils.cc.

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

◆ to_id() [6/14]

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

Definition at line 490 of file clang_utils.cc.

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

◆ to_id() [7/14]

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

Definition at line 495 of file clang_utils.cc.

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

◆ to_id() [8/14]

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

Definition at line 470 of file clang_utils.cc.

471{
472 return to_id(common::to_string(type, ctx));
473}

◆ to_id() [9/14]

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

Definition at line 480 of file clang_utils.cc.

481{
482 return to_id(get_qualified_name(declaration));
483}

◆ to_id() [10/14]

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

Definition at line 505 of file clang_utils.cc.

506{
507 return to_id(get_qualified_name(declaration));
508}

◆ 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 520 of file clang_utils.cc.

521{
522 return to_id(file.lexically_normal().string());
523}

◆ to_id() [13/14]

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

Definition at line 464 of file clang_utils.cc.

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

◆ to_id() [14/14]

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