0.6.0
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
src
common
model
template_element.h
Go to the documentation of this file.
1
/**
2
* @file src/common/model/template_element.h
3
*
4
* Copyright (c) 2021-2025 Bartek Kryza <bkryza@gmail.com>
5
*
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
#pragma once
19
20
#include "
element.h
"
21
#include "
template_trait.h
"
22
23
namespace
clanguml::common::model
{
24
25
/**
26
* @brief Base class for any element qualified by namespace.
27
*/
28
class
template_element
:
public
element
,
public
template_trait
{
29
public
:
30
using
element::element
;
31
32
~template_element
()
override
=
default
;
33
34
/**
35
* Whether or not the class is a template.
36
*
37
* @return True, if the class is a template.
38
*/
39
bool
is_template
()
const
;
40
41
/**
42
* Set, whether the class is a template.
43
*
44
* @param is_struct True, if the class is a template.
45
*/
46
void
is_template
(
bool
is_template
);
47
48
/**
49
* @brief Calculate template specialization match with other class.
50
*
51
* This method is a wrapper over
52
* @ref template_trait::calculate_template_specialization_match()
53
*
54
* @param other
55
* @return
56
*/
57
int
calculate_template_specialization_match
(
58
const
template_element
&other)
const
;
59
60
/**
61
* Whether, a template specialization has already been found for this class.
62
* @return True, if a template specialization has already been found.
63
*/
64
bool
template_specialization_found
()
const
;
65
66
/**
67
* Set, whether a template specialization has already been found for this
68
* class.
69
*
70
* @param found True, if a template specialization has already been found.
71
*/
72
void
template_specialization_found
(
bool
found);
73
74
private
:
75
bool
template_specialization_found_
{
false
};
76
bool
is_template_
{
false
};
77
};
78
79
}
// namespace clanguml::common::model
Copyright © 2022-present
Bartek Kryza
Generated by
1.9.7