# t20003 - Function template sequence diagram test case ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t20003_sequence: type: sequence glob: - ../../tests/t20003/t20003.cc include: namespaces: - clanguml::t20003 using_namespace: - clanguml::t20003 start_from: - function: "clanguml::t20003::m1(T)" ``` ## Source code File t20003.cc ```cpp namespace clanguml { namespace t20003 { template void m4(T p) { } template void m3(T p) { m4(p); } template void m2(T p) { m3(p); } template void m1(T p) { m2(p); } } } ``` ## Generated UML diagrams ![t20003_sequence](./t20003_sequence.svg "Function template sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { "clang_uml_version": "0.3.7-47-g2104d93", "llvm_version": "Ubuntu clang version 15.0.6", "schema_version": 1 }, "name": "t20003_sequence", "participants": [ { "id": "469205740799240869", "name": "clanguml::t20003::m1(T)", "source_location": { "column": 28, "file": "../../tests/t20003/t20003.cc", "line": 10, "translation_unit": "../../tests/t20003/t20003.cc" }, "type": "function_template" }, { "id": "1502957449367040488", "name": "clanguml::t20003::m2(T)", "source_location": { "column": 28, "file": "../../tests/t20003/t20003.cc", "line": 8, "translation_unit": "../../tests/t20003/t20003.cc" }, "type": "function_template" }, { "id": "613477682313507585", "name": "clanguml::t20003::m3(T)", "source_location": { "column": 28, "file": "../../tests/t20003/t20003.cc", "line": 6, "translation_unit": "../../tests/t20003/t20003.cc" }, "type": "function_template" }, { "id": "619960023608507925", "name": "clanguml::t20003::m4(T)", "source_location": { "column": 28, "file": "../../tests/t20003/t20003.cc", "line": 4, "translation_unit": "../../tests/t20003/t20003.cc" }, "type": "function_template" } ], "sequences": [ { "messages": [ { "from": { "activity_id": "469205740799240869", "activity_name": "clanguml::t20003::m1(T)", "participant_id": "469205740799240869", "participant_name": "clanguml::t20003::m1(T)" }, "name": "", "return_type": "void", "scope": "normal", "source_location": { "column": 38, "file": "../../tests/t20003/t20003.cc", "line": 10, "translation_unit": "../../tests/t20003/t20003.cc" }, "to": { "activity_id": "1502957449367040488", "activity_name": "clanguml::t20003::m2(T)", "participant_id": "1502957449367040488" }, "type": "message" }, { "from": { "activity_id": "1502957449367040488", "activity_name": "clanguml::t20003::m2(T)", "participant_id": "1502957449367040488", "participant_name": "clanguml::t20003::m2(T)" }, "name": "", "return_type": "void", "scope": "normal", "source_location": { "column": 38, "file": "../../tests/t20003/t20003.cc", "line": 8, "translation_unit": "../../tests/t20003/t20003.cc" }, "to": { "activity_id": "613477682313507585", "activity_name": "clanguml::t20003::m3(T)", "participant_id": "613477682313507585" }, "type": "message" }, { "from": { "activity_id": "613477682313507585", "activity_name": "clanguml::t20003::m3(T)", "participant_id": "613477682313507585", "participant_name": "clanguml::t20003::m3(T)" }, "name": "", "return_type": "void", "scope": "normal", "source_location": { "column": 38, "file": "../../tests/t20003/t20003.cc", "line": 6, "translation_unit": "../../tests/t20003/t20003.cc" }, "to": { "activity_id": "619960023608507925", "activity_name": "clanguml::t20003::m4(T)", "participant_id": "619960023608507925" }, "type": "message" } ], "start_from": { "id": 469205740799240869, "location": "clanguml::t20003::m1(T)" } } ], "using_namespace": "clanguml::t20003" } ```