0.5.4
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
clanguml::common::model::template_trait Class Reference

Common interface for template diagram elements. More...

Detailed Description

Common interface for template diagram elements.

Definition at line 33 of file template_trait.h.

#include <template_trait.h>

Public Member Functions

std::ostream & render_template_params (std::ostream &ostr, const common::model::namespace_ &using_namespace, bool relative) const
 
void add_template (template_parameter &&tmplt)
 
const std::vector< template_parameter > & template_params () const
 
int calculate_template_specialization_match (const template_trait &other) const
 Wrapper around calculate_template_params_specialization_match()
 

Private Attributes

std::vector< template_parametertemplates_
 
std::string base_template_full_name_
 

Member Function Documentation

◆ add_template()

void clanguml::common::model::template_trait::add_template ( template_parameter &&  tmplt)

Add template parameter

Parameters
tmpltTemplate parameter

Definition at line 42 of file template_trait.cc.

43{
44 templates_.push_back(std::move(tmplt));
45}

◆ calculate_template_specialization_match()

int clanguml::common::model::template_trait::calculate_template_specialization_match ( const template_trait other) const

Wrapper around calculate_template_params_specialization_match()

Parameters
otherOther template diagram element
Returns
Match value

Definition at line 52 of file template_trait.cc.

54{
56 template_params(), base_template.template_params());
57}

◆ render_template_params()

std::ostream & clanguml::common::model::template_trait::render_template_params ( std::ostream &  ostr,
const common::model::namespace_ using_namespace,
bool  relative 
) const

Render the template parameters to a stream.

Parameters
ostrOutput stream
using_namespaceRelative to namespace
relativeWhether to make template arguments relative to using_namespace
Returns
Reference to output stream

Definition at line 23 of file template_trait.cc.

25{
27
28 if (!templates_.empty()) {
29 std::vector<std::string> tnames;
30
31 std::transform(templates_.cbegin(), templates_.cend(),
32 std::back_inserter(tnames),
33 [ns = using_namespace, relative](
34 const auto &tmplt) { return tmplt.to_string(ns, relative); });
35
36 ostr << fmt::format("<{}>", fmt::join(tnames, ","));
37 }
38
39 return ostr;
40}

◆ template_params()

const std::vector< template_parameter > & clanguml::common::model::template_trait::template_params ( ) const

Get reference to template parameters.

Returns
Reference to template parameters list.

Definition at line 47 of file template_trait.cc.

48{
49 return templates_;
50}

Member Data Documentation

◆ base_template_full_name_

std::string clanguml::common::model::template_trait::base_template_full_name_
private

Definition at line 73 of file template_trait.h.

◆ templates_

std::vector<template_parameter> clanguml::common::model::template_trait::templates_
private

Definition at line 72 of file template_trait.h.


The documentation for this class was generated from the following files: