# t20009 - Smart pointer dereference call expression test case ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t20009_sequence: type: sequence glob: - ../../tests/t20009/t20009.cc include: namespaces: - clanguml::t20009 using_namespace: - clanguml::t20009 start_from: - function: "clanguml::t20009::tmain()" ``` ## Source code File t20009.cc ```cpp #include #include namespace clanguml { namespace t20009 { template struct A { void a(T arg) { } }; template struct B { void b(T arg) { a->a(arg); } std::unique_ptr> a; }; using BFloatPtr = std::shared_ptr>; void tmain() { std::shared_ptr> bstring; auto bint = std::make_unique>(); BFloatPtr bfloat; bstring->b("b"); bint.get()->b(42); bfloat->b(1.0); } } } ``` ## Generated UML diagrams ![t20009_sequence](./t20009_sequence.svg "Smart pointer dereference call expression test case")