# t00038 - Template instantiation with unexposed nested templates ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t00038_class: type: class generate_packages: false glob: - ../../tests/t00038/t00038.cc using_namespace: - clanguml::t00038 include: namespaces: - clanguml::t00038 - thirdparty::ns1 ``` ## Source code File t00038.cc ```cpp #include #include #include #include namespace thirdparty { namespace ns1 { enum class color_t { red, green, blue }; struct E { }; } // namespace ns1 namespace ns2 { struct F { }; } // namespace ns2 } // namespace thirdparty namespace clanguml { namespace t00038 { enum class property_t { property_a, property_b, property_c }; struct A { }; struct B { }; struct C { }; struct key_t { std::string key; }; template struct map { }; using namespace thirdparty::ns1; template <> struct map> : E { }; template <> struct map> : A { }; template <> struct map>> : B { }; template <> struct map>>> : C { }; } // namespace t00038 } // namespace clanguml ``` ## Generated UML diagrams ![t00038_class](./t00038_class.svg "Template instantiation with unexposed nested templates")