Files
clang-uml/docs/test_cases/t20010.md
2022-11-30 21:32:37 +01:00

1.1 KiB

t20010 - Container sequence diagram test case

Config

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

Source code

File t20010.cc

#include <array>
#include <map>
#include <memory>
#include <vector>

namespace clanguml {
namespace t20010 {

struct A {
    void a1() { }
    void a2() { }
    void a3() { }
    void a4() { }
};

template <typename T> struct B {
    void b1() { a_.a1(); }
    void b2() { avector_.front().a2(); }
    void b3() { aptrvector_.front()->a3(); }
    void b4() { amap_.at(0).a4(); }

    A a_;
    std::vector<A> avector_;
    std::vector<std::unique_ptr<A>> aptrvector_;
    std::map<T, A> amap_;
};

void tmain()
{
    B<int> b;

    b.b1();
    b.b2();
    b.b3();
    b.b4();
}

}
}

Generated UML diagrams

t20010_sequence