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

64 lines
1.1 KiB
Markdown

# t20010 - Container sequence diagram test case
## Config
```yaml
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
```cpp
#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](./t20010_sequence.svg "Container sequence diagram test case")