Files
clang-uml/docs/test_cases/t00039.md
2022-12-26 21:58:34 +01:00

1.6 KiB

t00039 - Subclass class diagram filter test

Config

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

#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

t00039_class