# t20007 - Class template variadic argument list sequence diagram ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t20007_sequence: type: sequence glob: - ../../tests/t20007/t20007.cc include: namespaces: - clanguml::t20007 using_namespace: - clanguml::t20007 start_from: - function: "clanguml::t20007::tmain()" ``` ## Source code File t20007.cc ```cpp #include #include namespace clanguml { namespace t20007 { template struct Adder { First add(First &&arg, Args &&...args) { return (arg + ... + args); } }; void tmain() { using namespace std::string_literals; Adder adder1; Adder adder2; Adder adder3; [[maybe_unused]] auto res1 = adder1.add(2, 2); [[maybe_unused]] auto res2 = adder2.add(1, 2.0, 3.0); [[maybe_unused]] auto res3 = adder3.add("one"s, "two"s, "three"s); } } } ``` ## Generated UML diagrams ![t20007_sequence](./t20007_sequence.svg "Class template variadic argument list sequence diagram")