# t00037 - Anonymous nested struct test case ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t00037_class: type: class generate_packages: true glob: - ../../tests/t00037/t00037.cc using_namespace: - clanguml::t00037 include: namespaces: - clanguml::t00037 ``` ## Source code File t00037.cc ```cpp namespace clanguml { namespace t00037 { class ST { public: struct { double t; double x; double y; double z; } dimensions; private: struct { double c{1.0}; double h{1.0}; } units; }; struct A { A() { st.dimensions.t = -1.0; st.dimensions.x = 1.0; st.dimensions.y = 1.0; st.dimensions.z = 1.0; } ST st; }; } // namespace t00037 } // namespace clanguml ``` ## Generated UML diagrams ![t00037_class](./t00037_class.svg "Anonymous nested struct test case") ## Generated JSON models ```json { "diagram_type": "class", "elements": [ { "bases": [], "display_name": "clanguml::t00037::ST", "id": "11203041379038775", "is_abstract": false, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [ { "access": "public", "is_static": false, "name": "dimensions", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 11 }, "type": "ST##(anonymous_662)" }, { "access": "private", "is_static": false, "name": "units", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 17 }, "type": "ST##(anonymous_792)" } ], "methods": [], "name": "ST", "namespace": "clanguml::t00037", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 4 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00037::ST::(dimensions)", "id": "1980820317972901050", "is_abstract": false, "is_nested": true, "is_struct": true, "is_template": false, "is_union": false, "members": [ { "access": "public", "is_static": false, "name": "t", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 7 }, "type": "double" }, { "access": "public", "is_static": false, "name": "x", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 8 }, "type": "double" }, { "access": "public", "is_static": false, "name": "y", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 9 }, "type": "double" }, { "access": "public", "is_static": false, "name": "z", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 10 }, "type": "double" } ], "methods": [], "name": "ST::(dimensions)", "namespace": "clanguml::t00037", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 6 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00037::ST::(units)", "id": "1811145508890403377", "is_abstract": false, "is_nested": true, "is_struct": true, "is_template": false, "is_union": false, "members": [ { "access": "public", "is_static": false, "name": "c", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 15 }, "type": "double" }, { "access": "public", "is_static": false, "name": "h", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 16 }, "type": "double" } ], "methods": [], "name": "ST::(units)", "namespace": "clanguml::t00037", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 14 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00037::A", "id": "1322794181774144954", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [ { "access": "public", "is_static": false, "name": "st", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 29 }, "type": "clanguml::t00037::ST" } ], "methods": [ { "access": "public", "is_const": false, "is_defaulted": false, "is_implicit": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "A", "parameters": [], "type": "void" } ], "name": "A", "namespace": "clanguml::t00037", "source_location": { "file": "../../tests/t00037/t00037.cc", "line": 20 }, "template_parameters": [], "type": "class" } ], "metadata": { "clang_uml_version": "0.3.4-21-g665c784", "llvm_version": "Ubuntu clang version 15.0.6", "schema_version": 1 }, "name": "t00037_class", "relationships": [ { "access": "public", "destination": "1980820317972901050", "label": "dimensions", "source": "11203041379038775", "type": "aggregation" }, { "access": "private", "destination": "1811145508890403377", "label": "units", "source": "11203041379038775", "type": "aggregation" }, { "access": "public", "destination": "11203041379038775", "label": "st", "source": "1322794181774144954", "type": "aggregation" } ], "using_namespace": "clanguml::t00037" } ```