0.6.0
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
t20040 - Test case for recursive variadic template function call
Config
diagrams:
t20040_sequence:
type: sequence
glob:
- t20040.cc
include:
namespaces:
- clanguml::t20040
using_namespace: clanguml::t20040
from:
- function: "clanguml::t20040::tmain()"
Source code
File
tests/t20040/t20040.cc
#include <iostream>
#include <string>
namespace
clanguml
{
namespace
t20040 {
void
print() { }
template
<
typename
T,
typename
... Ts>
void
print(T head, Ts... tail)
{
std::cout << head << std::endl;
print(tail...);
}
template
<
typename
... Ts>
void
doublePrint(Ts... args)
{
print
(args + args...);
}
void
tmain()
{
using namespace
std::literals::string_literals;
print
(1, 3.14,
"test"
s);
doublePrint(
"test"
s, 2024 / 2);
}
}
}
Generated PlantUML diagrams
Generated Mermaid diagrams
Generated JSON models
{
"diagram_type": "sequence",
"name": "t20040_sequence",
"participants": [
{
"display_name": "tmain()",
"full_name": "clanguml::t20040::tmain()",
"id": "7988980481179677306",
"name": "tmain",
"namespace": "clanguml::t20040",
"source_location": {
"column": 6,
"file": "t20040.cc",
"line": 19,
"translation_unit": "t20040.cc"
},
"type": "function"
},
{
"display_name": "print<int,double,std::string>(int,double,std::string)",
"full_name": "clanguml::t20040::print<int,double,std::string>(int,double,std::basic_string<char>)",
"id": "3734770894352194386",
"name": "print",
"namespace": "clanguml::t20040",
"source_location": {
"column": 44,
"file": "t20040.cc",
"line": 8,
"translation_unit": "t20040.cc"
},
"type": "function_template"
},
{
"display_name": "print<double,std::string>(double,std::string)",
"full_name": "clanguml::t20040::print<double,std::string>(double,std::basic_string<char>)",
"id": "11101453699051872291",
"name": "print",
"namespace": "clanguml::t20040",
"source_location": {
"column": 44,
"file": "t20040.cc",
"line": 8,
"translation_unit": "t20040.cc"
},
"type": "function_template"
},
{
"display_name": "print<std::string>(std::string)",
"full_name": "clanguml::t20040::print<std::string>(std::basic_string<char>)",
"id": "10831414938278574793",
"name": "print",
"namespace": "clanguml::t20040",
"source_location": {
"column": 44,
"file": "t20040.cc",
"line": 8,
"translation_unit": "t20040.cc"
},
"type": "function_template"
},
{
"display_name": "print()",
"full_name": "clanguml::t20040::print()",
"id": "1963347511152581998",
"name": "print",
"namespace": "clanguml::t20040",
"source_location": {
"column": 6,
"file": "t20040.cc",
"line": 6,
"translation_unit": "t20040.cc"
},
"type": "function"
},
{
"display_name": "doublePrint<std::string,int>(std::string,int)",
"full_name": "clanguml::t20040::doublePrint<std::string,int>(std::basic_string<char>,int)",
"id": "16193011244418762811",
"name": "doublePrint",
"namespace": "clanguml::t20040",
"source_location": {
"column": 32,
"file": "t20040.cc",
"line": 14,
"translation_unit": "t20040.cc"
},
"type": "function_template"
},
{
"display_name": "print<std::string,int>(std::string,int)",
"full_name": "clanguml::t20040::print<std::string,int>(std::basic_string<char>,int)",
"id": "10799969470314580850",
"name": "print",
"namespace": "clanguml::t20040",
"source_location": {
"column": 44,
"file": "t20040.cc",
"line": 8,
"translation_unit": "t20040.cc"
},
"type": "function_template"
},
{
"display_name": "print<int>(int)",
"full_name": "clanguml::t20040::print<int>(int)",
"id": "9515419718316191441",
"name": "print",
"namespace": "clanguml::t20040",
"source_location": {
"column": 44,
"file": "t20040.cc",
"line": 8,
"translation_unit": "t20040.cc"
},
"type": "function_template"
}
],
"sequences": [
{
"from": {
"id": "7988980481179677306",
"location": "clanguml::t20040::tmain()"
},
"messages": [
{
"from": {
"activity_id": "7988980481179677306",
"participant_id": "7988980481179677306"
},
"name": "",
"return_type": "",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 23,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "3734770894352194386",
"participant_id": "3734770894352194386"
},
"type": "message"
},
{
"from": {
"activity_id": "3734770894352194386",
"participant_id": "3734770894352194386"
},
"name": "",
"return_type": "",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 11,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "11101453699051872291",
"participant_id": "11101453699051872291"
},
"type": "message"
},
{
"from": {
"activity_id": "11101453699051872291",
"participant_id": "11101453699051872291"
},
"name": "",
"return_type": "",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 11,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "10831414938278574793",
"participant_id": "10831414938278574793"
},
"type": "message"
},
{
"from": {
"activity_id": "10831414938278574793",
"participant_id": "10831414938278574793"
},
"name": "",
"return_type": "void",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 11,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "1963347511152581998",
"participant_id": "1963347511152581998"
},
"type": "message"
},
{
"from": {
"activity_id": "7988980481179677306",
"participant_id": "7988980481179677306"
},
"name": "",
"return_type": "",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 25,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "16193011244418762811",
"participant_id": "16193011244418762811"
},
"type": "message"
},
{
"from": {
"activity_id": "16193011244418762811",
"participant_id": "16193011244418762811"
},
"name": "",
"return_type": "",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 16,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "10799969470314580850",
"participant_id": "10799969470314580850"
},
"type": "message"
},
{
"from": {
"activity_id": "10799969470314580850",
"participant_id": "10799969470314580850"
},
"name": "",
"return_type": "",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 11,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "9515419718316191441",
"participant_id": "9515419718316191441"
},
"type": "message"
},
{
"from": {
"activity_id": "9515419718316191441",
"participant_id": "9515419718316191441"
},
"name": "",
"return_type": "void",
"scope": "normal",
"source_location": {
"column": 5,
"file": "t20040.cc",
"line": 11,
"translation_unit": "t20040.cc"
},
"to": {
"activity_id": "1963347511152581998",
"participant_id": "1963347511152581998"
},
"type": "message"
}
]
}
],
"using_namespace": "clanguml::t20040"
}
Generated GraphML models
Copyright © 2022-present
Bartek Kryza
Generated by
1.9.7