# t00014 - Alias template instantiation ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t00014_class: type: class glob: - ../../tests/t00014/t00014.cc using_namespace: - clanguml::t00014 include: namespaces: - clanguml::t00014 exclude: namespaces: - std - clanguml::t00014::std plantuml: before: - left to right direction ``` ## Source code File t00014.cc ```cpp #include #include #include #include #include #include /** * These should not be include as they are not * in ns clanguml::t00014 */ template struct clanguml_t00014_A { T value; }; using clanguml_t00014_AString = clanguml_t00014_A; namespace clanguml { namespace t00014 { template struct A { T t; P p; }; struct B { std::string value; }; template using AString = A; template using AStringPtr = A>; template using PairPairBA = std::pair>, long>; template using VectorPtr = std::unique_ptr>; template using APtr = std::unique_ptr>; template using ASharedPtr = std::shared_ptr>; template using AAPtr = std::unique_ptr, A>>; template using GeneralCallback = std::function; using VoidCallback = GeneralCallback; using BVector = std::vector; using BVector2 = BVector; using AIntString = AString; using ACharString = AString; using AStringString = AString; using BStringString = AStringString; class R { PairPairBA bapair; APtr abool; AAPtr aboolfloat; ASharedPtr afloat; A boolstring; AStringPtr floatstring; AIntString intstring; AStringString stringstring; BStringString bstringstring; protected: BVector bs; public: BVector2 bs2; GeneralCallback cb; VoidCallback vcb; VectorPtr vps; }; } } ``` ## Generated UML diagrams ![t00014_class](./t00014_class.svg "Alias template instantiation")