# t20006 - Class template specialization basic sequence diagram ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t20006_sequence: type: sequence glob: - ../../tests/t20006/t20006.cc include: namespaces: - clanguml::t20006 using_namespace: - clanguml::t20006 start_from: - function: "clanguml::t20006::tmain()" ``` ## Source code File t20006.cc ```cpp #include namespace clanguml { namespace t20006 { template struct A { T a_int(T arg) { return arg + 1; } T a_string(T arg) { return arg + "_string"; } }; template struct B { T b(T arg) { return a_.a_int(arg); } A a_; }; template <> struct B { std::string b(std::string arg) { return a_.a_string(arg); } A a_; }; void tmain() { B bint; B bstring; bint.b(1); bstring.b("bstring"); } } } ``` ## Generated UML diagrams ![t20006_sequence](./t20006_sequence.svg "Class template specialization basic sequence diagram")