Files
clang-uml/docs/test_cases/t00042.md
2022-09-03 11:15:58 +02:00

1.1 KiB

t00042 - Specialization class template diagram filter test

Config

compilation_database_dir: ..
output_directory: puml
diagrams:
  t00042_class:
    type: class
    generate_packages: false
    glob:
      - ../../tests/t00042/t00042.cc
    using_namespace:
      - clanguml::t00042
    include:
      specializations:
        - clanguml::t00042::A<T>
        - clanguml::t00042::B<T,K>
      relationships:
        - instantiation
    exclude:
      specializations:
        - clanguml::t00042::C<T>
      namespaces:
        - std

Source code

File t00042.cc

#include <string>

namespace clanguml::t00042 {

template <typename T> struct A {
    T a;
};

template <> struct A<void> {
    void *a;
};

template <typename T, typename K> struct B {
    T b;
    K bb;
};

template <typename T> struct C {
    T c;
};

struct R {
    A<double> a_double;
    A<std::string> a_string;

    B<int, float> b_int_float;

    C<int> c_int;
};

} // namespace clanguml::t00042

Generated UML diagrams

t00042_class