# 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 ``` ## Source code File t00014.cc ```cpp #include #include #include #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; }; template using AString = A; template using GeneralCallback = std::function; using VoidCallback = GeneralCallback<>; struct B { std::string value; }; using BVector = std::vector; using BVector2 = BVector; using AIntString = AString; using AStringString = AString; using BStringString = AStringString; class R { // clang-uml: tinst A A boolstring; AString floatstring; AIntString intstring; AStringString stringstring; protected: BVector bs; public: BVector2 bs2; GeneralCallback cb; VoidCallback vcb; }; } } ``` ## Generated UML diagrams ![t00014_class](./t00014_class.svg "Alias template instantiation")