Files
clang-uml/docs/test_cases/t00032.md
2023-03-05 11:41:16 +01:00

1.0 KiB

t00032 - Class template with template base classes test case

Config

compilation_database_dir: ..
output_directory: puml
diagrams:
  t00032_class:
    type: class
    glob:
      - ../../tests/t00032/t00032.cc
    using_namespace:
      - clanguml::t00032
    include:
      namespaces:
        - clanguml::t00032

Source code

File t00032.cc

#include <memory>
#include <vector>

namespace clanguml {
namespace t00032 {

struct Base { };

struct TBase { };

struct A {
    void operator()() { }
};

struct B {
    void operator()() { }
};

struct C {
    void operator()() { }
};

template <typename T, typename L, typename... Ts>
struct Overload : public Base, public T, public Ts... {
    using Ts::operator()...;
    L counter;
};

template <class... Ts> Overload(Ts...) -> Overload<Ts...>;

struct R {
    Overload<TBase, int, A, B, C> overload;
};

} // namespace t00032
} // namespace clanguml

Generated UML diagrams

t00032_class