Files
clang-uml/docs/test_cases/t20016.md
2022-12-09 23:49:34 +01:00

914 B

t20016 - Template method specialization sequence diagram test case

Config

compilation_database_dir: ..
output_directory: puml
diagrams:
  t20016_sequence:
    type: sequence
    glob:
      - ../../tests/t20016/t20016.cc
    include:
      namespaces:
        - clanguml::t20016
    using_namespace:
      - clanguml::t20016
    start_from:
      - function: "clanguml::t20016::tmain()"

Source code

File t20016.cc

namespace clanguml {
namespace t20016 {
struct A {
    void a1(int a) { }
    template <typename T> T a2(const T &a) { return a; }
};

template <typename T> struct B {
    void b1(T b) { a_.a1(1); }

    template <typename F> F b2(T t) { return a_.a2(t); }

    A a_;
};

void tmain()
{
    B<long> b;

    b.b1(1);

    b.b2<int>(2);
}
}
}

Generated UML diagrams

t20016_sequence