104 lines
1.6 KiB
Markdown
104 lines
1.6 KiB
Markdown
# t00039 - Subclass class diagram filter test
|
|
## Config
|
|
```yaml
|
|
compilation_database_dir: ..
|
|
output_directory: puml
|
|
diagrams:
|
|
t00039_class:
|
|
type: class
|
|
generate_packages: false
|
|
glob:
|
|
- ../../tests/t00039/t00039.cc
|
|
using_namespace:
|
|
- clanguml::t00039
|
|
include:
|
|
subclasses:
|
|
- clanguml::t00039::A
|
|
- clanguml::t00039::C
|
|
- clanguml::t00039::D
|
|
- clanguml::t00039::E
|
|
- clanguml::t00039::ns3::F<T>
|
|
relationships:
|
|
- inheritance
|
|
exclude:
|
|
namespaces:
|
|
- std
|
|
- clanguml::t00039::detail
|
|
- clanguml::t00039::ns3::detail
|
|
```
|
|
## Source code
|
|
File t00039.cc
|
|
```cpp
|
|
#include <string>
|
|
|
|
namespace clanguml::t00039 {
|
|
struct B {
|
|
};
|
|
|
|
struct C {
|
|
};
|
|
|
|
struct D {
|
|
};
|
|
|
|
struct E {
|
|
};
|
|
|
|
namespace ns1 {
|
|
struct BB : public B {
|
|
};
|
|
} // namespace ns1
|
|
|
|
struct CD : public C, public D {
|
|
};
|
|
|
|
struct DE : public D, public E {
|
|
};
|
|
|
|
struct CDE : public C, public D, public E {
|
|
};
|
|
|
|
struct A {
|
|
};
|
|
|
|
struct AA : public A {
|
|
};
|
|
|
|
struct AAA : public AA {
|
|
B *b;
|
|
};
|
|
|
|
namespace ns2 {
|
|
struct AAAA : public virtual AAA {
|
|
};
|
|
} // namespace ns2
|
|
|
|
namespace detail {
|
|
struct AA : public A {
|
|
};
|
|
} // namespace detail
|
|
|
|
namespace ns3 {
|
|
template <typename T> struct F {
|
|
T *t;
|
|
};
|
|
|
|
template <typename T, typename M> struct FF : public F<T> {
|
|
M *m;
|
|
};
|
|
|
|
template <typename T, typename M> struct FE : public F<T> {
|
|
M *m;
|
|
};
|
|
|
|
template <typename T, typename M, typename N> struct FFF : public FF<T, M> {
|
|
N *n;
|
|
};
|
|
|
|
} // namespace ns3
|
|
} // namespace clanguml::t00039
|
|
|
|
```
|
|
## Generated UML diagrams
|
|

|