Compare commits

...

304 Commits

Author SHA1 Message Date
Bartek Kryza
100f7c88ad Merge pull request #228 from bkryza/add-coroutine-testcase
Add coroutine testcase
2024-01-11 17:10:25 +01:00
Bartek Kryza
2006d62d4d Fixed building on MSVC 2024-01-11 16:32:03 +01:00
Bartek Kryza
555d0da4f6 Fixed building on macos 2024-01-11 15:22:09 +01:00
Bartek Kryza
fb2edd51aa Updated test cases documentation 2024-01-11 13:00:45 +01:00
Bartek Kryza
3fcb00e8eb Updated docs on C++20 modules 2024-01-11 12:20:27 +01:00
Bartek Kryza
97719e46fc Enabled type_aliases config option for sequence diagrams (#224) 2024-01-11 11:26:57 +01:00
Bartek Kryza
79971d67e8 Documentation fix (#226) 2024-01-10 10:39:30 +01:00
Bartek Kryza
66dcf1ed5d Added is_system header file property to JSON include diagram generator 2024-01-09 22:14:38 +01:00
Bartek Kryza
043c13affb Fixed module handling on LLVM versions < 15.0.0 2024-01-09 11:49:29 +01:00
Bartek Kryza
d8a49f4ac5 Updated copyright header 2024-01-02 23:19:46 +01:00
Bartek Kryza
da7870f50f Fixed clang-tidy warnings 2024-01-02 23:17:50 +01:00
Bartek Kryza
eec73a79e8 Updated CHANGELOG 2024-01-01 21:49:52 +01:00
Bartek Kryza
7ef684c2cf Updated test cases documentation 2024-01-01 21:44:37 +01:00
Bartek Kryza
9d73c9e3ff Refactored and unified JSON generators output (#223) 2024-01-01 21:34:38 +01:00
Bartek Kryza
edfaabd4fa Added class diagram test case with C++20 module partitions 2023-12-25 20:58:19 +01:00
Bartek Kryza
637112cea5 Added package diagram test case with C++20 module partitions dependencies 2023-12-24 16:47:56 +01:00
Bartek Kryza
453f265feb Added package diagram test case with C++20 module partitions 2023-12-23 19:24:08 +01:00
Bartek Kryza
bf7b69bcca Updated test cases documentation 2023-12-22 22:30:06 +01:00
Bartek Kryza
3671bf9beb Fixed modules formatting 2023-12-22 21:26:34 +01:00
Bartek Kryza
913ccb6bdf Added test case for package diagram from modules dependencies 2023-12-22 21:25:11 +01:00
Bartek Kryza
a8d646d1bc Added package diagram generation from C++20 modules (#101) 2023-12-21 23:40:15 +01:00
Bartek Kryza
f09edd8b47 Added module_access diagram filter (#101) 2023-12-19 22:21:03 +01:00
Bartek Kryza
c51ae5b6ee Added support for C++20 module based packages in class diagrams (#101) 2023-12-18 22:33:27 +01:00
Bartek Kryza
ea6892f754 Added support for class diagram filtering based on C++20 modules (#195) 2023-12-17 21:10:05 +01:00
Bartek Kryza
f2fe1ca2cf Added support for C++20 coroutines in class diagrams (#221) 2023-12-15 20:01:18 +01:00
Bartek Kryza
13f2ffb706 Merge pull request #220 from bkryza/fix-source-location-extraction-on-windows
Fix manual parsing of Windows source location paths (#217)
2023-12-15 15:20:53 +01:00
Bartek Kryza
4da14a32d7 Fix manual parsing of Windows source location paths (#217) 2023-12-14 19:43:37 +01:00
Bartek Kryza
7be848b8a1 Merge pull request #219 from bkryza/fix-progress-indicators-msvc
Fixed progress indicator characters on Windows (#218)
2023-12-12 14:31:20 +01:00
Bartek Kryza
66534af3fc Fixed progress indicator characters on Windows (#218) 2023-12-12 12:03:11 +01:00
Bartek Kryza
8ae47dd766 Fixed linking with LLVM17 on MSVC 2023-12-11 20:35:35 +01:00
Bartek Kryza
079758e154 Merge pull request #216 from bkryza/v0.4.2
V0.4.2
2023-12-11 14:07:50 +01:00
Bartek Kryza
11c0305119 Enable building Ubuntu debug symbol packages 2023-12-11 12:37:55 +01:00
Bartek Kryza
72013f8725 Releasing 0.4.2 2023-12-11 09:33:43 +01:00
Bartek Kryza
44c1a6cae4 Fixed test_config on macos 2023-12-10 21:24:39 +01:00
Bartek Kryza
a6962866d6 Merge pull request #215 from bkryza/fix-docs-typos
Improved docs (#208)
2023-12-10 21:12:14 +01:00
Bartek Kryza
da6001728b Improved docs (#208) 2023-12-10 21:10:51 +01:00
Bartek Kryza
c0faeccff9 Merge pull request #214 from bkryza/fix-t00014
Fix t00014
2023-12-10 16:35:36 +01:00
Bartek Kryza
15f8161f72 Updated test cases documentation 2023-12-10 15:03:47 +01:00
Bartek Kryza
cea427e32d Fixed link generation for template specializations 2023-12-10 13:51:45 +01:00
Bartek Kryza
85ffe2cdee Updated test case generator template 2023-12-09 20:17:36 +01:00
Bartek Kryza
0a8292655a Updated test cases documentation 2023-12-09 20:16:28 +01:00
Bartek Kryza
6055c5684e Fixed handling of relative paths on MSVC 2023-12-09 20:09:44 +01:00
Bartek Kryza
a1f7769ba5 Simplified test cases configs 2023-12-09 17:35:39 +01:00
Bartek Kryza
d7195d5a5d Refactored handling of relative paths (#213) 2023-12-09 12:04:06 +01:00
Bartek Kryza
f1d3695ccc Fixed t00014 on macos (Fixes #176) 2023-12-05 23:46:28 +01:00
Bartek Kryza
9280edfafb Merge pull request #212 from bkryza/fix-make-clangumldiagrams-on-macos
Fixed building clanguml internal diagrams on macos (#210)
2023-12-04 10:11:31 +01:00
Bartek Kryza
011d5e5fec Fixed building clanguml internal diagrams on macos (#210) 2023-12-03 23:47:19 +01:00
Bartek Kryza
4ff42d032f Fix clang-uml version detection CMake macro (#211) 2023-11-14 18:13:00 +01:00
Bartek Kryza
f3a0d98ee6 Merge pull request #209 from bkryza/add-option-to-render-diagrams-after-generation
Add option to render diagrams after generation
2023-11-13 22:42:22 +01:00
Bartek Kryza
4c1cd3578f Updated autocomplete scripts 2023-11-13 22:20:14 +01:00
Bartek Kryza
146c79ac54 Fixed building on msvc 2023-11-13 21:25:04 +01:00
Bartek Kryza
15a32bdc4c Fixed building on macos 2023-11-13 00:23:04 +01:00
Bartek Kryza
7d607848cc Fixed clang-tidy warnings 2023-11-12 23:32:31 +01:00
Bartek Kryza
35f45a07e6 Added options to render diagrams using plantuml and mermaidjs external tools 2023-11-12 23:05:51 +01:00
Bartek Kryza
429e1c47a9 Improve CMake yaml-cpp-detection (#206) 2023-11-11 17:22:20 +01:00
Bartek Kryza
19233e3a62 Merge pull request #207 from bkryza/add-radius-parameter-to-context-filter 2023-11-11 00:37:47 +01:00
Bartek Kryza
3a8438b56e Trigger GA build 2023-11-10 23:38:59 +01:00
Bartek Kryza
1b53dc2a01 Updated test cases documentation 2023-11-10 23:29:25 +01:00
Bartek Kryza
39d3e1f0b0 Added test case for context filter with radius option 2023-11-10 23:23:25 +01:00
Bartek Kryza
055897f11b Extended context filter config schema to accept optional radius parameter 2023-11-09 23:39:56 +01:00
Bartek Kryza
237ef26389 Initial implementation of radius parameter in context filter 2023-11-08 23:42:44 +01:00
Bartek Kryza
205d6de060 Merge pull request #202 from bkryza/improve-llvm-detection-in-cmake
Refactored LLVM paths detection based on llvm-config binary
2023-11-04 18:53:39 +01:00
Bartek Kryza
1fe8640f7c Fixed Doxygen generation rules 2023-11-04 18:31:04 +01:00
Bartek Kryza
15233aa0da Refactored LLVM paths detection based on llvm-config binary 2023-11-04 17:34:55 +01:00
Bartek Kryza
5435f0ac30 Merge pull request #200 from bkryza/fix-gcc13-build
Ignore Wdangling-reference warnings on GCC 13
2023-10-25 14:03:12 +02:00
Bartek Kryza
7cf61a98aa Ignore Wdangling-reference warnings on GCC 13 2023-10-25 14:02:35 +02:00
Bartek Kryza
79801b2936 Fix handling of template template arguments which are not expressions (#199) 2023-10-24 18:29:47 +02:00
Bartek Kryza
57bc2f7309 Merge pull request #198 from bkryza/v0.4.1
V0.4.1
2023-10-22 19:46:41 +02:00
Bartek Kryza
a731d3b94c Updated test cases documentation 2023-10-22 19:10:32 +02:00
Bartek Kryza
7328987985 Fix building of Ubuntu Focal package 2023-10-22 17:16:19 +02:00
Bartek Kryza
29ad94a13c Added autocomplete scripts to Fedora packages 2023-10-22 16:34:23 +02:00
Bartek Kryza
ad4363acaa Added autocomplete scripts to Ubuntu packages 2023-10-22 14:40:24 +02:00
Bartek Kryza
ce754086ee Merge pull request #197 from bkryza/add-message-comments-in-sequence-diagrams
Add message comments in sequence diagrams
2023-10-21 22:21:07 +02:00
Bartek Kryza
83ea9256a1 Updated test cases documentation 2023-10-21 21:58:45 +02:00
Bartek Kryza
701b2c5113 Updated changelog 2023-10-21 21:55:59 +02:00
Bartek Kryza
0d237fec0a Added support for call comment directive to inject calls in comments (Fixes #196) 2023-10-21 21:47:26 +02:00
Bartek Kryza
4f43253c0d Fixed clang-tidy warnings 2023-10-21 18:37:53 +02:00
Bartek Kryza
097beb830f Updated test cases documentation 2023-10-21 17:27:11 +02:00
Bartek Kryza
03ac2121bc Updated docs 2023-10-21 17:24:48 +02:00
Bartek Kryza
7f595b1c54 Added handling of comment decorators (skip, note) in sequence diagram comments (#194) 2023-10-21 17:08:27 +02:00
Bartek Kryza
ddbfffbf23 Added message comments to json and mermaid generators 2023-10-17 22:21:48 +02:00
Bartek Kryza
dd940991dc Added message_comment_width config option 2023-10-16 22:10:44 +02:00
Bartek Kryza
1616f79ceb Improved sequence diagram message comment formatting 2023-10-16 21:48:02 +02:00
Bartek Kryza
03e8c867f4 Added generate_message_comments configuration option 2023-10-15 19:59:26 +02:00
Bartek Kryza
c4d3d61770 Updated changelog 2023-10-14 22:23:43 +02:00
Bartek Kryza
600d1847c8 Updated autocompletion docs (Fixes #193) 2023-10-14 22:21:25 +02:00
Bartek Kryza
46649e8084 Added bash autocomplete script 2023-10-14 22:19:19 +02:00
Bartek Kryza
621e417e0e Added zsh autocomplete script 2023-10-14 21:16:22 +02:00
Bartek Kryza
20e7cee28e Merge pull request #192 from bkryza/llvm-17-support 2023-10-13 20:02:58 +02:00
Bartek Kryza
a7b4efa80e Fix diagram generation using LLVM 17 (Fixes #190) 2023-10-13 18:46:30 +02:00
Bartek Kryza
e7d6c94a14 Removed redundant requirement for std::regex::multiline (Fixes #191) 2023-10-13 18:46:02 +02:00
Bartek Kryza
f339c34dd8 Enabled building against LLVM 17 2023-10-13 11:49:59 +02:00
Bartek Kryza
26abb71b4c Fix handling of compile_commands.json files with relative include paths (Fixes #189) 2023-10-12 17:08:25 +02:00
Bartek Kryza
8865a42ff0 Change std::same_as to std::is_same_v to maintain C++17 compatibility (Fixes #188) 2023-10-12 11:13:00 +02:00
Bartek Kryza
13a1012e96 Merge pull request #187 from bkryza/remove-package-dependencies-for-parent-packages 2023-10-10 23:31:04 +02:00
Bartek Kryza
92422624cb Skip dependencies between parent and child packages in package diagrams (Fixes #186) 2023-10-10 22:29:23 +02:00
Bartek Kryza
9d43281bdd Excluded package diagram relationships to rejected packages (#185) 2023-10-10 12:19:31 +02:00
Bartek Kryza
c398c6ffda Updated CHANGELOG 2023-10-09 17:56:27 +02:00
Bartek Kryza
1983a609a0 Merge pull request #184 from bkryza/add-title-property
Added 'title' diagram property
2023-10-09 16:05:36 +02:00
Bartek Kryza
8a6b497cc9 Added 'title' diagram property 2023-10-09 13:53:55 +02:00
Bartek Kryza
03bd5ada31 Removed unnecessary verbose logs 2023-10-09 11:18:32 +02:00
Bartek Kryza
fc6a63490b Merge pull request #183 from bkryza/handle-singleton-constructors
Handle singleton constructors
2023-10-08 18:14:52 +02:00
Bartek Kryza
fda50ae211 Dummy commit to trigger GitHub Actions 2023-10-08 17:43:00 +02:00
Bartek Kryza
747aca8597 Updated test cases documentation 2023-10-08 17:24:30 +02:00
Bartek Kryza
4ab0d29252 Make sure sequence diagram messages generated during static variable initialization are rendered only once 2023-10-08 16:55:42 +02:00
Bartek Kryza
9d08942a62 Merge pull request #180 from bkryza/v0.4.0
V0.4.0
2023-09-13 22:38:15 +02:00
Bartek Kryza
31ed8059e4 Updated test cases documentation 2023-09-13 21:30:16 +02:00
Bartek Kryza
7e3f7dcf06 Updated version to 0.4.0 2023-09-13 21:24:13 +02:00
Bartek Kryza
8eaa7869eb Merge pull request #179 from bkryza/add-mermaid-js
Add MermaidJS support.
2023-09-13 21:18:36 +02:00
Bartek Kryza
7b41295b07 Fixed building on MSVC 2023-09-13 20:48:31 +02:00
Bartek Kryza
509358b88f Updated test cases documentation 2023-09-13 20:07:10 +02:00
Bartek Kryza
7e22b0b682 Updated docs 2023-09-13 19:50:08 +02:00
Bartek Kryza
627c2e5cbe Fixed clanguml_diagrams target 2023-09-13 19:47:34 +02:00
Bartek Kryza
abd85534bc Updated docs with Mermaid docs 2023-09-13 18:54:23 +02:00
Bartek Kryza
70e7088823 Fixed clang-tidy warnings 2023-09-13 17:17:48 +02:00
Bartek Kryza
a99e987d3b Added mermaid test cases for include diagrams 2023-09-13 16:16:22 +02:00
Bartek Kryza
9872e2d225 Added mermaid test cases for package diagrams 2023-09-13 00:25:08 +02:00
Bartek Kryza
57af380dfa Added mermaid test cases for sequence diagrams 2023-09-12 23:05:09 +02:00
Bartek Kryza
59180efebf Fixed friend relationship generation in mermaid class diagram generator 2023-09-12 20:22:10 +02:00
Bartek Kryza
7c70ab69ad Fixed generation of test cases for diagram notes in mermaid class diagrams 2023-09-12 09:03:50 +02:00
Bartek Kryza
eb00cd21c3 Added mermaid test cases for class diagrams 2023-09-12 00:55:20 +02:00
Bartek Kryza
de5625a474 Fixed Mermaid SVG image width attribute 2023-09-10 13:26:58 +02:00
Bartek Kryza
bf29ceb2df Updated test cases documentation 2023-09-10 12:22:27 +02:00
Bartek Kryza
4a19c8ba23 Fixed mermaid verbatim directives handling 2023-09-10 12:14:41 +02:00
Bartek Kryza
9a6def801c Updated docs generation scripts 2023-09-10 00:03:47 +02:00
Bartek Kryza
2cc70bcd7e Fixed clang-tidy warnings 2023-09-09 20:46:29 +02:00
Bartek Kryza
ae40a3b184 Added mermaid generator cli option 2023-09-09 19:00:21 +02:00
Bartek Kryza
0a542a954b Added link generation in mermaid diagram generator 2023-09-09 18:42:04 +02:00
Bartek Kryza
cfc0a42320 Added initial support for MermaidJS include diagrams 2023-09-09 01:46:24 +02:00
Bartek Kryza
ee998e7a38 Added initial support for MermaidJS package diagrams 2023-09-09 00:18:24 +02:00
Bartek Kryza
32fda88852 Added initial support for MermaidJS sequence diagram 2023-09-08 00:30:19 +02:00
Bartek Kryza
084bb20ef7 First working version of Mermaid class diagram generator 2023-09-06 21:21:12 +02:00
Bartek Kryza
6822930a12 Initial mermaid class diagram support 2023-09-05 00:04:05 +02:00
Bartek Kryza
e8235805f8 Merge pull request #177 from bkryza/v0.3.9
v0.3.9
2023-09-02 17:46:29 +02:00
Bartek Kryza
e980816688 Updated docs toc 2023-09-02 16:27:24 +02:00
Bartek Kryza
4b3f3b9df3 Bumped version to 0.3.9 2023-09-02 16:17:56 +02:00
Bartek Kryza
a45fffdb67 Updated config schema to handle git revisions that parse as int 2023-09-02 16:12:00 +02:00
Bartek Kryza
85856426f3 Fixed message chain equality comparison 2023-09-02 12:59:10 +02:00
Bartek Kryza
de9f614cb0 Bumped version to 0.3.9 2023-09-01 21:05:36 +02:00
Bartek Kryza
9ebd5f24d5 Added missing Makefile install target (#175) 2023-09-01 14:19:30 +02:00
Bartek Kryza
87982ab114 Added missing concepts header (#175) 2023-09-01 13:40:34 +02:00
Bartek Kryza
3bf43bbc51 Merge pull request #174 from bkryza/add-from-to-sequence-diagram-conditions
Add from to sequence diagram conditions
2023-09-01 00:35:43 +02:00
Bartek Kryza
13aa1d7b43 Updated changelog 2023-09-01 00:09:04 +02:00
Bartek Kryza
0ecb798225 Updated clang-uml diagrams configs 2023-08-31 23:56:33 +02:00
Bartek Kryza
d044f7f17f Updated test cases documentation 2023-08-31 23:43:57 +02:00
Bartek Kryza
e830195fb7 Changed 'start_from' to simply 'from' in sequence diagrams 2023-08-31 23:26:53 +02:00
Bartek Kryza
51e0275db3 Added '--print-to' cli option to print all possible 'to' constraints in sequence diagrams 2023-08-31 22:28:25 +02:00
Bartek Kryza
1bd60b71ec Updated test cases documentation 2023-08-30 23:31:44 +02:00
Bartek Kryza
c472792ed8 Added 'to' sequence diagram generator for plantuml and json 2023-08-30 23:04:52 +02:00
Bartek Kryza
4bce1888bf Updated test cases documentation 2023-08-30 00:19:11 +02:00
Bartek Kryza
cdc3659c17 Added from_to test case with free functions 2023-08-30 00:01:59 +02:00
Bartek Kryza
08520af10c Extended t20034 test case with json generator test 2023-08-29 23:25:49 +02:00
Bartek Kryza
18bf00d1dd Fixed clang-tidy warnings 2023-08-27 22:20:54 +02:00
Bartek Kryza
519677a904 Fixed plantuml sequence diagram from_to entry points 2023-08-27 19:21:00 +02:00
Bartek Kryza
bd19fe5bfb Added from_to sequence diagram generator for json 2023-08-27 19:03:43 +02:00
Bartek Kryza
ae55b7c054 Added from_to sequence diagram generator for plantuml 2023-08-27 17:48:52 +02:00
Bartek Kryza
8a362c3c7a Added from_to test case 2023-08-26 23:48:38 +02:00
Bartek Kryza
d00ca79241 Add from_to config option 2023-08-13 18:52:33 +02:00
Bartek Kryza
ecf07b98c0 Updated test cases documentation 2023-08-06 21:50:20 +02:00
Bartek Kryza
fd06d93afb Fixed else if statement generation in sequence diagrams (Fixes #81) 2023-08-06 21:38:33 +02:00
Bartek Kryza
39be6014ed Updated internal UML configs 2023-08-06 12:35:17 +02:00
Bartek Kryza
ad7a1c2513 Merge pull request #172 from bkryza/add-skipping-redundant-deps
Add skipping redundant deps
2023-08-05 20:42:57 +02:00
Bartek Kryza
66612fb244 Updated CHANGELOG 2023-08-05 19:52:23 +02:00
Bartek Kryza
301d424fce Updated test cases documentation 2023-08-05 19:34:03 +02:00
Bartek Kryza
2e1013c12f Added option to skip redundant dependency relationships 2023-08-05 19:06:00 +02:00
Bartek Kryza
f6efb7941f Added option to exclude dependencies from template arguments (Fixes #141) 2023-08-02 00:04:11 +02:00
Bartek Kryza
c119a622fa Refactored generator inheritance hierarchy 2023-08-01 00:53:41 +02:00
Bartek Kryza
eded9f4292 Fixed template API warning 2023-07-24 19:41:04 +02:00
Bartek Kryza
9df58ca251 Merge pull request #171 from bkryza/add-configuration-file-validation
Add configuration file validation
2023-07-23 18:59:12 +02:00
Bartek Kryza
bcd32bfd41 Fixed building on MSVC 2023-07-23 18:34:03 +02:00
Bartek Kryza
366bb19912 Minor configuration schema updates 2023-07-23 17:07:22 +02:00
Bartek Kryza
18c4031047 Added schema validation command line flags 2023-07-23 13:12:17 +02:00
Bartek Kryza
ec0079d876 Added include/exclude filter specification to validator schema 2023-07-23 01:22:14 +02:00
Bartek Kryza
8dc0dacd3f Added initial configuration file schema validation 2023-07-22 18:39:07 +02:00
Bartek Kryza
97efbbb332 Added miroir yaml validation library 2023-07-22 18:36:37 +02:00
Bartek Kryza
561a2b16fd Merge pull request #170 from bkryza/v0.3.8
V0.3.8
2023-07-09 17:28:19 +02:00
Bartek Kryza
f50ea3f2c9 Updated clang-uml diagrams config 2023-07-09 16:57:21 +02:00
Bartek Kryza
ff5184da51 Fixed building on Fedora 38 2023-07-09 16:08:00 +02:00
Bartek Kryza
1e305ae4e2 Updated test cases documentation 2023-07-09 14:38:31 +02:00
Bartek Kryza
fb370adbfd Improved documentation 2023-07-09 12:58:03 +02:00
Bartek Kryza
a6b48a99fd Updated version to 0.3.8 2023-07-09 11:11:58 +02:00
Bartek Kryza
a10bf6ba9f Updated changelog 2023-07-09 11:07:53 +02:00
Bartek Kryza
0fd0d97786 Updated docs 2023-07-05 22:39:19 +02:00
Bartek Kryza
51e31b4bf7 Added option --print-start-from to list all possible 'start_from' values (fixes #94) 2023-07-05 22:12:01 +02:00
Bartek Kryza
e6202d4e5a Updated test cases documentation 2023-07-05 00:35:11 +02:00
Bartek Kryza
3bd8f7f7a8 Added option to include if and loop condition text in the diagram (fixes #162) 2023-07-05 00:31:34 +02:00
Bartek Kryza
a514532e51 Updated test cases documentation 2023-07-04 01:02:59 +02:00
Bartek Kryza
2104d930a8 Added option to enable rendering return types in sequence diagrams (fixes #93) 2023-07-04 00:50:47 +02:00
Bartek Kryza
d944a2cead Merge pull request #169 from bkryza/add-support-for-method-type-filter-in-sequence-diagrams
Add support for method type filter in sequence diagrams
2023-07-02 19:02:26 +02:00
Bartek Kryza
7576816f42 Updated test cases documentation 2023-07-02 18:31:33 +02:00
Bartek Kryza
ed88fcd39d Added sequence diagram model cleanup step to remove empty block statements 2023-07-02 18:17:06 +02:00
Bartek Kryza
9ada158828 Removed deprecated diagram configs from .clang-uml 2023-07-02 00:08:00 +02:00
Bartek Kryza
1d2f83127f Removed dead code 2023-07-01 23:54:09 +02:00
Bartek Kryza
fb3283d9c7 Updated test cases documentation 2023-07-01 23:48:45 +02:00
Bartek Kryza
e50a7b1846 Added callee_filter for including/excluding messages based on receiver type (#152) 2023-07-01 23:46:02 +02:00
Bartek Kryza
213483dd3b Added support for constructors and operators in sequence diagrams 2023-06-29 00:35:57 +02:00
Bartek Kryza
9e7b147244 Updated test cases documentation 2023-06-26 17:11:36 +02:00
Bartek Kryza
8d1bac0af4 Merge pull request #165 from bkryza/fix-method-links
Fix method links
2023-06-26 16:59:13 +02:00
Bartek Kryza
13ea67c1d8 Updated test cases documentation 2023-06-26 16:15:55 +02:00
Bartek Kryza
ed151f45e1 Fixed class method links in PlantUML diagrams 2023-06-26 16:15:10 +02:00
Bartek Kryza
ef753eaaff Merge pull request #163 from bkryza/add-doxygen-config
Add doxygen config
2023-06-25 18:45:24 +02:00
Bartek Kryza
46b8c29907 Update Doxygen docs for util namespace 2023-06-25 17:53:21 +02:00
Bartek Kryza
f1250e5780 Update Doxygen docs for sequence_diagram namespace 2023-06-25 12:48:32 +02:00
Bartek Kryza
c0b0af1bda Added Doxygen footer 2023-06-25 12:46:53 +02:00
Bartek Kryza
06045cee21 Updated docs 2023-06-24 21:57:55 +02:00
Bartek Kryza
c49517925e Update Doxygen docs for package_diagram namespace 2023-06-24 20:53:58 +02:00
Bartek Kryza
d594f79155 Update Doxygen docs for include_diagram namespace 2023-06-24 20:05:24 +02:00
Bartek Kryza
e1b7d67c71 Update Doxygen docs for decorators namespace 2023-06-24 18:22:10 +02:00
Bartek Kryza
935d25c8f4 Update Doxygen docs for class_diagram namespace 2023-06-24 17:24:06 +02:00
Bartek Kryza
627a9fe1a8 Disbaled dark mode in HTML Doxygen docs style 2023-06-24 17:23:27 +02:00
Bartek Kryza
6c6384e5fd Fixed clang-tidy warnings 2023-06-23 20:46:43 +02:00
Bartek Kryza
525b3f74a6 Updated docs links 2023-06-23 19:54:30 +02:00
Bartek Kryza
321fb177a9 Updated code for Doxygen documentation 2023-06-23 19:39:41 +02:00
Bartek Kryza
d8ef12d1c6 Added Doxygen documentation 2023-06-23 19:38:28 +02:00
Bartek Kryza
a39af67987 Fixed comment_parser option handling 2023-06-21 00:51:39 +02:00
Bartek Kryza
fb348fbaa1 Updated Doxygen docs 2023-06-19 23:25:31 +02:00
Bartek Kryza
6dd4089c8d Added initial Doxygen config 2023-06-18 23:41:48 +02:00
Bartek Kryza
7575147b71 Fixed @file doxygen links 2023-06-18 23:40:13 +02:00
Bartek Kryza
f424ed4c8c Added doxygen comments to common namespace 2023-06-18 20:23:44 +02:00
Bartek Kryza
da2cb63ab3 Added initial Doxygen config 2023-06-18 01:18:35 +02:00
Bartek Kryza
031235bf49 Updated troubleshooting 2023-06-16 16:46:37 +02:00
Bartek Kryza
d8aa955455 Merge pull request #159 from bkryza/add-progress-indicators
Add progress indicators
2023-06-15 22:54:14 +02:00
Bartek Kryza
94b1d51ca8 Fixed building on Windows 2023-06-15 22:28:29 +02:00
Bartek Kryza
8c4e48d511 Fixed clang-tidy warnings 2023-06-15 21:41:22 +02:00
Bartek Kryza
930ffb3468 Updated README 2023-06-15 21:07:12 +02:00
Bartek Kryza
408416020f Added --progress option for diagram progress indicators 2023-06-15 00:24:55 +02:00
Bartek Kryza
c387aba82e Added indicators library v2.3 2023-06-14 01:19:11 +02:00
Bartek Kryza
2cfff608d8 Updated README logo link 2023-06-14 00:22:21 +02:00
Bartek Kryza
3261838af8 Updated log levels 2023-06-12 20:29:11 +02:00
Bartek Kryza
01db5185b2 Updated test cases documentation 2023-06-12 00:55:11 +02:00
Bartek Kryza
43cc5cb49f Extended source_location with column and translation unit info 2023-06-12 00:42:52 +02:00
Bartek Kryza
84ec4733cc Merge pull request #156 from bkryza/v0.3.7
V0.3.7
2023-06-11 18:02:43 +02:00
Bartek Kryza
f963c10257 Updated conda packaging 2023-06-11 17:27:07 +02:00
Bartek Kryza
fbb16859f3 Added Windows installer build script 2023-06-11 17:14:00 +02:00
Bartek Kryza
3154cfd737 Releasing version 0.3.7 2023-06-11 12:50:51 +02:00
Bartek Kryza
6ff1618827 Updated README 2023-06-10 23:30:14 +02:00
Bartek Kryza
73b446f0f7 Merge pull request #155 from bkryza/add-config-regexp-support
Add config regexp support
2023-06-10 20:11:08 +02:00
Bartek Kryza
6d329dfdf6 Fixed diagram filters docs 2023-06-10 20:10:02 +02:00
Bartek Kryza
20fe6b1687 Updated test cases documentation 2023-06-10 19:02:06 +02:00
Bartek Kryza
01ef3dcbcc Updated diagram filters docs 2023-06-10 18:59:36 +02:00
Bartek Kryza
7564b6408f Updated troubleshooting 2023-06-10 17:30:42 +02:00
Bartek Kryza
dc74069dfd Added glob pattern support in paths filter 2023-06-10 16:21:55 +02:00
Bartek Kryza
ac01127436 Added OS details information in version help message 2023-06-09 22:35:03 +02:00
Bartek Kryza
0a4e2c8855 Fixed clang-tidy warnings 2023-06-09 01:31:29 +02:00
Bartek Kryza
7e416ffa97 Added regex support to dependencies and dependants filter 2023-06-09 00:44:25 +02:00
Bartek Kryza
658bceee4b Added regex support to context filter 2023-06-08 19:02:14 +02:00
Bartek Kryza
b0501d4bfb Added regex support to specializations filter 2023-06-08 14:08:31 +02:00
Bartek Kryza
b3b95efb65 Added regex support to parents filter 2023-06-08 00:03:50 +02:00
Bartek Kryza
ad2fc3f8a6 Added regex support to subclasses filter 2023-06-07 00:15:56 +02:00
Bartek Kryza
c7e61a586b Added regex support to namespaces filter 2023-06-06 21:31:50 +02:00
Bartek Kryza
399b7e1907 Added regex support to elements filter 2023-06-05 23:05:54 +02:00
Bartek Kryza
3430d5422a Added Ubuntu Lunar packaging spec 2023-06-05 22:44:27 +02:00
Bartek Kryza
6ffed4188c Merge pull request #153 from bkryza/fix-building-on-gcc13
Fix building on gcc13
2023-06-04 11:16:07 +02:00
Bartek Kryza
d3a5ba28ff Added Ubuntu Lunar package spec 2023-06-03 23:17:21 +02:00
Bartek Kryza
194164c8a4 Updated packaging warnings 2023-06-03 18:45:39 +02:00
Bartek Kryza
9f726e495c Updated packaging warnings 2023-06-03 18:36:02 +02:00
Bartek Kryza
12f129a6fe Upgraded spdlog to v1.11.0 2023-06-03 18:00:54 +02:00
Bartek Kryza
859758a1eb Merge pull request #151 from bkryza/add-method-groups-and-filters
Add method groups and filters
2023-06-02 22:52:43 +02:00
Bartek Kryza
a78839eecf Updated test cases documentation 2023-06-02 22:02:08 +02:00
Bartek Kryza
75d1daac31 Updated diagram filters test cases and docs 2023-06-02 21:50:51 +02:00
Bartek Kryza
e681d1a3cc Added custom method type destructor filter 2023-06-02 21:08:19 +02:00
Bartek Kryza
e40dc3a60c Added method type diagram filter (#145) 2023-06-02 01:06:22 +02:00
Bartek Kryza
e7f738c6dc Fixed handling properties of template methods (e.g. is_constructor) 2023-06-01 00:57:46 +02:00
Bartek Kryza
112f7cb806 Refactored apply_if helper functions 2023-06-01 00:06:32 +02:00
Bartek Kryza
ae44c2413b Fixed clang-tidy warnings 2023-05-31 23:07:40 +02:00
Bartek Kryza
0973289eb7 Added test case for unsorted and ungrouped class members and methods 2023-05-31 22:52:31 +02:00
Bartek Kryza
c87bd7d94b Added default class method and member grouping and sorting 2023-05-31 22:46:39 +02:00
Bartek Kryza
097f7a11ed Extended generation of method attributes (#142) 2023-05-30 18:51:13 +02:00
Bartek Kryza
75b900bf46 Extended troubleshooting section 2023-05-29 20:25:15 +02:00
Bartek Kryza
af7973d707 Merge pull request #149 from bkryza/v0.3.6
Updated README and CHANGELOG for 0.3.6
2023-05-29 00:05:54 +02:00
Bartek Kryza
3d8a0ce428 Updated README and CHANGELOG for 0.3.6 2023-05-28 23:02:51 +02:00
Bartek Kryza
77f3325d6a Merge pull request #148 from bkryza/add-packages-from-directory-structure
Add packages from directory structure
2023-05-28 22:58:45 +02:00
Bartek Kryza
f273f6b2f7 Fixed formatting 2023-05-28 22:20:40 +02:00
Bartek Kryza
8e801fe31d Fixed building on MSVC 2023-05-28 22:17:21 +02:00
Bartek Kryza
0028cf6f3d Fixed building on macos 2023-05-28 19:59:58 +02:00
Bartek Kryza
3e97a37c5f Updated docs 2023-05-28 19:08:10 +02:00
Bartek Kryza
81c7ce71df Improved skipping of empty packages in class diagrams 2023-05-28 18:38:57 +02:00
Bartek Kryza
5c4a98ba79 Fixed clang-tidy warnings 2023-05-27 23:41:36 +02:00
Bartek Kryza
e6fa19ff39 Refactored nested diagrams with element_view template 2023-05-27 22:32:04 +02:00
Bartek Kryza
ba32b54395 Added test case for package diagram from directory structure for plain C 2023-05-26 21:46:39 +02:00
Bartek Kryza
2a29968f09 Added test case for package diagram from directory structure 2023-05-26 21:06:23 +02:00
Bartek Kryza
467c021e17 Added generation of package diagrams from directory structure instead of namespaces 2023-05-26 21:05:52 +02:00
Bartek Kryza
c3dcac72da Updated t00065 test case 2023-05-24 22:23:14 +02:00
Bartek Kryza
75c027262f Fixed class diagram generation with packages from directories 2023-05-24 22:22:47 +02:00
Bartek Kryza
10a28cf35e Added clanguml element hierarchy class diagram 2023-05-24 22:18:40 +02:00
Bartek Kryza
01c791e6a1 Added initial support for directory based packages in class diagrams 2023-05-21 11:55:57 +02:00
Bartek Kryza
044c9ced19 Fixed generation of dependent template argument names (#146) 2023-05-20 11:40:12 +02:00
Bartek Kryza
bca1162b16 Updated changelog 2023-05-16 18:01:42 +02:00
Bartek Kryza
7dff400978 Fixed possible segfault in package diagram generator 2023-05-16 08:56:08 +02:00
Bartek Kryza
9035ee52ac Merge pull request #143 from bkryza/fix-handling-field-template-instantiation-relationships
Fix handling field template instantiation relationships
2023-05-15 09:39:05 +02:00
Bartek Kryza
90e251314f Updated test cases documentation 2023-05-15 01:26:34 +02:00
Bartek Kryza
57aa174a86 Fixed t00064 on LLVM 16 2023-05-15 01:23:37 +02:00
Bartek Kryza
02f470e563 Fixed rendering of methods in template class specializations 2023-05-14 18:57:40 +02:00
Bartek Kryza
0fbf491dfe Fixed handling of decltype cxxmember type aliases with dependend parameters 2023-05-14 16:35:14 +02:00
Bartek Kryza
4b0fcd631d Fixed handling of function template parameters 2023-05-13 18:10:11 +02:00
Bartek Kryza
d6db61bde0 Updated README example 2023-05-13 15:01:29 +02:00
Bartek Kryza
c110d19a78 Added type_list test case 2023-05-13 14:58:24 +02:00
Bartek Kryza
3b573ff034 Fixed handling of anonymous template parameters 2023-05-13 14:58:07 +02:00
Bartek Kryza
2223f595cd Fixed generation of template specializations from alias template type members 2023-05-13 12:42:30 +02:00
Bartek Kryza
3b99ca1313 Updated CHANGELOG 2023-05-11 22:01:34 +02:00
Bartek Kryza
8ae1d2a005 Merge pull request #139 from bkryza/fix-handling-of-anonymous-c-style-typedef-structs
Fixed handling of C99 typedef structs (#138)
2023-05-11 22:00:59 +02:00
Bartek Kryza
463f27e54e Updated test cases documentation 2023-05-11 21:29:13 +02:00
Bartek Kryza
7e9944ce60 Fixed handling of C99 typedef structs (#138) 2023-05-11 19:52:27 +02:00
Bartek Kryza
9a5a1523d9 Merge pull request #137 from bkryza/v0.3.5
V0.3.5
2023-05-09 23:04:02 +02:00
1131 changed files with 126724 additions and 22533 deletions

View File

@@ -6,4 +6,5 @@
+ src/**/*.h + src/**/*.h
+ tests/**/*.cc + tests/**/*.cc
+ tests/**/*.h + tests/**/*.h
+ tests/**/*.cppm
- tests/catch.h - tests/catch.h

View File

@@ -8,6 +8,7 @@ Checks: >-
-bugprone-branch-clone, -bugprone-branch-clone,
-bugprone-exception-escape, -bugprone-exception-escape,
-bugprone-easily-swappable-parameters, -bugprone-easily-swappable-parameters,
-bugprone-empty-catch,
-clang-analyzer-alpha.*, -clang-analyzer-alpha.*,
-clang-analyzer-core.StackAddressEscape, -clang-analyzer-core.StackAddressEscape,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
@@ -16,6 +17,8 @@ Checks: >-
-cppcoreguidelines-special-member-functions, -cppcoreguidelines-special-member-functions,
-cppcoreguidelines-avoid-magic-numbers, -cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-non-private-member-variables-in-classes, -cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-missing-std-forward,
-cppcoreguidelines-avoid-const-or-ref-data-members,
-cert-env33-c, -cert-env33-c,
-cert-err58-cpp, -cert-err58-cpp,
-cert-dcl58-cpp, -cert-dcl58-cpp,
@@ -34,6 +37,7 @@ Checks: >-
-misc-no-recursion, -misc-no-recursion,
-misc-non-private-member-variables-in-classes, -misc-non-private-member-variables-in-classes,
-misc-const-correctness, -misc-const-correctness,
-misc-include-cleaner,
-modernize-use-nodiscard, -modernize-use-nodiscard,
-modernize-use-trailing-return-type, -modernize-use-trailing-return-type,
-modernize-concat-nested-namespaces, -modernize-concat-nested-namespaces,
@@ -54,7 +58,7 @@ Checks: >-
WarningsAsErrors: '*' WarningsAsErrors: '*'
HeaderFilterRegex: 'src' HeaderFilterRegex: 'src'
CheckOptions: CheckOptions:
- key: readability-identifier-naming.ClassMemberSuffix - key: readability-identifier-naming.PrivateMemberSuffix
value: '_' value: '_'
- key: readability-identifier-naming.PublicMemberSuffix - key: readability-identifier-naming.PublicMemberSuffix
value: '' value: ''

View File

@@ -1,30 +1,84 @@
compilation_database_dir: debug compilation_database_dir: debug
output_directory: docs/diagrams output_directory: docs/diagrams
comment_parser: clang
add_compile_flags:
- -Wno-deprecated-declarations
remove_compile_flags:
- -Wno-class-memaccess
- -Wno-dangling-reference
plantuml:
cmd: "plantuml -tsvg \"docs/diagrams/{}.puml\""
mermaid:
cmd: "mmdc -i \"docs/diagrams/{}.mmd\" -o \"docs/diagrams/{}.svg\""
generate_links: generate_links:
link: https://github.com/bkryza/clang-uml/blob/{{ git.commit }}/{{ element.source.path }}#L{{ element.source.line }} link: "{% if existsIn(element, \"doxygen_link\") %}{{ element.doxygen_link }}{% endif %}"
tooltip: "{% if existsIn(element, \"comment\") and existsIn(element.comment, \"brief\") %}{{ abbrv(trim(replace(element.comment.brief.0, \"\\n+\", \" \")), 256) }}{% else %}{{ element.name }}{% endif %}" tooltip: "{% if existsIn(element, \"comment\") and existsIn(element.comment, \"brief\") %}{{ abbrv(trim(replace(element.comment.brief.0, \"\\n+\", \" \")), 256) }}{% else %}{{ element.name }}{% endif %}"
diagrams: diagrams:
main_package: # Class diagrams
include!: uml/main_package_diagram.yml architecture_visitors_class:
include!: uml/class/architecture_visitors_class.yml
config_class: config_class:
include!: uml/config_class_diagram.yml include!: uml/class/config_class.yml
config_context_class:
include!: uml/class/config_context_class.yml
compilation_database_context_class:
include!: uml/class/compilation_database_context_class.yml
inheritable_diagram_options_context_class:
include!: uml/class/inheritable_diagram_options_context_class.yml
diagram_config_hierarchy_class:
include!: uml/class/diagram_config_hierarchy_class.yml
diagram_hierarchy_class:
include!: uml/class/diagram_hierarchy_class.yml
decorated_element_hierarchy_class:
include!: uml/class/decorated_element_hierarchy_class.yml
stylable_element_hierarchy_class:
include!: uml/class/stylable_element_hierarchy_class.yml
source_location_hierarchy_class:
include!: uml/class/source_location_hierarchy_class.yml
"filter_visitor_hierarchy_class":
include!: uml/class/filter_visitor_hierarchy_class.yml
diagram_filter_context_class:
include!: uml/class/diagram_filter_context_class.yml
nested_trait_hierarchy_class:
include!: uml/class/nested_trait_hierarchy_class.yml
package_hierarchy_class:
include!: uml/class/package_hierarchy_class.yml
source_file_hierarchy_class:
include!: uml/class/source_file_hierarchy_class.yml
template_trait_hierarchy_class:
include!: uml/class/template_trait_hierarchy_class.yml
comment_visitor_hierarchy_class:
include!: uml/class/comment_visitor_hierarchy_class.yml
decorators_class: decorators_class:
include!: uml/decorators_class_diagram.yml include!: uml/class/decorators_class.yml
relationship_context_class:
include!: uml/class/relationship_context_class.yml
common_model_class: common_model_class:
include!: uml/common_model_class_diagram.yml include!: uml/class/common_model_class.yml
class_model_class: class_model_class:
include!: uml/class_model_class_diagram.yml include!: uml/class/class_model_class.yml
diagram_element_hierarchy_class:
include!: uml/class/diagram_element_hierarchy_class.yml
sequence_model_class: sequence_model_class:
include!: uml/sequence_model_class_diagram.yml include!: uml/class/sequence_model_class.yml
main_sequence:
include!: uml/main_sequence_diagram.yml
sequence_diagram_visitor_sequence:
include!: uml/sequence_diagram_visitor_sequence_diagram.yml
class_diagram_generator_sequence:
include!: uml/class_diagram_generator_sequence_diagram.yml
template_builder_sequence:
include!: uml/template_builder_sequence_diagram.yml
package_model_class: package_model_class:
include!: uml/package_model_class_diagram.yml include!: uml/class/package_model_class.yml
# Sequence diagrams
main_sequence:
include!: uml/sequence/main_sequence.yml
load_config_sequence:
include!: uml/sequence/load_config_sequence.yml
cli_handle_options_sequence:
include!: uml/sequence/cli_handle_options_sequence.yml
diagram_generate_generic_sequence:
include!: uml/sequence/diagram_generate_generic_sequence.yml
class_diagram_generator_sequence:
include!: uml/sequence/class_diagram_generator_sequence.yml
template_builder_sequence:
include!: uml/sequence/template_builder_sequence.yml
# Package diagrams
architecture_package:
include!: uml/package/architecture_package.yml
# Include diagrams
include_graph: include_graph:
include!: uml/include_diagram.yml include!: uml/include/include.yml

5
.gitignore vendored
View File

@@ -22,6 +22,11 @@ bin/
/debug_tidy /debug_tidy
/.cache /.cache
docs/diagrams docs/diagrams
docs/doxygen/html
docs/doxygen/xml
docs/doxygen/latex
docs/contributing.md
docs/changelog.md
coverage*.info coverage*.info

View File

@@ -1,5 +1,61 @@
# CHANGELOG # CHANGELOG
* Enabled type_aliases config option for sequence diagrams (#224)
* Refactored and unified JSON generators output (#223)
* Added support for C++20 module based packages in class diagrams (#101)
* Added support for class diagram filtering based on C++20 modules (#195)
* Added support for C++20 coroutines in class diagrams (#221)
* Fixed progress indicator characters on Windows (#218)
### 0.4.2
* Fixed random typos and omissions in docs (#208)
* Fixed handling of diagram hyperlinks with sources outside of project dir (#213)
* Fixed test case t00014 on macos (#176)
* Added automatic generation of diagram images using PlantUML and MermaidJS (#204)
* Added radius parameter to context filter (#201)
### 0.4.1
* Enabled manual call expression injection through comments (#196)
* Added support for generating sequence diagram notes from comments (#194)
* Added Bash and Zsh autocomplete scripts (#193)
* Updated `clang-uml` to work with LLVM 17 (#190)
* Fixed handling of compilation databases with relative header paths (#189)
* Excluded package diagram dependencies on parent and child packages (186)
* Excluded package diagram relationships to rejected packages (#185)
* Added 'title' diagram property (#184)
* Make sure sequence diagram messages generated during static variable
initialization are rendered only once (#183)
### 0.4.0
* Added MermaidJS diagram generators (#27)
### 0.3.9
* Added `from_to` and `to` location constraints to sequence diagrams (#154)
* Fixed 'else if' statement generation in sequence diagrams (#81)
* Implemented removal of redundant dependency relationships (#28)
* Add option to disable generation of dependency relation to template
arguments (#141)
* Added configuration file validation (#57)
### 0.3.8
* Added option to display block conditional statements in sequence diagrams (#162)
* Added Doxygen documentation (#161)
* Added diagram generation progress indicators options (#158)
* Extended source_location with column and translation unit info
### 0.3.7
* Added regexp support to selected diagram filters (#51, #132)
* Added method type diagram filter (#145)
* Added default method grouping and sorting in class diagrams (#36)
* Improved generation of method attributes (e.g. constexpr, noexcept) (#142)
### 0.3.6
* Added generation of packages in class and package diagrams from
filesystem directories (#144)
* Improved handling of class template specializations and their
relationships (#140)
* Fixed handling of C99 typedef structs (#138)
### 0.3.5 ### 0.3.5
* Added `--query-driver` option to automatically detect system include paths (#109) * Added `--query-driver` option to automatically detect system include paths (#109)
* Fixed add_compile_flags and added remove_compile_flags config options (#130) * Fixed add_compile_flags and added remove_compile_flags config options (#130)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12) cmake_minimum_required(VERSION 3.16)
# #
# Project name # Project name
@@ -46,6 +46,10 @@ endif(APPLE)
# #
option(LINK_LLVM_SHARED "Should LLVM be linked using shared libraries" ON) option(LINK_LLVM_SHARED "Should LLVM be linked using shared libraries" ON)
set(LLVM_VERSION CACHE STRING "Major LLVM version to use (e.g. 15)") set(LLVM_VERSION CACHE STRING "Major LLVM version to use (e.g. 15)")
set(LLVM_CONFIG_PATH CACHE STRING "Path to llvm-config binary")
set(CMAKE_PREFIX CACHE STRING "Path to custom cmake modules")
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_PREFIX}")
# #
# Setup version string # Setup version string
@@ -58,78 +62,27 @@ message(STATUS "clang-uml version: "
# #
# Setup LLVM # Setup LLVM
# #
message(STATUS "Checking for LLVM and Clang...") include(LLVMSetup)
if(LLVM_PREFIX)
message(STATUS "Using llvm-config from ${LLVM_CONFIG_PATH}")
set(LIBCLANG_LLVM_CONFIG_EXECUTABLE ${LLVM_CONFIG_PATH})
set(LLVM_CONFIG_BINARY ${LLVM_CONFIG_PATH})
endif(LLVM_PREFIX)
find_package(LLVM ${LLVM_VERSION} CONFIG REQUIRED) #
# Setup custom compile options depending on various compiler
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR}) # and environment quirks
include(AddLLVM) #
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") # Workaround over Wdangling-reference false positives in libfmt
message(STATUS "LLVM library dir: ${LLVM_LIBRARY_DIR}") set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS} -Wno-dangling-reference)
endif()
if(MSVC)
# LLVM_BUILD_LLVM_DYLIB is not available on Windows
set(LINK_LLVM_SHARED NO)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif(MSVC)
if(LINK_LLVM_SHARED)
set(LIBTOOLING_LIBS clang-cpp LLVM)
else(LINK_LLVM_SHARED)
set(LIBTOOLING_LIBS
clangLex
clangFrontend
clangSerialization
clangDriver
clangParse
clangSema
clangSupport
clangAnalysis
clangAST
clangBasic
clangEdit
clangLex
clangTooling
LLVMipo
LLVMScalarOpts
LLVMInstCombine
LLVMTransformUtils
LLVMAnalysis
LLVMTarget
LLVMOption
LLVMMCParser
LLVMMC
LLVMObject
LLVMBitReader
LLVMCore
LLVMSupport)
if(MSVC)
if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport)
else()
list(APPEND LIBTOOLING_LIBS
LLVMWindowsDriver
LLVMWindowsManifest)
endif()
endif(MSVC)
endif(LINK_LLVM_SHARED)
if("${LIBTOOLING_LIBS}" STREQUAL "")
message(FATAL_ERROR "Failed to find LibTooling libraries!")
else()
message(STATUS "Found LibTooling libraries: ${LIBTOOLING_LIBS}")
endif() endif()
if(APPLE OR (LLVM_VERSION_MAJOR GREATER_EQUAL 16)) if(LLVM_VERSION_MAJOR GREATER_EQUAL 17)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS} -Wno-class-memaccess)
endif()
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CUSTOM_COMPILE_OPTIONS
${CUSTOM_COMPILE_OPTIONS} -Wno-unused-private-field)
endif() endif()
# #
@@ -142,14 +95,12 @@ find_package(Threads REQUIRED)
# #
message(STATUS "Checking for yaml-cpp...") message(STATUS "Checking for yaml-cpp...")
if(APPLE) if(APPLE)
find_package(PkgConfig) find_package(PkgConfig)
if(PKG_CONFIG_FOUND) if(PKG_CONFIG_FOUND)
pkg_check_modules(YAML_CPP yaml-cpp) pkg_check_modules(YAML_CPP yaml-cpp)
find_path(YAML_CPP_INCLUDE_DIR find_path(YAML_CPP_INCLUDE_DIR
NAMES yaml.h NAMES yaml-cpp/yaml.h
PATHS ${YAML_CPP_INCLUDE_DIR} ${HOMEBREW_PREFIX}/include/yaml-cpp) PATHS ${YAML_CPP_INCLUDE_DIR} ${HOMEBREW_PREFIX}/include)
find_library(YAML_CPP_LIBRARY find_library(YAML_CPP_LIBRARY
NAMES yaml-cpp NAMES yaml-cpp
PATHS ${YAML_CPP_LIBRARIES} ${HOMEBREW_PREFIX}/lib) PATHS ${YAML_CPP_LIBRARIES} ${HOMEBREW_PREFIX}/lib)
@@ -190,11 +141,11 @@ set(THIRDPARTY_HEADERS_DIR ${PROJECT_SOURCE_DIR}/thirdparty/)
# #
include_directories(${LLVM_INCLUDE_DIRS}) include_directories(${LLVM_INCLUDE_DIRS})
include_directories(${CLANG_UML_INSTALL_INCLUDE_DIR}) include_directories(${CLANG_UML_INSTALL_INCLUDE_DIR})
include_directories(${YAML_CPP_INCLUDE_DIRS})
include_directories(${UML_HEADERS_DIR}) include_directories(${UML_HEADERS_DIR})
include_directories(${THIRDPARTY_HEADERS_DIR}) include_directories(${THIRDPARTY_HEADERS_DIR})
include_directories(${PROJECT_SOURCE_DIR}/src/) include_directories(${PROJECT_SOURCE_DIR}/src/)
include_directories(${PROJECT_BINARY_DIR}/src/version) include_directories(${PROJECT_BINARY_DIR}/src/version)
include_directories(${YAML_CPP_INCLUDE_DIR})
add_subdirectory(src) add_subdirectory(src)
@@ -202,7 +153,8 @@ add_subdirectory(src)
# Enable testing via CTest # Enable testing via CTest
# #
option(BUILD_TESTS "" ON) option(BUILD_TESTS "" ON)
option(ENABLE_CXX_MODULES_TEST_CASES "" OFF)
if(BUILD_TESTS) if(BUILD_TESTS)
enable_testing() enable_testing()
add_subdirectory(tests) add_subdirectory(tests)
endif(BUILD_TESTS) endif(BUILD_TESTS)

View File

@@ -1,8 +1,10 @@
# Contributing to `clang-uml` # Contributing to clang-uml
Thanks for taking interest in `clang-uml`! Thanks for taking interest in `clang-uml`!
> Please, make sure you're ok with [Code of conduct](./CODE_OF_CONDUCT.md) and [LICENSE](./LICENSE.md) > Please, make sure you're ok with
> [Code of conduct](./CODE_OF_CONDUCT.md)
> and [LICENSE](./LICENSE.md)
## If you found a bug ## If you found a bug
@@ -18,12 +20,12 @@ Thanks for taking interest in `clang-uml`!
the C++ code which triggers the issue, and in `tests/t00050/test_case.h` write the test checks. the C++ code which triggers the issue, and in `tests/t00050/test_case.h` write the test checks.
The test case must be also added manually to `tests/test_cases.cc`: The test case must be also added manually to `tests/test_cases.cc`:
```cpp ```cpp
... // ...
#include "t00047/test_case.h" #include "t00047/test_case.h"
#include "t00048/test_case.h" #include "t00048/test_case.h"
#include "t00049/test_case.h" #include "t00049/test_case.h"
#include "t00050/test_case.h" #include "t00050/test_case.h" // <<<
... // ...
``` ```
Finally, create an issue with a link to your branch with the new test case. Finally, create an issue with a link to your branch with the new test case.
@@ -82,8 +84,8 @@ Thanks for taking interest in `clang-uml`!
the feature to ensure we're on the same page as to its purpose and possible implementation the feature to ensure we're on the same page as to its purpose and possible implementation
* Next, implement the feature, please try to adapt to the overall code style: * Next, implement the feature, please try to adapt to the overall code style:
* 80-character line width * 80-character line width
* snakes over camels * snakes not camels
* use `make format` before submitting PR to ensure consistent formatting * use `make format` before submitting PR to ensure consistent formatting (requires Docker)
* use `make tidy` to check if your code doesn't introduce any `clang-tidy` warnings * use `make tidy` to check if your code doesn't introduce any `clang-tidy` warnings
* Add test case (or multiple test cases), which cover the new feature * Add test case (or multiple test cases), which cover the new feature
* Finally, create a pull request! * Finally, create a pull request!

2676
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -31,75 +31,108 @@ else
endif endif
LLVM_VERSION ?= LLVM_VERSION ?=
LLVM_CONFIG_PATH ?=
CMAKE_PREFIX ?=
CMAKE_CXX_FLAGS ?= CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?= CMAKE_EXE_LINKER_FLAGS ?=
CMAKE_GENERATOR ?= Unix Makefiles
ENABLE_CXX_MODULES_TEST_CASES ?= OFF
GIT_VERSION ?= $(shell git describe --tags --always --abbrev=7) GIT_VERSION ?= $(shell git describe --tags --always --abbrev=7)
PKG_VERSION ?= $(shell git describe --tags --always --abbrev=7 | tr - .) PKG_VERSION ?= $(shell git describe --tags --always --abbrev=7 | tr - .)
GIT_COMMIT ?= $(shell git rev-parse HEAD) GIT_COMMIT ?= $(shell git rev-parse HEAD)
GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD) GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
DESTDIR ?=
.PHONY: clean .PHONY: clean
clean: clean:
rm -rf debug release debug_tidy rm -rf debug release debug_tidy
debug/CMakeLists.txt: debug/CMakeLists.txt:
cmake -S . -B debug \ cmake -S . -B debug \
-G"$(CMAKE_GENERATOR)" \
-DGIT_VERSION=$(GIT_VERSION) \ -DGIT_VERSION=$(GIT_VERSION) \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \ -DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} -DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)
release/CMakeLists.txt: release/CMakeLists.txt:
cmake -S . -B release \ cmake -S . -B release \
-G"$(CMAKE_GENERATOR)" \
-DGIT_VERSION=$(GIT_VERSION) \ -DGIT_VERSION=$(GIT_VERSION) \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \ -DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} -DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)
debug_tidy/CMakeLists.txt: debug_tidy/CMakeLists.txt:
cmake -S . -B debug_tidy \ cmake -S . -B debug_tidy \
-G"$(CMAKE_GENERATOR)" \
-DGIT_VERSION=$(GIT_VERSION) \ -DGIT_VERSION=$(GIT_VERSION) \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_BUILD_TYPE=Debug \
-DBUILD_TESTS=OFF \ -DBUILD_TESTS=OFF \
-DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \ -DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} -DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)
debug: debug/CMakeLists.txt debug: debug/CMakeLists.txt
echo "Using ${NUMPROC} cores" echo "Using ${NUMPROC} cores"
make -C debug -j$(NUMPROC) cmake --build debug -j$(NUMPROC)
debug_tidy: debug_tidy/CMakeLists.txt debug_tidy: debug_tidy/CMakeLists.txt
echo "Using ${NUMPROC} cores" echo "Using ${NUMPROC} cores"
make -C debug_tidy -j$(NUMPROC) cmake --build debug_tidy -j$(NUMPROC)
release: release/CMakeLists.txt release: release/CMakeLists.txt
make -C release -j$(NUMPROC) cmake --build release -j$(NUMPROC)
test: debug test: debug
CTEST_OUTPUT_ON_FAILURE=1 make -C debug test CTEST_OUTPUT_ON_FAILURE=1 ctest --test-dir debug
test_release: release test_release: release
CTEST_OUTPUT_ON_FAILURE=1 make -C release test CTEST_OUTPUT_ON_FAILURE=1 ctest --test-dir release
test_plantuml: test install: release
plantuml -tsvg debug/tests/puml/*.puml make -C release install DESTDIR=${DESTDIR}
document_test_cases: test_plantuml test_diagrams: test
mkdir -p debug/tests/diagrams/plantuml
mkdir -p debug/tests/diagrams/mermaid
plantuml -tsvg -nometadata -o plantuml debug/tests/diagrams/*.puml
python3 util/validate_json.py debug/tests/diagrams/*.json
python3 util/generate_mermaid.py debug/tests/diagrams/*.mmd
document_test_cases: test_diagrams
python3 util/generate_test_cases_docs.py python3 util/generate_test_cases_docs.py
# Format generated SVG files
python3 util/format_svg.py docs/test_cases/*.svg python3 util/format_svg.py docs/test_cases/*.svg
clanguml_diagrams: debug clanguml_diagrams: debug
mkdir -p docs/diagrams mkdir -p docs/diagrams/plantuml
debug/src/clang-uml -g plantuml -g json mkdir -p docs/diagrams/mermaid
plantuml -tsvg -nometadata docs/diagrams/*.puml debug/src/clang-uml -g plantuml -g json -g mermaid -p
python3 util/format_svg.py docs/diagrams/*.svg # Convert .puml files to svg images
plantuml -tsvg -nometadata -o plantuml docs/diagrams/*.puml
# Convert .mmd files to svg images
python3 util/generate_mermaid.py docs/diagrams/*.mmd
# Format generated SVG files
python3 util/format_svg.py docs/diagrams/plantuml/*.svg
python3 util/format_svg.py docs/diagrams/mermaid/*.svg
.PHONY: submodules .PHONY: submodules
submodules: submodules:
@@ -122,7 +155,7 @@ format:
.PHONY: debug_tidy .PHONY: debug_tidy
tidy: debug_tidy tidy: debug_tidy
run-clang-tidy-15 -j $(NUMPROC) -p debug_tidy ./src run-clang-tidy-15 -extra-arg=-Wno-unknown-warning-option -j $(NUMPROC) -p debug_tidy ./src
.PHONY: check-formatting .PHONY: check-formatting
check-formatting: check-formatting:
@@ -138,14 +171,17 @@ iwyu_fixes: debug
docs: docs:
make -C docs toc make -C docs toc
.PHONY: fedora_36 .PHONY: doxygen
fedora_36: doxygen: docs
mkdir -p packaging/_BUILD/fedora/36 cp CONTRIBUTING.md docs/contributing.md
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/36/clang-uml-$(PKG_VERSION).tar.gz cp CHANGELOG.md docs/changelog.md
docker run --cpuset-cpus=0-7 -v $(PWD):$(PWD) fedora:36 sh -c "dnf install -y make git && cd ${PWD} && make OS=fedora DIST=36 VERSION=${PKG_VERSION} COMMIT=${GIT_COMMIT} BRANCH=${GIT_BRANCH} -C packaging rpm" mkdir -p docs/doxygen/html/test_cases
cp docs/diagrams/plantuml/*.svg docs/doxygen/html/
cp docs/test_cases/*.svg docs/doxygen/html/test_cases/
../doxygen/_build/bin/doxygen
.PHONY: fedora_37 .PHONY: fedora/%
fedora_37: fedora/%:
mkdir -p packaging/_BUILD/fedora/37 mkdir -p packaging/_BUILD/fedora/$*
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/37/clang-uml-$(PKG_VERSION).tar.gz git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/$*/clang-uml-$(PKG_VERSION).tar.gz
docker run --cpuset-cpus=0-7 -v $(PWD):$(PWD) fedora:37 sh -c "dnf install -y make git && cd ${PWD} && make OS=fedora DIST=37 VERSION=${PKG_VERSION} COMMIT=${GIT_COMMIT} BRANCH=${GIT_BRANCH} -C packaging rpm" docker run --cpuset-cpus=0-7 -v $(PWD):$(PWD) fedora:$* sh -c "dnf install -y make git && cd ${PWD} && make OS=fedora DIST=$* VERSION=${PKG_VERSION} COMMIT=${GIT_COMMIT} BRANCH=${GIT_BRANCH} -C packaging rpm"

104
README.md
View File

@@ -1,59 +1,67 @@
[<div align="center"><img width="600" src="https://raw.githubusercontent.com/bkryza/clang-uml/add-logo/docs/img/clang-uml-logo.svg?sanitize=true"></div>](https://github.com/bkryza/clang-uml/releases) [<div align="center"><img width="600" src="https://raw.githubusercontent.com/bkryza/clang-uml/master/docs/img/clang-uml-logo.svg?sanitize=true"></div>](https://github.com/bkryza/clang-uml/releases)
# C++ UML diagram generator based on Clang # C++ UML diagram generator based on Clang
[![Build status](https://github.com/bkryza/clang-uml/actions/workflows/build.yml/badge.svg)](https://github.com/bkryza/clang-uml/actions) [![Build status](https://github.com/bkryza/clang-uml/actions/workflows/build.yml/badge.svg)](https://github.com/bkryza/clang-uml/actions)
[![Coverage](https://codecov.io/gh/bkryza/clang-uml/branch/master/graph/badge.svg)](https://codecov.io/gh/bkryza/clang-uml) [![Coverage](https://codecov.io/gh/bkryza/clang-uml/branch/master/graph/badge.svg)](https://codecov.io/gh/bkryza/clang-uml)
[![Version](https://img.shields.io/badge/version-0.3.5-blue)](https://github.com/bkryza/clang-uml/releases) [![Version](https://img.shields.io/badge/version-0.4.2-blue)](https://github.com/bkryza/clang-uml/releases)
[![Version](https://img.shields.io/badge/LLVM-12,13,14,15,16-orange)](https://github.com/bkryza/clang-uml/releases) [![Version](https://img.shields.io/badge/LLVM-12,13,14,15,16,17-orange)](https://github.com/bkryza/clang-uml/releases)
[![Doxygen](https://img.shields.io/badge/Docs-Doxygen-gainsboro)](https://clang-uml.github.io)
`clang-uml` is an automatic C++ to UML class, sequence, package and include diagram generator, driven by `clang-uml` is an automatic C++ to UML class, sequence, package and include diagram generator, driven by
YAML configuration files. The main idea behind the YAML configuration files. The main idea behind the
project is to easily maintain up-to-date diagrams within a code-base or document project is to easily maintain up-to-date diagrams within a code-base or document
legacy code. The configuration file or files for `clang-uml` define the legacy code. The configuration file or files for `clang-uml` define the
type and contents of each generated diagram. types and contents of each generated diagram.
The diagrams can be generated in [PlantUML](https://plantuml.com) and JSON formats. The diagrams can be generated in [PlantUML](https://plantuml.com),
[MermaidJS](https://mermaid.js.org/) and JSON formats.
`clang-uml` currently supports C++ up to version 17 and partial support for C++ 20. `clang-uml` currently supports C++ up to version 17 with partial support for C++ 20.
Full documentation can be found [here](./docs/README.md). Full documentation can be found at [clang-uml.github.io](https://clang-uml.github.io).
To see what `clang-uml` can do, checkout the diagrams generated for unit
test cases [here](./docs/test_cases.md) or examples in
[clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository.
## Features ## Features
Main features supported so far include: Main features supported so far include:
* **Class diagram generation** * **Class diagram generation**
* Class properties and methods including access - [_example_](docs/test_cases/t00003.md) * Class properties and methods including access scope - [_example_](docs/test_cases/t00003.md)
* Class inheritance - [_example_](docs/test_cases/t00002.md) * Class inheritance - [_example_](docs/test_cases/t00002.md)
* Other class relationships including associations, aggregations, dependencies and friendship - [_example_](docs/test_cases/t00006.md) * Other class relationships including associations, aggregations, dependencies and friendship - [_example_](docs/test_cases/t00006.md)
* Template instantiation relationships - [_example_](docs/test_cases/t00014.md) * Template instantiation relationships - [_example_](docs/test_cases/t00014.md)
* Template specialization and instantiation based on deduced context - [_example_](docs/test_cases/t00062.md) * Template specialization and instantiation based on deduced context - [_example_](docs/test_cases/t00062.md)
* Relationship inference from C++ containers and smart pointers - [_example_](docs/test_cases/t00007.md) * Relationship inference from C++ containers and smart pointers - [_example_](docs/test_cases/t00007.md)
* Diagram content filtering based on namespaces, elements and relationships - [_example_](docs/test_cases/t00040.md) * Diagram content filtering based on namespaces, elements and relationships - [_example_](docs/test_cases/t00040.md)
* Optional package generation from namespaces - [_example_](docs/test_cases/t00036.md) * Optional package generation from namespaces (only PlantUML) - [_example_](docs/test_cases/t00036.md)
* Interactive links to online code to classes, methods and class fields in SVG diagrams * Optional package generation from subdirectories (only PlantUML) - [_example_](docs/test_cases/t00065.md)
* Support for plain C99/C11 code (struct and units relationships) - [_example_](docs/test_cases/t00057.md) * Optional package generation from C++20 modules (only PlantUML) - [_example_](docs/test_cases/t00071.md)
* Interactive links to online code or docs for classes, methods and class fields in SVG diagrams - [_example_](https://raw.githubusercontent.com/bkryza/clang-uml/master/docs/test_cases/t00002_class.svg)
* Support for plain C99/C11 code (struct, units and their relationships) - [_example_](docs/test_cases/t00057.md)
* C++20 concept constraints - [_example_](docs/test_cases/t00059.md) * C++20 concept constraints - [_example_](docs/test_cases/t00059.md)
* C++20 coroutines - [_example_](docs/test_cases/t00069.md)
* Diagram content filtering based on C++20 modules - [_example_](docs/test_cases/t00070.md)
* **Sequence diagram generation** * **Sequence diagram generation**
* Generation of sequence diagram from specific method or function - [_example_](docs/test_cases/t00002.md) * Generation of sequence diagram from specific method or function - [_example_](docs/test_cases/t20001.md)
* Generation of loop and conditional statements - [_example_](docs/test_cases/t20021.md) * Generation of loop and conditional statements - [_example_](docs/test_cases/t20021.md)
* Generation of switch statements - [_example_](docs/test_cases/t20024.md) * Generation of switch statements - [_example_](docs/test_cases/t20024.md)
* Generation of try/catch blocks - [_example_](docs/test_cases/t20023.md) * Generation of try/catch blocks - [_example_](docs/test_cases/t20023.md)
* Handling of template code including constexpr conditionals - [_example_](docs/test_cases/t20018.md) * Handling of template code including constexpr conditionals - [_example_](docs/test_cases/t20018.md)
* Handling of lambda expressions - [_example_](docs/test_cases/t20012.md) * Handling of lambda expressions - [_example_](docs/test_cases/t20012.md)
* Interactive links to online code to classes and call expressions * Interactive links to online code to classes and call expressions - [_example_](https://raw.githubusercontent.com/bkryza/clang-uml/master/docs/test_cases/t20021_sequence.svg)
* **Package diagram generation** * **Package diagram generation**
* Generation of package diagram based on C++ namespaces - [_example_](docs/test_cases/t30001.md) * Generation of package diagram based on C++ namespaces - [_example_](docs/test_cases/t30001.md)
* Generation of package diagram based on subdirectories - [_example_](docs/test_cases/t30010.md)
* Generation of package diagram based on C++20 modules - [_example_](docs/test_cases/t30014.md)
* Dependencies between packages based on symbols used in the code - [_example_](docs/test_cases/t30002.md) * Dependencies between packages based on symbols used in the code - [_example_](docs/test_cases/t30002.md)
* Interactive links to online code to packages * Interactive links to online code to packages - [_example_](https://raw.githubusercontent.com/bkryza/clang-uml/master/docs/test_cases/t30002_package.svg)
* **Include graph diagram generation** * **Include graph diagram generation**
* Show include graph for selected files - [_example_](docs/test_cases/t40001.md) * Show include graph for selected files - [_example_](docs/test_cases/t40001.md)
To see what `clang-uml` can do so far, checkout the diagrams generated for unit More comprehensive documentation can be at [clang-uml.github.io](https://clang-uml.github.io).
test cases [here](./docs/test_cases.md) and examples in
[clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository.
More comprehensive documentation can be found [here](./docs/README.md).
## Installation ## Installation
@@ -76,11 +84,12 @@ Nowadays, this file can be generated rather easily using multiple methods:
* For Boost-based projects * For Boost-based projects
try [commands_to_compilation_database](https://github.com/tee3/commands_to_compilation_database) try [commands_to_compilation_database](https://github.com/tee3/commands_to_compilation_database)
* For SCons, invoke `compilation_db` tool (requires SCons > 4.0.0) * For SCons, invoke `compilation_db` tool (requires SCons > 4.0.0)
* For Bazel, try [bazel-compile-commands-extractor](https://github.com/hedronvision/bazel-compile-commands-extractor)
* For Microsoft Visual Studio projects try [Clang Power Tools](https://www.clangpowertools.com) * For Microsoft Visual Studio projects try [Clang Power Tools](https://www.clangpowertools.com)
### Invocation ### Invocation
By default, `config-uml` will assume that the configuration file `.clang-uml` By default, `clang-uml` will assume that the configuration file `.clang-uml`
and compilation database `compile_commands.json` files are in the and compilation database `compile_commands.json` files are in the
current directory, so if they are in the top level directory of a project, current directory, so if they are in the top level directory of a project,
simply run: simply run:
@@ -105,14 +114,13 @@ which should be generated by `clang-uml`. Basic example is as follows:
```yaml ```yaml
compilation_database_dir: . compilation_database_dir: .
output_directory: puml output_directory: diagrams
diagrams: diagrams:
myproject_class: myproject_class:
type: class type: class
glob: glob:
- src/*.cc - src/*.cc
using_namespace: using_namespace: myproject
- myproject
include: include:
namespaces: namespaces:
- myproject - myproject
@@ -164,6 +172,7 @@ using PairPairBA = std::pair<std::pair<B, A<long, T>>, long>;
template <class T> using VectorPtr = std::unique_ptr<std::vector<T>>; template <class T> using VectorPtr = std::unique_ptr<std::vector<T>>;
template <class T> using APtr = std::unique_ptr<A<double, T>>; template <class T> using APtr = std::unique_ptr<A<double, T>>;
template <class T> using ASharedPtr = std::shared_ptr<A<double, T>>; template <class T> using ASharedPtr = std::shared_ptr<A<double, T>>;
template <class T, class U> template <class T, class U>
using AAPtr = std::unique_ptr<std::pair<A<double, T>, A<long, U>>>; using AAPtr = std::unique_ptr<std::pair<A<double, T>, A<long, U>>>;
@@ -180,7 +189,7 @@ using ACharString = AString<char>;
using AStringString = AString<std::string>; using AStringString = AString<std::string>;
using BStringString = AStringString; using BStringString = AStringString;
class R { template <typename T> class R {
using AWCharString = AString<wchar_t>; using AWCharString = AString<wchar_t>;
PairPairBA<bool> bapair; PairPairBA<bool> bapair;
@@ -193,6 +202,7 @@ class R {
AIntString intstring; AIntString intstring;
AStringString stringstring; AStringString stringstring;
BStringString bstringstring; BStringString bstringstring;
AAPtr<T, float> atfloat;
protected: protected:
BVector bs; BVector bs;
@@ -206,7 +216,7 @@ public:
}; };
``` ```
generates the following diagram (via PlantUML): results in the following diagram (via PlantUML):
![class_diagram_example](docs/test_cases/t00014_class.svg) ![class_diagram_example](docs/test_cases/t00014_class.svg)
@@ -234,7 +244,10 @@ template <typename T> class Encoder : public T {
public: public:
bool send(std::string &&msg) bool send(std::string &&msg)
{ {
return T::send(std::move(encode(std::move(msg)))); return T::send(std::move(
// Encode the message using Base64 encoding and pass it to the next
// layer
encode(std::move(msg))));
} }
protected: protected:
@@ -249,6 +262,7 @@ public:
int retryCount = 5; int retryCount = 5;
// Repeat until send() succeeds or retry count is exceeded
while (retryCount--) { while (retryCount--) {
if (T::send(buffer)) if (T::send(buffer))
return true; return true;
@@ -278,8 +292,10 @@ int tmain()
{ {
auto pool = std::make_shared<Encoder<Retrier<ConnectionPool>>>(); auto pool = std::make_shared<Encoder<Retrier<ConnectionPool>>>();
// Establish connection to the remote server synchronously
pool->connect(); pool->connect();
// Repeat for each line in the input stream
for (std::string line; std::getline(std::cin, line);) { for (std::string line; std::getline(std::cin, line);) {
if (!pool->send(std::move(line))) if (!pool->send(std::move(line)))
break; break;
@@ -291,7 +307,7 @@ int tmain()
} }
``` ```
generates the following diagram (via PlantUML): results in the following diagram (via PlantUML):
![sequence_diagram_example](docs/test_cases/t20029_sequence.svg) ![sequence_diagram_example](docs/test_cases/t20029_sequence.svg)
@@ -336,7 +352,7 @@ class B : public ns1::ns2::Anon {
} }
``` ```
generates the following diagram (via PlantUML): results in the following diagram (via PlantUML):
![package_diagram_example](docs/test_cases/t30003_package.svg) ![package_diagram_example](docs/test_cases/t30003_package.svg)
@@ -360,23 +376,23 @@ tests/t40001
``` ```
generates the following diagram (via PlantUML) based on include directives in the code: results in the following diagram (via PlantUML) based on include directives in the code:
![package_diagram_example](docs/test_cases/t40001_include.svg) ![package_diagram_example](docs/test_cases/t40001_include.svg)
### Default mappings ### Default mappings
| UML | PlantUML | | UML | PlantUML | MermaidJS |
| ---- | --- | | ---- | --- |------------------------------------------------|
| Inheritance | ![extension](docs/img/puml_inheritance.png) | | Inheritance | ![extension](docs/img/puml_inheritance.png) | ![extension](docs/img/mermaid_inheritance.png) |
| Association | ![association](docs/img/puml_association.png) | | Association | ![association](docs/img/puml_association.png) | ![association](docs/img/mermaid_association.png) |
| Dependency | ![dependency](docs/img/puml_dependency.png) | | Dependency | ![dependency](docs/img/puml_dependency.png) | ![dependency](docs/img/mermaid_dependency.png) |
| Aggregation | ![aggregation](docs/img/puml_aggregation.png) | | Aggregation | ![aggregation](docs/img/puml_aggregation.png) | ![aggregation](docs/img/mermaid_aggregation.png) |
| Composition | ![composition](docs/img/puml_composition.png) | | Composition | ![composition](docs/img/puml_composition.png) | ![composition](docs/img/mermaid_composition.png) |
| Template specialization/instantiation | ![specialization](docs/img/puml_instantiation.png) | | Template specialization/instantiation | ![specialization](docs/img/puml_instantiation.png) | ![specialization](docs/img/mermaid_instantiation.png) |
| Nesting (inner class/enum) | ![nesting](docs/img/puml_nested.png) | | Nesting (inner class/enum) | ![nesting](docs/img/puml_nested.png) | ![nesting](docs/img/mermaid_nested.png) |
| Include (local) | ![association](docs/img/puml_association.png) | | Include (local) | ![association](docs/img/puml_association.png) | ![association](docs/img/mermaid_association.png) |
| Include (system) | ![dependency](docs/img/puml_dependency.png) | | Include (system) | ![dependency](docs/img/puml_dependency.png) | ![dependency](docs/img/mermaid_dependency.png) |
### Diagram content filtering ### Diagram content filtering
@@ -429,12 +445,18 @@ This project relies on the following great tools:
* [Clang LibTooling](https://clang.llvm.org/docs/LibTooling.html) - a C++ library for creating tools based on Clang * [Clang LibTooling](https://clang.llvm.org/docs/LibTooling.html) - a C++ library for creating tools based on Clang
* [PlantUML](https://plantuml.com/) - language and diagram for generating UML diagrams * [PlantUML](https://plantuml.com/) - language and diagram for generating UML diagrams
* [MermaidJS](https://mermaid.js.org/) - JavaScript based diagramming and charting tool
* [Catch2](https://github.com/catchorg/Catch2) - C++ unit test framework * [Catch2](https://github.com/catchorg/Catch2) - C++ unit test framework
* [glob](https://github.com/p-ranav/glob) - Unix style path expansion for C++ * [glob](https://github.com/p-ranav/glob) - Unix style path expansion for C++
* [indicators](https://github.com/p-ranav/indicators) - Activity indicators for modern C++
* [CLI11](https://github.com/CLIUtils/CLI11) - command line parser for C++ * [CLI11](https://github.com/CLIUtils/CLI11) - command line parser for C++
* [inja](https://github.com/pantor/inja) - a template engine for modern C++ * [inja](https://github.com/pantor/inja) - a template engine for modern C++
* [backward-cpp](https://github.com/bombela/backward-cpp) - stack trace pretty printer for C++ * [backward-cpp](https://github.com/bombela/backward-cpp) - stack trace pretty printer for C++
* [yaml-cpp](https://github.com/jbeder/yaml-cpp) - YAML parser library for C++ * [yaml-cpp](https://github.com/jbeder/yaml-cpp) - YAML parser library for C++
* [spdlog](https://github.com/gabime/spdlog) - Fast C++ logging library
* [Doxygen](https://www.doxygen.nl/) - C++ documentation generator
* [Doxygen Awesome](https://jothepro.github.io/doxygen-awesome-css) - Doxygen CSS style
* [miroir](https://gitlab.com/madyanov/miroir) - YAML schema validation library for C++
## Contributing ## Contributing

View File

@@ -1,6 +1,6 @@
param ($Prefix="C:\clang-uml", $BuildType="Release") param ($Prefix="C:\clang-uml", $BuildType="Release")
cmake -S . -B $BuildType -DCMAKE_PREFIX_PATH="$Prefix" -Thost=x64 cmake -S . -B $BuildType -DCMAKE_PREFIX_PATH="$Prefix" -DENABLE_CXX_MODULES_TEST_CASES=OFF -Thost=x64
cmake --build $BuildType --config $BuildType cmake --build $BuildType --config $BuildType
# Create compile commands in Visual Studio # Create compile commands in Visual Studio

View File

@@ -13,9 +13,9 @@ function(setup_git_version)
endif(GIT_EXECUTABLE) endif(GIT_EXECUTABLE)
endif(NOT DEFINED GIT_VERSION) endif(NOT DEFINED GIT_VERSION)
if(NOT DEFINED GIT_VERSION) if(NOT DEFINED GIT_VERSION OR "${GIT_VERSION}" STREQUAL "")
set(GIT_VERSION "0.0.0-unknown") set(GIT_VERSION "0.0.0-unknown")
endif(NOT DEFINED GIT_VERSION) endif(NOT DEFINED GIT_VERSION OR "${GIT_VERSION}" STREQUAL "")
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.(.+)" string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.(.+)"
GIT_VERSION_MATCH ${GIT_VERSION}) GIT_VERSION_MATCH ${GIT_VERSION})
@@ -24,4 +24,4 @@ function(setup_git_version)
set(GIT_VERSION_PATCH ${CMAKE_MATCH_3} PARENT_SCOPE) set(GIT_VERSION_PATCH ${CMAKE_MATCH_3} PARENT_SCOPE)
set(GIT_VERSION ${GIT_VERSION} PARENT_SCOPE) set(GIT_VERSION ${GIT_VERSION} PARENT_SCOPE)
endfunction() endfunction()

93
cmake/LLVMSetup.cmake Normal file
View File

@@ -0,0 +1,93 @@
message(STATUS "Checking for LLVM and Clang...")
# If user provided a path to llvm-config executable use it to detect
# LLVM Version and appropriate CMake module path
if(NOT "${LLVM_CONFIG_PATH}" STREQUAL "")
# Get LLVM prefix
message(STATUS "Using llvm-config from ${LLVM_CONFIG_PATH}")
set(LIBCLANG_LLVM_CONFIG_EXECUTABLE ${LLVM_CONFIG_PATH})
set(LLVM_CONFIG_BINARY ${LLVM_CONFIG_PATH})
execute_process(COMMAND ${LLVM_CONFIG_PATH} --prefix
OUTPUT_VARIABLE LLVM_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
set(LLVM_CMAKE_DIR "${LLVM_PREFIX}/lib/cmake/llvm")
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR})
# Get LLVM version
execute_process(COMMAND ${LLVM_CONFIG_PATH} --version
OUTPUT_VARIABLE LLVM_VERSION_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.(.+)"
GIT_VERSION_MATCH ${LLVM_VERSION_STR})
set(LLVM_VERSION ${CMAKE_MATCH_1})
endif()
find_package(LLVM ${LLVM_VERSION} CONFIG REQUIRED)
list(APPEND CMAKE_MODULE_PATH ${LLVM_CMAKE_DIR})
include(AddLLVM)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake from: ${LLVM_CMAKE_DIR}")
message(STATUS "LLVM library dir: ${LLVM_LIBRARY_DIR}")
if(MSVC)
# LLVM_BUILD_LLVM_DYLIB is not available on Windows
set(LINK_LLVM_SHARED NO)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif(MSVC)
if(LINK_LLVM_SHARED)
set(LIBTOOLING_LIBS clang-cpp LLVM)
else(LINK_LLVM_SHARED)
set(LIBTOOLING_LIBS
clangLex
clangFrontend
clangSerialization
clangDriver
clangParse
clangSema
clangSupport
clangAnalysis
clangAST
clangBasic
clangEdit
clangLex
clangTooling
LLVMipo
LLVMScalarOpts
LLVMInstCombine
LLVMTransformUtils
LLVMAnalysis
LLVMTarget
LLVMOption
LLVMMCParser
LLVMMC
LLVMObject
LLVMBitReader
LLVMCore
LLVMSupport)
if(MSVC)
if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport)
else()
list(APPEND LIBTOOLING_LIBS
LLVMWindowsDriver
LLVMWindowsManifest)
endif()
if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "17.0")
list(APPEND LIBTOOLING_LIBS clangASTMatchers)
endif()
endif(MSVC)
endif(LINK_LLVM_SHARED)
if("${LIBTOOLING_LIBS}" STREQUAL "")
message(FATAL_ERROR "Failed to find LibTooling libraries!")
else()
message(STATUS "Found LibTooling libraries: ${LIBTOOLING_LIBS}")
endif()
if(APPLE OR (LLVM_VERSION_MAJOR GREATER_EQUAL 16))
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
endif()

View File

@@ -19,6 +19,7 @@ UPDATE_TOC := markdown-toc --bullets "*" -i
.PHONY: toc .PHONY: toc
toc: toc:
$(UPDATE_TOC) architecture.md
$(UPDATE_TOC) class_diagrams.md $(UPDATE_TOC) class_diagrams.md
$(UPDATE_TOC) comment_decorators.md $(UPDATE_TOC) comment_decorators.md
$(UPDATE_TOC) common_options.md $(UPDATE_TOC) common_options.md

View File

@@ -1,8 +1,29 @@
@mainpage clang-uml
# Documentation # Documentation
`clang-uml` is an automatic C++ to UML class, sequence, package and include diagram generator, driven by
YAML configuration files. The main idea behind the
project is to easily maintain up-to-date diagrams within a code-base or document
legacy code. The configuration file or files for `clang-uml` define the
types and contents of each generated diagram.
The diagrams can be generated in [PlantUML](https://plantuml.com),
[MermaidJS](https://mermaid.js.org/) and JSON formats.
Example sequence diagram generated using `clang-uml` from [this code](https://github.com/bkryza/clang-uml/blob/master/tests/t20029/t20029.cc):
![Sample sequence diagram](test_cases/t20029_sequence.svg)
`clang-uml` currently supports C++ up to version 17 with partial support for C++ 20.
To see what `clang-uml` can do, checkout the diagrams generated for unit
test cases [here](./test_cases.md) or examples in
[clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository.
These pages provide both user and developer documentation.
* [Quick start](./quick_start.md) * [Quick start](./quick_start.md)
* [Installation](./installation.md) * [Installation](./installation.md)
* Generating diagrams * **Generating diagrams**
* [Common options](./common_options.md) * [Common options](./common_options.md)
* [Generator types](./generator_types.md) * [Generator types](./generator_types.md)
* [Class diagrams](./class_diagrams.md) * [Class diagrams](./class_diagrams.md)
@@ -18,3 +39,8 @@
* [Doxygen integration](./doxygen_integration.md) * [Doxygen integration](./doxygen_integration.md)
* [Test cases documentation](./test_cases.md) * [Test cases documentation](./test_cases.md)
* [Troubleshooting](./troubleshooting.md) * [Troubleshooting](./troubleshooting.md)
* [Changelog](./changelog.md)
* [License](./license.md)
* **Development**
* [Architecture](./architecture.md)
* [Contributing](./contributing.md)

198
docs/architecture.md Normal file
View File

@@ -0,0 +1,198 @@
# Architecture
<!-- toc -->
* [Overview](#overview)
* [Configuration model](#configuration-model)
* [Diagram model](#diagram-model)
* [Common model](#common-model)
* [Diagram filters](#diagram-filters)
* [Translation unit visitors](#translation-unit-visitors)
* [Diagram generators](#diagram-generators)
* [Command line handler](#command-line-handler)
* [Tests](#tests)
* [Unit tests](#unit-tests)
* [Test cases](#test-cases)
* [Real code tests](#real-code-tests)
<!-- tocstop -->
This section presents general architecture and components of `clang-uml`.
> All diagrams below are generated by `clang-uml` and updated automatically.
## Overview
`clang-uml` is written in C++17 and
uses [Clang LibTooling API](https://releases.llvm.org/16.0.0/tools/clang/docs/LibTooling.html)
to traverse
the AST (Abstract Syntax Tree) of the source code and extract any information
relevant for a specific diagram.
The code is divided into several packages (namespaces), the main of them are:
- [`clanguml::config`](./namespaceclanguml_1_1config.html) - configuration
handling
- [`clanguml::common`](./namespaceclanguml_1_1common.html) - common interfaces
- [`clanguml::class_diagram`](./namespaceclanguml_1_1class__diagram.html) -
specializations for class diagrams
- [`clanguml::sequence_diagram`](./namespaceclanguml_1_1sequence__diagram.html) -
specializations for sequence diagrams
- [`clanguml::include_diagram`](./namespaceclanguml_1_1include__diagram.html) -
specializations for include diagrams
- [`clanguml::package_diagram`](./namespaceclanguml_1_1package__diagram.html) -
specializations for package diagrams
![clang-uml packages](./architecture_package.svg)
## Configuration model
The configuration model consists of classes representing the configuration
specified in the YAML configuration files.
Depending on the option, it can either:
- be specified only at the top level of the configuration file
- only in the specific diagram configuration
- either of the above
The first group of options are stored in
the [`config::config`](structclanguml_1_1config_1_1config.html) class.
The second group is stored in a specific diagram config subclass, e.g.
[`config::sequence_diagram`](structclanguml_1_1config_1_1sequence__diagram.html)
The options in the last group are modeled in the
[`config::inheritable_diagram_options`](./structclanguml_1_1config_1_1inheritable__diagram__options.html).
![configuration model](./config_class.svg)
The YAML configuration file is parsed
using [yaml-cpp](https://github.com/jbeder/yaml-cpp) library:
![configuration load sequence](./load_config_sequence.svg)
For each possible option type, there must an implementation of a
YAML decoder - e.g.
[`YAML::convert<filter>`](./structYAML_1_1convert_3_01filter_01_4.html)
(for converting YAML nodes to configuration model classes)
and a YAML emitter - e.g.
[`operator<<`](./group__yaml__emitters.html#ga4c8bc075684b08daa379aef609bb6297)
(for generating YAML from configuration model classes).
## Diagram model
The diagram model namespace is divided into the [`common`](#common-model) model
namespace and 1 namespace for each supported diagram type.
### Common model
The [common diagram model namespace](./namespaceclanguml_1_1common_1_1model.html),
provides a set of classes representing typical UML and C++ concepts such as
diagram elements, packages, templates, and others which are shared by more than
1 diagram type.
![clang-uml packages](./common_model_class.svg)
The diagram elements are composed into a hierarchy spanning all major
namespaces,
depending on whether the element is specific for a single diagram type (
e.g. [`participant`](./structclanguml_1_1sequence__diagram_1_1model_1_1participant.html)),
or whether it's common for several diagram types (
e.g. [`package`](./classclanguml_1_1common_1_1model_1_1package.html)).
### Diagram filters
In order to ease the generation of diagrams, `clang-uml` has a (very) simple
intermediate UML model, which covers only the features necessary for
generation of the supported diagram types. The model can be extended if
necessary to add new features.
![diagram filter context](./diagram_filter_context_class.svg)
## Translation unit visitors
The first stage in the diagram generation involves traversing the AST of
each translation unit from the `compile_commands.json` compilation database,
which matched at least one pattern specified in the `glob` pattern of the
configuration file.
Each visitor is implemented in a subclass of
[`translation_unit_visitor`](./classclanguml_1_1common_1_1visitor_1_1translation__unit__visitor.html),
and must also implement relevant methods from Clang's
[RecursiveASTVisitor](https://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.html).
![AST visitors](./architecture_visitors_class.svg)
The output of the `translation_unit_visitor` for each diagram type is an
intermediate diagram model, which is then passed to the relevant diagram
generator.
## Diagram generators
Diagram generators convert the `clang-uml`'s internal UML model into actual
diagram in one of the supported formats: PlantUML, MermaidJS and JSON.
Each diagram generator extends a common interface appropriate for the
selected output format, i.e.:
- [PlantUML](classclanguml_1_1common_1_1generators_1_1plantuml_1_1generator.html)
- [MermaidJS](classclanguml_1_1common_1_1generators_1_1mermaid_1_1generator.html)
- [JSON](classclanguml_1_1common_1_1generators_1_1json_1_1generator.html)
and renders the output to a file. For each diagram type there is a separate
generator for each supported output format.
## Command line handler
The [cli_handler](classclanguml_1_1cli_1_1cli__handler.html) is a command line
handler class is a wrapper around [CLI11](https://github.com/CLIUtils/CLI11),
and implements handlers for various actions, validates command line parameters
and reports errors.
## Tests
### Unit tests
Basic set of units tests are stored in
[tests/test_*.cc](https://github.com/bkryza/clang-uml/tree/master/tests)
test files. The unit tests do not aim to cover the entire codebase, only
specific algorithms or methods, which should behave as expected and if their
errors can be difficult to diagnose when running the test cases on C++ code.
### Test cases
These tests are the main tests of `clang-uml`. Each test case tests one or
more feature of a specific diagram type. Each of them has a separated directory
in the `tests` directory and its own `.clang-uml` with diagram configuration
as well as a `test_case.h` file which contains the tests assertions.
Any other sources in that directory are compiled and then used to generate the
diagrams, whose contents should be then verified within `test_case.h`
for correctness. All the sources should be wrapped within a namespace:
`clanguml::`
These test directories are numbered in consecutive numbers using the following
convention:
- Start with a letter `t`
- The first digit of the number is the diagram type:
- `0` - class diagram
- `2` - sequence diagram
- `3` - package diagram
- `4` - include diagram
- `9` - other test cases
- The rest of the name is the consecutive number of the test case
Each test case is also referenced in
[test_cases.yaml](https://github.com/bkryza/clang-uml/blob/master/tests/test_cases.yaml)
where it has assigned a title. That file is used to generate the [test cases
documentation page](./md_docs_2test__cases.html).
### Real code tests
Each release is tested on a set of open-source C++ projects, to be sure that
at least the new version does not crash or introduce some obvious regressions.
The tests are stored in a separate
repository: [clang-uml-examples](https://github.com/bkryza/clang-uml-examples).

View File

@@ -7,7 +7,10 @@
* [Relationships](#relationships) * [Relationships](#relationships)
* [Relationships to classes in containers or smart pointers](#relationships-to-classes-in-containers-or-smart-pointers) * [Relationships to classes in containers or smart pointers](#relationships-to-classes-in-containers-or-smart-pointers)
* [Inheritance diagrams](#inheritance-diagrams) * [Inheritance diagrams](#inheritance-diagrams)
* [Namespaces as packages](#namespaces-as-packages) * [Generating UML packages in the diagram](#generating-uml-packages-in-the-diagram)
* [Namespace packages](#namespace-packages)
* [Directory packages](#directory-packages)
* [Module packages](#module-packages)
* [Class context diagram](#class-context-diagram) * [Class context diagram](#class-context-diagram)
* [Disabling dependency relationships](#disabling-dependency-relationships) * [Disabling dependency relationships](#disabling-dependency-relationships)
@@ -18,7 +21,7 @@ The minimal config required to generate a class diagram is presented below:
# Path to the directory where `compile_commands.json` can be found # Path to the directory where `compile_commands.json` can be found
compilation_database_dir: _build compilation_database_dir: _build
# Output directory for the diagrams # Output directory for the diagrams
output_directory: puml output_directory: diagrams
# Diagrams definitions # Diagrams definitions
diagrams: diagrams:
# Diagram name # Diagram name
@@ -29,8 +32,7 @@ diagrams:
glob: glob:
- src/*.cc - src/*.cc
# Render all names in the diagram relative to specific namespace # Render all names in the diagram relative to specific namespace
using_namespace: using_namespace: ns1
- ns1
# Include only classes from specific namespace # Include only classes from specific namespace
include: include:
namespaces: namespaces:
@@ -38,7 +40,8 @@ diagrams:
``` ```
## Classes and their properties ## Classes and their properties
The basic class diagram generated by `clang-uml` and rendered using PlantUML looks like this: The basic class diagram generated by `clang-uml` and rendered using PlantUML
looks like this:
![extension](test_cases/t00003_class.svg) ![extension](test_cases/t00003_class.svg)
@@ -46,12 +49,15 @@ Member types and method return types are rendered at the end after `:` sign.
Static methods and members are underlined. Static methods and members are underlined.
In case method argument lists are too long and not required for diagram readability, they can be suppressed completely In case method argument lists are too long and not required for diagram
or abbreviated by setting `generate_method_arguments` option to either `none`, `abbreviated` or `full` (default). readability, they can be suppressed completely or abbreviated by setting
`generate_method_arguments` option to either `none`, `abbreviated` or `full`
(default).
### Excluding private or protected members from the diagram ### Excluding private or protected members from the diagram
In order to only include public members in the class diagrams, we can add the following inclusion filters: In order to only include public members in the class diagrams, we can add the
following inclusion filters:
```yaml ```yaml
include: include:
access: access:
@@ -69,30 +75,32 @@ To render only classes without any properties an exclusion filter can be added:
## Relationships ## Relationships
The following table presents the PlantUML arrows representing each relationship in the class diagrams. The following table presents the PlantUML and MermaidJS arrows representing each
type of relationship generated in the class diagrams.
| UML | PlantUML | | UML | PlantUML | MermaidJS |
| ---- | --- | | ---- | --- |--------------------------------------------|
| Inheritance | ![extension](img/puml_inheritance.png) | | Inheritance | ![extension](img/puml_inheritance.png) | ![extension](img/mermaid_inheritance.png) |
| Association | ![association](img/puml_association.png) | | Association | ![association](img/puml_association.png) | ![extension](img/mermaid_association.png) |
| Dependency | ![dependency](img/puml_dependency.png) | | Dependency | ![dependency](img/puml_dependency.png) | ![extension](img/mermaid_dependency.png) |
| Aggregation | ![aggregation](img/puml_aggregation.png) | | Aggregation | ![aggregation](img/puml_aggregation.png) | ![extension](img/mermaid_aggregation.png) |
| Composition | ![composition](img/puml_composition.png) | | Composition | ![composition](img/puml_composition.png) | ![extension](img/mermaid_composition.png) |
| Template specialization/instantiation | ![specialization](img/puml_instantiation.png) | | Template specialization/instantiation | ![specialization](img/puml_instantiation.png) | ![extension](img/mermaid_instantiation.png) |
| Nesting (inner class/enum) | ![nesting](img/puml_nested.png) | | Nesting (inner class/enum) | ![nesting](img/puml_nested.png) | ![extension](img/mermaid_nested.png) |
By default, a member from which a relationship has been added to the diagram between 2 classes will also be rendered By default, a member from which a relationship has been added to the diagram
inside the class. This behaviour can be however disabled by adding the following option to the between 2 classes will also be rendered inside the class. This behaviour can be
diagram definition: however disabled by adding the following option to the diagram definition:
```yaml ```yaml
include_relations_also_as_members: false include_relations_also_as_members: false
``` ```
### Relationships to classes in containers or smart pointers ### Relationships to classes in containers or smart pointers
`clang-uml` will automatically detect class members as well as method arguments, which reference or own `clang-uml` will automatically detect class members as well as method arguments,
values of types relevant for a given diagram but wrapped in smart pointers or containers and still generate which reference or own values of types relevant for a given diagram but wrapped
relationship between these classes, for instance the following code: in smart pointers or containers and still generate relationship between these
classes, for instance the following code:
```cpp ```cpp
class A { }; class A { };
@@ -109,15 +117,15 @@ public:
}; };
``` ```
generates the following diagram: results in the following diagram:
![extension](test_cases/t00007_class.svg) ![extension](test_cases/t00007_class.svg)
## Inheritance diagrams ## Inheritance diagrams
A common type of class diagram is an inheritance diagram, where only subclasses of a specific base class are A common type of class diagram is an inheritance diagram, where only subclasses
included and only the inheritance relationships are rendered. This can be easily achieved in `clang-uml` through of a specific base class are included and only the inheritance relationships are
inclusion filters: rendered. This can be easily achieved in `clang-uml` through inclusion filters:
```yaml ```yaml
include: include:
subclasses: subclasses:
@@ -126,10 +134,20 @@ inclusion filters:
- inheritance - inheritance
``` ```
## Namespaces as packages ## Generating UML packages in the diagram
By default, `clang-uml` will render all element names including a namespace (relative to `using_namespace` property), `clang-uml` supports 3 sources for generating UML packages in a diagram:
e.g. `ns1::ns2::MyClass`. * `namespace` - default
In order to generate packages in the diagram for each namespace instead, the following option must be set to `true`: * `directory` - based on relative directory paths within the project source tree
* `module` - based on C++20 modules
Currently, a specific diagram can only contain packages of one of the above
types.
### Namespace packages
By default, `clang-uml` will render all element names including a namespace
(relative to `using_namespace` property), e.g. `ns1::ns2::MyClass`.
In order to generate packages in the diagram for each namespace instead, the
following option must be set to `true`:
```yaml ```yaml
generate_packages: true generate_packages: true
@@ -137,11 +155,56 @@ generate_packages: true
which results in the following diagram: which results in the following diagram:
![extension](test_cases/t00036_class.svg) ![t00036_class](test_cases/t00036_class.svg)
### Directory packages
In case the code base is structured based on subdirectory instead of namespaces
(or this is a C project, where namespaces are not available), packages can be
generated based on the location of a given declaration in the filesystem tree,
by adding also the following option:
```yaml
package_type: directory
```
which results in the following diagram:
![t00065_class](test_cases/t00065_class.svg)
> In this case make sure that the root path of the configuration file is
> properly configured for your project, if necessary add `relative_to` option to
> denote the root path against which all relative paths in the config file are
> calculated.
### Module packages
Finally, to generate UML packages in the diagram based on C++20 modules, use
the following option:
```yaml
package_type: module
```
which can produce the following diagram:
![t00071_class](test_cases/t00071_class.svg)
Packages from modules support internal module partitions, which are represented
by `:` prefix in the name as well as conventional submodules separated by `.`.
Module paths can be rendered relative to a specific parent module, to enable
this add the following option:
```yaml
using_module: mod1.mod2
```
which will render modules relative to `mod1.mod2`.
For examples of this feature check out the following test cases documentation:
[t00071](test_cases/t00072.md) and [t00072](test_cases/t00072.md).
## Class context diagram ## Class context diagram
Sometimes it's helpful to generate a class diagram depicting only direct relationships of a given class, e.g. Sometimes it's helpful to generate a class diagram depicting only direct
within the classes' documentation page, this can be easily achieved using `context` inclusion filter: relationships of a given class, e.g. within the classes' documentation page,
this can be easily achieved using `context` inclusion filter:
```yaml ```yaml
include: include:
@@ -149,22 +212,54 @@ within the classes' documentation page, this can be easily achieved using `conte
- ns1::MyClass - ns1::MyClass
``` ```
By default, the diagram will include only elements in direct relationship to
`ns1::MyClass`, but an addition option called `radius` can be added to this
filter, which will extend the context to elements related to `ns1::MyClass`
through at most N relationships, e.g:
```yaml
include:
context:
- match:
radius: 3
pattern: ns1::MyClass
```
## Disabling dependency relationships ## Disabling dependency relationships
In many cases, dependency relationships between classes can clutter the diagram too much, for instance consider this Dependency relationships are inferred whenever a class uses another class, thus
diagram: often dependency relationship will be rendered in addition to other
relationships such as association or inheritance. By default, `clang-uml` will
remove these redundant dependency relationships, however if it is necessary to
retain them it can be done using the following option:
![extension](test_cases/t00019_class.svg) ```yaml
skip_redundant_dependencies: false
```
where the dependency relationships do not bring much information into the diagram. In such cases it might In many cases, dependency relationships between classes can clutter the diagram
be useful to disable dependency relationships for this diagram completely using the following exclusion filter: too much. In such cases, it might be useful to disable dependency relationships
completely for this diagram using the following exclusion filter:
```yaml ```yaml
exclude: exclude:
relationships: relationships:
- dependency - dependency
``` ```
Dependency relationships are inferred whenever a class uses another class, thus often dependency relationship It is also possible to only disable dependency relationships generated from
will be rendered in addition to other relationships such as association or inheritance. In the future there might template arguments to other templates. By default, the following code:
be an option to remove the redundant dependency relationships from the diagram automatically.
```cpp
class A {};
class B {
std::vector<A> a;
};
```
will generate a dependency from `B` to `A` in addition to aggregation
relationship. This can be disabled by specifying the following option:
```yaml
generate_template_argument_dependencies: false
```

View File

@@ -2,10 +2,10 @@
<!-- toc --> <!-- toc -->
* [`note`](#note) * ['note'](#note)
* [`skip` and `skiprelationship`](#skip-and-skiprelationship) * ['skip' and 'skiprelationship'](#skip-and-skiprelationship)
* [`composition`, `association` and `aggregation`](#composition-association-and-aggregation) * ['composition', 'association' and 'aggregation'](#composition-association-and-aggregation)
* [`style`](#style) * ['style'](#style)
<!-- tocstop --> <!-- tocstop -->
@@ -27,7 +27,7 @@ The optional `:<diagram_name>` suffix will apply this decorator only to a specif
Currently, the following decorators are supported. Currently, the following decorators are supported.
## `note` ## 'note'
This decorator allows to specify directly in the code comments that should be included in the generated diagrams. This decorator allows to specify directly in the code comments that should be included in the generated diagrams.
@@ -87,11 +87,11 @@ class R {
}; };
``` ```
generates the following class diagram: results in the following class diagram:
![note](./test_cases/t00028_class.svg) ![note](./test_cases/t00028_class.svg)
## `skip` and `skiprelationship` ## 'skip' and 'skiprelationship'
This decorator allows to skip the specific classes or methods from the diagrams, for instance the following code: This decorator allows to skip the specific classes or methods from the diagrams, for instance the following code:
```cpp ```cpp
@@ -141,11 +141,11 @@ struct R {
}; };
``` ```
generates the following diagram: results in the following diagram:
![skip](./test_cases/t00029_class.svg) ![skip](./test_cases/t00029_class.svg)
## `composition`, `association` and `aggregation` ## 'composition', 'association' and 'aggregation'
These decorators allow to specify explicitly the type of relationship within a class diagram that should be These decorators allow to specify explicitly the type of relationship within a class diagram that should be
generated for a given class member. For instance the following code: generated for a given class member. For instance the following code:
@@ -185,12 +185,12 @@ struct R {
}; };
``` ```
generates the following diagram: results in the following diagram:
![skip](./test_cases/t00030_class.svg) ![skip](./test_cases/t00030_class.svg)
## `style` ## 'style'
This decorator allows to specify in the code specific styles for diagram elements, for instance: This decorator allows to specify in the code specific styles for diagram elements, for instance:
```cpp ```cpp
@@ -226,6 +226,6 @@ struct R {
}; };
``` ```
generates the following diagram: results in the following diagram:
![skip](./test_cases/t00031_class.svg) ![skip](./test_cases/t00031_class.svg)

View File

@@ -3,29 +3,33 @@
<!-- toc --> <!-- toc -->
* [Overall configuration file structure](#overall-configuration-file-structure) * [Overall configuration file structure](#overall-configuration-file-structure)
* [Diagram titles](#diagram-titles)
* [Translation unit glob patterns](#translation-unit-glob-patterns) * [Translation unit glob patterns](#translation-unit-glob-patterns)
* [PlantUML custom directives](#plantuml-custom-directives) * [Custom directives](#custom-directives)
* [Adding debug information in the generated diagrams](#adding-debug-information-in-the-generated-diagrams) * [Adding debug information in the generated diagrams](#adding-debug-information-in-the-generated-diagrams)
* [Resolving include path and compiler flags issues](#resolving-include-path-and-compiler-flags-issues) * [Resolving include path and compiler flags issues](#resolving-include-path-and-compiler-flags-issues)
* [Use `--query-driver` command line option](#use---query-driver-command-line-option) * [Use '--query-driver' command line option](#use---query-driver-command-line-option)
* [Manually add and remove compile flags from the compilation database](#manually-add-and-remove-compile-flags-from-the-compilation-database) * [Manually add and remove compile flags from the compilation database](#manually-add-and-remove-compile-flags-from-the-compilation-database)
* [Using `CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES`](#using-cmake_cxx_implicit_include_directories) * [Using 'CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES'](#using-cmake_cxx_implicit_include_directories)
<!-- tocstop --> <!-- tocstop -->
## Overall configuration file structure ## Overall configuration file structure
By default, `clang-uml` will look for file `.clang-uml` in the projects directory and read all diagrams definitions By default, `clang-uml` will look for file `.clang-uml` in the project's directory and read all diagrams definitions
from it. The file must be specified in YAML and it's overall structure is as follows: configuration from it. The file must be specified in YAML and it's overall structure is as follows:
```yaml ```yaml
<common options for all diagrams> # common options for all diagrams
...
diagrams: diagrams:
<first diagram name>: first_diagram_name:
type: [class|sequence|package|include] type: class|sequence|package|include
<diagram specific options> # diagram specific options
<second diagram name>: ...
type: [class|sequence|package|include] second_diagram_name:
<diagram specific options> type: class|sequence|package|include
# diagram specific options
...
... ...
``` ```
@@ -40,6 +44,17 @@ Effective configuration, including default values can be printed out in YAML for
clang-uml --dump-config clang-uml --dump-config
``` ```
## Diagram titles
Each type of diagram can have a `title` property, which will be generated in the
diagram using directives specific to a given diagram generator, for instance:
```yaml
diagrams:
diagram1:
type: class
title: Some explanatory diagram title
```
## Translation unit glob patterns ## Translation unit glob patterns
One of the key options of the diagram configuration is the list of translation units, which should be parsed to One of the key options of the diagram configuration is the list of translation units, which should be parsed to
get all necessary information for a diagram. get all necessary information for a diagram.
@@ -53,16 +68,17 @@ The syntax is simple and based on glob patterns, which can be added to the confi
``` ```
The glob patterns only need to match the translation units, which are also in the `compile_commands.json` file, i.e. The glob patterns only need to match the translation units, which are also in the `compile_commands.json` file, i.e.
any files that match the glob patterns but are not in `compile_commands.json` will be ignored. In case the `glob` any files that match the glob patterns, but are not in `compile_commands.json` will be ignored. In case the `glob`
pattern set does not much any translation units an error will be printed on the standard output. pattern set does not match any translation units an error will be printed on the standard output.
For small projects, the `glob` property can be omitted, which will result in `clang-uml` parsing all translation units For small projects, the `glob` property can be omitted, which will result in `clang-uml` parsing all translation units
from `compile_commands.json` for the diagram. However for large projects, constraining the number of translation units from `compile_commands.json` for the diagram. However, for large projects, constraining the number of translation units
for each diagram to absolute minimum will significantly decrease the diagram generation times. for each diagram to absolute minimum will significantly decrease the diagram generation times.
## PlantUML custom directives ## Custom directives
In case it's necessary to add some custom PlantUML declarations before or after the generated diagram content, In case it's necessary to add some custom PlantUML or MermaidJS declarations
it can be achieved simply using the `plantuml` configuration properties, for instance: before or after the generated diagram content, it can be achieved using
the `plantuml` or `mermaid` configuration properties, for instance for PlantUML:
```yaml ```yaml
plantuml: plantuml:
@@ -72,34 +88,49 @@ it can be achieved simply using the `plantuml` configuration properties, for ins
- note left of {{ alias("ns1::ns2::MyClass") }} This is my class. - note left of {{ alias("ns1::ns2::MyClass") }} This is my class.
``` ```
These directive are useful for instance for adding notes to elements in the diagrams or customizing diagram layout or for MermaidJS:
or style.
Please note that when referring to diagram elements in the PlantUML directives, they must be added using Jinja ```yaml
templates `alias` command as in the example above. mermaid:
before:
- direction LR
after:
- note for {{ alias("ns1::ns2::MyClass") }} "This is my class."
```
More options can be found in the official PlantUML [documentation](https://plantuml.com/). These directives are useful for instance for adding notes to elements in the
diagrams or customizing diagram layout and style.
Please note that when referring to diagram elements in PlantUML or MermaidJS
directives, they must be added using Jinja templates `alias` command as in the
example above.
More options can be found in the official docs for each respective generator:
* [PlantUML](https://plantuml.com/)
* [MermaidJS](https://mermaid.js.org/intro/)
## Adding debug information in the generated diagrams ## Adding debug information in the generated diagrams
Sometimes it is useful for debugging issues with the diagrams to have information on the exact source location, Sometimes it is useful for debugging issues with the diagrams to have information
from which given declaration or call expression was derived. By adding option: on the exact source location, from which given declaration or call expression was
derived. By adding option:
```yaml ```yaml
debug_mode: true debug_mode: true
``` ```
the generated PlantUML diagram will contain comments before each line containing the source location of the the generated PlantUML diagram will contain comments before each line containing
specific diagram element. the source location of the specific diagram element.
## Resolving include path and compiler flags issues ## Resolving include path and compiler flags issues
Due to the fact, that your project can be compiled with different compilers Due to the fact, that your project can be compiled with different compilers
and toolchains than the Clang version, which `clang-uml` uses on your platform, and toolchains, the system paths and compilation flags detected by the Clang
include paths specified in the generated `compile_commands.json` can be incorrect. version linked to your `clang-uml` installation might differ from the ones
actually used to compile your project.
> This is often an issue on macOS, when `clang-uml` uses Homebrew version of LLVM > This is often an issue on macOS, when `clang-uml` uses Homebrew version of LLVM
> and your project was built using system Apple Clang > and your project was built using system Apple Clang
Typically, this results in ugly error messages on the screen during diagram Typically, this results in error messages on the console during diagram
generation, such as: generation, such as:
``` ```
@@ -116,7 +147,7 @@ These errors can be overcome, by ensuring that the Clang parser has the correct
include paths to analyse your code base on the given platform. `clang-uml` include paths to analyse your code base on the given platform. `clang-uml`
provides several mechanisms to resolve this issue: provides several mechanisms to resolve this issue:
### Use `--query-driver` command line option ### Use '--query-driver' command line option
> This option is not available on Windows. > This option is not available on Windows.
@@ -133,7 +164,7 @@ system, when generating diagrams for an embedded project and providing
`arm-none-eabi-gcc` as driver: `arm-none-eabi-gcc` as driver:
```bash ```bash
$ clang-uml --query-driver arm-none-eabi-gcc clang-uml --query-driver arm-none-eabi-gcc
``` ```
the following options are appended to each command line after `argv[0]` of the the following options are appended to each command line after `argv[0]` of the
@@ -144,22 +175,22 @@ command:
``` ```
If you want to include the system headers reported by the compiler specified If you want to include the system headers reported by the compiler specified
already as `argv[0]` in your `compile_commands.json`, you can simply invoke already as first argument of each compile command in your
`clang-uml` as: `compile_commands.json`, you can simply invoke `clang-uml` as:
```bash ```bash
$ clang-uml --query-driver . clang-uml --query-driver .
``` ```
however please make sure that the `compile_commands.json` contain a command, however please make sure that the `compile_commands.json` contains a command,
which is safe to execute. which is safe to execute.
### Manually add and remove compile flags from the compilation database ### Manually add and remove compile flags from the compilation database
If the system paths extracted from the compiler are not sufficient to resolve If the system paths extracted from the compiler are not sufficient to resolve
include paths issues, it is possible to manually adjust the compilation include paths issues, it is possible to manually adjust the compilation
flags providing `add_compile_flags` and `remove_compile_flags` in the flags by providing `add_compile_flags` and `remove_compile_flags` in the
configuration file, or providing `--add-compile-flag` and `--remove-compile-flag` configuration file, or providing `--add-compile-flag` and `--remove-compile-flag`
in the `clang-uml` command line. on the `clang-uml` command line.
For instance: For instance:
@@ -173,11 +204,11 @@ remove_compile_flags:
These options can be also passed on the command line, for instance: These options can be also passed on the command line, for instance:
```bash ```bash
$ clang-uml --add-compile-flag -I/opt/my_toolchain/include \ clang-uml --add-compile-flag -I/opt/my_toolchain/include \
--remove-compile-flag -I/usr/include ... --remove-compile-flag -I/usr/include ...
``` ```
### Using `CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES` ### Using 'CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES'
Yet another option, for CMake based projects, is to use the following CMake option: Yet another option, for CMake based projects, is to use the following CMake option:
```cmake ```cmake

View File

@@ -26,6 +26,8 @@
* `include_relations_also_as_members` - when set to `false`, class members for relationships are rendered in UML are skipped from class definition (default: `true`) * `include_relations_also_as_members` - when set to `false`, class members for relationships are rendered in UML are skipped from class definition (default: `true`)
* `generate_method_arguments` - determines whether the class diagrams methods contain full arguments (`full`), are abbreviated (`abbreviated`) or skipped (`none`) * `generate_method_arguments` - determines whether the class diagrams methods contain full arguments (`full`), are abbreviated (`abbreviated`) or skipped (`none`)
* `using_namespace` - similar to C++ `using namespace`, a `A::B` value here will render a class `A::B::C::MyClass` in the diagram as `C::MyClass`, at most 1 value is supported * `using_namespace` - similar to C++ `using namespace`, a `A::B` value here will render a class `A::B::C::MyClass` in the diagram as `C::MyClass`, at most 1 value is supported
* `generate_packages` - whether or not the class diagram should contain packages generated from namespaces or subdirectories
* `package_type` - determines how the packages are inferred: `namespace` - use C++ namespaces, `directory` - use project's directory structure
* `include` - definition of inclusion patterns: * `include` - definition of inclusion patterns:
* `namespaces` - list of namespaces to include * `namespaces` - list of namespaces to include
* `relationships` - list of relationships to include * `relationships` - list of relationships to include
@@ -52,7 +54,10 @@
* `plantuml` - verbatim PlantUML directives which should be added to a diagram * `plantuml` - verbatim PlantUML directives which should be added to a diagram
* `before` - list of directives which will be added before the generated diagram * `before` - list of directives which will be added before the generated diagram
* `after` - list of directives which will be added after the generated diagram * `after` - list of directives which will be added after the generated diagram
* `mermaid` - verbatim MermaidJS directives which should be added to a diagram
* `before` - list of directives which will be added before the generated diagram
* `after` - list of directives which will be added after the generated diagram
*
## Example complete config ## Example complete config
```yaml ```yaml
@@ -86,8 +91,10 @@ diagrams:
type: class type: class
# Do not include rendered relations in the class box # Do not include rendered relations in the class box
include_relations_also_as_members: false include_relations_also_as_members: false
# Generate packages from the namespaces
generate_packages: true
package_type: namespace # or 'directory' to generate from projects subdirectories
# Limiting the number of files to include can significantly # Limiting the number of files to include can significantly
# improve the generation time
glob: glob:
- src/common/model/*.h - src/common/model/*.h
- src/common/model/*.cc - src/common/model/*.cc
@@ -134,6 +141,10 @@ diagrams:
# Add this line to the beginning of the resulting puml file # Add this line to the beginning of the resulting puml file
before: before:
- 'title clang-uml class diagram model' - 'title clang-uml class diagram model'
mermaid:
# Add this line at the end of a Mermaid diagram
end:
- 'direction LR'
``` ```
## Determining config file location ## Determining config file location

View File

@@ -2,16 +2,21 @@
<!-- toc --> <!-- toc -->
* [`namespaces`](#namespaces) * [namespaces](#namespaces)
* [`elements`](#elements) * [modules](#modules)
* [`element_types`](#element_types) * [elements](#elements)
* [`paths`](#paths) * [element_types](#element_types)
* [`context`](#context) * [paths](#paths)
* [`relationships`](#relationships) * [context](#context)
* [`subclasses`](#subclasses) * [relationships](#relationships)
* [`parents`](#parents) * [subclasses](#subclasses)
* [`specializations`](#specializations) * [parents](#parents)
* [`dependants` and `dependencies`](#dependants-and-dependencies) * [specializations](#specializations)
* [access](#access)
* [module_access](#module_access)
* [method_types](#method_types)
* [callee_types](#callee_types)
* [dependants and dependencies](#dependants-and-dependencies)
<!-- tocstop --> <!-- tocstop -->
@@ -34,13 +39,73 @@ to your diagram configuration:
- ns1::ns2::detail - ns1::ns2::detail
``` ```
The following filters are available. Some filters accept either specified exact values, some support regular
expressions while some except glob patterns.
## `namespaces` For filters which accept regular expressions, the regular expression has to
be provided as a map ```r: 'pattern'``` due to the fact the pointer (```*```) otherwise
would have to be escaped in situations such as ```mycontainer<char*>```, so for
instance to specify that the diagram should exclude all classes containing the
word ```test``` simply add the following filter:
```yaml
exclude:
elements:
- r: '.*test.*'
```
`paths` filter is currently the only filter which accepts `glob` like patterns.
The following table specifies the values allowed in each filter:
| Filter name | Possible values | Example values |
|-------------------|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| `namespaces` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: '.*detail.*'``` |
| `modules` | Qualified name or regex | ```mod1.mod2:par1```, ```r: '.*impl.*'``` |
| `elements` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: '.*detail.*'``` |
| `element_types` | Types of diagram elements | ```class```, ```enum```, ```concept``` |
| `paths` | File or dir path or glob pattern | ```src/dir1```, ```src/dir2/a.cpp```, ```src/dir3/*.cpp``` |
| `context` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `relationships` | Type of relationship | ```inheritance```, ```composition```, ```aggregation```, ```ownership```, ```association```, ```instantiation```, ```friendship```, ```dependency``` |
| `subclasses` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `parents` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `specializations` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `access` | Method or member access scope | ```public```, ```protected```, ```private``` |
| `module_access` | Module access scope | ```public```, ```private``` |
| `method_types` | Type of class method | ```constructor```, ```destructor```, ```assignment```, ```operator```, ```defaulted```, ```deleted```, ```static``` |
| `dependants` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `dependencies` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `callee_types` | Callee types in sequence diagrams | ```constructor```, ```assignment```, ```operator```, ```defaulted```, ```static```, ```method```, ```function```, ```function_template```, ```lambda``` |
The following filters are available:
## namespaces
Allows to include or exclude entities from specific namespaces. Allows to include or exclude entities from specific namespaces.
## `elements` ```yaml
include:
namespaces:
- ns1::ns2
exclude:
namespaces:
- ns1::ns2::detail
```
## modules
Allows to include or exclude entities from specific C++20 module.
```yaml
include:
modules:
- mod1.mod2
exclude:
modules:
- r: ".*impl.*"
```
## elements
Allows to directly include or exclude specific entities from the diagrams, for instance to exclude a specific class Allows to directly include or exclude specific entities from the diagrams, for instance to exclude a specific class
from an included namespace: from an included namespace:
@@ -54,7 +119,7 @@ from an included namespace:
- ns1::ns2::MyClass - ns1::ns2::MyClass
``` ```
## `element_types` ## element_types
Allows to include or exclude elements of specific type from the diagram, for instance Allows to include or exclude elements of specific type from the diagram, for instance
to remove all enums from a diagram add the following: to remove all enums from a diagram add the following:
@@ -65,7 +130,7 @@ to remove all enums from a diagram add the following:
- enum - enum
``` ```
## `paths` ## paths
This filter allows to include or exclude from the diagram elements declared This filter allows to include or exclude from the diagram elements declared
in specific files. in specific files.
@@ -74,10 +139,11 @@ in specific files.
diagrams: diagrams:
t00061_class: t00061_class:
type: class type: class
relative_to: ../../tests/t00061 glob:
glob: [t00061.cc] - t00061.cc
include: include:
paths: [include/t00061_a.h] paths:
- include/t00061_a.h
using_namespace: using_namespace:
- clanguml::t00061 - clanguml::t00061
``` ```
@@ -85,10 +151,10 @@ diagrams:
Currently, this filter does not allow any globbing or wildcards, however Currently, this filter does not allow any globbing or wildcards, however
paths to directories can be specified. paths to directories can be specified.
## `context` ## context
This filter allows to limit the diagram elements only to classes which are in direct relationship (of any kind) with This filter allows to limit the diagram elements only to classes which are in
the specified class: direct relationship (of any kind) with the specified class, enum or concept:
```yaml ```yaml
include: include:
@@ -96,8 +162,25 @@ the specified class:
- ns1::ns2::MyClass - ns1::ns2::MyClass
``` ```
By default, the filter will only include or exclude items in direct
relationship (radius 1). It is however possible to define the context filter
and provide a custom radius:
## `relationships` ```yaml
include:
context:
- match:
radius: 3
pattern: ns1::ns2::MyClass
- match:
radius: 2
pattern: ns1::ns2::MyOtherClass
```
Please note that you can specify multiple context filters in a single diagram
with different radius. Radius set to 0 will match only the given element.
## relationships
This filter allows to include or exclude specific types of relationships from the diagram, for instance to only This filter allows to include or exclude specific types of relationships from the diagram, for instance to only
include inheritance and template specialization/instantiation relationships add the following to the diagram: include inheritance and template specialization/instantiation relationships add the following to the diagram:
@@ -110,31 +193,79 @@ include inheritance and template specialization/instantiation relationships add
``` ```
The following relationships can be used in this filter: The following relationships can be used in this filter:
* inheritance * `inheritance`
* composition * `composition`
* aggregation * `aggregation`
* ownership * `ownership`
* association * `association`
* instantiation * `instantiation`
* friendship * `friendship`
* dependency * `dependency`
## `subclasses` ## subclasses
This filter allows to include or exclude all subclasses of a given class in the diagram. This filter allows to include or exclude all subclasses of a given class in the diagram.
## `parents` ## parents
This filter allows to include or exclude all parents (base classes) of a given class in the diagram. This filter allows to include or exclude all parents (base classes) of a given class in the diagram.
## `specializations` ## specializations
This filter allows to include or exclude specializations and instantiations of a specific template from the diagram. This filter allows to include or exclude specializations and instantiations of a specific template from the diagram.
## `dependants` and `dependencies` ## access
These filters allow to specify that only dependants or dependencies of a given class should be included in the diagram. This filter allows to include or exclude class methods and members based on their access scope, allowed values are:
This can be useful for analyzing what classes in your project depend on some other class, which could have impact for
* `public`
* `protected`
* `private`
## module_access
This filter allows to include or exclude diagram elements based on the module in which they are declared, allowed values are:
* `public`
* `private`
## method_types
This filter allows to include or exclude various method types from the class diagram, allowed values are:
* `constructor`
* `destructor`
* `assignment`
* `operator`
* `defaulted`
* `deleted`
* `static`
This filter is independent of the `access` filter, which controls which methods
are included based on access scope (e.g. `public`).
## callee_types
This filter is specific for `sequence diagrams` and allows to control, which
types of callees should be included/excluded from the diagram. In a sequence diagram,
a `callee` is the receiver of a message, and this filter specifies which types
of receivers should match.
The following callee types are supported:
* `constructor`
* `assignment`
* `operator`
* `defaulted`
* `static`
* `method`
* `function`
* `function_template`
* `lambda`
## dependants and dependencies
These filters allow to specify that only dependants or dependencies of a given
class should be included in the diagram. This can be useful for analyzing what
classes in your project depend on some other class, which could have impact for
instance on refactoring. instance on refactoring.
For instance the following code: For instance the following code:
@@ -206,6 +337,6 @@ and the following filter:
- dependency - dependency
``` ```
generates the following diagram: results in the following diagram:
![t00043_class](./test_cases/t00043_class.svg) ![t00043_class](./test_cases/t00043_class.svg)

View File

@@ -54,7 +54,7 @@ diagram_templates:
## Adding templates to the configuration file ## Adding templates to the configuration file
Diagram templates can be added directly to the `.clang-uml` configuration file, Diagram templates can be added directly to the `.clang-uml` configuration file,
under a `diagram_templates:` key. However, for practical reasons its better under a `diagram_templates:` key. However, for practical reasons it is better
to keep diagram template definitions in a separate Yaml file, and reference to keep diagram template definitions in a separate Yaml file, and reference
it in the configuration file using `include!` directive, e.g.: it in the configuration file using `include!` directive, e.g.:
@@ -88,7 +88,7 @@ clang-uml --show-template parents_hierarchy_tmpl
users configuration file defines another template with a name which already users configuration file defines another template with a name which already
exists as built-in template it will override the predefined templates. exists as built-in template it will override the predefined templates.
Currently the following templates are built-in: Currently, the following templates are built-in:
* `parents_hierarchy_tmpl` - generate inheritance hierarchy diagram including * `parents_hierarchy_tmpl` - generate inheritance hierarchy diagram including
parents of a specified class parents of a specified class
* `subclass_hierarchy_tmpl` - generate inheritance hierarchy diagram including * `subclass_hierarchy_tmpl` - generate inheritance hierarchy diagram including

28
docs/doxygen/footer.html Normal file
View File

@@ -0,0 +1,28 @@
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<!--BEGIN GENERATE_TREEVIEW-->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
$navpath
<li class="footer">
$generatedby
<a href="https://www.doxygen.org/index.html">
<img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/>
</a> $doxygenversion
</li>
</ul>
</div>
<!--END GENERATE_TREEVIEW-->
<!--BEGIN !GENERATE_TREEVIEW-->
<hr class="footer"/><address class="footer">
<small>
<span class="copyright">&#160;&#160;Copyright &copy; 2022-present <a href="https://github.com/bkryza">Bartek Kryza</a>
</span>
$generatedby&#160;
<a href="https://www.doxygen.org/index.html">
<img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/>
</a> $doxygenversion
</small></address>
<!--END !GENERATE_TREEVIEW-->
</body>
</html>

7
docs/doxygen/github.min.css vendored Normal file
View File

@@ -0,0 +1,7 @@
/*!
Theme: Github
Author: Defman21
License: ~ MIT (or more permissive) [via base16-schemes-source]
Maintainer: @highlightjs/core-team
Version: 2021.09.0
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#333;background:#fff}.hljs ::selection,.hljs::selection{background-color:#c8c8fa;color:#333}.hljs-comment{color:#969896}.hljs-tag{color:#e8e8e8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#333}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ed6a43}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#0086b3}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#795da3}.hljs-strong{font-weight:700;color:#795da3}.hljs-addition,.hljs-built_in,.hljs-code,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp,.hljs-string,.hljs-title.class_.inherited__{color:#183691}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#795da3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a71d5d}.hljs-emphasis{color:#a71d5d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#333}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700}

111
docs/doxygen/header.html Normal file
View File

@@ -0,0 +1,111 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen $doxygenversion"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<!-- BEGIN opengraph metadata -->
<meta property="og:title" content="clang-uml" />
<meta property="og:image" content="$relpath^clang-uml-logo.svg" />
<meta property="og:description" content="C++ to UML diagram generator based on Clang." />
<meta property="og:url" content="https://clang-uml.github.io/" />
<!-- END opengraph metadata -->
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
<link rel="icon" type="image/svg+xml" href="logo.drawio.svg"/>
<script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script>
<!--<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>-->
<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
<script type="text/javascript" src="$relpath^doxygen-awesome-paragraph-link.js"></script>
<!--<script type="text/javascript" src="$relpath^doxygen-awesome-interactive-toc.js"></script>-->
<!--<script type="text/javascript" src="$relpath^doxygen-awesome-tabs.js"></script>-->
<!--<script type="text/javascript" src="$relpath^toggle-alternative-theme.js"></script>-->
<script type="text/javascript">
DoxygenAwesomeFragmentCopyButton.init()
// DoxygenAwesomeDarkModeToggle.init()
DoxygenAwesomeParagraphLink.init()
// DoxygenAwesomeInteractiveToc.init()
// DoxygenAwesomeTabs.init()
</script>
$treeview
$search
$mathjax
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="$relpath^github.min.css">
<script src="$relpath^highlight.min.js"></script>
<script>
$(function() {
hljs.configure({useBR: false});
$(".fragment").each(function(i,node) {
var $node = $(node);
// Only apply highlight.js to non-cpp code blocks
if (!$node.hasClass("language-cpp")) {
$node.html("<pre><code class='" +
$node.attr("class") + "'>" +
$node.text() + "</code></pre>");
hljs.highlightElement(node);
}
});
});
</script>
$extrastylesheet
</head>
<body>
<!-- https://tholman.com/github-corners/ -->
<!--<a href="https://github.com/bkryza/clang-uml" class="github-corner" title="View source on GitHub" target="_blank">-->
<!-- <svg viewBox="0 0 250 250" width="70" height="70" style="position: absolute; top: 0; border: 0; right: 0; z-index: 99;" aria-hidden="true">-->
<!-- <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>-->
<div id="top" style="background-color: gainsboro"><!-- do not remove this div, it is closed by doxygen! -->
<!--BEGIN TITLEAREA-->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<!--BEGIN PROJECT_LOGO-->
<td id="projectlogo">
<a href="$relpath^index.html">
<img alt="Main page" src="$relpath^$projectlogo"/>
</a>
</td>
<!--END PROJECT_LOGO-->
<!--BEGIN PROJECT_NAME-->
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">
<span id="projectnumber">$projectnumber</span>
</div>
<div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
</td>
<!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME-->
<!--BEGIN PROJECT_BRIEF-->
<!-- <td style="padding-left: 0.5em;">-->
<!-- <div id="projectbrief">$projectbrief</div>-->
<!-- </td>-->
<td>
<div>
<a href="https://github.com/bkryza/clang-uml">
<img alt="GitHub" src="$relpath^github-mark.svg"/>
</a>
</div>
</td>
<!--END PROJECT_BRIEF-->
<!--END !PROJECT_NAME-->
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN SEARCHENGINE-->
<td>$searchbox</td>
<!--END SEARCHENGINE-->
<!--END DISABLE_INDEX-->
</tr>
</tbody>
</table>
</div>
<!--END TITLEAREA-->
<!-- end header part -->

2575
docs/doxygen/highlight.js Normal file

File diff suppressed because it is too large Load Diff

611
docs/doxygen/highlight.min.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,234 @@
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.9.7 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<!-- <tab type="mainpage" visible="yes" title=""/>-->
<!-- <tab type="pages" visible="yes" title="" intro=""/>-->
<!-- <tab type="modules" visible="yes" title="" intro=""/>-->
<tab type="user" url="./md_docs_2installation.html" title="Installation"/>
<tab type="user" url="./md_docs_2test__cases.html" title="Test cases"/>
<tab type="user" visible="yes" url="./index.html" title="Doxygen">
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="structs" visible="yes" title="">
<tab type="structlist" visible="yes" title="" intro=""/>
<tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
</tab>
<tab type="user" url="https://github.com/bkryza/clang-uml-examples" title="Examples"/>
<tab type="user" url="https://github.com/bkryza/clang-uml" title="GitHub"/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<detaileddescription title=""/>
<includes visible="$SHOW_HEADERFILE"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<detaileddescription title=""/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<concepts visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a concept page -->
<concept>
<briefdescription visible="yes"/>
<detaileddescription title=""/>
<includes visible="$SHOW_HEADERFILE"/>
<definition visible="yes" title=""/>
<detaileddescription title=""/>
<authorsection visible="yes"/>
</concept>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<!-- <detaileddescription title=""/>-->
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<detaileddescription title=""/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<!-- <detaileddescription title=""/>-->
</directory>
</doxygenlayout>

7
docs/doxygen/solarized-light.min.css vendored Normal file
View File

@@ -0,0 +1,7 @@
/*!
Theme: Solarized Light
Author: Ethan Schoonover (modified by aramisgithub)
License: ~ MIT (or more permissive) [via base16-schemes-source]
Maintainer: @highlightjs/core-team
Version: 2021.09.0
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#586e75;background:#fdf6e3}.hljs ::selection,.hljs::selection{background-color:#93a1a1;color:#586e75}.hljs-comment{color:#839496}.hljs-tag{color:#657b83}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#586e75}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#dc322f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#cb4b16}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b58900}.hljs-strong{font-weight:700;color:#b58900}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#859900}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#2aa198}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#268bd2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6c71c4}.hljs-emphasis{color:#6c71c4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d33682}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700}

View File

@@ -6,10 +6,12 @@
<!-- tocstop --> <!-- tocstop -->
`clang-uml` diagrams can be easily added to the Doxygen documentation using the image tag, however `clang-uml` diagrams can be easily added to the Doxygen documentation using the
[Doxygen](https://www.doxygen.nl/index.html) does not support the `clang-uml` specific commands. `image` tag, however [Doxygen](https://www.doxygen.nl/index.html) does not
support the `clang-uml` specific [commands](./comment_decorators.md), which
will appear in the documentation unprocessed.
`clang-uml` decorators can be omitted completely in Doxygen, by adding the The best solution to this is to tell Doxygen to ignore them, by adding the
following lines to the Doxygen config file: following lines to the Doxygen config file:
``` ```
@@ -17,4 +19,44 @@ ALIASES += uml=""
ALIASES += uml{1}="" ALIASES += uml{1}=""
ALIASES += uml{2}="" ALIASES += uml{2}=""
ALIASES += uml{3}="" ALIASES += uml{3}=""
``` ```
Furthermore, Doxygen adds images to HTML documentation as `<img src=""/>`,
which disables interactive links in SVG diagrams. One way to go around it
is to use a special command for these images, for instance:
```
ALIASES += embed{1}="\htmlonly <embed src=\"\1\"/> \endhtmlonly"
```
and then use the following in the source code comments:
```cpp
/**
* @brief Base class for all diagram models
*
* @embed{diagram_hierarchy_class.svg}
*/
class diagram {
public:
// ...
```
This directive in the configuration file will add the SVG diagrams using
`<embed>` HTML tag, and enable the links in the diagram on most browsers.
Finally, to have `clang-uml` generate links from diagram elements such as classes
or packages to Doxygen pages, it is only necessary to add the following
configuration file option:
```yaml
generate_links:
link: "{% if existsIn(element, \"doxygen_link\") %}{{ element.doxygen_link }}{% endif %}"
tooltip: "{% if existsIn(element, \"comment\") and existsIn(element.comment, \"brief\") %}{{ abbrv(trim(replace(element.comment.brief.0, \"\\n+\", \" \")), 256) }}{% else %}{{ element.name }}{% endif %}"
```
This option will tell `clang-uml` to generate a link to a local Doxygen
documentation page, provided that it is possible to generate it. Currently,
this only works for diagram elements, it will not work for instance
for individual methods.

File diff suppressed because it is too large Load Diff

1
docs/img/github-mark.svg Normal file
View File

@@ -0,0 +1 @@
<svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg>

After

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
docs/img/mermaid_nested.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -2,21 +2,17 @@
<!-- toc --> <!-- toc -->
* [Tracking system headers directly included by projects files](#tracking-system-headers-directly-included-by-projects-files) * [Tracking system headers directly included by project sources](#tracking-system-headers-directly-included-by-project-sources)
<!-- tocstop --> <!-- tocstop -->
Include diagrams allow to document the include dependencies among different parts of the project. This can be very useful Include diagrams allow to document the include dependencies among different
for instance to detect that a file was included from a module directory, on which specific part of the project parts of the project. This can be very useful for instance to detect that a file
should not ever depend. was included from a module directory, on which specific part of the project
should never depend.
The minimal config required to generate an include diagram is presented below: The minimal config required to generate an include diagram is presented below:
```yaml ```yaml
# Path to the directory where `compile_commands.json` can be found
compilation_database_dir: _build
# Output directory for the diagrams
output_directory: puml
# Diagrams definitions
diagrams: diagrams:
# Diagram name # Diagram name
my_class_diagram: my_class_diagram:
@@ -25,8 +21,6 @@ diagrams:
# Include only translation units matching the following patterns # Include only translation units matching the following patterns
glob: glob:
- src/*.cc - src/*.cc
# Render the paths relative to this directory
relative_to: src
# Include also external system headers # Include also external system headers
generate_system_headers: true generate_system_headers: true
# Include only classes and functions from files in `src` directory # Include only classes and functions from files in `src` directory
@@ -36,29 +30,31 @@ diagrams:
- src - src
``` ```
One distinctive option in `include` diagrams is `relative_to`, which tells `clang-uml` to render all filename One distinctive option in `include` diagrams is `relative_to`, which tells
paths relative to this directory. `clang-uml` to render all filename paths relative to this directory.
The following table presents the PlantUML arrows representing relationships in the include diagrams. The following table presents the PlantUML arrows representing relationships in
the include diagrams.
| UML | PlantUML | | UML | PlantUML | MermaidJS |
| ---- | --- | |-----------------------------------------|------------------------------------------|---------------------------------------------|
| Include (local) | ![association](img/puml_association.png) | | Include (local) | ![association](img/puml_association.png) | ![association](img/mermaid_association.png) |
| Include (system) | ![dependency](img/puml_dependency.png) | | Include (system) | ![dependency](img/puml_dependency.png) | ![association](img/mermaid_dependency.png) |
## Tracking system headers directly included by projects files ## Tracking system headers directly included by project sources
In case you would like to include the information about what system headers your projects file include simply add In case you would like to include the information about what system headers your
the following option to the diagram: project files include simply add the following option to the diagram:
```yaml ```yaml
generate_system_headers: true generate_system_headers: true
``` ```
This will include only system headers directly included from the projects source files (matched by `glob`) and not This will include only system headers directly included from the project's
their dependencies, for example: source files (matched by `glob`) and not their dependencies, for example:
![t40001_include](./test_cases/t40001_include.svg) ![t40001_include](./test_cases/t40001_include.svg)
Please note that generating include diagram, which contains third party and system library headers will result Please note that generating include diagram, which contains third party and
in a huge diagram that will be unlikely to be useful. system library headers will result in a huge diagram that will be unlikely to
be useful.

View File

@@ -12,6 +12,9 @@
* [macos](#macos) * [macos](#macos)
* [Windows](#windows-1) * [Windows](#windows-1)
* [Visual Studio native build](#visual-studio-native-build) * [Visual Studio native build](#visual-studio-native-build)
* [Shell autocompletion scripts](#shell-autocompletion-scripts)
* [Bash](#bash)
* [Zsh](#zsh)
<!-- tocstop --> <!-- tocstop -->
@@ -20,7 +23,7 @@
#### Ubuntu #### Ubuntu
```bash ```bash
# Currently supported Ubuntu versions are Focal, Jammy and Kinetic # Currently supported Ubuntu versions are Focal, Jammy, Lunar and Mantic
sudo add-apt-repository ppa:bkryza/clang-uml sudo add-apt-repository ppa:bkryza/clang-uml
sudo apt update sudo apt update
sudo apt install clang-uml sudo apt install clang-uml
@@ -29,13 +32,17 @@ sudo apt install clang-uml
#### Fedora #### Fedora
```bash ```bash
# Fedora 36
wget https://github.com/bkryza/clang-uml/releases/download/0.3.1/clang-uml-0.3.1-1.fc36.x86_64.rpm
sudo dnf install ./clang-uml-0.3.1-1.fc36.x86_64.rpm
# Fedora 37 # Fedora 37
wget https://github.com/bkryza/clang-uml/releases/download/0.3.1/clang-uml-0.3.1-1.fc37.x86_64.rpm wget https://github.com/bkryza/clang-uml/releases/download/0.4.2/clang-uml-0.4.2-1.fc37.x86_64.rpm
sudo dnf install ./clang-uml-0.3.1-1.fc37.x86_64.rpm sudo dnf install ./clang-uml-0.4.2-1.fc37.x86_64.rpm
# Fedora 38
wget https://github.com/bkryza/clang-uml/releases/download/0.4.2/clang-uml-0.4.2-1.fc38.x86_64.rpm
sudo dnf install ./clang-uml-0.4.2-1.fc38.x86_64.rpm
# Fedora 39
wget https://github.com/bkryza/clang-uml/releases/download/0.4.2/clang-uml-0.4.2-1.fc39.x86_64.rpm
sudo dnf install ./clang-uml-0.4.2-1.fc39.x86_64.rpm
``` ```
#### Conda #### Conda
@@ -57,8 +64,8 @@ Download and run the latest Windows installer from
First make sure that you have the following dependencies installed: First make sure that you have the following dependencies installed:
```bash ```bash
# Ubuntu (clang version will vary depending on Ubuntu version) # Ubuntu (Clang version will vary depending on Ubuntu version - below example is for Ubuntu 22.04)
apt install ccache cmake libyaml-cpp-dev clang-12 libclang-12-dev libclang-cpp12-dev apt install make gcc g++ ccache cmake libyaml-cpp-dev llvm-15 clang-15 libclang-15-dev libclang-cpp15-dev clang-format-15
``` ```
Then proceed with building the sources: Then proceed with building the sources:
@@ -71,11 +78,18 @@ make release
release/src/clang-uml --help release/src/clang-uml --help
# To build using a specific installed version of LLVM use: # To build using a specific installed version of LLVM use:
LLVM_VERSION=14 make release LLVM_VERSION=16 make release
# or specify path to a specific llvm-config binary, e.g.:
LLVM_CONFIG_PATH=/usr/bin/llvm-config-16 make release
# or directly specify the path where LLVMConfig.cmake can be found on your system, e.g.:
CMAKE_PREFIX=/usr/lib/llvm-16/lib/cmake/llvm make release
# Optionally
# Optionally, to install in default prefix
make install make install
# or # or to install in custom prefix
make install DESTDIR=/opt/clang-uml
# or simply
export PATH=$PATH:$PWD/release export PATH=$PATH:$PWD/release
``` ```
@@ -85,8 +99,10 @@ export PATH=$PATH:$PWD/release
brew install ccache cmake llvm yaml-cpp brew install ccache cmake llvm yaml-cpp
export CC=/usr/local/opt/llvm/bin/clang export CC=/usr/local/opt/llvm/bin/clang
export CCX=/usr/local/opt/llvm/bin/clang++ export CXX=/usr/local/opt/llvm/bin/clang++
LLVM_VERSION=14 make release LLVM_VERSION=16 make release
# or, if this fails, try:
CMAKE_PREFIX=/usr/local/opt/llvm/lib/cmake/llvm make release
``` ```
#### Windows #### Windows
@@ -155,14 +171,73 @@ bin\clang-uml.exe --version
``` ```
It should produce something like: It should produce something like:
```bash ```bash
clang-uml 0.3.1 clang-uml 0.4.2
Copyright (C) 2021-2023 Bartek Kryza <bkryza@gmail.com> Copyright (C) 2021-2023 Bartek Kryza <bkryza@gmail.com>
Built against LLVM/Clang libraries version: 15.0.6 Linux x86_64 6.2.0-36-generic
Using LLVM/Clang libraries version: clang version 15.0.6 (https://github.com/llvm/llvm-project.git 088f33605d8a61ff519c580a71b1dd57d16a03f8) Built against LLVM/Clang libraries version: 17.0.3
Using LLVM/Clang libraries version: Ubuntu clang version 17.0.3 (++20231010073202+37b79e779f44-1~exp1~20231010073304.52)
``` ```
Finally, remove the temporary build directory: Finally, remove the temporary build directory:
```bash ```bash
rm -r C:\clang-uml-tmp rm -r C:\clang-uml-tmp
``` ```
### Shell autocompletion scripts
For `Linux` and `macos`, Bash and Zsh autocomplete scripts are available, and
if `clang-uml` is installed from a distribution package they should work
out of the box. When installing `clang-uml` from sources the files need to be
installed manually. The completion scripts are available in directory:
* [`packaging/autocomplete`](./packaging/autocomplete)
#### Bash
The `clang-uml` script can be either directly loaded to the
current Bash session using:
```shell
source clang-uml
```
or the script can be copied to `/usr/share/bash-completion/completions/`
or `/etc/bash_completion.d` on Linux or to `/usr/local/etc/bash_completion.d` on
`macos` with `Homebrew`.
```shell
sudo cp packaging/autocomplete/clang-uml /usr/share/bash-completion/completions/
```
Make sure autocompletion is enabled in your `~/.bashrc` or `~/.bash_profile`:
```shell
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
```
On OSX you might need to install `bash-completion` using Homebrew:
```shell
brew install bash-completion
```
Make sure to the following lines are uncommented in the `~/.bashrc`:
```shell
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
```
#### Zsh
In Zsh, the `_clang-uml` Zsh completion file must be copied to one of the
folders under `$FPATH` variable, and the Zsh terminal should be reopened.
For testing, `_clang-uml` completion function can be updated without
restarting Zsh:
```shell
# Copy _clang-uml somewhere under $FPATH
$ unfunction _clang-uml
$ autoload -U _clang-uml
```

View File

@@ -6,16 +6,22 @@
<!-- tocstop --> <!-- tocstop -->
`clang-uml` in combination with PlantUML's link generation in diagrams allows to generate interactive diagrams, `clang-uml` in combination with PlantUML and MermaidJS link generation in
where clicking on any class, method or call expression can direct the user directly to the source code or some other diagrams allows to generate interactive diagrams, where clicking on any class,
diagram or document available online. method or call expression can direct the user directly to the source code or
some other diagram or document available online.
For instance to generate links to GitHub repository directly for most diagram
elements simply add this to your `.clang-uml` file:
For instance to generate links to GitHub repository directly for most of diagram elements simple add this to your
`.clang-uml` file:
```yaml ```yaml
generate_links: generate_links:
link: 'https://github.com/myorg/myrepo/blob/{{ git.commit }}/{{ element.source.path }}#L{{ element.source.line }}' link: 'https://github.com/myorg/myrepo/blob/{{ git.commit }}/{{ element.source.path }}#L{{ element.source.line }}'
tooltip: '{% if "comment" in element %}{{ abbrv(trim(replace(element.comment, "\n+", " ")), 256) }}{% else %}{{ element.name }}{% endif %}' tooltip: '{% if "comment" in element %}{{ abbrv(trim(replace(element.comment.formatted, "\n+", " ")), 256) }}{% else %}{{ element.name }}{% endif %}'
``` ```
You can open example diagram [here](https://raw.githubusercontent.com/bkryza/clang-uml/master/docs/test_cases/t00014_class.svg) to see how it works in action. You can open example diagram [here](https://raw.githubusercontent.com/bkryza/clang-uml/master/docs/test_cases/t00014_class.svg) to see how it works in action.
Full documentation on how to use the [inja](https://github.com/pantor/inja)
template engine in `clang-uml` configuration files can be found
[here](./jinja_templates.md).

View File

@@ -3,8 +3,8 @@
<!-- toc --> <!-- toc -->
* [Accessing comment content](#accessing-comment-content) * [Accessing comment content](#accessing-comment-content)
* [`plain` comment parser](#plain-comment-parser) * ['plain' comment parser](#plain-comment-parser)
* [`clang` comment parser](#clang-comment-parser) * ['clang' comment parser](#clang-comment-parser)
<!-- tocstop --> <!-- tocstop -->
@@ -102,12 +102,12 @@ Currently there are 2 available comment parsers:
They can be selected using `comment_parser` config option. They can be selected using `comment_parser` config option.
#### `plain` comment parser #### 'plain' comment parser
This parser provides only 2 options to the Jinja context: This parser provides only 2 options to the Jinja context:
* `comment.raw` - raw comment text, including comment markers such as `///` or `/**` * `comment.raw` - raw comment text, including comment markers such as `///` or `/**`
* `comment.formatted` - formatted entire comment * `comment.formatted` - formatted entire comment
#### `clang` comment parser #### 'clang' comment parser
This parser uses Clang comment parsing API to extract commands from the command: This parser uses Clang comment parsing API to extract commands from the command:
* `comment.raw` - raw comment text, including comment markers such as `///` or `/**` * `comment.raw` - raw comment text, including comment markers such as `///` or `/**`
* `comment.formatted` - formatted entire comment * `comment.formatted` - formatted entire comment

15
docs/license.md Normal file
View File

@@ -0,0 +1,15 @@
## LICENSE
Copyright 2021-present Bartek Kryza <bkryza@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -6,16 +6,12 @@
<!-- tocstop --> <!-- tocstop -->
Package diagrams are simple diagrams which can be useful to determine the high level structure of a C++ project, Package diagrams are simple diagrams, which can be useful to visualize a high
by rendering all projects namespaces as UML packages and their interdependencies. level structure of a C++ project, by rendering project's namespaces or
subdirectories as UML packages and their interdependencies.
The minimal config required to generate a package diagram is presented below: The minimal config required to generate a package diagram is presented below:
```yaml ```yaml
# Path to the directory where `compile_commands.json` can be found
compilation_database_dir: _build
# Output directory for the diagrams
output_directory: puml
# Diagrams definitions
diagrams: diagrams:
# Diagram name # Diagram name
my_class_diagram: my_class_diagram:
@@ -31,7 +27,7 @@ diagrams:
``` ```
For instance the following C++ code: For instance the following C++ code:
``` ```cpp
namespace A::AA { namespace A::AA {
namespace A1 { namespace A1 {
struct CA { struct CA {
@@ -152,6 +148,36 @@ template <typename T> std::map<T, std::shared_ptr<A::AA::A13::CM>> cm()
} }
``` ```
generates the following diagram: results the following diagram:
![package_deps](./test_cases/t30002_package.svg) ![package_deps](./test_cases/t30002_package.svg)
By default, packages are generated from C++ namespaces in the code. However,
they can also be generated from the subdirectories in the filesystem tree or
based on C++20 modules
Subdirectory based packages can be enabled by adding the following option to
the configuration file:
```yaml
package_type: directory
```
for example check out this diagram
![t30011_package](./test_cases/t30011_package.svg)
Module based packages can be enabled using the following option:
```yaml
package_type: module
```
for example check out this diagram
![t30014_package](./test_cases/t30011_package.svg)
Diagrams can be rendered relative to a specific module using `using_module`
option:
```yaml
using_module: mod1.mod2
```

View File

@@ -8,16 +8,16 @@
To add an initial class diagram to your project, follow these steps: To add an initial class diagram to your project, follow these steps:
1. Enter your projects top level directory and run: 1. Enter your project's top level directory and run:
```bash ```bash
$ clang-uml --init clang-uml --init
``` ```
2. Edit the generated `.clang-uml` file and set the following: 2. Edit the generated `.clang-uml` file and set the following:
```yaml ```yaml
# Path to `compile_commands.json` directory # Path to `compile_commands.json` directory
compilation_database_dir: . compilation_database_dir: .
# Path to diagram output directory # Path to diagram output directory
output_directory: puml output_directory: diagrams
diagrams: diagrams:
# This is the name of the diagram # This is the name of the diagram
some_class_diagram: some_class_diagram:
@@ -26,8 +26,7 @@ To add an initial class diagram to your project, follow these steps:
glob: glob:
- src/*.cc - src/*.cc
# Render all names relative to `myproject` namespace # Render all names relative to `myproject` namespace
using_namespace: using_namespace: myproject
- myproject
include: include:
# Include only elements in `myproject` namespace # Include only elements in `myproject` namespace
namespaces: namespaces:
@@ -37,21 +36,35 @@ To add an initial class diagram to your project, follow these steps:
namespaces: namespaces:
- myproject::detail - myproject::detail
``` ```
3. Run `clang-uml` in the projects top directory: 3. Run `clang-uml` in the project's top directory:
```bash ```bash
$ clang-uml clang-uml
# or to see generation progress for each diagram
clang-uml --progress
``` ```
4. Generate SVG images from the PlantUML diagrams: 4. Generate SVG images from the PlantUML diagrams:
```bash ```bash
$ plantuml -tsvg puml/*.puml plantuml -tsvg diagrams/*.puml
``` ```
or generate also MermaidJS diagram (requires [mermaid-cli](https://github.com/mermaid-js/mermaid-cli)):
```
clang-uml --progress -n some_class_diagram -g mermaid
mmdc -i diagrams/some_class_diagram.mmd -o diagrams/some_class_diagram.svg
```
Steps 3 and 4 can be combined into one step like follows:
```
clang-uml -p -n some_class_diagram -g plantuml -r --plantuml-cmd="plantuml -tsvg diagrams/{}.puml"
```
where `-r` enables diagram rendering and `--plantuml-cmd` specifies command
to execute on each generated diagram.
5. Add another diagram: 5. Add another diagram:
```bash ```bash
$ clang-uml --add-sequence-diagram another_diagram clang-uml --add-sequence-diagram another_diagram
``` ```
6. Now list the diagrams defined in the config: 6. Now list the diagrams defined in the config file:
```bash ```bash
$ clang-uml -l clang-uml -l
The following diagrams are defined in the config file: The following diagrams are defined in the config file:
- another_diagram [sequence] - another_diagram [sequence]
- some_class_diagram [class] - some_class_diagram [class]

View File

@@ -3,10 +3,14 @@
<!-- toc --> <!-- toc -->
* [Sequence diagram overview](#sequence-diagram-overview) * [Sequence diagram overview](#sequence-diagram-overview)
* [Specifying diagram entry point](#specifying-diagram-entry-point) * [Specifying diagram location constraints](#specifying-diagram-location-constraints)
* [Grouping free functions by file](#grouping-free-functions-by-file) * [Grouping free functions by file](#grouping-free-functions-by-file)
* [Lambda expressions in sequence diagrams](#lambda-expressions-in-sequence-diagrams) * [Lambda expressions in sequence diagrams](#lambda-expressions-in-sequence-diagrams)
* [Customizing participants order](#customizing-participants-order) * [Customizing participants order](#customizing-participants-order)
* [Generating return types](#generating-return-types)
* [Generating condition statements](#generating-condition-statements)
* [Injecting call expressions manually through comments](#injecting-call-expressions-manually-through-comments)
* [Including comments in sequence diagrams](#including-comments-in-sequence-diagrams)
<!-- tocstop --> <!-- tocstop -->
@@ -15,7 +19,7 @@ The minimal config required to generate a sequence diagram is presented below:
# Path to the directory where `compile_commands.json` can be found # Path to the directory where `compile_commands.json` can be found
compilation_database_dir: _build compilation_database_dir: _build
# Output directory for the diagrams # Output directory for the diagrams
output_directory: puml output_directory: diagrams
# Diagrams definitions # Diagrams definitions
diagrams: diagrams:
# Diagram name # Diagram name
@@ -43,72 +47,108 @@ Consider the following diagram:
![extension](test_cases/t20029_sequence.svg) ![extension](test_cases/t20029_sequence.svg)
`clang-uml` generated sequence diagrams are not strictly speaking conforming to the UML specification. In order to `clang-uml` generated sequence diagrams are not strictly speaking conforming to
make them more useful for documenting modern C++ code, the following assumptions were made: the UML specification. In order to make them more useful for documenting modern
* Free functions are included in the sequence diagrams as standalone participants (in fact `clang-uml` can be used C++ code, the following assumptions were made:
to generate sequence diagrams from plain old C code). Functions can also be aggregated into file participants, * Free functions are included in the sequence diagrams as standalone
based on their place of declaration participants (in fact `clang-uml` can be used to generate sequence diagrams
* Call expressions in conditional expressions in block statements (e.g. `if` or `while`) are rendered inside the from plain old C code). Functions can also be aggregated into file
PlantUML `alt` or `loop` blocks but wrapped in `[`, `]` brackets participants, based on their place of declaration
* Lambda expressions are generated as standalone participants, whose name comprises the parent context where they * Call expressions in conditional expressions in block statements (e.g. `if`
are defined and the exact source code location or `while`) are rendered inside the PlantUML or MermaidJS `alt` or `loop`
blocks but wrapped in `[`, `]` brackets
* Lambda expressions are generated as standalone participants, whose name
comprises the parent context where they are defined and the exact source code
location
## Specifying diagram location constraints
Sequence diagrams require specification of location constraints in order to
determine, which call chains should be included in the diagram. Currently,
there are 3 types of constraints:
* `from` - will include all message call chains, which start at the
locations specified in this constraint (this was previously named
`start_from`)
* `to` - will include all message call chains, which end at the specified
locations
* `from_to` - will include all call chains, which start and end at the specified
locations
Currently, the constraints can be a method or a free function, both specified
using the full signature of the function, e.g.
## Specifying diagram entry point
Sequence diagrams require an entry point for the diagram in order to determine, at which point in the code the sequence
diagram should start. Currently, the entry point can only be a method or a free function, both specified using `start_from`
configuration property, for instance:
```yaml ```yaml
start_from: from:
- function: "main(int,char**)" - function: "main(int,const char**)"
``` ```
or or
```yaml ```yaml
start_from: to:
- function: "clanguml::sequence_diagram::visitor::translation_unit_visitor::VisitCXXRecordDecl(clang::CXXRecordDecl *)" - function: "clanguml::sequence_diagram::visitor::translation_unit_visitor::VisitCXXRecordDecl(clang::CXXRecordDecl *)"
``` ```
The entrypoints must be fully qualified and they must match exactly the string representation of given function or The locations must be fully qualified, and they must match exactly the string
method in the `clang-uml` model, which can be frustrating after few attempts. representation of a given function or method in the `clang-uml` model.
If not sure, the best way is to put anything in the `function`
property value at first, run the `clang-uml` on the diagram with verbose set to `-vvv` and look in the logs In case of the `from_to` constraint, it is necessary to provide both `from`
for the relevant function signature. At the end of the diagram generation at this verbosity level, `clang-uml` will and `to` locations as follows:
generate a textual representation of all discovered activities relevant for this diagram, for instance if you're looking ```yaml
_for exact signature of method `translation_unit_visitor::VisitCXXRecordDecl`, look for similar_ from_to:
output in the logs: - [function: "clanguml::t20034::D::d2()",
function: "clanguml::t20034::A::a2()"]
```
To find the exact function signature which, can be used as a `from` location,
run `clang-uml` as follows:
```bash ```bash
[trace] [tid 3842954] [diagram.cc:194] Sequence id=1875210076312968845: clang-uml --print-from -n main_sequence | grep main
[trace] [tid 3842954] [diagram.cc:198] Activity id=1875210076312968845, from=clanguml::sequence_diagram::visitor::translation_unit_visitor::VisitCXXRecordDecl(clang::CXXRecordDecl *):
[trace] [tid 3842954] [diagram.cc:208] Message from=clanguml::sequence_diagram::visitor::translation_unit_visitor::VisitCXXRecordDecl(clang::CXXRecordDecl *), from_id=1875210076312968845, to=__UNRESOLVABLE_ID__, to_id=0, name=, type=if
[trace] [tid 3842954] [diagram.cc:217] Message from=clanguml::sequence_diagram::visitor::translation_unit_visitor::VisitCXXRecordDecl(clang::CXXRecordDecl *), from_id=1875210076312968845, to=clanguml::sequence_diagram::visitor::translation_unit_visitor::should_include(const clang::TagDecl *), to_id=664596622746486441, name=should_include, type=call
``` ```
Then you just need to copy and paste the signature exactly and rerun `clang-uml`. or to get all possible `to` locations, run:
```bash
clang-uml --print-to -n main_sequence | grep main
```
Command line flags `--print-from` and `--print-to` will print on stdout all
functions and methods available in the diagram model, and each line of this
output can be directly used as a value of `start_from`, `from_to` or `to`
properties in the config file.
Since that list can be quite large, it's best to filter the output to limit
the number of lines to a subset of possible candidates.
## Grouping free functions by file ## Grouping free functions by file
By default, `clang-uml` will generate a new participant for each call to a free function (not method), which can lead By default, `clang-uml` will generate a new participant for each call to a free
to a very large number of participants in the diagram. If it's an issue, an option can be provided in the diagram function (not method), which can lead to a very large number of participants in
the diagram. If it's an issue, an option can be provided in the diagram
definition: definition:
```yaml ```yaml
combine_free_functions_into_file_participants: true combine_free_functions_into_file_participants: true
``` ```
which will aggregate free functions per source file where they were declared thus minimizing the
diagram size. An example of such diagram is presented below: which will aggregate free functions per source file where they were declared
thus minimizing the diagram size. An example of such diagram is presented below:
![extension](test_cases/t20017_sequence.svg) ![extension](test_cases/t20017_sequence.svg)
## Lambda expressions in sequence diagrams ## Lambda expressions in sequence diagrams
Lambda expressions in sequence diagrams are... tricky. There is currently tentative support, which follows the Lambda expressions in sequence diagrams are... tricky. There is currently
following rules: tentative support, which follows the following rules:
* If lambda expression is called within the scope of the diagram, the calls from the lambda will be placed * If lambda expression is called within the scope of the diagram, the calls
at the lambda invocation and not declaration from the lambda will be placed at the lambda invocation and not declaration
* If lambda expression is passed to some function or method, which is outside the scope of the diagram * If lambda expression is passed to some function or method, which is outside
(e.g. used in `std::transform` call) the call will be generated at the point where lambda is passed as parameter the scope of the diagram (e.g. used in `std::transform` call) the call will
* If the lambda is passed as template parameter in instantiation it will not be generated at the moment at all not be generated
* If the lambda is passed as template parameter in instantiation it will not
be generated
Another issue is the naming of lambda participants. Currently, each lambda is rendered in the diagram as a separate Another issue is the naming of lambda participants. Currently, each lambda is
class whose name is composed of the lambda location in the code (the only unique way of identifying lambdas I was able rendered in the diagram as a separate class whose name is composed of the lambda
location in the code (the only unique way of identifying lambdas I was able
to find). For example the following code: to find). For example the following code:
```cpp ```cpp
#include <algorithm> #include <algorithm>
#include <functional> #include <functional>
@@ -208,39 +248,129 @@ void tmain()
} }
``` ```
generates the following diagram: results in the following diagram:
![extension](test_cases/t20012_sequence.svg) ![extension](test_cases/t20012_sequence.svg)
## Customizing participants order ## Customizing participants order
The default participant order in the sequence diagram can be suboptimal in the sense that consecutive calls The default participant order in the sequence diagram can be suboptimal in the
can go right, then left, then right again depending on the specific call chain in the code. It is however sense that consecutive calls can go right, then left, then right again
possible to override this order in the diagram definition using `participants_order` property, depending on the specific call chain in the code. It is however possible to
for instance like this test case: override this order in the diagram definition using `participants_order`
property, for instance like this test case:
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t20029_sequence: t20029_sequence:
type: sequence type: sequence
glob: glob:
- ../../tests/t20029/t20029.cc - t20029.cc
include: include:
namespaces: namespaces:
- clanguml::t20029 - clanguml::t20029
exclude: exclude:
access: access:
- private - private
using_namespace: using_namespace: clanguml::t20029
- clanguml::t20029
start_from: start_from:
- function: clanguml::t20029::tmain() - function: clanguml::t20029::tmain()
participants_order: participants_order:
- clanguml::t20029::tmain() - "clanguml::t20029::tmain()"
- clanguml::t20029::Encoder<clanguml::t20029::Retrier<clanguml::t20029::ConnectionPool>> - "clanguml::t20029::Encoder<clanguml::t20029::Retrier<clanguml::t20029::ConnectionPool>>"
- clanguml::t20029::Retrier<clanguml::t20029::ConnectionPool> - "clanguml::t20029::Retrier<clanguml::t20029::ConnectionPool>"
- clanguml::t20029::ConnectionPool - "clanguml::t20029::ConnectionPool"
- clanguml::t20029::encode_b64(std::string &&) - "clanguml::t20029::encode_b64(std::string &&)"
``` ```
## Generating return types
By default, return messages do not contain the return type information from
the function or method. Instead, if the result is void there is no return
arrow from the activity representing the function body.
It is however possible to enable rendering of return types, by adding the
following configuration option:
```yaml
generate_return_types: true
```
This option only affects the `plantuml` and `mermaid` generators, in `json`
generator `return_type` property is always present in the message nodes.
The diagram below presents what it looks like in a PlantUML generated diagram:
![extension](test_cases/t20032_sequence.svg)
## Generating condition statements
Sometimes, it is useful to include actual condition statements (for instance
contents of the `if()` condition in the `alt` or `loop` blocks in the sequence
diagrams, to make them more readable.
This can be enabled using the following option:
```yaml
generate_condition_statements: true
```
An example of a diagram with this feature enabled is presented below:
![extension](test_cases/t20033_sequence.svg)
## Injecting call expressions manually through comments
In some cases, `clang-uml` is not yet able to discover a call expression target
in some line of code. This can include passing function or method address to
some executor (e.g. thread), async calls etc.
However, a call expression can be injected manually through a comment
directive
```cpp
// \uml{note CALLEE}
```
It should be placed in the comment just before such line of code, for example:
```cpp
// \uml{call clanguml::t20038::B::bbb()}
auto bbb_future = std::async(std::launch::deferred, &B::bbb, b);
```
also see the [t20038](test_cases/t20038.md) test case.
Please note that the callee must have fully qualified name including complete
namespace.
In order to enable this, the `.clang-uml` must contain the following option:
```yaml
add_compile_flags:
- -fparse-all-comments
```
otherwise Clang will skip these comments during AST traversal.
## Including comments in sequence diagrams
`clang-uml` can add code comments placed directly before or next to a call
expression as notes in the diagram (see for instance
[t20038](test_cases/t20038_sequence.svg)).
This however is not enabled by default. In order to enable this feature it is
necessary to first of all force Clang to parse all comments in the source
code by adding the following compile flag at the top of `.clang-uml`:
```yaml
add_compile_flags:
- -fparse-all-comments
```
or adding it to the `compile_commands.json` database somehow directly.
Another option needed to generate these comments in the diagram is to set
```yaml
generate_message_comments: true
```
for each sequence diagram, which should include these comments.
In case only selected messages should have some specific comments, instead
of enabling the `generate_message_comments` option, it is possible to use
`\uml{note TEXT}` directive in the comment above the expression, see
[t20001](test_cases/t20001_sequence.svg).

View File

@@ -1,7 +1,13 @@
# Test cases index # Test cases index
* [Class diagrams](#class-diagrams)
* [Sequence diagrams](#sequence-diagrams)
* [Package diagrams](#package-diagrams)
* [Include diagrams](#include-diagrams)
* [Configuration diagrams](#configuration-diagrams)
## Class diagrams ## Class diagrams
* [t00002](./test_cases/t00002.md) - Basic class inheritance * [t00002](./test_cases/t00002.md) - Basic class inheritance
* [t00003](./test_cases/t00003.md) - Class field and methods * [t00003](./test_cases/t00003.md) - Class fields and methods
* [t00004](./test_cases/t00004.md) - Nested classes and enums * [t00004](./test_cases/t00004.md) - Nested classes and enums
* [t00005](./test_cases/t00005.md) - Basic class field relationships * [t00005](./test_cases/t00005.md) - Basic class field relationships
* [t00006](./test_cases/t00006.md) - Class field relationships inferred from templates * [t00006](./test_cases/t00006.md) - Class field relationships inferred from templates
@@ -62,6 +68,15 @@
* [t00061](./test_cases/t00061.md) - Paths diagram filter test case * [t00061](./test_cases/t00061.md) - Paths diagram filter test case
* [t00062](./test_cases/t00062.md) - Template specialization matching based on deduced context * [t00062](./test_cases/t00062.md) - Template specialization matching based on deduced context
* [t00063](./test_cases/t00063.md) - Element types diagram filter test case * [t00063](./test_cases/t00063.md) - Element types diagram filter test case
* [t00064](./test_cases/t00064.md) - Template type list test case
* [t00065](./test_cases/t00065.md) - Class diagram with packages from directory structure
* [t00066](./test_cases/t00066.md) - Class fields and methods without grouping and sorting
* [t00067](./test_cases/t00067.md) - Class method type filter test case
* [t00068](./test_cases/t00068.md) - Context filter radius parameter test case
* [t00069](./test_cases/t00069.md) - Coroutine methods in class diagrams
* [t00070](./test_cases/t00070.md) - Diagram filter based on C++20 modules
* [t00071](./test_cases/t00071.md) - Class diagram with C++20 modules generated as packages
* [t00072](./test_cases/t00072.md) - Class diagram with C++20 module partitions generated as packages
## Sequence diagrams ## Sequence diagrams
* [t20001](./test_cases/t20001.md) - Basic sequence diagram test case * [t20001](./test_cases/t20001.md) - Basic sequence diagram test case
* [t20002](./test_cases/t20002.md) - Free function sequence diagram test case * [t20002](./test_cases/t20002.md) - Free function sequence diagram test case
@@ -92,6 +107,16 @@
* [t20027](./test_cases/t20027.md) - Filter call expressions based on access test case * [t20027](./test_cases/t20027.md) - Filter call expressions based on access test case
* [t20028](./test_cases/t20028.md) - Conditional (ternary) '?:' operator test case * [t20028](./test_cases/t20028.md) - Conditional (ternary) '?:' operator test case
* [t20029](./test_cases/t20029.md) - Combined feature sequence diagram test case * [t20029](./test_cases/t20029.md) - Combined feature sequence diagram test case
* [t20030](./test_cases/t20030.md) - Constructor and operator call test case
* [t20031](./test_cases/t20031.md) - Callee type sequence diagram filter test case
* [t20032](./test_cases/t20032.md) - Return type generation option sequence diagram test case
* [t20033](./test_cases/t20033.md) - Control statement text in sequence diagram test case
* [t20034](./test_cases/t20034.md) - Test case for rendering all call chains from one activity to another (from_to)
* [t20035](./test_cases/t20035.md) - from_to sequence diagram test case with free functions
* [t20036](./test_cases/t20036.md) - Test case for rendering all call chains leading to an activity (to)
* [t20037](./test_cases/t20037.md) - Test case checking if activities in static variable declarations appear only once
* [t20038](./test_cases/t20038.md) - Sequence diagram comment decorator test case
* [t20039](./test_cases/t20039.md) - Test case for type aliases config option in sequence diagrams
## Package diagrams ## Package diagrams
* [t30001](./test_cases/t30001.md) - Basic package diagram test case * [t30001](./test_cases/t30001.md) - Basic package diagram test case
* [t30002](./test_cases/t30002.md) - Package dependency test case * [t30002](./test_cases/t30002.md) - Package dependency test case
@@ -102,6 +127,12 @@
* [t30007](./test_cases/t30007.md) - Package diagram layout hints test case * [t30007](./test_cases/t30007.md) - Package diagram layout hints test case
* [t30008](./test_cases/t30008.md) - Dependants and dependencies package diagram filter test * [t30008](./test_cases/t30008.md) - Dependants and dependencies package diagram filter test
* [t30009](./test_cases/t30009.md) - Together layout hint test * [t30009](./test_cases/t30009.md) - Together layout hint test
* [t30010](./test_cases/t30010.md) - Package diagram with packages from directory structure
* [t30011](./test_cases/t30011.md) - Package diagram with packages from directory structure for plain C
* [t30012](./test_cases/t30012.md) - C++20 modules package diagram test
* [t30013](./test_cases/t30013.md) - C++20 modules package dependencies diagram test
* [t30014](./test_cases/t30014.md) - C++20 modules package diagram test with partitions
* [t30015](./test_cases/t30015.md) - C++20 modules package diagram test with partition dependencies
## Include diagrams ## Include diagrams
* [t40001](./test_cases/t40001.md) - Basic include graph diagram test case * [t40001](./test_cases/t40001.md) - Basic include graph diagram test case
* [t40002](./test_cases/t40002.md) - Cyclic include graph diagram test case * [t40002](./test_cases/t40002.md) - Cyclic include graph diagram test case

View File

@@ -1,16 +1,14 @@
# t00002 - Basic class inheritance # t00002 - Basic class inheritance
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00002_class: t00002_class:
type: class type: class
title: Basic class diagram example
glob: glob:
- ../../tests/t00002/t00002.cc - t00002.cc
comment_parser: clang comment_parser: clang
using_namespace: using_namespace: clanguml::t00002
- clanguml::t00002
include: include:
namespaces: namespaces:
- clanguml::t00002 - clanguml::t00002
@@ -22,9 +20,14 @@ diagrams:
note right of {{ alias("D") }} note right of {{ alias("D") }}
{{ comment("D").text }} {{ comment("D").text }}
end note end note
mermaid:
after:
- '{% set e=element("A") %} note for {{ e.alias }} "{{ trim(e.comment.brief.0) }}"'
- '{% set e=element("clanguml::t00002::B") %} note for {{ e.alias }} "{{ trim(e.comment.brief.0) }}"'
- 'note for {{ alias("D") }} "{{ comment("D").text }}"'
``` ```
## Source code ## Source code
File t00002.cc File `tests/t00002/t00002.cc`
```cpp ```cpp
#include <vector> #include <vector>
@@ -114,8 +117,10 @@ private:
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00002_class](./t00002_class.svg "Basic class inheritance") ![t00002_class](./t00002_class.svg "Basic class inheritance")
## Generated Mermaid diagrams
![t00002_class](./t00002_class_mermaid.svg "Basic class inheritance")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -134,7 +139,7 @@ private:
"raw": "/// \\brief This is class A", "raw": "/// \\brief This is class A",
"text": "\n \n" "text": "\n \n"
}, },
"display_name": "clanguml::t00002::A", "display_name": "A",
"id": "987634239855407298", "id": "987634239855407298",
"is_abstract": true, "is_abstract": true,
"is_nested": false, "is_nested": false,
@@ -154,13 +159,27 @@ private:
"text": "\n Abstract foo_a\n" "text": "\n Abstract foo_a\n"
}, },
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": true, "is_pure_virtual": true,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_a", "name": "foo_a",
"parameters": [], "parameters": [],
"source_location": {
"column": 18,
"file": "t00002.cc",
"line": 10,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
}, },
{ {
@@ -174,21 +193,37 @@ private:
"text": "\n Abstract foo_c\n" "text": "\n Abstract foo_c\n"
}, },
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": true, "is_pure_virtual": true,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_c", "name": "foo_c",
"parameters": [], "parameters": [],
"source_location": {
"column": 18,
"file": "t00002.cc",
"line": 12,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "A", "name": "A",
"namespace": "clanguml::t00002", "namespace": "clanguml::t00002",
"source_location": { "source_location": {
"file": "../../tests/t00002/t00002.cc", "column": 7,
"line": 7 "file": "t00002.cc",
"line": 7,
"translation_unit": "t00002.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -213,7 +248,7 @@ private:
"raw": "/// \\brief This is class B", "raw": "/// \\brief This is class B",
"text": "\n \n" "text": "\n \n"
}, },
"display_name": "clanguml::t00002::B", "display_name": "B",
"id": "594234458687375950", "id": "594234458687375950",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -225,21 +260,37 @@ private:
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_a", "name": "foo_a",
"parameters": [], "parameters": [],
"source_location": {
"column": 18,
"file": "t00002.cc",
"line": 18,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "B", "name": "B",
"namespace": "clanguml::t00002", "namespace": "clanguml::t00002",
"source_location": { "source_location": {
"file": "../../tests/t00002/t00002.cc", "column": 7,
"line": 16 "file": "t00002.cc",
"line": 16,
"translation_unit": "t00002.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -265,7 +316,7 @@ private:
"raw": "/// @brief This is class C - class C has a long comment\n///\n/// Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit,\n/// euismod libero facilisi aptent elementum felis blandit cursus gravida sociis\n/// erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est\n/// ad.", "raw": "/// @brief This is class C - class C has a long comment\n///\n/// Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit,\n/// euismod libero facilisi aptent elementum felis blandit cursus gravida sociis\n/// erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est\n/// ad.",
"text": "\n \n\n Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit,\n euismod libero facilisi aptent elementum felis blandit cursus gravida sociis\n erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est\n ad.\n" "text": "\n \n\n Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit,\n euismod libero facilisi aptent elementum felis blandit cursus gravida sociis\n erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est\n ad.\n"
}, },
"display_name": "clanguml::t00002::C", "display_name": "C",
"id": "1142499429598587507", "id": "1142499429598587507",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -285,21 +336,37 @@ private:
"text": "\n Do nothing unless override is provided\n" "text": "\n Do nothing unless override is provided\n"
}, },
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_c", "name": "foo_c",
"parameters": [], "parameters": [],
"source_location": {
"column": 18,
"file": "t00002.cc",
"line": 30,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "C", "name": "C",
"namespace": "clanguml::t00002", "namespace": "clanguml::t00002",
"source_location": { "source_location": {
"file": "../../tests/t00002/t00002.cc", "column": 7,
"line": 27 "file": "t00002.cc",
"line": 27,
"translation_unit": "t00002.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -327,7 +394,7 @@ private:
"raw": "/// This is class D\n/// which is a little like B\n/// and a little like C", "raw": "/// This is class D\n/// which is a little like B\n/// and a little like C",
"text": "\n This is class D\n which is a little like B\n and a little like C\n" "text": "\n This is class D\n which is a little like B\n and a little like C\n"
}, },
"display_name": "clanguml::t00002::D", "display_name": "D",
"id": "60950494980414724", "id": "60950494980414724",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -348,8 +415,10 @@ private:
"is_static": false, "is_static": false,
"name": "as", "name": "as",
"source_location": { "source_location": {
"file": "../../tests/t00002/t00002.cc", "column": 22,
"line": 58 "file": "t00002.cc",
"line": 58,
"translation_unit": "t00002.cc"
}, },
"type": "std::vector<A *>" "type": "std::vector<A *>"
} }
@@ -366,13 +435,27 @@ private:
"text": "\n Forward foo_a\n" "text": "\n Forward foo_a\n"
}, },
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_a", "name": "foo_a",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00002.cc",
"line": 41,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
}, },
{ {
@@ -386,21 +469,37 @@ private:
"text": "\n Forward foo_c\n" "text": "\n Forward foo_c\n"
}, },
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_c", "name": "foo_c",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00002.cc",
"line": 50,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "D", "name": "D",
"namespace": "clanguml::t00002", "namespace": "clanguml::t00002",
"source_location": { "source_location": {
"file": "../../tests/t00002/t00002.cc", "column": 7,
"line": 36 "file": "t00002.cc",
"line": 36,
"translation_unit": "t00002.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -420,7 +519,7 @@ private:
"name": "clanguml::t00002::C" "name": "clanguml::t00002::C"
} }
], ],
"display_name": "clanguml::t00002::E", "display_name": "E",
"id": "2237886670308966220", "id": "2237886670308966220",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -441,8 +540,10 @@ private:
"is_static": false, "is_static": false,
"name": "as", "name": "as",
"source_location": { "source_location": {
"file": "../../tests/t00002/t00002.cc", "column": 22,
"line": 83 "file": "t00002.cc",
"line": 83,
"translation_unit": "t00002.cc"
}, },
"type": "std::vector<A *>" "type": "std::vector<A *>"
} }
@@ -459,13 +560,27 @@ private:
"text": "\n Forward foo_a\n" "text": "\n Forward foo_a\n"
}, },
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_a", "name": "foo_a",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00002.cc",
"line": 66,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
}, },
{ {
@@ -479,32 +594,44 @@ private:
"text": "\n Forward foo_c\n" "text": "\n Forward foo_c\n"
}, },
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": true, "is_virtual": true,
"name": "foo_c", "name": "foo_c",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00002.cc",
"line": 75,
"translation_unit": "t00002.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "E", "name": "E",
"namespace": "clanguml::t00002", "namespace": "clanguml::t00002",
"source_location": { "source_location": {
"file": "../../tests/t00002/t00002.cc", "column": 7,
"line": 61 "file": "t00002.cc",
"line": 61,
"translation_unit": "t00002.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00002_class", "name": "t00002_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",
@@ -557,6 +684,7 @@ private:
"type": "extension" "type": "extension"
} }
], ],
"title": "Basic class diagram example",
"using_namespace": "clanguml::t00002" "using_namespace": "clanguml::t00002"
} }
``` ```

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="362px" preserveAspectRatio="none" style="width:562px;height:362px;" version="1.1" viewBox="0 0 562 362" width="562px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="383px" preserveAspectRatio="none" style="width:562px;height:383px;" version="1.1" viewBox="0 0 562 383" width="562px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="fevt31xth4vyw" width="300%" x="-1" y="-1"> <filter height="300%" id="fcvdqjj6u7ehx" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,108 +9,149 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L7" target="_top" title="This is class A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L7" xlink:show="new" xlink:title="This is class A" xlink:type="simple"> <text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="250" x="160" y="16.708">Basic class diagram example</text>
<rect fill="#FEFECE" filter="url(#fevt31xth4vyw)" height="73.6094" id="C_0000987634239855407298" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="294" y="8"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L7" target="_top" title="This is class A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L7" xlink:show="new" xlink:title="This is class A" xlink:type="simple">
<ellipse cx="348.25" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" filter="url(#fcvdqjj6u7ehx)" height="73.6094" id="C_0000987634239855407298" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="294" y="28.9531"/>
<path d="M348.3594,19.3438 L347.2031,24.4219 L349.5313,24.4219 L348.3594,19.3438 Z M346.875,17.1094 L349.8594,17.1094 L353.2188,29.5 L350.7656,29.5 L350,26.4375 L346.7188,26.4375 L345.9688,29.5 L343.5313,29.5 L346.875,17.1094 Z "/> <ellipse cx="348.25" cy="44.9531" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="368.75" y="28.1543">A</text> <path d="M348.3594,40.2969 L347.2031,45.375 L349.5313,45.375 L348.3594,40.2969 Z M346.875,38.0625 L349.8594,38.0625 L353.2188,50.4531 L350.7656,50.4531 L350,47.3906 L346.7188,47.3906 L345.9688,50.4531 L343.5313,50.4531 L346.875,38.0625 Z "/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="295" x2="418" y1="40" y2="40"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="368.75" y="49.1074">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="295" x2="418" y1="48" y2="48"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="295" x2="418" y1="60.9531" y2="60.9531"/>
<ellipse cx="305" cy="59" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="99" x="314" y="62.2104">foo_a() = 0 : void</text>
<ellipse cx="305" cy="71.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="98" x="314" y="75.0151">foo_c() = 0 : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L16" target="_top" title="This is class B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L16" xlink:show="new" xlink:title="This is class B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L10" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L10" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fevt31xth4vyw)" height="60.8047" id="C_0000594234458687375950" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="69.5" y="143"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="300" y="66.9531"/>
<ellipse cx="111.5" cy="159" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="305" cy="71.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<path d="M114.4688,164.6406 Q113.8906,164.9375 113.25,165.0781 Q112.6094,165.2344 111.9063,165.2344 Q109.4063,165.2344 108.0781,163.5938 Q106.7656,161.9375 106.7656,158.8125 Q106.7656,155.6875 108.0781,154.0313 Q109.4063,152.375 111.9063,152.375 Q112.6094,152.375 113.25,152.5313 Q113.9063,152.6875 114.4688,152.9844 L114.4688,155.7031 Q113.8438,155.125 113.25,154.8594 Q112.6563,154.5781 112.0313,154.5781 Q110.6875,154.5781 110,155.6563 Q109.3125,156.7188 109.3125,158.8125 Q109.3125,160.9063 110,161.9844 Q110.6875,163.0469 112.0313,163.0469 Q112.6563,163.0469 113.25,162.7813 Q113.8438,162.5 114.4688,161.9219 L114.4688,164.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="131.5" y="163.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="70.5" x2="168.5" y1="175" y2="175"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="70.5" x2="168.5" y1="183" y2="183"/>
<ellipse cx="80.5" cy="194" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="89.5" y="197.2104">foo_a() : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L27" target="_top" title="This is class C - class C has a long comment" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L27" xlink:show="new" xlink:title="This is class C - class C has a long comment" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L10" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L10" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fevt31xth4vyw)" height="60.8047" id="C_0001142499429598587507" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="307" y="143"/> <text fill="#000000" font-family="sans-serif" font-size="11" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="99" x="314" y="75.1636">foo_a() = 0 : void</text>
<ellipse cx="348.55" cy="159" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M351.5188,164.6406 Q350.9406,164.9375 350.3,165.0781 Q349.6594,165.2344 348.9563,165.2344 Q346.4563,165.2344 345.1281,163.5938 Q343.8156,161.9375 343.8156,158.8125 Q343.8156,155.6875 345.1281,154.0313 Q346.4563,152.375 348.9563,152.375 Q349.6594,152.375 350.3,152.5313 Q350.9563,152.6875 351.5188,152.9844 L351.5188,155.7031 Q350.8938,155.125 350.3,154.8594 Q349.7063,154.5781 349.0813,154.5781 Q347.7375,154.5781 347.05,155.6563 Q346.3625,156.7188 346.3625,158.8125 Q346.3625,160.9063 347.05,161.9844 Q347.7375,163.0469 349.0813,163.0469 Q349.7063,163.0469 350.3,162.7813 Q350.8938,162.5 351.5188,161.9219 L351.5188,164.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="368.45" y="163.1543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="308" x2="405" y1="175" y2="175"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="308" x2="405" y1="183" y2="183"/>
<ellipse cx="318" cy="194" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="327" y="197.2104">foo_c() : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L36" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L36" xlink:show="new" xlink:title="D" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L12" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L12" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fevt31xth4vyw)" height="86.4141" id="C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="33.5" y="265"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="300" y="79.7578"/>
<ellipse cx="98.75" cy="281" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="305" cy="84.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<path d="M101.7188,286.6406 Q101.1406,286.9375 100.5,287.0781 Q99.8594,287.2344 99.1563,287.2344 Q96.6563,287.2344 95.3281,285.5938 Q94.0156,283.9375 94.0156,280.8125 Q94.0156,277.6875 95.3281,276.0313 Q96.6563,274.375 99.1563,274.375 Q99.8594,274.375 100.5,274.5313 Q101.1563,274.6875 101.7188,274.9844 L101.7188,277.7031 Q101.0938,277.125 100.5,276.8594 Q99.9063,276.5781 99.2813,276.5781 Q97.9375,276.5781 97.25,277.6563 Q96.5625,278.7188 96.5625,280.8125 Q96.5625,282.9063 97.25,283.9844 Q97.9375,285.0469 99.2813,285.0469 Q99.9063,285.0469 100.5,284.7813 Q101.0938,284.5 101.7188,283.9219 L101.7188,286.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="119.25" y="285.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="34.5" x2="180.5" y1="297" y2="297"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L58" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="as" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L12" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L12" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="39.5" y="303"/> <text fill="#000000" font-family="sans-serif" font-size="11" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="98" x="314" y="87.9683">foo_c() = 0 : void</text>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="41.5" y="305"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L58" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="as" xlink:type="simple"> <line style="stroke: #A80036; stroke-width: 1.5;" x1="295" x2="418" y1="94.5625" y2="94.5625"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="53.5" y="311.2104">as : std::vector&lt;A *&gt;</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L16" target="_top" title="This is class B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L16" xlink:show="new" xlink:title="This is class B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fcvdqjj6u7ehx)" height="60.8047" id="C_0000594234458687375950" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="69.5" y="163.9531"/>
<ellipse cx="111.5" cy="179.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M114.4688,185.5938 Q113.8906,185.8906 113.25,186.0313 Q112.6094,186.1875 111.9063,186.1875 Q109.4063,186.1875 108.0781,184.5469 Q106.7656,182.8906 106.7656,179.7656 Q106.7656,176.6406 108.0781,174.9844 Q109.4063,173.3281 111.9063,173.3281 Q112.6094,173.3281 113.25,173.4844 Q113.9063,173.6406 114.4688,173.9375 L114.4688,176.6563 Q113.8438,176.0781 113.25,175.8125 Q112.6563,175.5313 112.0313,175.5313 Q110.6875,175.5313 110,176.6094 Q109.3125,177.6719 109.3125,179.7656 Q109.3125,181.8594 110,182.9375 Q110.6875,184 112.0313,184 Q112.6563,184 113.25,183.7344 Q113.8438,183.4531 114.4688,182.875 L114.4688,185.5938 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="131.5" y="184.1074">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="70.5" x2="168.5" y1="195.9531" y2="195.9531"/>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="34.5" x2="180.5" y1="317.8047" y2="317.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L18" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L18" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<ellipse cx="44.5" cy="328.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="75.5" y="201.9531"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="53.5" y="332.0151">foo_a() : void</text> <ellipse cx="80.5" cy="206.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<ellipse cx="44.5" cy="341.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="53.5" y="344.8198">foo_c() : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L61" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L61" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fevt31xth4vyw)" height="86.4141" id="C_0002237886670308966220" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="403.5" y="265"/>
<ellipse cx="469.25" cy="281" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M472.2188,286.6406 Q471.6406,286.9375 471,287.0781 Q470.3594,287.2344 469.6563,287.2344 Q467.1563,287.2344 465.8281,285.5938 Q464.5156,283.9375 464.5156,280.8125 Q464.5156,277.6875 465.8281,276.0313 Q467.1563,274.375 469.6563,274.375 Q470.3594,274.375 471,274.5313 Q471.6563,274.6875 472.2188,274.9844 L472.2188,277.7031 Q471.5938,277.125 471,276.8594 Q470.4063,276.5781 469.7813,276.5781 Q468.4375,276.5781 467.75,277.6563 Q467.0625,278.7188 467.0625,280.8125 Q467.0625,282.9063 467.75,283.9844 Q468.4375,285.0469 469.7813,285.0469 Q470.4063,285.0469 471,284.7813 Q471.5938,284.5 472.2188,283.9219 L472.2188,286.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="489.75" y="285.1543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="404.5" x2="550.5" y1="297" y2="297"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L83" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L83" xlink:show="new" xlink:title="as" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L18" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L18" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="409.5" y="303"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="89.5" y="210.1636">foo_a() : void</text>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="411.5" y="305"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L83" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00002/t00002.cc#L83" xlink:show="new" xlink:title="as" xlink:type="simple"> <line style="stroke: #A80036; stroke-width: 1.5;" x1="70.5" x2="168.5" y1="216.7578" y2="216.7578"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="423.5" y="311.2104">as : std::vector&lt;A *&gt;</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L27" target="_top" title="This is class C - class C has a long comment" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L27" xlink:show="new" xlink:title="This is class C - class C has a long comment" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fcvdqjj6u7ehx)" height="60.8047" id="C_0001142499429598587507" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="307" y="163.9531"/>
<ellipse cx="348.55" cy="179.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M351.5188,185.5938 Q350.9406,185.8906 350.3,186.0313 Q349.6594,186.1875 348.9563,186.1875 Q346.4563,186.1875 345.1281,184.5469 Q343.8156,182.8906 343.8156,179.7656 Q343.8156,176.6406 345.1281,174.9844 Q346.4563,173.3281 348.9563,173.3281 Q349.6594,173.3281 350.3,173.4844 Q350.9563,173.6406 351.5188,173.9375 L351.5188,176.6563 Q350.8938,176.0781 350.3,175.8125 Q349.7063,175.5313 349.0813,175.5313 Q347.7375,175.5313 347.05,176.6094 Q346.3625,177.6719 346.3625,179.7656 Q346.3625,181.8594 347.05,182.9375 Q347.7375,184 349.0813,184 Q349.7063,184 350.3,183.7344 Q350.8938,183.4531 351.5188,182.875 L351.5188,185.5938 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="368.45" y="184.1074">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="308" x2="405" y1="195.9531" y2="195.9531"/>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="404.5" x2="550.5" y1="317.8047" y2="317.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L30" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L30" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<ellipse cx="414.5" cy="328.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="313" y="201.9531"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="423.5" y="332.0151">foo_a() : void</text> <ellipse cx="318" cy="206.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<ellipse cx="414.5" cy="341.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> </a>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="423.5" y="344.8198">foo_c() : void</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L30" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L30" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<path d="M150,32.5 L150,57.6328 A0,0 0 0 0 150,57.6328 L259,57.6328 A0,0 0 0 0 259,57.6328 L259,50.5 L293.74,45 L259,42.5 L259,42.5 L249,32.5 L150,32.5 A0,0 0 0 0 150,32.5 " fill="#FBFB77" filter="url(#fevt31xth4vyw)" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="327" y="210.1636">foo_c() : void</text>
<path d="M249,32.5 L249,42.5 L259,42.5 L249,32.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="156" y="49.5669">This is class A</text> <line style="stroke: #A80036; stroke-width: 1.5;" x1="308" x2="405" y1="216.7578" y2="216.7578"/>
<path d="M6,32.5 L6,57.6328 A0,0 0 0 0 6,57.6328 L61.94,57.6328 L105.69,142.88 L69.94,57.6328 L115,57.6328 A0,0 0 0 0 115,57.6328 L115,42.5 L105,32.5 L6,32.5 A0,0 0 0 0 6,32.5 " fill="#FBFB77" filter="url(#fevt31xth4vyw)" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L36" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L36" xlink:show="new" xlink:title="D" xlink:type="simple">
<path d="M105,32.5 L105,42.5 L115,42.5 L105,32.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" filter="url(#fcvdqjj6u7ehx)" height="86.4141" id="C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="33.5" y="285.9531"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="12" y="49.5669">This is class B</text> <ellipse cx="98.75" cy="301.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M217,265 L217,304 L181.57,308 L217,312 L217,350.6641 A0,0 0 0 0 217,350.6641 L368,350.6641 A0,0 0 0 0 368,350.6641 L368,275 L358,265 L217,265 A0,0 0 0 0 217,265 " fill="#FBFB77" filter="url(#fevt31xth4vyw)" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M101.7188,307.5938 Q101.1406,307.8906 100.5,308.0313 Q99.8594,308.1875 99.1563,308.1875 Q96.6563,308.1875 95.3281,306.5469 Q94.0156,304.8906 94.0156,301.7656 Q94.0156,298.6406 95.3281,296.9844 Q96.6563,295.3281 99.1563,295.3281 Q99.8594,295.3281 100.5,295.4844 Q101.1563,295.6406 101.7188,295.9375 L101.7188,298.6563 Q101.0938,298.0781 100.5,297.8125 Q99.9063,297.5313 99.2813,297.5313 Q97.9375,297.5313 97.25,298.6094 Q96.5625,299.6719 96.5625,301.7656 Q96.5625,303.8594 97.25,304.9375 Q97.9375,306 99.2813,306 Q99.9063,306 100.5,305.7344 Q101.0938,305.4531 101.7188,304.875 L101.7188,307.5938 Z "/>
<path d="M358,265 L358,275 L368,275 L358,265 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="119.25" y="306.1074">D</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="235" y="282.0669"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="34.5" x2="180.5" y1="317.9531" y2="317.9531"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="223" y="297.1997">This is class D</text> </a>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="130" x="223" y="312.3325">which is a little like B</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L41" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L41" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="223" y="327.4653">and a little like C</text> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="39.5" y="323.9531"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="227" y="342.5981"/> <ellipse cx="44.5" cy="328.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<path d="M275.32,82.96 C250.75,94.38 227.18,105.62 215.5,112 C198.38,121.35 180.15,132.52 164.22,142.7 " fill="none" id="C_0000987634239855407298&lt;-C_0000594234458687375950" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<polygon fill="none" points="272.59,76.51,293.68,74.48,278.46,89.22,272.59,76.51" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L41" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L41" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<path d="M356.5,102.55 C356.5,116.38 356.5,130.64 356.5,142.64 " fill="none" id="C_0000987634239855407298&lt;-C_0001142499429598587507" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="53.5" y="332.1636">foo_a() : void</text>
<polygon fill="none" points="349.5,102.25,356.5,82.25,363.5,102.25,349.5,102.25" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<path d="M146.15,264.89 C176.88,231.57 221.11,183.99 260.5,143 C278.66,124.1 299.06,103.42 316.36,86.03 " fill="none" id="C_0000060950494980414724-&gt;C_0000987634239855407298" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L50" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L50" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<polygon fill="#A80036" points="320.23,82.14,311.0448,85.6941,316.7016,85.6827,316.713,91.3395,320.23,82.14" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="39.5" y="336.7578"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="263.5" y="171.0664"/> <ellipse cx="44.5" cy="341.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="15" x="273.5" y="178.0669">as</text> </a>
<path d="M114.96,224.61 C113.76,237.85 112.48,252.02 111.32,264.8 " fill="none" id="C_0000594234458687375950&lt;-C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L50" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L50" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<polygon fill="none" points="108.03,223.52,116.81,204.24,121.97,224.79,108.03,223.52" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="53.5" y="344.9683">foo_c() : void</text>
<path d="M299.39,215.54 C288.99,222.37 278.07,229.14 267.5,235 C238.61,251.02 229.64,251.47 199.5,265 C193.73,267.59 187.77,270.28 181.78,272.99 " fill="none" id="C_0001142499429598587507&lt;-C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<polygon fill="none" points="295.79,209.52,316.28,204.12,303.64,221.12,295.79,209.52" style="stroke: #A80036; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="34.5" x2="180.5" y1="351.5625" y2="351.5625"/>
<path d="M467.23,264.93 C458.11,231.01 443.18,182.59 423.5,143 C413.76,123.4 400.46,103.25 388.29,86.43 " fill="none" id="C_0002237886670308966220-&gt;C_0000987634239855407298" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L58" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="as" xlink:type="simple">
<polygon fill="#A80036" points="385.22,82.23,387.3048,91.8557,388.1719,86.2656,393.7619,87.1327,385.22,82.23" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="39.5" y="357.5625"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="451.5" y="171.0664"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="41.5" y="359.5625"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="15" x="461.5" y="178.0669">as</text> </a>
<path d="M188.64,200.51 C191.97,201.7 195.27,202.87 198.5,204 C281.02,232.85 304.05,233.24 385.5,265 C391.39,267.3 397.44,269.78 403.49,272.35 " fill="none" id="C_0000594234458687375950&lt;-C_0002237886670308966220" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L58" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="as" xlink:type="simple">
<polygon fill="none" points="185.93,206.97,169.53,193.55,190.72,193.82,185.93,206.97" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="53.5" y="365.7729">as : std::vector&lt;A *&gt;</text>
<path d="M397.5,219.39 C410.91,234.08 425.74,250.33 438.96,264.8 " fill="none" id="C_0001142499429598587507&lt;-C_0002237886670308966220" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<polygon fill="none" points="391.97,223.72,383.65,204.24,402.31,214.28,391.97,223.72" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L61" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L61" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fcvdqjj6u7ehx)" height="86.4141" id="C_0002237886670308966220" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="403.5" y="285.9531"/>
<ellipse cx="469.25" cy="301.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M472.2188,307.5938 Q471.6406,307.8906 471,308.0313 Q470.3594,308.1875 469.6563,308.1875 Q467.1563,308.1875 465.8281,306.5469 Q464.5156,304.8906 464.5156,301.7656 Q464.5156,298.6406 465.8281,296.9844 Q467.1563,295.3281 469.6563,295.3281 Q470.3594,295.3281 471,295.4844 Q471.6563,295.6406 472.2188,295.9375 L472.2188,298.6563 Q471.5938,298.0781 471,297.8125 Q470.4063,297.5313 469.7813,297.5313 Q468.4375,297.5313 467.75,298.6094 Q467.0625,299.6719 467.0625,301.7656 Q467.0625,303.8594 467.75,304.9375 Q468.4375,306 469.7813,306 Q470.4063,306 471,305.7344 Q471.5938,305.4531 472.2188,304.875 L472.2188,307.5938 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="489.75" y="306.1074">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="404.5" x2="550.5" y1="317.9531" y2="317.9531"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L66" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L66" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="409.5" y="323.9531"/>
<ellipse cx="414.5" cy="328.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L66" target="_top" title="foo_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L66" xlink:show="new" xlink:title="foo_a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="423.5" y="332.1636">foo_a() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L75" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L75" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="409.5" y="336.7578"/>
<ellipse cx="414.5" cy="341.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L75" target="_top" title="foo_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L75" xlink:show="new" xlink:title="foo_c" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="423.5" y="344.9683">foo_c() : void</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="404.5" x2="550.5" y1="351.5625" y2="351.5625"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L83" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L83" xlink:show="new" xlink:title="as" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="409.5" y="357.5625"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="411.5" y="359.5625"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L83" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L83" xlink:show="new" xlink:title="as" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="423.5" y="365.7729">as : std::vector&lt;A *&gt;</text>
</a>
<path d="M150,53.4531 L150,78.5859 A0,0 0 0 0 150,78.5859 L259,78.5859 A0,0 0 0 0 259,78.5859 L259,71.4531 L293.74,65.9531 L259,63.4531 L259,63.4531 L249,53.4531 L150,53.4531 A0,0 0 0 0 150,53.4531 " fill="#FBFB77" filter="url(#fcvdqjj6u7ehx)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M249,53.4531 L249,63.4531 L259,63.4531 L249,53.4531 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="156" y="70.52">This is class A</text>
<path d="M6,53.4531 L6,78.5859 A0,0 0 0 0 6,78.5859 L61.94,78.5859 L105.69,163.8331 L69.94,78.5859 L115,78.5859 A0,0 0 0 0 115,78.5859 L115,63.4531 L105,53.4531 L6,53.4531 A0,0 0 0 0 6,53.4531 " fill="#FBFB77" filter="url(#fcvdqjj6u7ehx)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M105,53.4531 L105,63.4531 L115,63.4531 L105,53.4531 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="12" y="70.52">This is class B</text>
<path d="M217,285.9531 L217,324.9531 L181.57,328.9531 L217,332.9531 L217,371.6172 A0,0 0 0 0 217,371.6172 L368,371.6172 A0,0 0 0 0 368,371.6172 L368,295.9531 L358,285.9531 L217,285.9531 A0,0 0 0 0 217,285.9531 " fill="#FBFB77" filter="url(#fcvdqjj6u7ehx)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M358,285.9531 L358,295.9531 L368,295.9531 L358,285.9531 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="235" y="303.02"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="223" y="318.1528">This is class D</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="130" x="223" y="333.2856">which is a little like B</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="223" y="348.4185">and a little like C</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="227" y="363.5513"/>
<path d="M275.32,103.9131 C250.75,115.3331 227.18,126.5731 215.5,132.9531 C198.38,142.3031 180.15,153.4731 164.22,163.6531 " fill="none" id="C_0000987634239855407298&lt;-C_0000594234458687375950" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="272.59,97.4631,293.68,95.4331,278.46,110.1731,272.59,97.4631" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M356.5,123.5031 C356.5,137.3331 356.5,151.5931 356.5,163.5931 " fill="none" id="C_0000987634239855407298&lt;-C_0001142499429598587507" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="349.5,123.2031,356.5,103.2031,363.5,123.2031,349.5,123.2031" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M146.15,285.8431 C176.88,252.5231 221.11,204.9431 260.5,163.9531 C278.66,145.0531 299.06,124.3731 316.36,106.9831 " fill="none" id="C_0000060950494980414724-&gt;C_0000987634239855407298" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="320.23,103.0931,311.0448,106.6472,316.7016,106.6358,316.713,112.2926,320.23,103.0931" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="263.5" y="192.0195"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="15" x="273.5" y="199.02">as</text>
<path d="M114.96,245.5631 C113.76,258.8031 112.48,272.9731 111.32,285.7531 " fill="none" id="C_0000594234458687375950&lt;-C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="108.03,244.4731,116.81,225.1931,121.97,245.7431,108.03,244.4731" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M299.39,236.4931 C288.99,243.3231 278.07,250.0931 267.5,255.9531 C238.61,271.9731 229.64,272.4231 199.5,285.9531 C193.73,288.5431 187.77,291.2331 181.78,293.9431 " fill="none" id="C_0001142499429598587507&lt;-C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="295.79,230.4731,316.28,225.0731,303.64,242.0731,295.79,230.4731" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M467.23,285.8831 C458.11,251.9631 443.18,203.5431 423.5,163.9531 C413.76,144.3531 400.46,124.2031 388.29,107.3831 " fill="none" id="C_0002237886670308966220-&gt;C_0000987634239855407298" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="385.22,103.1831,387.3048,112.8088,388.1719,107.2188,393.7619,108.0858,385.22,103.1831" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="451.5" y="192.0195"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="15" x="461.5" y="199.02">as</text>
<path d="M188.64,221.4631 C191.97,222.6531 195.27,223.8231 198.5,224.9531 C281.02,253.8031 304.05,254.1931 385.5,285.9531 C391.39,288.2531 397.44,290.7331 403.49,293.3031 " fill="none" id="C_0000594234458687375950&lt;-C_0002237886670308966220" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="185.93,227.9231,169.53,214.5031,190.72,214.7731,185.93,227.9231" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M397.5,240.3431 C410.91,255.0331 425.74,271.2831 438.96,285.7531 " fill="none" id="C_0001142499429598587507&lt;-C_0002237886670308966220" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="391.97,244.6731,383.65,225.1931,402.31,235.2331,391.97,244.6731" style="stroke: #A80036; stroke-width: 1.0;"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,354 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-labelledby="chart-title-my-svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 -49 643.00390625 581" style="max-width: 643.004px; background-color: white;" width="643.00390625" id="my-svg">
<title id="chart-title-my-svg">Basic class diagram example</title>
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id1" d="M446.5,176.92166101504392L471.439453125,187.2680508458699C496.37890625,197.61444067669595,546.2578125,218.30722033834797,569.7860734108881,233.4869435025073C593.3143343217762,248.66666666666666,590.4919498935523,258.3333333333333,589.0807576794404,263.1666666666667L587.6695654653284,268"/>
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M350.4728594653179,214L347.9552474710983,218.16666666666666C345.4376354768786,222.33333333333334,340.4024114884393,230.66666666666666,337.88479949421964,239.66666666666666C335.3671875,248.66666666666666,335.3671875,258.3333333333333,335.3671875,263.1666666666667L335.3671875,268"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M104.48046875,420.18307505317534L90.25325520833333,412.8192292109795C76.02604166666667,405.45538336878354,47.571614583333336,390.7276916843918,33.344401041666664,371.94717917552924C19.1171875,353.1666666666667,19.1171875,330.3333333333333,19.1171875,307.5C19.1171875,284.6666666666667,19.1171875,261.8333333333333,70.72526041666667,238.30293795491482C122.33333333333333,214.77254257649636,225.54947916666666,190.54508515299275,277.1575520833333,178.43135644124092L328.765625,166.3176277294891"/>
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M517.26953125,328.8916115796672L495.6634114583333,336.74300964972264C474.0572916666667,344.5944077197781,430.8450520833333,360.29720385988907,389.2994791666667,376.71270088837883C347.75390625,393.1281979168687,307.875,410.2563958337375,287.935546875,418.8204947921718L267.99609375,427.38459375060614"/>
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id5" d="M335.3671875,347L335.3671875,351.8333333333333C335.3671875,356.6666666666667,335.3671875,366.3333333333333,324.138671875,377.67959984632984C312.91015625,389.0258663593263,290.453125,402.0517327186526,279.224609375,408.56466589831575L267.99609375,415.0775990779789"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id6" d="M461.21233742774564,401L457.6600207731214,396.8333333333333C454.1077041184971,392.6666666666667,447.0030708092486,384.3333333333333,443.4507541546243,368.75C439.8984375,353.1666666666667,439.8984375,330.3333333333333,439.8984375,307.5C439.8984375,284.6666666666667,439.8984375,261.8333333333333,437.38082550578036,246.25C434.8632135115607,230.66666666666666,429.8279895231214,222.33333333333334,427.3103775289017,218.16666666666666L424.7927655346821,214"/>
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id7" d="M576.13671875,347L576.13671875,351.8333333333333C576.13671875,356.6666666666667,576.13671875,366.3333333333333,573.126497772158,375.3333333333333C570.116276794316,384.3333333333333,564.095834838632,392.6666666666667,561.08561386079,396.8333333333333L558.075392882948,401"/>
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id8" d="M393.78125,332.9825861983183L410.2161458333333,340.15215516526524C426.6510416666667,347.32172413221224,459.5208333333333,361.6608620661061,476.9795204118497,372.9970976997197C494.4382074903661,384.3333333333333,496.48578998073225,392.6666666666667,497.50958122591527,396.8333333333333L498.5333724710983,401"/>
<path style="fill:none" class="edge-pattern-dotted relation" id="edgeNote9" d="M387.6328125,41L387.6328125,45.166666666666664C387.6328125,49.333333333333336,387.6328125,57.666666666666664,387.6328125,66C387.6328125,74.33333333333333,387.6328125,82.66666666666667,387.6328125,86.83333333333333L387.6328125,91"/>
<path style="fill:none" class="edge-pattern-dotted relation" id="edgeNote10" d="M576.13671875,169L576.13671875,180.66666666666666C576.13671875,192.33333333333334,576.13671875,215.66666666666666,576.13671875,232.16666666666666C576.13671875,248.66666666666666,576.13671875,258.3333333333333,576.13671875,263.1666666666667L576.13671875,268"/>
<path style="fill:none" class="edge-pattern-dotted relation" id="edgeNote11" d="M146.09375,351L146.09375,355.1666666666667C146.09375,359.3333333333333,146.09375,367.6666666666667,148.02749427986512,376C149.96123855973025,384.3333333333333,153.8287271194605,392.6666666666667,155.76247139932562,396.8333333333333L157.69621567919074,401"/>
</g>
<g class="edgeLabels">
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(19.1171875, 307.5)" class="edgeLabel">
<g transform="translate(-11.1171875, -9)" class="label">
<foreignObject height="18" width="22.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-as</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(439.8984375, 307.5)" class="edgeLabel">
<g transform="translate(-11.1171875, -9)" class="label">
<foreignObject height="18" width="22.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-as</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(387.6328125, 152.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L7">
<g title="This is class A" id="classId-C_0000987634239855407298-0" class="node default clickable">
<rect height="123" width="117.734375" y="-61.5" x="-58.8671875" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="58.8671875" x1="-58.8671875" class="divider"/>
<line y2="6.5" y1="6.5" x2="58.8671875" x1="-58.8671875" class="divider"/>
<g class="label">
<foreignObject transform="translate( -37.359375, -54)" height="18" width="74.71875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">«abstract»</span>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -32)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A</span>
</div>
</foreignObject>
<foreignObject transform="translate( -51.3671875, 14)" height="18" width="102.734375">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+foo_a() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -51.3671875, 36)" height="18" width="101.828125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+foo_c() : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(576.13671875, 307.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L16">
<g title="This is class B" id="classId-C_0000594234458687375950-1" class="node default clickable">
<rect height="79" width="117.734375" y="-39.5" x="-58.8671875" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="58.8671875" x1="-58.8671875" class="divider"/>
<line y2="6.5" y1="6.5" x2="58.8671875" x1="-58.8671875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -32)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B</span>
</div>
</foreignObject>
<foreignObject transform="translate( -51.3671875, 14)" height="18" width="102.734375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo_a() : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(335.3671875, 307.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L27">
<g title="This is class C - class C has a long comment" id="classId-C_0001142499429598587507-2" class="node default clickable">
<rect height="79" width="116.828125" y="-39.5" x="-58.4140625" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="58.4140625" x1="-58.4140625" class="divider"/>
<line y2="6.5" y1="6.5" x2="58.4140625" x1="-58.4140625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -32)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">C</span>
</div>
</foreignObject>
<foreignObject transform="translate( -50.9140625, 14)" height="18" width="101.828125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo_c() : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(186.23828125, 462.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L36">
<g title="D" id="classId-C_0000060950494980414724-3" class="node default clickable">
<rect height="123" width="163.515625" y="-61.5" x="-81.7578125" class="outer title-state"/>
<line y2="-31.5" y1="-31.5" x2="81.7578125" x1="-81.7578125" class="divider"/>
<line y2="6.5" y1="6.5" x2="81.7578125" x1="-81.7578125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -54)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">D</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.2578125, -20)" height="18" width="148.515625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-as : std::vector&lt;A *&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.2578125, 14)" height="18" width="102.734375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo_a() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.2578125, 36)" height="18" width="101.828125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo_c() : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(513.64453125, 462.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00002/t00002.cc#L61">
<g title="E" id="classId-C_0002237886670308966220-4" class="node default clickable">
<rect height="123" width="163.515625" y="-61.5" x="-81.7578125" class="outer title-state"/>
<line y2="-31.5" y1="-31.5" x2="81.7578125" x1="-81.7578125" class="divider"/>
<line y2="6.5" y1="6.5" x2="81.7578125" x1="-81.7578125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.3359375, -54)" height="18" width="10.671875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">E</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.2578125, -20)" height="18" width="148.515625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-as : std::vector&lt;A *&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.2578125, 14)" height="18" width="102.734375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo_a() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.2578125, 36)" height="18" width="101.828125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo_c() : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<g transform="translate(387.6328125, 24.5)" id="note0" class="node undefined">
<rect height="33" width="116.359375" y="-16.5" x="-58.1796875" ry="0" rx="0"/>
<g transform="translate(-50.6796875, -9)" style="" class="label">
<rect/>
<foreignObject height="18" width="101.359375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">This is class A</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(576.13671875, 152.5)" id="note1" class="node undefined">
<rect height="33" width="117.25" y="-16.5" x="-58.625" ry="0" rx="0"/>
<g transform="translate(-51.125, -9)" style="" class="label">
<rect/>
<foreignObject height="18" width="102.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">This is class B</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(146.09375, 307.5)" id="note2" class="node undefined">
<rect height="87" width="161.71875" y="-43.5" x="-80.859375" ry="0" rx="0"/>
<g transform="translate(-73.359375, -36)" style="" class="label">
<rect/>
<foreignObject height="72" width="146.71875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"><br/> This is class D<br/> which is a little like B<br/> and a little like C<br/></span>
</div>
</foreignObject>
</g>
</g>
</g>
</g>
</g>
<text class="classTitleText" y="-25" x="321.501953125">Basic class diagram example</text>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="398px" preserveAspectRatio="none" style="width:347px;height:398px;" version="1.1" viewBox="0 0 347 398" width="347px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="486px" preserveAspectRatio="none" style="width:347px;height:486px;" version="1.1" viewBox="0 0 347 486" width="347px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="fcn7bappf0ctr" width="300%" x="-1" y="-1"> <filter height="300%" id="fnvewdgr3j9kc" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,115 +9,228 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fcn7bappf0ctr)" height="380.9219" id="C_0001371951663534295727" style="stroke: #A80036; stroke-width: 1.5;" width="329" x="7" y="7"/> <rect fill="#FEFECE" filter="url(#fnvewdgr3j9kc)" height="468.9453" id="C_0001371951663534295727" style="stroke: #A80036; stroke-width: 1.5;" width="329" x="7" y="7"/>
<ellipse cx="163.25" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="163.25" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M166.2188,28.6406 Q165.6406,28.9375 165,29.0781 Q164.3594,29.2344 163.6563,29.2344 Q161.1563,29.2344 159.8281,27.5938 Q158.5156,25.9375 158.5156,22.8125 Q158.5156,19.6875 159.8281,18.0313 Q161.1563,16.375 163.6563,16.375 Q164.3594,16.375 165,16.5313 Q165.6563,16.6875 166.2188,16.9844 L166.2188,19.7031 Q165.5938,19.125 165,18.8594 Q164.4063,18.5781 163.7813,18.5781 Q162.4375,18.5781 161.75,19.6563 Q161.0625,20.7188 161.0625,22.8125 Q161.0625,24.9063 161.75,25.9844 Q162.4375,27.0469 163.7813,27.0469 Q164.4063,27.0469 165,26.7813 Q165.5938,26.5 166.2188,25.9219 L166.2188,28.6406 Z "/> <path d="M166.2188,28.6406 Q165.6406,28.9375 165,29.0781 Q164.3594,29.2344 163.6563,29.2344 Q161.1563,29.2344 159.8281,27.5938 Q158.5156,25.9375 158.5156,22.8125 Q158.5156,19.6875 159.8281,18.0313 Q161.1563,16.375 163.6563,16.375 Q164.3594,16.375 165,16.5313 Q165.6563,16.6875 166.2188,16.9844 L166.2188,19.7031 Q165.5938,19.125 165,18.8594 Q164.4063,18.5781 163.7813,18.5781 Q162.4375,18.5781 161.75,19.6563 Q161.0625,20.7188 161.0625,22.8125 Q161.0625,24.9063 161.75,25.9844 Q162.4375,27.0469 163.7813,27.0469 Q164.4063,27.0469 165,26.7813 Q165.5938,26.5 166.2188,25.9219 L166.2188,28.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="183.75" y="27.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="183.75" y="27.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="39" y2="39"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="39" y2="39"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L34" xlink:show="new" xlink:title="public_member" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="45"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="45"/>
<ellipse cx="18" cy="50" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="18" cy="50" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L34" xlink:show="new" xlink:title="public_member" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="27" y="53.2104">public_member : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="27" y="53.2104">A() = default : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="protected_member" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="57.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="57.8047"/>
<polygon fill="none" points="18,57.8047,22,61.8047,18,65.8047,14,61.8047" style="stroke: #B38D22; stroke-width: 1.0;"/> <ellipse cx="18" cy="62.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="protected_member" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="27" y="66.0151">protected_member : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="27" y="66.0151">A(int i) : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L51" xlink:show="new" xlink:title="private_member" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L21" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L21" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="70.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="70.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="72.6094"/> <ellipse cx="18" cy="75.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L51" xlink:show="new" xlink:title="private_member" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L21" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L21" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="27" y="78.8198">private_member : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="27" y="78.8198">A(A &amp;&amp;) = default : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="a_" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L22" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L22" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="83.4141"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="83.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="85.4141"/> <ellipse cx="18" cy="88.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="a_" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L22" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L22" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="27" y="91.6245">a_ : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="165" x="27" y="91.6245">A(const A &amp;) = deleted : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="b_" xlink:type="simple"> <ellipse cx="18" cy="101.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="96.2188"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="27" y="104.4292">A&lt;T&gt;(T t) : void</text>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="98.2188"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L23" target="_top" title="~A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L23" xlink:show="new" xlink:title="~A" xlink:type="simple">
</a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="b_" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="27" y="104.4292">b_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="c_" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="109.0234"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="109.0234"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="111.0234"/> <ellipse cx="18" cy="114.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="c_" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L23" target="_top" title="~A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L23" xlink:show="new" xlink:title="~A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="27" y="117.2339">c_ : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="27" y="117.2339">~A() = default : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L35" xlink:show="new" xlink:title="static_int" xlink:type="simple"> <line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="335" y1="123.8281" y2="123.8281"/>
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="121.8281"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L36" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L36" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<ellipse cx="18" cy="126.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="129.8281"/>
<ellipse cx="18" cy="134.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L35" xlink:show="new" xlink:title="static_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L36" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L36" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="77" x="27" y="130.0386">static_int : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="27" y="138.0386">operator=(A &amp;&amp; other) noexcept : A &amp;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L36" xlink:show="new" xlink:title="static_const_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L37" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="134.6328"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="142.6328"/>
<ellipse cx="18" cy="139.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="18" cy="147.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L36" xlink:show="new" xlink:title="static_const_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L37" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="149" x="27" y="142.8433">static_const_int : const int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="27" y="150.8433">operator=(A &amp; other) noexcept : A &amp;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="auto_member" xlink:type="simple"> <line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="335" y1="157.4375" y2="157.4375"/>
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="147.4375"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L30" target="_top" title="operator++" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L30" xlink:show="new" xlink:title="operator++" xlink:type="simple">
<ellipse cx="18" cy="152.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="163.4375"/>
<ellipse cx="18" cy="168.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="auto_member" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L30" target="_top" title="operator++" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L30" xlink:show="new" xlink:title="operator++" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="206" x="27" y="155.6479">auto_member : const unsigned long</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="27" y="171.6479">operator++() : A &amp;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="162.2422" y2="162.2422"/> <line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="335" y1="178.2422" y2="178.2422"/>
<ellipse cx="18" cy="173.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L28" target="_top" title="auto_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L28" xlink:show="new" xlink:title="auto_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="27" y="176.4526">A() = default : void</text> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="184.2422"/>
<ellipse cx="18" cy="186.0469" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="18" cy="189.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="27" y="189.2573">A(int i) : void</text>
<ellipse cx="18" cy="198.8516" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="27" y="202.062">A(A &amp;&amp; ) = default : void</text>
<ellipse cx="18" cy="211.6563" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="166" x="27" y="214.8667">A(const A &amp; ) = default : void</text>
<ellipse cx="18" cy="224.4609" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="27" y="227.6714">~A() = default : void</text>
<ellipse cx="18" cy="237.2656" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="27" y="240.4761">basic_method() : void</text>
<ellipse cx="18" cy="250.0703" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="114" x="27" y="253.2808">static_method() : int</text>
<ellipse cx="18" cy="262.875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="27" y="266.0854">const_method() const : void</text>
<ellipse cx="18" cy="275.6797" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="27" y="278.8901">auto_method() : int</text>
<ellipse cx="18" cy="288.4844" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="27" y="291.6948">double_int(const int i) : int</text>
<ellipse cx="18" cy="301.2891" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="27" y="304.4995">sum(const double a, const double b) : int</text>
<ellipse cx="18" cy="314.0938" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="27" y="317.3042">default_int(int i = 12) : int</text>
<ellipse cx="18" cy="326.8984" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="303" x="27" y="330.1089">default_string(int i, std::string s = "abc") : std::string</text>
<ellipse cx="18" cy="339.7031" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="137" x="27" y="342.9136">create_from_int(int i) : A</text>
<polygon fill="#FFFF44" points="18,347.5078,22,351.5078,18,355.5078,14,351.5078" style="stroke: #B38D22; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="27" y="355.7183">protected_method() : void</text>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="362.3125"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="131" x="27" y="368.5229">private_method() : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="compare" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="373.1172"/>
<polygon fill="#FFFF44" points="18,373.1172,22,377.1172,18,381.1172,14,377.1172" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="compare" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L28" target="_top" title="auto_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L28" xlink:show="new" xlink:title="auto_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="236" x="27" y="381.3276">compare : std::function&lt;bool (const int)&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="27" y="192.4526">auto_method() : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L25" target="_top" title="basic_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L25" xlink:show="new" xlink:title="basic_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="197.0469"/>
<ellipse cx="18" cy="202.0469" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L25" target="_top" title="basic_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L25" xlink:show="new" xlink:title="basic_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="27" y="205.2573">basic_method() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L27" target="_top" title="const_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L27" xlink:show="new" xlink:title="const_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="209.8516"/>
<ellipse cx="18" cy="214.8516" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L27" target="_top" title="const_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L27" xlink:show="new" xlink:title="const_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="27" y="218.062">const_method() const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L50" target="_top" title="create_from_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L50" xlink:show="new" xlink:title="create_from_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="222.6563"/>
<ellipse cx="18" cy="227.6563" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L50" target="_top" title="create_from_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L50" xlink:show="new" xlink:title="create_from_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="137" x="27" y="230.8667">create_from_int(int i) : A</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L44" target="_top" title="default_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="default_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="235.4609"/>
<ellipse cx="18" cy="240.4609" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L44" target="_top" title="default_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="default_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="27" y="243.6714">default_int(int i = 12) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L45" target="_top" title="default_string" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L45" xlink:show="new" xlink:title="default_string" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="248.2656"/>
<ellipse cx="18" cy="253.2656" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L45" target="_top" title="default_string" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L45" xlink:show="new" xlink:title="default_string" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="303" x="27" y="256.4761">default_string(int i, std::string s = "abc") : std::string</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L41" target="_top" title="double_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L41" xlink:show="new" xlink:title="double_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="261.0703"/>
<ellipse cx="18" cy="266.0703" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L41" target="_top" title="double_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L41" xlink:show="new" xlink:title="double_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="27" y="269.2808">double_int(const int i) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L67" target="_top" title="private_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L67" xlink:show="new" xlink:title="private_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="273.875"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="275.875"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L67" target="_top" title="private_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L67" xlink:show="new" xlink:title="private_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="131" x="27" y="282.0854">private_method() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L58" target="_top" title="protected_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L58" xlink:show="new" xlink:title="protected_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="286.6797"/>
<polygon fill="#FFFF44" points="18,286.6797,22,290.6797,18,294.6797,14,290.6797" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L58" target="_top" title="protected_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L58" xlink:show="new" xlink:title="protected_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="27" y="294.8901">protected_method() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L39" target="_top" title="size" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L39" xlink:show="new" xlink:title="size" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="299.4844"/>
<ellipse cx="18" cy="304.4844" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L39" target="_top" title="size" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L39" xlink:show="new" xlink:title="size" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="27" y="307.6948">size() constexpr const : std::size_t</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L26" target="_top" title="static_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L26" xlink:show="new" xlink:title="static_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="312.2891"/>
<ellipse cx="18" cy="317.2891" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L26" target="_top" title="static_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L26" xlink:show="new" xlink:title="static_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="114" x="27" y="320.4995">static_method() : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L42" target="_top" title="sum" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="sum" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="325.0938"/>
<ellipse cx="18" cy="330.0938" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L42" target="_top" title="sum" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="sum" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="27" y="333.3042">sum(const double a, const double b) : int</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="339.8984" y2="339.8984"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="a_" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="345.8984"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="347.8984"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="a_" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="27" y="354.1089">a_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L55" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L55" xlink:show="new" xlink:title="auto_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="358.7031"/>
<ellipse cx="18" cy="363.7031" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L55" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L55" xlink:show="new" xlink:title="auto_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="206" x="27" y="366.9136">auto_member : const unsigned long</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="b_" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="371.5078"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="373.5078"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="b_" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="27" y="379.7183">b_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="c_" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="384.3125"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="386.3125"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="c_" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="27" y="392.5229">c_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L62" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L62" xlink:show="new" xlink:title="compare" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="397.1172"/>
<polygon fill="#FFFF44" points="18,397.1172,22,401.1172,18,405.1172,14,401.1172" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L62" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L62" xlink:show="new" xlink:title="compare" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="236" x="27" y="405.3276">compare : std::function&lt;bool (const int)&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L69" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L69" xlink:show="new" xlink:title="private_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="409.9219"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="411.9219"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L69" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L69" xlink:show="new" xlink:title="private_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="27" y="418.1323">private_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L60" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L60" xlink:show="new" xlink:title="protected_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="422.7266"/>
<polygon fill="none" points="18,422.7266,22,426.7266,18,430.7266,14,426.7266" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L60" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L60" xlink:show="new" xlink:title="protected_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="27" y="430.937">protected_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L52" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="public_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="435.5313"/>
<ellipse cx="18" cy="440.5313" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L52" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="public_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="27" y="443.7417">public_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L54" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L54" xlink:show="new" xlink:title="static_const_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="448.3359"/>
<ellipse cx="18" cy="453.3359" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L54" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L54" xlink:show="new" xlink:title="static_const_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="149" x="27" y="456.5464">static_const_int : const int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L53" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L53" xlink:show="new" xlink:title="static_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="461.1406"/>
<ellipse cx="18" cy="466.1406" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L53" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L53" xlink:show="new" xlink:title="static_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="77" x="27" y="469.3511">static_int : int</text>
</a> </a>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -0,0 +1,232 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 400.75 755" style="max-width: 400.75px; background-color: white;" width="400.75" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths"/>
<g class="edgeLabels"/>
<g class="nodes">
<a transform="translate(200.375, 377.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00003/t00003.cc#L7">
<g title="A" id="classId-C_0001371951663534295727-0" class="node default clickable">
<rect height="739" width="384.75" y="-369.5" x="-192.375" class="outer title-state"/>
<line y2="-339.5" y1="-339.5" x2="192.375" x1="-192.375" class="divider"/>
<line y2="-103.5" y1="-103.5" x2="192.375" x1="-192.375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -362)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -328)" height="18" width="53.359375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-a_ : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -306)" height="18" width="263.734375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+auto_member : const unsigned long</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -284)" height="18" width="53.359375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-b_ : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -262)" height="18" width="52.46875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-c_ : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -240)" height="18" width="294.390625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">#compare : std::function&lt;bool (const int)&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -218)" height="18" width="151.171875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-private_member : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -196)" height="18" width="173.421875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">#protected_member : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -174)" height="18" width="148.96875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+public_member : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -152)" height="18" width="192.546875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+static_const_int : const int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -130)" height="18" width="102.71875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+static_int : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -96)" height="18" width="134.734375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+A() : [default] void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -74)" height="18" width="98.265625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+A(int i) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -52)" height="18" width="170.3125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+A(A &amp;&amp;) : [default] void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -30)" height="18" width="140.078125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+A(const A &amp;) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, -8)" height="18" width="91.734375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+A(T t) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 14)" height="18" width="144.078125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+~A() : [default] void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 36)" height="18" width="202.796875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+operator=(A &amp;&amp; other) : A &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 58)" height="18" width="192.125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+operator=(A &amp; other) : A &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 80)" height="18" width="135.640625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+operator++() : A &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 102)" height="18" width="143.640625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+auto_method() : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 124)" height="18" width="162.3125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+basic_method() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 146)" height="18" width="214.78125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+const_method() : [const] void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 168)" height="18" width="179.1875">
<div xmlns="http://www.w3.org/1999/xhtml" style="text-decoration: underline; display: inline-block; white-space: nowrap;">
<span style="text-decoration:underline;" class="nodeLabel">+create_from_int(int i) : A</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 190)" height="18" width="185">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+default_int(int i = 12) : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 212)" height="18" width="369.75">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+default_string(int i, std::string s = "abc") : std::string</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 234)" height="18" width="191.671875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+double_int(const int i) : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 256)" height="18" width="168.96875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-private_method() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 278)" height="18" width="191.21875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">#protected_method() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 300)" height="18" width="259.21875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+size() : [const,constexpr] std::size_t</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 322)" height="18" width="149.84375">
<div xmlns="http://www.w3.org/1999/xhtml" style="text-decoration: underline; display: inline-block; white-space: nowrap;">
<span style="text-decoration:underline;" class="nodeLabel">+static_method() : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -184.875, 344)" height="18" width="297.515625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+sum(const double a, const double b) : int</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -1,24 +1,19 @@
# t00004 - Nested classes and enums # t00004 - Nested classes and enums
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00004_class: t00004_class:
type: class type: class
glob: glob:
- ../../tests/t00004/t00004.cc - t00004.cc
using_namespace: using_namespace: clanguml::t00004
- clanguml::t00004
- clanguml::t00004::A
- clanguml::t00004::A::AA
include: include:
namespaces: namespaces:
- clanguml::t00004 - clanguml::t00004
``` ```
## Source code ## Source code
File t00004.cc File `tests/t00004/t00004.cc`
```cpp ```cpp
namespace clanguml { namespace clanguml {
namespace t00004 { namespace t00004 {
@@ -74,8 +69,10 @@ public:
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00004_class](./t00004_class.svg "Nested classes and enums") ![t00004_class](./t00004_class.svg "Nested classes and enums")
## Generated Mermaid diagrams
![t00004_class](./t00004_class_mermaid.svg "Nested classes and enums")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -83,7 +80,7 @@ public:
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::B", "display_name": "B",
"id": "1232624428734051711", "id": "1232624428734051711",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -95,8 +92,10 @@ public:
"name": "B", "name": "B",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 7,
"line": 4 "file": "t00004.cc",
"line": 4,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -107,20 +106,22 @@ public:
"AA_2", "AA_2",
"AA_3" "AA_3"
], ],
"display_name": "clanguml::t00004::B::AA", "display_name": "B::AA",
"id": "1630205507215126623", "id": "1630205507215126623",
"is_nested": true, "is_nested": true,
"name": "B::AA", "name": "B::AA",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 10,
"line": 6 "file": "t00004.cc",
"line": 6,
"translation_unit": "t00004.cc"
}, },
"type": "enum" "type": "enum"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::A", "display_name": "A",
"id": "1552274940876611774", "id": "1552274940876611774",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -132,40 +133,70 @@ public:
{ {
"access": "public", "access": "public",
"is_const": true, "is_const": true,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "foo", "name": "foo",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00004.cc",
"line": 11,
"translation_unit": "t00004.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": true, "is_const": true,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "foo2", "name": "foo2",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00004.cc",
"line": 20,
"translation_unit": "t00004.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "A", "name": "A",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 7,
"line": 9 "file": "t00004.cc",
"line": 9,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::A::AA", "display_name": "A::AA",
"id": "1742499843727859552", "id": "1742499843727859552",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -177,8 +208,10 @@ public:
"name": "A::AA", "name": "A::AA",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 11,
"line": 13 "file": "t00004.cc",
"line": 13,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -189,20 +222,22 @@ public:
"Yellow", "Yellow",
"Red" "Red"
], ],
"display_name": "clanguml::t00004::A::AA::Lights", "display_name": "A::AA::Lights",
"id": "590936874508841244", "id": "590936874508841244",
"is_nested": true, "is_nested": true,
"name": "A::AA::Lights", "name": "A::AA::Lights",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 20,
"line": 15 "file": "t00004.cc",
"line": 15,
"translation_unit": "t00004.cc"
}, },
"type": "enum" "type": "enum"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::A::AA::AAA", "display_name": "A::AA::AAA",
"id": "1430186633004282131", "id": "1430186633004282131",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -214,15 +249,17 @@ public:
"name": "A::AA::AAA", "name": "A::AA::AAA",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 15,
"line": 17 "file": "t00004.cc",
"line": 17,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::C::B<int>", "display_name": "C::B<int>",
"id": "287819369330075965", "id": "287819369330075965",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -233,6 +270,12 @@ public:
"methods": [], "methods": [],
"name": "C::B", "name": "C::B",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": {
"column": 33,
"file": "t00004.cc",
"line": 33,
"translation_unit": "t00004.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -245,7 +288,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::C<T>", "display_name": "C<T>",
"id": "2278328177727440136", "id": "2278328177727440136",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -258,8 +301,10 @@ public:
"is_static": false, "is_static": false,
"name": "t", "name": "t",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 7,
"line": 25 "file": "t00004.cc",
"line": 25,
"translation_unit": "t00004.cc"
}, },
"type": "T" "type": "T"
}, },
@@ -268,8 +313,10 @@ public:
"is_static": false, "is_static": false,
"name": "b_int", "name": "b_int",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 12,
"line": 37 "file": "t00004.cc",
"line": 37,
"translation_unit": "t00004.cc"
}, },
"type": "B<int>" "type": "B<int>"
} }
@@ -278,8 +325,10 @@ public:
"name": "C", "name": "C",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 29,
"line": 23 "file": "t00004.cc",
"line": 23,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -293,7 +342,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::C::AA", "display_name": "C::AA",
"id": "623940132897927654", "id": "623940132897927654",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -305,15 +354,17 @@ public:
"name": "C::AA", "name": "C::AA",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 11,
"line": 27 "file": "t00004.cc",
"line": 27,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::C::AA::AAA", "display_name": "C::AA::AAA",
"id": "1597801087286500866", "id": "1597801087286500866",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -325,8 +376,10 @@ public:
"name": "C::AA::AAA", "name": "C::AA::AAA",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 15,
"line": 28 "file": "t00004.cc",
"line": 28,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -336,20 +389,22 @@ public:
"CCC_1", "CCC_1",
"CCC_2" "CCC_2"
], ],
"display_name": "clanguml::t00004::C::AA::CCC", "display_name": "C::AA::CCC",
"id": "81819202639599734", "id": "81819202639599734",
"is_nested": true, "is_nested": true,
"name": "C::AA::CCC", "name": "C::AA::CCC",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 20,
"line": 30 "file": "t00004.cc",
"line": 30,
"translation_unit": "t00004.cc"
}, },
"type": "enum" "type": "enum"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::C::B<V>", "display_name": "C::B<V>",
"id": "1381298335849583950", "id": "1381298335849583950",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -362,8 +417,10 @@ public:
"is_static": false, "is_static": false,
"name": "b", "name": "b",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 11,
"line": 34 "file": "t00004.cc",
"line": 34,
"translation_unit": "t00004.cc"
}, },
"type": "V" "type": "V"
} }
@@ -372,8 +429,10 @@ public:
"name": "C::B", "name": "C::B",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 33,
"line": 33 "file": "t00004.cc",
"line": 33,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -390,20 +449,22 @@ public:
"CC_1", "CC_1",
"CC_2" "CC_2"
], ],
"display_name": "clanguml::t00004::C::CC", "display_name": "C::CC",
"id": "2037378936100378699", "id": "2037378936100378699",
"is_nested": true, "is_nested": true,
"name": "C::CC", "name": "C::CC",
"namespace": "clanguml::t00004", "namespace": "clanguml::t00004",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 16,
"line": 39 "file": "t00004.cc",
"line": 39,
"translation_unit": "t00004.cc"
}, },
"type": "enum" "type": "enum"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::detail::D", "display_name": "detail::D",
"id": "612133170877135796", "id": "612133170877135796",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -415,8 +476,10 @@ public:
"name": "D", "name": "D",
"namespace": "clanguml::t00004::detail", "namespace": "clanguml::t00004::detail",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 7,
"line": 43 "file": "t00004.cc",
"line": 43,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -427,20 +490,22 @@ public:
"AA_2", "AA_2",
"AA_3" "AA_3"
], ],
"display_name": "clanguml::t00004::detail::D::AA", "display_name": "detail::D::AA",
"id": "1572080057917630922", "id": "1572080057917630922",
"is_nested": true, "is_nested": true,
"name": "D::AA", "name": "D::AA",
"namespace": "clanguml::t00004::detail", "namespace": "clanguml::t00004::detail",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 16,
"line": 45 "file": "t00004.cc",
"line": 45,
"translation_unit": "t00004.cc"
}, },
"type": "enum" "type": "enum"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00004::detail::D::DD", "display_name": "detail::D::DD",
"id": "600916232677555492", "id": "600916232677555492",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -452,19 +517,17 @@ public:
"name": "D::DD", "name": "D::DD",
"namespace": "clanguml::t00004::detail", "namespace": "clanguml::t00004::detail",
"source_location": { "source_location": {
"file": "../../tests/t00004/t00004.cc", "column": 11,
"line": 47 "file": "t00004.cc",
"line": 47,
"translation_unit": "t00004.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00004_class", "name": "t00004_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="374px" preserveAspectRatio="none" style="width:1071px;height:374px;" version="1.1" viewBox="0 0 1071 374" width="1071px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="374px" preserveAspectRatio="none" style="width:1071px;height:374px;" version="1.1" viewBox="0 0 1071 374" width="1071px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f1v43ytv8gtapz" width="300%" x="-1" y="-1"> <filter height="300%" id="ff7w0g2fnebeh" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,16 +9,16 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L4" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L4" xlink:show="new" xlink:title="B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L4" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L4" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0001232624428734051711" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="18" y="168"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0001232624428734051711" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="18" y="168"/>
<ellipse cx="33" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="33" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M35.9688,189.6406 Q35.3906,189.9375 34.75,190.0781 Q34.1094,190.2344 33.4063,190.2344 Q30.9063,190.2344 29.5781,188.5938 Q28.2656,186.9375 28.2656,183.8125 Q28.2656,180.6875 29.5781,179.0313 Q30.9063,177.375 33.4063,177.375 Q34.1094,177.375 34.75,177.5313 Q35.4063,177.6875 35.9688,177.9844 L35.9688,180.7031 Q35.3438,180.125 34.75,179.8594 Q34.1563,179.5781 33.5313,179.5781 Q32.1875,179.5781 31.5,180.6563 Q30.8125,181.7188 30.8125,183.8125 Q30.8125,185.9063 31.5,186.9844 Q32.1875,188.0469 33.5313,188.0469 Q34.1563,188.0469 34.75,187.7813 Q35.3438,187.5 35.9688,186.9219 L35.9688,189.6406 Z "/> <path d="M35.9688,189.6406 Q35.3906,189.9375 34.75,190.0781 Q34.1094,190.2344 33.4063,190.2344 Q30.9063,190.2344 29.5781,188.5938 Q28.2656,186.9375 28.2656,183.8125 Q28.2656,180.6875 29.5781,179.0313 Q30.9063,177.375 33.4063,177.375 Q34.1094,177.375 34.75,177.5313 Q35.4063,177.6875 35.9688,177.9844 L35.9688,180.7031 Q35.3438,180.125 34.75,179.8594 Q34.1563,179.5781 33.5313,179.5781 Q32.1875,179.5781 31.5,180.6563 Q30.8125,181.7188 30.8125,183.8125 Q30.8125,185.9063 31.5,186.9844 Q32.1875,188.0469 33.5313,188.0469 Q34.1563,188.0469 34.75,187.7813 Q35.3438,187.5 35.9688,186.9219 L35.9688,189.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="47" y="188.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="47" y="188.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="57" y1="200" y2="200"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="57" y1="200" y2="200"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="57" y1="208" y2="208"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="57" y1="208" y2="208"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L6" target="_top" title="B##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L6" xlink:show="new" xlink:title="B##AA" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L6" target="_top" title="B##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L6" xlink:show="new" xlink:title="B##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="86.4141" id="C_0001630205507215126623" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="6" y="8"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="86.4141" id="C_0001630205507215126623" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="6" y="8"/>
<ellipse cx="21" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M25.1094,30 L17.3906,30 L17.3906,17.6094 L25.1094,17.6094 L25.1094,19.7656 L19.8438,19.7656 L19.8438,22.4375 L24.6094,22.4375 L24.6094,24.5938 L19.8438,24.5938 L19.8438,27.8438 L25.1094,27.8438 L25.1094,30 Z "/> <path d="M25.1094,30 L17.3906,30 L17.3906,17.6094 L25.1094,17.6094 L25.1094,19.7656 L19.8438,19.7656 L19.8438,22.4375 L24.6094,22.4375 L24.6094,24.5938 L19.8438,24.5938 L19.8438,27.8438 L25.1094,27.8438 L25.1094,30 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="35" y="28.1543">B::AA</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="35" y="28.1543">B::AA</text>
@@ -28,28 +28,38 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="12" y="79.8198">AA_3</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="12" y="79.8198">AA_3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="69" y1="86.4141" y2="86.4141"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="69" y1="86.4141" y2="86.4141"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="73.6094" id="C_0001552274940876611774" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="176.5" y="290"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="73.6094" id="C_0001552274940876611774" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="176.5" y="290"/>
<ellipse cx="232.75" cy="306" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="232.75" cy="306" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M235.7188,311.6406 Q235.1406,311.9375 234.5,312.0781 Q233.8594,312.2344 233.1563,312.2344 Q230.6563,312.2344 229.3281,310.5938 Q228.0156,308.9375 228.0156,305.8125 Q228.0156,302.6875 229.3281,301.0313 Q230.6563,299.375 233.1563,299.375 Q233.8594,299.375 234.5,299.5313 Q235.1563,299.6875 235.7188,299.9844 L235.7188,302.7031 Q235.0938,302.125 234.5,301.8594 Q233.9063,301.5781 233.2813,301.5781 Q231.9375,301.5781 231.25,302.6563 Q230.5625,303.7188 230.5625,305.8125 Q230.5625,307.9063 231.25,308.9844 Q231.9375,310.0469 233.2813,310.0469 Q233.9063,310.0469 234.5,309.7813 Q235.0938,309.5 235.7188,308.9219 L235.7188,311.6406 Z "/> <path d="M235.7188,311.6406 Q235.1406,311.9375 234.5,312.0781 Q233.8594,312.2344 233.1563,312.2344 Q230.6563,312.2344 229.3281,310.5938 Q228.0156,308.9375 228.0156,305.8125 Q228.0156,302.6875 229.3281,301.0313 Q230.6563,299.375 233.1563,299.375 Q233.8594,299.375 234.5,299.5313 Q235.1563,299.6875 235.7188,299.9844 L235.7188,302.7031 Q235.0938,302.125 234.5,301.8594 Q233.9063,301.5781 233.2813,301.5781 Q231.9375,301.5781 231.25,302.6563 Q230.5625,303.7188 230.5625,305.8125 Q230.5625,307.9063 231.25,308.9844 Q231.9375,310.0469 233.2813,310.0469 Q233.9063,310.0469 234.5,309.7813 Q235.0938,309.5 235.7188,308.9219 L235.7188,311.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="253.25" y="310.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="253.25" y="310.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="177.5" x2="304.5" y1="322" y2="322"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="177.5" x2="304.5" y1="322" y2="322"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="177.5" x2="304.5" y1="330" y2="330"/>
<ellipse cx="187.5" cy="341" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="96" x="196.5" y="344.2104">foo() const : void</text>
<ellipse cx="187.5" cy="353.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="103" x="196.5" y="357.0151">foo2() const : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L13" target="_top" title="A##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L13" xlink:show="new" xlink:title="A##AA" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L11" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L11" xlink:show="new" xlink:title="foo" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0001742499843727859552" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="209" y="168"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="182.5" y="328"/>
<ellipse cx="187.5" cy="333" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L11" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L11" xlink:show="new" xlink:title="foo" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="96" x="196.5" y="336.2104">foo() const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L20" target="_top" title="foo2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L20" xlink:show="new" xlink:title="foo2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="182.5" y="340.8047"/>
<ellipse cx="187.5" cy="345.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L20" target="_top" title="foo2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L20" xlink:show="new" xlink:title="foo2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="103" x="196.5" y="349.0151">foo2() const : void</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="177.5" x2="304.5" y1="355.6094" y2="355.6094"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L13" target="_top" title="A##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L13" xlink:show="new" xlink:title="A##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0001742499843727859552" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="209" y="168"/>
<ellipse cx="224" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="224" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M226.9688,189.6406 Q226.3906,189.9375 225.75,190.0781 Q225.1094,190.2344 224.4063,190.2344 Q221.9063,190.2344 220.5781,188.5938 Q219.2656,186.9375 219.2656,183.8125 Q219.2656,180.6875 220.5781,179.0313 Q221.9063,177.375 224.4063,177.375 Q225.1094,177.375 225.75,177.5313 Q226.4063,177.6875 226.9688,177.9844 L226.9688,180.7031 Q226.3438,180.125 225.75,179.8594 Q225.1563,179.5781 224.5313,179.5781 Q223.1875,179.5781 222.5,180.6563 Q221.8125,181.7188 221.8125,183.8125 Q221.8125,185.9063 222.5,186.9844 Q223.1875,188.0469 224.5313,188.0469 Q225.1563,188.0469 225.75,187.7813 Q226.3438,187.5 226.9688,186.9219 L226.9688,189.6406 Z "/> <path d="M226.9688,189.6406 Q226.3906,189.9375 225.75,190.0781 Q225.1094,190.2344 224.4063,190.2344 Q221.9063,190.2344 220.5781,188.5938 Q219.2656,186.9375 219.2656,183.8125 Q219.2656,180.6875 220.5781,179.0313 Q221.9063,177.375 224.4063,177.375 Q225.1094,177.375 225.75,177.5313 Q226.4063,177.6875 226.9688,177.9844 L226.9688,180.7031 Q226.3438,180.125 225.75,179.8594 Q225.1563,179.5781 224.5313,179.5781 Q223.1875,179.5781 222.5,180.6563 Q221.8125,181.7188 221.8125,183.8125 Q221.8125,185.9063 222.5,186.9844 Q223.1875,188.0469 224.5313,188.0469 Q225.1563,188.0469 225.75,187.7813 Q226.3438,187.5 226.9688,186.9219 L226.9688,189.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="238" y="188.1543">A::AA</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="238" y="188.1543">A::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="210" x2="272" y1="200" y2="200"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="210" x2="272" y1="200" y2="200"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="210" x2="272" y1="208" y2="208"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="210" x2="272" y1="208" y2="208"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L15" target="_top" title="A##AA##Lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L15" xlink:show="new" xlink:title="A##AA##Lights" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L15" target="_top" title="A##AA##Lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L15" xlink:show="new" xlink:title="A##AA##Lights" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="86.4141" id="C_0000590936874508841244" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="105.5" y="8"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="86.4141" id="C_0000590936874508841244" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="105.5" y="8"/>
<ellipse cx="120.5" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="120.5" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M124.6094,30 L116.8906,30 L116.8906,17.6094 L124.6094,17.6094 L124.6094,19.7656 L119.3438,19.7656 L119.3438,22.4375 L124.1094,22.4375 L124.1094,24.5938 L119.3438,24.5938 L119.3438,27.8438 L124.6094,27.8438 L124.6094,30 Z "/> <path d="M124.6094,30 L116.8906,30 L116.8906,17.6094 L124.6094,17.6094 L124.6094,19.7656 L119.3438,19.7656 L119.3438,22.4375 L124.1094,22.4375 L124.1094,24.5938 L119.3438,24.5938 L119.3438,27.8438 L124.6094,27.8438 L124.6094,30 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="134.5" y="28.1543">A::AA::Lights</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="134.5" y="28.1543">A::AA::Lights</text>
@@ -59,64 +69,66 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="111.5" y="79.8198">Red</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="111.5" y="79.8198">Red</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="106.5" x2="213.5" y1="86.4141" y2="86.4141"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="106.5" x2="213.5" y1="86.4141" y2="86.4141"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L17" target="_top" title="A##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L17" xlink:show="new" xlink:title="A##AA##AAA" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L17" target="_top" title="A##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L17" xlink:show="new" xlink:title="A##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0001430186633004282131" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="250" y="27"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0001430186633004282131" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="250" y="27"/>
<ellipse cx="265" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="265" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M267.9688,48.6406 Q267.3906,48.9375 266.75,49.0781 Q266.1094,49.2344 265.4063,49.2344 Q262.9063,49.2344 261.5781,47.5938 Q260.2656,45.9375 260.2656,42.8125 Q260.2656,39.6875 261.5781,38.0313 Q262.9063,36.375 265.4063,36.375 Q266.1094,36.375 266.75,36.5313 Q267.4063,36.6875 267.9688,36.9844 L267.9688,39.7031 Q267.3438,39.125 266.75,38.8594 Q266.1563,38.5781 265.5313,38.5781 Q264.1875,38.5781 263.5,39.6563 Q262.8125,40.7188 262.8125,42.8125 Q262.8125,44.9063 263.5,45.9844 Q264.1875,47.0469 265.5313,47.0469 Q266.1563,47.0469 266.75,46.7813 Q267.3438,46.5 267.9688,45.9219 L267.9688,48.6406 Z "/> <path d="M267.9688,48.6406 Q267.3906,48.9375 266.75,49.0781 Q266.1094,49.2344 265.4063,49.2344 Q262.9063,49.2344 261.5781,47.5938 Q260.2656,45.9375 260.2656,42.8125 Q260.2656,39.6875 261.5781,38.0313 Q262.9063,36.375 265.4063,36.375 Q266.1094,36.375 266.75,36.5313 Q267.4063,36.6875 267.9688,36.9844 L267.9688,39.7031 Q267.3438,39.125 266.75,38.8594 Q266.1563,38.5781 265.5313,38.5781 Q264.1875,38.5781 263.5,39.6563 Q262.8125,40.7188 262.8125,42.8125 Q262.8125,44.9063 263.5,45.9844 Q264.1875,47.0469 265.5313,47.0469 Q266.1563,47.0469 266.75,46.7813 Q267.3438,46.5 267.9688,45.9219 L267.9688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="279" y="47.1543">A::AA::AAA</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="279" y="47.1543">A::AA::AAA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="345" y1="59" y2="59"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="345" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="345" y1="67" y2="67"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="345" y1="67" y2="67"/>
</a> </a>
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0000287819369330075965" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="418" y="27"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L33" target="_top" title="C##B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L33" xlink:show="new" xlink:title="C##B" xlink:type="simple">
<ellipse cx="433" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0000287819369330075965" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="418" y="27"/>
<path d="M435.9688,48.6406 Q435.3906,48.9375 434.75,49.0781 Q434.1094,49.2344 433.4063,49.2344 Q430.9063,49.2344 429.5781,47.5938 Q428.2656,45.9375 428.2656,42.8125 Q428.2656,39.6875 429.5781,38.0313 Q430.9063,36.375 433.4063,36.375 Q434.1094,36.375 434.75,36.5313 Q435.4063,36.6875 435.9688,36.9844 L435.9688,39.7031 Q435.3438,39.125 434.75,38.8594 Q434.1563,38.5781 433.5313,38.5781 Q432.1875,38.5781 431.5,39.6563 Q430.8125,40.7188 430.8125,42.8125 Q430.8125,44.9063 431.5,45.9844 Q432.1875,47.0469 433.5313,47.0469 Q434.1563,47.0469 434.75,46.7813 Q435.3438,46.5 435.9688,45.9219 L435.9688,48.6406 Z "/> <ellipse cx="433" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="24" x="447" y="47.1543">C::B</text> <path d="M435.9688,48.6406 Q435.3906,48.9375 434.75,49.0781 Q434.1094,49.2344 433.4063,49.2344 Q430.9063,49.2344 429.5781,47.5938 Q428.2656,45.9375 428.2656,42.8125 Q428.2656,39.6875 429.5781,38.0313 Q430.9063,36.375 433.4063,36.375 Q434.1094,36.375 434.75,36.5313 Q435.4063,36.6875 435.9688,36.9844 L435.9688,39.7031 Q435.3438,39.125 434.75,38.8594 Q434.1563,38.5781 433.5313,38.5781 Q432.1875,38.5781 431.5,39.6563 Q430.8125,40.7188 430.8125,42.8125 Q430.8125,44.9063 431.5,45.9844 Q432.1875,47.0469 433.5313,47.0469 Q434.1563,47.0469 434.75,46.7813 Q435.3438,46.5 435.9688,45.9219 L435.9688,48.6406 Z "/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="479" y="24"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="24" x="447" y="47.1543">C::B</text>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="480" y="36.1387">int</text> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="479" y="24"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="419" x2="493" y1="59" y2="59"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="480" y="36.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="419" x2="493" y1="67" y2="67"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="419" x2="493" y1="59" y2="59"/>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L23" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L23" xlink:show="new" xlink:title="C" xlink:type="simple"> <line style="stroke: #A80036; stroke-width: 1.5;" x1="419" x2="493" y1="67" y2="67"/>
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="73.6094" id="C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="490.5" y="290"/> </a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L23" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L23" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="73.6094" id="C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="490.5" y="290"/>
<ellipse cx="529.8" cy="306" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="529.8" cy="306" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M532.7688,311.6406 Q532.1906,311.9375 531.55,312.0781 Q530.9094,312.2344 530.2063,312.2344 Q527.7063,312.2344 526.3781,310.5938 Q525.0656,308.9375 525.0656,305.8125 Q525.0656,302.6875 526.3781,301.0313 Q527.7063,299.375 530.2063,299.375 Q530.9094,299.375 531.55,299.5313 Q532.2063,299.6875 532.7688,299.9844 L532.7688,302.7031 Q532.1438,302.125 531.55,301.8594 Q530.9563,301.5781 530.3313,301.5781 Q528.9875,301.5781 528.3,302.6563 Q527.6125,303.7188 527.6125,305.8125 Q527.6125,307.9063 528.3,308.9844 Q528.9875,310.0469 530.3313,310.0469 Q530.9563,310.0469 531.55,309.7813 Q532.1438,309.5 532.7688,308.9219 L532.7688,311.6406 Z "/> <path d="M532.7688,311.6406 Q532.1906,311.9375 531.55,312.0781 Q530.9094,312.2344 530.2063,312.2344 Q527.7063,312.2344 526.3781,310.5938 Q525.0656,308.9375 525.0656,305.8125 Q525.0656,302.6875 526.3781,301.0313 Q527.7063,299.375 530.2063,299.375 Q530.9094,299.375 531.55,299.5313 Q532.2063,299.6875 532.7688,299.9844 L532.7688,302.7031 Q532.1438,302.125 531.55,301.8594 Q530.9563,301.5781 530.3313,301.5781 Q528.9875,301.5781 528.3,302.6563 Q527.6125,303.7188 527.6125,305.8125 Q527.6125,307.9063 528.3,308.9844 Q528.9875,310.0469 530.3313,310.0469 Q530.9563,310.0469 531.55,309.7813 Q532.1438,309.5 532.7688,308.9219 L532.7688,311.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="549.2" y="310.1543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="549.2" y="310.1543">C</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="589.5" y="287"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="589.5" y="287"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="590.5" y="299.1387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="590.5" y="299.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="491.5" x2="594.5" y1="322" y2="322"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="491.5" x2="594.5" y1="322" y2="322"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="491.5" x2="594.5" y1="330" y2="330"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L25" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L25" xlink:show="new" xlink:title="t" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L37" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L37" xlink:show="new" xlink:title="b_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="496.5" y="328"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="496.5" y="336"/>
<ellipse cx="501.5" cy="333" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="501.5" cy="341" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L25" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L25" xlink:show="new" xlink:title="t" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L37" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L37" xlink:show="new" xlink:title="b_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="510.5" y="336.2104">t : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="510.5" y="344.2104">b_int : B&lt;int&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L37" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L37" xlink:show="new" xlink:title="b_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L25" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L25" xlink:show="new" xlink:title="t" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="496.5" y="340.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="496.5" y="348.8047"/>
<ellipse cx="501.5" cy="345.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="501.5" cy="353.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L37" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L37" xlink:show="new" xlink:title="b_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L25" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L25" xlink:show="new" xlink:title="t" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="510.5" y="349.0151">b_int : B&lt;int&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="510.5" y="357.0151">t : T</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="491.5" x2="594.5" y1="355.6094" y2="355.6094"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L27" target="_top" title="C##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L27" xlink:show="new" xlink:title="C##AA" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L27" target="_top" title="C##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L27" xlink:show="new" xlink:title="C##AA" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0000623940132897927654" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="584" y="168"/>
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0000623940132897927654" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="584" y="168"/>
<ellipse cx="599" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="599" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M601.9688,189.6406 Q601.3906,189.9375 600.75,190.0781 Q600.1094,190.2344 599.4063,190.2344 Q596.9063,190.2344 595.5781,188.5938 Q594.2656,186.9375 594.2656,183.8125 Q594.2656,180.6875 595.5781,179.0313 Q596.9063,177.375 599.4063,177.375 Q600.1094,177.375 600.75,177.5313 Q601.4063,177.6875 601.9688,177.9844 L601.9688,180.7031 Q601.3438,180.125 600.75,179.8594 Q600.1563,179.5781 599.5313,179.5781 Q598.1875,179.5781 597.5,180.6563 Q596.8125,181.7188 596.8125,183.8125 Q596.8125,185.9063 597.5,186.9844 Q598.1875,188.0469 599.5313,188.0469 Q600.1563,188.0469 600.75,187.7813 Q601.3438,187.5 601.9688,186.9219 L601.9688,189.6406 Z "/> <path d="M601.9688,189.6406 Q601.3906,189.9375 600.75,190.0781 Q600.1094,190.2344 599.4063,190.2344 Q596.9063,190.2344 595.5781,188.5938 Q594.2656,186.9375 594.2656,183.8125 Q594.2656,180.6875 595.5781,179.0313 Q596.9063,177.375 599.4063,177.375 Q600.1094,177.375 600.75,177.5313 Q601.4063,177.6875 601.9688,177.9844 L601.9688,180.7031 Q601.3438,180.125 600.75,179.8594 Q600.1563,179.5781 599.5313,179.5781 Q598.1875,179.5781 597.5,180.6563 Q596.8125,181.7188 596.8125,183.8125 Q596.8125,185.9063 597.5,186.9844 Q598.1875,188.0469 599.5313,188.0469 Q600.1563,188.0469 600.75,187.7813 Q601.3438,187.5 601.9688,186.9219 L601.9688,189.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="613" y="188.1543">C::AA</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="613" y="188.1543">C::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="585" x2="647" y1="200" y2="200"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="585" x2="647" y1="200" y2="200"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="585" x2="647" y1="208" y2="208"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="585" x2="647" y1="208" y2="208"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L28" target="_top" title="C##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L28" xlink:show="new" xlink:title="C##AA##AAA" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L28" target="_top" title="C##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L28" xlink:show="new" xlink:title="C##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0001597801087286500866" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="545" y="27"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0001597801087286500866" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="545" y="27"/>
<ellipse cx="560" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="560" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M562.9688,48.6406 Q562.3906,48.9375 561.75,49.0781 Q561.1094,49.2344 560.4063,49.2344 Q557.9063,49.2344 556.5781,47.5938 Q555.2656,45.9375 555.2656,42.8125 Q555.2656,39.6875 556.5781,38.0313 Q557.9063,36.375 560.4063,36.375 Q561.1094,36.375 561.75,36.5313 Q562.4063,36.6875 562.9688,36.9844 L562.9688,39.7031 Q562.3438,39.125 561.75,38.8594 Q561.1563,38.5781 560.5313,38.5781 Q559.1875,38.5781 558.5,39.6563 Q557.8125,40.7188 557.8125,42.8125 Q557.8125,44.9063 558.5,45.9844 Q559.1875,47.0469 560.5313,47.0469 Q561.1563,47.0469 561.75,46.7813 Q562.3438,46.5 562.9688,45.9219 L562.9688,48.6406 Z "/> <path d="M562.9688,48.6406 Q562.3906,48.9375 561.75,49.0781 Q561.1094,49.2344 560.4063,49.2344 Q557.9063,49.2344 556.5781,47.5938 Q555.2656,45.9375 555.2656,42.8125 Q555.2656,39.6875 556.5781,38.0313 Q557.9063,36.375 560.4063,36.375 Q561.1094,36.375 561.75,36.5313 Q562.4063,36.6875 562.9688,36.9844 L562.9688,39.7031 Q562.3438,39.125 561.75,38.8594 Q561.1563,38.5781 560.5313,38.5781 Q559.1875,38.5781 558.5,39.6563 Q557.8125,40.7188 557.8125,42.8125 Q557.8125,44.9063 558.5,45.9844 Q559.1875,47.0469 560.5313,47.0469 Q561.1563,47.0469 561.75,46.7813 Q562.3438,46.5 562.9688,45.9219 L562.9688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="574" y="47.1543">C::AA::AAA</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="574" y="47.1543">C::AA::AAA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="546" x2="640" y1="59" y2="59"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="546" x2="640" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="546" x2="640" y1="67" y2="67"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="546" x2="640" y1="67" y2="67"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L30" target="_top" title="C##AA##CCC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L30" xlink:show="new" xlink:title="C##AA##CCC" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L30" target="_top" title="C##AA##CCC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L30" xlink:show="new" xlink:title="C##AA##CCC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="73.6094" id="C_0000081819202639599734" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="676" y="14"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="73.6094" id="C_0000081819202639599734" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="676" y="14"/>
<ellipse cx="691" cy="30" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="691" cy="30" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M695.1094,36 L687.3906,36 L687.3906,23.6094 L695.1094,23.6094 L695.1094,25.7656 L689.8438,25.7656 L689.8438,28.4375 L694.6094,28.4375 L694.6094,30.5938 L689.8438,30.5938 L689.8438,33.8438 L695.1094,33.8438 L695.1094,36 Z "/> <path d="M695.1094,36 L687.3906,36 L687.3906,23.6094 L695.1094,23.6094 L695.1094,25.7656 L689.8438,25.7656 L689.8438,28.4375 L694.6094,28.4375 L694.6094,30.5938 L689.8438,30.5938 L689.8438,33.8438 L695.1094,33.8438 L695.1094,36 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="705" y="34.1543">C::AA::CCC</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="705" y="34.1543">C::AA::CCC</text>
@@ -125,25 +137,25 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="682" y="73.0151">CCC_2</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="682" y="73.0151">CCC_2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="677" x2="771" y1="79.6094" y2="79.6094"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="677" x2="771" y1="79.6094" y2="79.6094"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L33" target="_top" title="C##B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L33" xlink:show="new" xlink:title="C##B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L33" target="_top" title="C##B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L33" xlink:show="new" xlink:title="C##B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="60.8047" id="C_0001381298335849583950" style="stroke: #A80036; stroke-width: 1.5;" width="68" x="366" y="161.5"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="60.8047" id="C_0001381298335849583950" style="stroke: #A80036; stroke-width: 1.5;" width="68" x="366" y="161.5"/>
<ellipse cx="381" cy="177.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="381" cy="177.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M383.9688,183.1406 Q383.3906,183.4375 382.75,183.5781 Q382.1094,183.7344 381.4063,183.7344 Q378.9063,183.7344 377.5781,182.0938 Q376.2656,180.4375 376.2656,177.3125 Q376.2656,174.1875 377.5781,172.5313 Q378.9063,170.875 381.4063,170.875 Q382.1094,170.875 382.75,171.0313 Q383.4063,171.1875 383.9688,171.4844 L383.9688,174.2031 Q383.3438,173.625 382.75,173.3594 Q382.1563,173.0781 381.5313,173.0781 Q380.1875,173.0781 379.5,174.1563 Q378.8125,175.2188 378.8125,177.3125 Q378.8125,179.4063 379.5,180.4844 Q380.1875,181.5469 381.5313,181.5469 Q382.1563,181.5469 382.75,181.2813 Q383.3438,181 383.9688,180.4219 L383.9688,183.1406 Z "/> <path d="M383.9688,183.1406 Q383.3906,183.4375 382.75,183.5781 Q382.1094,183.7344 381.4063,183.7344 Q378.9063,183.7344 377.5781,182.0938 Q376.2656,180.4375 376.2656,177.3125 Q376.2656,174.1875 377.5781,172.5313 Q378.9063,170.875 381.4063,170.875 Q382.1094,170.875 382.75,171.0313 Q383.4063,171.1875 383.9688,171.4844 L383.9688,174.2031 Q383.3438,173.625 382.75,173.3594 Q382.1563,173.0781 381.5313,173.0781 Q380.1875,173.0781 379.5,174.1563 Q378.8125,175.2188 378.8125,177.3125 Q378.8125,179.4063 379.5,180.4844 Q380.1875,181.5469 381.5313,181.5469 Q382.1563,181.5469 382.75,181.2813 Q383.3438,181 383.9688,180.4219 L383.9688,183.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="24" x="395" y="181.6543">C::B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="24" x="395" y="181.6543">C::B</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="10" x="427" y="158.5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="10" x="427" y="158.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="428" y="170.6387">V</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="428" y="170.6387">V</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367" x2="433" y1="193.5" y2="193.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="367" x2="433" y1="193.5" y2="193.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367" x2="433" y1="201.5" y2="201.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L34" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L34" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L34" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L34" xlink:show="new" xlink:title="b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="372" y="199.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="372" y="207.5"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="374" y="201.5"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="374" y="209.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L34" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L34" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L34" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L34" xlink:show="new" xlink:title="b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="386" y="207.7104">b : V</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="386" y="215.7104">b : V</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367" x2="433" y1="214.3047" y2="214.3047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L39" target="_top" title="C##CC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L39" xlink:show="new" xlink:title="C##CC" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L39" target="_top" title="C##CC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L39" xlink:show="new" xlink:title="C##CC" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="73.6094" id="C_0002037378936100378699" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="683" y="155"/>
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="73.6094" id="C_0002037378936100378699" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="683" y="155"/>
<ellipse cx="698" cy="171" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="698" cy="171" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M702.1094,177 L694.3906,177 L694.3906,164.6094 L702.1094,164.6094 L702.1094,166.7656 L696.8438,166.7656 L696.8438,169.4375 L701.6094,169.4375 L701.6094,171.5938 L696.8438,171.5938 L696.8438,174.8438 L702.1094,174.8438 L702.1094,177 Z "/> <path d="M702.1094,177 L694.3906,177 L694.3906,164.6094 L702.1094,164.6094 L702.1094,166.7656 L696.8438,166.7656 L696.8438,169.4375 L701.6094,169.4375 L701.6094,171.5938 L696.8438,171.5938 L696.8438,174.8438 L702.1094,174.8438 L702.1094,177 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="712" y="175.1543">C::CC</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="712" y="175.1543">C::CC</text>
@@ -152,16 +164,16 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="689" y="214.0151">CC_2</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="689" y="214.0151">CC_2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="684" x2="746" y1="220.6094" y2="220.6094"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="684" x2="746" y1="220.6094" y2="220.6094"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L43" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L43" xlink:show="new" xlink:title="D" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L43" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L43" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0000612133170877135796" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="891" y="168"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0000612133170877135796" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="891" y="168"/>
<ellipse cx="906" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="906" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M908.9688,189.6406 Q908.3906,189.9375 907.75,190.0781 Q907.1094,190.2344 906.4063,190.2344 Q903.9063,190.2344 902.5781,188.5938 Q901.2656,186.9375 901.2656,183.8125 Q901.2656,180.6875 902.5781,179.0313 Q903.9063,177.375 906.4063,177.375 Q907.1094,177.375 907.75,177.5313 Q908.4063,177.6875 908.9688,177.9844 L908.9688,180.7031 Q908.3438,180.125 907.75,179.8594 Q907.1563,179.5781 906.5313,179.5781 Q905.1875,179.5781 904.5,180.6563 Q903.8125,181.7188 903.8125,183.8125 Q903.8125,185.9063 904.5,186.9844 Q905.1875,188.0469 906.5313,188.0469 Q907.1563,188.0469 907.75,187.7813 Q908.3438,187.5 908.9688,186.9219 L908.9688,189.6406 Z "/> <path d="M908.9688,189.6406 Q908.3906,189.9375 907.75,190.0781 Q907.1094,190.2344 906.4063,190.2344 Q903.9063,190.2344 902.5781,188.5938 Q901.2656,186.9375 901.2656,183.8125 Q901.2656,180.6875 902.5781,179.0313 Q903.9063,177.375 906.4063,177.375 Q907.1094,177.375 907.75,177.5313 Q908.4063,177.6875 908.9688,177.9844 L908.9688,180.7031 Q908.3438,180.125 907.75,179.8594 Q907.1563,179.5781 906.5313,179.5781 Q905.1875,179.5781 904.5,180.6563 Q903.8125,181.7188 903.8125,183.8125 Q903.8125,185.9063 904.5,186.9844 Q905.1875,188.0469 906.5313,188.0469 Q907.1563,188.0469 907.75,187.7813 Q908.3438,187.5 908.9688,186.9219 L908.9688,189.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="920" y="188.1543">detail::D</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="920" y="188.1543">detail::D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="892" x2="974" y1="200" y2="200"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="892" x2="974" y1="200" y2="200"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="892" x2="974" y1="208" y2="208"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="892" x2="974" y1="208" y2="208"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L45" target="_top" title="D##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L45" xlink:show="new" xlink:title="D##AA" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L45" target="_top" title="D##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L45" xlink:show="new" xlink:title="D##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="86.4141" id="C_0001572080057917630922" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="807" y="8"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="86.4141" id="C_0001572080057917630922" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="807" y="8"/>
<ellipse cx="822" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="822" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M826.1094,30 L818.3906,30 L818.3906,17.6094 L826.1094,17.6094 L826.1094,19.7656 L820.8438,19.7656 L820.8438,22.4375 L825.6094,22.4375 L825.6094,24.5938 L820.8438,24.5938 L820.8438,27.8438 L826.1094,27.8438 L826.1094,30 Z "/> <path d="M826.1094,30 L818.3906,30 L818.3906,17.6094 L826.1094,17.6094 L826.1094,19.7656 L820.8438,19.7656 L820.8438,22.4375 L825.6094,22.4375 L825.6094,24.5938 L820.8438,24.5938 L820.8438,27.8438 L826.1094,27.8438 L826.1094,30 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="836" y="28.1543">detail::D::AA</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="836" y="28.1543">detail::D::AA</text>
@@ -171,8 +183,8 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="813" y="79.8198">AA_3</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="813" y="79.8198">AA_3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="808" x2="914" y1="86.4141" y2="86.4141"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="808" x2="914" y1="86.4141" y2="86.4141"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L47" target="_top" title="D##DD" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00004/t00004.cc#L47" xlink:show="new" xlink:title="D##DD" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L47" target="_top" title="D##DD" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00004/t00004.cc#L47" xlink:show="new" xlink:title="D##DD" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v43ytv8gtapz)" height="48" id="C_0000600916232677555492" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="950" y="27"/> <rect fill="#FEFECE" filter="url(#ff7w0g2fnebeh)" height="48" id="C_0000600916232677555492" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="950" y="27"/>
<ellipse cx="965" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="965" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M967.9688,48.6406 Q967.3906,48.9375 966.75,49.0781 Q966.1094,49.2344 965.4063,49.2344 Q962.9063,49.2344 961.5781,47.5938 Q960.2656,45.9375 960.2656,42.8125 Q960.2656,39.6875 961.5781,38.0313 Q962.9063,36.375 965.4063,36.375 Q966.1094,36.375 966.75,36.5313 Q967.4063,36.6875 967.9688,36.9844 L967.9688,39.7031 Q967.3438,39.125 966.75,38.8594 Q966.1563,38.5781 965.5313,38.5781 Q964.1875,38.5781 963.5,39.6563 Q962.8125,40.7188 962.8125,42.8125 Q962.8125,44.9063 963.5,45.9844 Q964.1875,47.0469 965.5313,47.0469 Q966.1563,47.0469 966.75,46.7813 Q967.3438,46.5 967.9688,45.9219 L967.9688,48.6406 Z "/> <path d="M967.9688,48.6406 Q967.3906,48.9375 966.75,49.0781 Q966.1094,49.2344 965.4063,49.2344 Q962.9063,49.2344 961.5781,47.5938 Q960.2656,45.9375 960.2656,42.8125 Q960.2656,39.6875 961.5781,38.0313 Q962.9063,36.375 965.4063,36.375 Q966.1094,36.375 966.75,36.5313 Q967.4063,36.6875 967.9688,36.9844 L967.9688,39.7031 Q967.3438,39.125 966.75,38.8594 Q966.1563,38.5781 965.5313,38.5781 Q964.1875,38.5781 963.5,39.6563 Q962.8125,40.7188 962.8125,42.8125 Q962.8125,44.9063 963.5,45.9844 Q964.1875,47.0469 965.5313,47.0469 Q966.1563,47.0469 966.75,46.7813 Q967.3438,46.5 967.9688,45.9219 L967.9688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="979" y="47.1543">detail::D::DD</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="979" y="47.1543">detail::D::DD</text>

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 39 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 41 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="384px" preserveAspectRatio="none" style="width:799px;height:384px;" version="1.1" viewBox="0 0 799 384" width="799px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="384px" preserveAspectRatio="none" style="width:799px;height:384px;" version="1.1" viewBox="0 0 799 384" width="799px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f3hxwwiwlkhjh" width="300%" x="-1" y="-1"> <filter height="300%" id="f103lvwn56wu0k" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,207 +9,207 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L3" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L3" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L3" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L3" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0000096355893895780319" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0000096355893895780319" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="325"/>
<ellipse cx="21" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,346.6406 Q23.3906,346.9375 22.75,347.0781 Q22.1094,347.2344 21.4063,347.2344 Q18.9063,347.2344 17.5781,345.5938 Q16.2656,343.9375 16.2656,340.8125 Q16.2656,337.6875 17.5781,336.0313 Q18.9063,334.375 21.4063,334.375 Q22.1094,334.375 22.75,334.5313 Q23.4063,334.6875 23.9688,334.9844 L23.9688,337.7031 Q23.3438,337.125 22.75,336.8594 Q22.1563,336.5781 21.5313,336.5781 Q20.1875,336.5781 19.5,337.6563 Q18.8125,338.7188 18.8125,340.8125 Q18.8125,342.9063 19.5,343.9844 Q20.1875,345.0469 21.5313,345.0469 Q22.1563,345.0469 22.75,344.7813 Q23.3438,344.5 23.9688,343.9219 L23.9688,346.6406 Z "/> <path d="M23.9688,346.6406 Q23.3906,346.9375 22.75,347.0781 Q22.1094,347.2344 21.4063,347.2344 Q18.9063,347.2344 17.5781,345.5938 Q16.2656,343.9375 16.2656,340.8125 Q16.2656,337.6875 17.5781,336.0313 Q18.9063,334.375 21.4063,334.375 Q22.1094,334.375 22.75,334.5313 Q23.4063,334.6875 23.9688,334.9844 L23.9688,337.7031 Q23.3438,337.125 22.75,336.8594 Q22.1563,336.5781 21.5313,336.5781 Q20.1875,336.5781 19.5,337.6563 Q18.8125,338.7188 18.8125,340.8125 Q18.8125,342.9063 19.5,343.9844 Q20.1875,345.0469 21.5313,345.0469 Q22.1563,345.0469 22.75,344.7813 Q23.3438,344.5 23.9688,343.9219 L23.9688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="345.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="345.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L5" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L5" xlink:show="new" xlink:title="B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L5" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L5" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0001909425857334087541" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0001909425857334087541" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="325"/>
<ellipse cx="96" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="96" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M98.9688,346.6406 Q98.3906,346.9375 97.75,347.0781 Q97.1094,347.2344 96.4063,347.2344 Q93.9063,347.2344 92.5781,345.5938 Q91.2656,343.9375 91.2656,340.8125 Q91.2656,337.6875 92.5781,336.0313 Q93.9063,334.375 96.4063,334.375 Q97.1094,334.375 97.75,334.5313 Q98.4063,334.6875 98.9688,334.9844 L98.9688,337.7031 Q98.3438,337.125 97.75,336.8594 Q97.1563,336.5781 96.5313,336.5781 Q95.1875,336.5781 94.5,337.6563 Q93.8125,338.7188 93.8125,340.8125 Q93.8125,342.9063 94.5,343.9844 Q95.1875,345.0469 96.5313,345.0469 Q97.1563,345.0469 97.75,344.7813 Q98.3438,344.5 98.9688,343.9219 L98.9688,346.6406 Z "/> <path d="M98.9688,346.6406 Q98.3906,346.9375 97.75,347.0781 Q97.1094,347.2344 96.4063,347.2344 Q93.9063,347.2344 92.5781,345.5938 Q91.2656,343.9375 91.2656,340.8125 Q91.2656,337.6875 92.5781,336.0313 Q93.9063,334.375 96.4063,334.375 Q97.1094,334.375 97.75,334.5313 Q98.4063,334.6875 98.9688,334.9844 L98.9688,337.7031 Q98.3438,337.125 97.75,336.8594 Q97.1563,336.5781 96.5313,336.5781 Q95.1875,336.5781 94.5,337.6563 Q93.8125,338.7188 93.8125,340.8125 Q93.8125,342.9063 94.5,343.9844 Q95.1875,345.0469 96.5313,345.0469 Q97.1563,345.0469 97.75,344.7813 Q98.3438,344.5 98.9688,343.9219 L98.9688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="345.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="345.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L7" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L7" xlink:show="new" xlink:title="C" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L7" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L7" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0000968176384460064907" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0000968176384460064907" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="325"/>
<ellipse cx="171" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="171" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M173.9688,346.6406 Q173.3906,346.9375 172.75,347.0781 Q172.1094,347.2344 171.4063,347.2344 Q168.9063,347.2344 167.5781,345.5938 Q166.2656,343.9375 166.2656,340.8125 Q166.2656,337.6875 167.5781,336.0313 Q168.9063,334.375 171.4063,334.375 Q172.1094,334.375 172.75,334.5313 Q173.4063,334.6875 173.9688,334.9844 L173.9688,337.7031 Q173.3438,337.125 172.75,336.8594 Q172.1563,336.5781 171.5313,336.5781 Q170.1875,336.5781 169.5,337.6563 Q168.8125,338.7188 168.8125,340.8125 Q168.8125,342.9063 169.5,343.9844 Q170.1875,345.0469 171.5313,345.0469 Q172.1563,345.0469 172.75,344.7813 Q173.3438,344.5 173.9688,343.9219 L173.9688,346.6406 Z "/> <path d="M173.9688,346.6406 Q173.3906,346.9375 172.75,347.0781 Q172.1094,347.2344 171.4063,347.2344 Q168.9063,347.2344 167.5781,345.5938 Q166.2656,343.9375 166.2656,340.8125 Q166.2656,337.6875 167.5781,336.0313 Q168.9063,334.375 171.4063,334.375 Q172.1094,334.375 172.75,334.5313 Q173.4063,334.6875 173.9688,334.9844 L173.9688,337.7031 Q173.3438,337.125 172.75,336.8594 Q172.1563,336.5781 171.5313,336.5781 Q170.1875,336.5781 169.5,337.6563 Q168.8125,338.7188 168.8125,340.8125 Q168.8125,342.9063 169.5,343.9844 Q170.1875,345.0469 171.5313,345.0469 Q172.1563,345.0469 172.75,344.7813 Q173.3438,344.5 173.9688,343.9219 L173.9688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="345.1543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="345.1543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L9" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L9" xlink:show="new" xlink:title="D" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L9" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L9" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0001735599590836186693" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0001735599590836186693" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="325"/>
<ellipse cx="246.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="246.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M249.4688,346.6406 Q248.8906,346.9375 248.25,347.0781 Q247.6094,347.2344 246.9063,347.2344 Q244.4063,347.2344 243.0781,345.5938 Q241.7656,343.9375 241.7656,340.8125 Q241.7656,337.6875 243.0781,336.0313 Q244.4063,334.375 246.9063,334.375 Q247.6094,334.375 248.25,334.5313 Q248.9063,334.6875 249.4688,334.9844 L249.4688,337.7031 Q248.8438,337.125 248.25,336.8594 Q247.6563,336.5781 247.0313,336.5781 Q245.6875,336.5781 245,337.6563 Q244.3125,338.7188 244.3125,340.8125 Q244.3125,342.9063 245,343.9844 Q245.6875,345.0469 247.0313,345.0469 Q247.6563,345.0469 248.25,344.7813 Q248.8438,344.5 249.4688,343.9219 L249.4688,346.6406 Z "/> <path d="M249.4688,346.6406 Q248.8906,346.9375 248.25,347.0781 Q247.6094,347.2344 246.9063,347.2344 Q244.4063,347.2344 243.0781,345.5938 Q241.7656,343.9375 241.7656,340.8125 Q241.7656,337.6875 243.0781,336.0313 Q244.4063,334.375 246.9063,334.375 Q247.6094,334.375 248.25,334.5313 Q248.9063,334.6875 249.4688,334.9844 L249.4688,337.7031 Q248.8438,337.125 248.25,336.8594 Q247.6563,336.5781 247.0313,336.5781 Q245.6875,336.5781 245,337.6563 Q244.3125,338.7188 244.3125,340.8125 Q244.3125,342.9063 245,343.9844 Q245.6875,345.0469 247.0313,345.0469 Q247.6563,345.0469 248.25,344.7813 Q248.8438,344.5 249.4688,343.9219 L249.4688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="260.5" y="345.1543">D</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="260.5" y="345.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L11" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L11" xlink:show="new" xlink:title="E" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L11" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L11" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0000887960136921844658" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="308" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0000887960136921844658" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="308" y="325"/>
<ellipse cx="323" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="323" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M325.9688,346.6406 Q325.3906,346.9375 324.75,347.0781 Q324.1094,347.2344 323.4063,347.2344 Q320.9063,347.2344 319.5781,345.5938 Q318.2656,343.9375 318.2656,340.8125 Q318.2656,337.6875 319.5781,336.0313 Q320.9063,334.375 323.4063,334.375 Q324.1094,334.375 324.75,334.5313 Q325.4063,334.6875 325.9688,334.9844 L325.9688,337.7031 Q325.3438,337.125 324.75,336.8594 Q324.1563,336.5781 323.5313,336.5781 Q322.1875,336.5781 321.5,337.6563 Q320.8125,338.7188 320.8125,340.8125 Q320.8125,342.9063 321.5,343.9844 Q322.1875,345.0469 323.5313,345.0469 Q324.1563,345.0469 324.75,344.7813 Q325.3438,344.5 325.9688,343.9219 L325.9688,346.6406 Z "/> <path d="M325.9688,346.6406 Q325.3906,346.9375 324.75,347.0781 Q324.1094,347.2344 323.4063,347.2344 Q320.9063,347.2344 319.5781,345.5938 Q318.2656,343.9375 318.2656,340.8125 Q318.2656,337.6875 319.5781,336.0313 Q320.9063,334.375 323.4063,334.375 Q324.1094,334.375 324.75,334.5313 Q325.4063,334.6875 325.9688,334.9844 L325.9688,337.7031 Q325.3438,337.125 324.75,336.8594 Q324.1563,336.5781 323.5313,336.5781 Q322.1875,336.5781 321.5,337.6563 Q320.8125,338.7188 320.8125,340.8125 Q320.8125,342.9063 321.5,343.9844 Q322.1875,345.0469 323.5313,345.0469 Q324.1563,345.0469 324.75,344.7813 Q325.3438,344.5 325.9688,343.9219 L325.9688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="337" y="345.1543">E</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="337" y="345.1543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L13" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L13" xlink:show="new" xlink:title="F" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L13" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L13" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0000772719357856231772" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="383.5" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0000772719357856231772" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="383.5" y="325"/>
<ellipse cx="398.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="398.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M401.4688,346.6406 Q400.8906,346.9375 400.25,347.0781 Q399.6094,347.2344 398.9063,347.2344 Q396.4063,347.2344 395.0781,345.5938 Q393.7656,343.9375 393.7656,340.8125 Q393.7656,337.6875 395.0781,336.0313 Q396.4063,334.375 398.9063,334.375 Q399.6094,334.375 400.25,334.5313 Q400.9063,334.6875 401.4688,334.9844 L401.4688,337.7031 Q400.8438,337.125 400.25,336.8594 Q399.6563,336.5781 399.0313,336.5781 Q397.6875,336.5781 397,337.6563 Q396.3125,338.7188 396.3125,340.8125 Q396.3125,342.9063 397,343.9844 Q397.6875,345.0469 399.0313,345.0469 Q399.6563,345.0469 400.25,344.7813 Q400.8438,344.5 401.4688,343.9219 L401.4688,346.6406 Z "/> <path d="M401.4688,346.6406 Q400.8906,346.9375 400.25,347.0781 Q399.6094,347.2344 398.9063,347.2344 Q396.4063,347.2344 395.0781,345.5938 Q393.7656,343.9375 393.7656,340.8125 Q393.7656,337.6875 395.0781,336.0313 Q396.4063,334.375 398.9063,334.375 Q399.6094,334.375 400.25,334.5313 Q400.9063,334.6875 401.4688,334.9844 L401.4688,337.7031 Q400.8438,337.125 400.25,336.8594 Q399.6563,336.5781 399.0313,336.5781 Q397.6875,336.5781 397,337.6563 Q396.3125,338.7188 396.3125,340.8125 Q396.3125,342.9063 397,343.9844 Q397.6875,345.0469 399.0313,345.0469 Q399.6563,345.0469 400.25,344.7813 Q400.8438,344.5 401.4688,343.9219 L401.4688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="412.5" y="345.1543">F</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="412.5" y="345.1543">F</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L15" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L15" xlink:show="new" xlink:title="G" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L15" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L15" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0000979147885884736437" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0000979147885884736437" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="325"/>
<ellipse cx="472.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="472.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M475.4688,346.6406 Q474.8906,346.9375 474.25,347.0781 Q473.6094,347.2344 472.9063,347.2344 Q470.4063,347.2344 469.0781,345.5938 Q467.7656,343.9375 467.7656,340.8125 Q467.7656,337.6875 469.0781,336.0313 Q470.4063,334.375 472.9063,334.375 Q473.6094,334.375 474.25,334.5313 Q474.9063,334.6875 475.4688,334.9844 L475.4688,337.7031 Q474.8438,337.125 474.25,336.8594 Q473.6563,336.5781 473.0313,336.5781 Q471.6875,336.5781 471,337.6563 Q470.3125,338.7188 470.3125,340.8125 Q470.3125,342.9063 471,343.9844 Q471.6875,345.0469 473.0313,345.0469 Q473.6563,345.0469 474.25,344.7813 Q474.8438,344.5 475.4688,343.9219 L475.4688,346.6406 Z "/> <path d="M475.4688,346.6406 Q474.8906,346.9375 474.25,347.0781 Q473.6094,347.2344 472.9063,347.2344 Q470.4063,347.2344 469.0781,345.5938 Q467.7656,343.9375 467.7656,340.8125 Q467.7656,337.6875 469.0781,336.0313 Q470.4063,334.375 472.9063,334.375 Q473.6094,334.375 474.25,334.5313 Q474.9063,334.6875 475.4688,334.9844 L475.4688,337.7031 Q474.8438,337.125 474.25,336.8594 Q473.6563,336.5781 473.0313,336.5781 Q471.6875,336.5781 471,337.6563 Q470.3125,338.7188 470.3125,340.8125 Q470.3125,342.9063 471,343.9844 Q471.6875,345.0469 473.0313,345.0469 Q473.6563,345.0469 474.25,344.7813 Q474.8438,344.5 475.4688,343.9219 L475.4688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="486.5" y="345.1543">G</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="486.5" y="345.1543">G</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L17" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L17" xlink:show="new" xlink:title="H" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L17" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L17" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0001440673301054236675" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="533.5" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0001440673301054236675" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="533.5" y="325"/>
<ellipse cx="548.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="548.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M551.4688,346.6406 Q550.8906,346.9375 550.25,347.0781 Q549.6094,347.2344 548.9063,347.2344 Q546.4063,347.2344 545.0781,345.5938 Q543.7656,343.9375 543.7656,340.8125 Q543.7656,337.6875 545.0781,336.0313 Q546.4063,334.375 548.9063,334.375 Q549.6094,334.375 550.25,334.5313 Q550.9063,334.6875 551.4688,334.9844 L551.4688,337.7031 Q550.8438,337.125 550.25,336.8594 Q549.6563,336.5781 549.0313,336.5781 Q547.6875,336.5781 547,337.6563 Q546.3125,338.7188 546.3125,340.8125 Q546.3125,342.9063 547,343.9844 Q547.6875,345.0469 549.0313,345.0469 Q549.6563,345.0469 550.25,344.7813 Q550.8438,344.5 551.4688,343.9219 L551.4688,346.6406 Z "/> <path d="M551.4688,346.6406 Q550.8906,346.9375 550.25,347.0781 Q549.6094,347.2344 548.9063,347.2344 Q546.4063,347.2344 545.0781,345.5938 Q543.7656,343.9375 543.7656,340.8125 Q543.7656,337.6875 545.0781,336.0313 Q546.4063,334.375 548.9063,334.375 Q549.6094,334.375 550.25,334.5313 Q550.9063,334.6875 551.4688,334.9844 L551.4688,337.7031 Q550.8438,337.125 550.25,336.8594 Q549.6563,336.5781 549.0313,336.5781 Q547.6875,336.5781 547,337.6563 Q546.3125,338.7188 546.3125,340.8125 Q546.3125,342.9063 547,343.9844 Q547.6875,345.0469 549.0313,345.0469 Q549.6563,345.0469 550.25,344.7813 Q550.8438,344.5 551.4688,343.9219 L551.4688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="562.5" y="345.1543">H</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="562.5" y="345.1543">H</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L19" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L19" xlink:show="new" xlink:title="I" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L19" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L19" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0000109681731550086430" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="609.5" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0000109681731550086430" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="609.5" y="325"/>
<ellipse cx="624.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="624.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M627.4688,346.6406 Q626.8906,346.9375 626.25,347.0781 Q625.6094,347.2344 624.9063,347.2344 Q622.4063,347.2344 621.0781,345.5938 Q619.7656,343.9375 619.7656,340.8125 Q619.7656,337.6875 621.0781,336.0313 Q622.4063,334.375 624.9063,334.375 Q625.6094,334.375 626.25,334.5313 Q626.9063,334.6875 627.4688,334.9844 L627.4688,337.7031 Q626.8438,337.125 626.25,336.8594 Q625.6563,336.5781 625.0313,336.5781 Q623.6875,336.5781 623,337.6563 Q622.3125,338.7188 622.3125,340.8125 Q622.3125,342.9063 623,343.9844 Q623.6875,345.0469 625.0313,345.0469 Q625.6563,345.0469 626.25,344.7813 Q626.8438,344.5 627.4688,343.9219 L627.4688,346.6406 Z "/> <path d="M627.4688,346.6406 Q626.8906,346.9375 626.25,347.0781 Q625.6094,347.2344 624.9063,347.2344 Q622.4063,347.2344 621.0781,345.5938 Q619.7656,343.9375 619.7656,340.8125 Q619.7656,337.6875 621.0781,336.0313 Q622.4063,334.375 624.9063,334.375 Q625.6094,334.375 626.25,334.5313 Q626.9063,334.6875 627.4688,334.9844 L627.4688,337.7031 Q626.8438,337.125 626.25,336.8594 Q625.6563,336.5781 625.0313,336.5781 Q623.6875,336.5781 623,337.6563 Q622.3125,338.7188 622.3125,340.8125 Q622.3125,342.9063 623,343.9844 Q623.6875,345.0469 625.0313,345.0469 Q625.6563,345.0469 626.25,344.7813 Q626.8438,344.5 627.4688,343.9219 L627.4688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="638.5" y="345.1543">I</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="638.5" y="345.1543">I</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L21" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L21" xlink:show="new" xlink:title="J" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L21" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L21" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0000338330011969650325" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="679.5" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0000338330011969650325" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="679.5" y="325"/>
<ellipse cx="694.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="694.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M697.4688,346.6406 Q696.8906,346.9375 696.25,347.0781 Q695.6094,347.2344 694.9063,347.2344 Q692.4063,347.2344 691.0781,345.5938 Q689.7656,343.9375 689.7656,340.8125 Q689.7656,337.6875 691.0781,336.0313 Q692.4063,334.375 694.9063,334.375 Q695.6094,334.375 696.25,334.5313 Q696.9063,334.6875 697.4688,334.9844 L697.4688,337.7031 Q696.8438,337.125 696.25,336.8594 Q695.6563,336.5781 695.0313,336.5781 Q693.6875,336.5781 693,337.6563 Q692.3125,338.7188 692.3125,340.8125 Q692.3125,342.9063 693,343.9844 Q693.6875,345.0469 695.0313,345.0469 Q695.6563,345.0469 696.25,344.7813 Q696.8438,344.5 697.4688,343.9219 L697.4688,346.6406 Z "/> <path d="M697.4688,346.6406 Q696.8906,346.9375 696.25,347.0781 Q695.6094,347.2344 694.9063,347.2344 Q692.4063,347.2344 691.0781,345.5938 Q689.7656,343.9375 689.7656,340.8125 Q689.7656,337.6875 691.0781,336.0313 Q692.4063,334.375 694.9063,334.375 Q695.6094,334.375 696.25,334.5313 Q696.9063,334.6875 697.4688,334.9844 L697.4688,337.7031 Q696.8438,337.125 696.25,336.8594 Q695.6563,336.5781 695.0313,336.5781 Q693.6875,336.5781 693,337.6563 Q692.3125,338.7188 692.3125,340.8125 Q692.3125,342.9063 693,343.9844 Q693.6875,345.0469 695.0313,345.0469 Q695.6563,345.0469 696.25,344.7813 Q696.8438,344.5 697.4688,343.9219 L697.4688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="708.5" y="345.1543">J</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="708.5" y="345.1543">J</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L23" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L23" xlink:show="new" xlink:title="K" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L23" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L23" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="48" id="C_0002179119389830432509" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="749.5" y="325"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="48" id="C_0002179119389830432509" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="749.5" y="325"/>
<ellipse cx="764.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="764.5" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M767.4688,346.6406 Q766.8906,346.9375 766.25,347.0781 Q765.6094,347.2344 764.9063,347.2344 Q762.4063,347.2344 761.0781,345.5938 Q759.7656,343.9375 759.7656,340.8125 Q759.7656,337.6875 761.0781,336.0313 Q762.4063,334.375 764.9063,334.375 Q765.6094,334.375 766.25,334.5313 Q766.9063,334.6875 767.4688,334.9844 L767.4688,337.7031 Q766.8438,337.125 766.25,336.8594 Q765.6563,336.5781 765.0313,336.5781 Q763.6875,336.5781 763,337.6563 Q762.3125,338.7188 762.3125,340.8125 Q762.3125,342.9063 763,343.9844 Q763.6875,345.0469 765.0313,345.0469 Q765.6563,345.0469 766.25,344.7813 Q766.8438,344.5 767.4688,343.9219 L767.4688,346.6406 Z "/> <path d="M767.4688,346.6406 Q766.8906,346.9375 766.25,347.0781 Q765.6094,347.2344 764.9063,347.2344 Q762.4063,347.2344 761.0781,345.5938 Q759.7656,343.9375 759.7656,340.8125 Q759.7656,337.6875 761.0781,336.0313 Q762.4063,334.375 764.9063,334.375 Q765.6094,334.375 766.25,334.5313 Q766.9063,334.6875 767.4688,334.9844 L767.4688,337.7031 Q766.8438,337.125 766.25,336.8594 Q765.6563,336.5781 765.0313,336.5781 Q763.6875,336.5781 763,337.6563 Q762.3125,338.7188 762.3125,340.8125 Q762.3125,342.9063 763,343.9844 Q763.6875,345.0469 765.0313,345.0469 Q765.6563,345.0469 766.25,344.7813 Q766.8438,344.5 767.4688,343.9219 L767.4688,346.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="778.5" y="345.1543">K</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="778.5" y="345.1543">K</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="357" y2="357"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="357" y2="357"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="365" y2="365"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="365" y2="365"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L25" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L25" xlink:show="new" xlink:title="R" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L25" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L25" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3hxwwiwlkhjh)" height="240.0703" id="C_0000630692407373144211" style="stroke: #A80036; stroke-width: 1.5;" width="212" x="297" y="8"/> <rect fill="#FEFECE" filter="url(#f103lvwn56wu0k)" height="240.0703" id="C_0000630692407373144211" style="stroke: #A80036; stroke-width: 1.5;" width="212" x="297" y="8"/>
<ellipse cx="394.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="394.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M397.7188,29.6406 Q397.1406,29.9375 396.5,30.0781 Q395.8594,30.2344 395.1563,30.2344 Q392.6563,30.2344 391.3281,28.5938 Q390.0156,26.9375 390.0156,23.8125 Q390.0156,20.6875 391.3281,19.0313 Q392.6563,17.375 395.1563,17.375 Q395.8594,17.375 396.5,17.5313 Q397.1563,17.6875 397.7188,17.9844 L397.7188,20.7031 Q397.0938,20.125 396.5,19.8594 Q395.9063,19.5781 395.2813,19.5781 Q393.9375,19.5781 393.25,20.6563 Q392.5625,21.7188 392.5625,23.8125 Q392.5625,25.9063 393.25,26.9844 Q393.9375,28.0469 395.2813,28.0469 Q395.9063,28.0469 396.5,27.7813 Q397.0938,27.5 397.7188,26.9219 L397.7188,29.6406 Z "/> <path d="M397.7188,29.6406 Q397.1406,29.9375 396.5,30.0781 Q395.8594,30.2344 395.1563,30.2344 Q392.6563,30.2344 391.3281,28.5938 Q390.0156,26.9375 390.0156,23.8125 Q390.0156,20.6875 391.3281,19.0313 Q392.6563,17.375 395.1563,17.375 Q395.8594,17.375 396.5,17.5313 Q397.1563,17.6875 397.7188,17.9844 L397.7188,20.7031 Q397.0938,20.125 396.5,19.8594 Q395.9063,19.5781 395.2813,19.5781 Q393.9375,19.5781 393.25,20.6563 Q392.5625,21.7188 392.5625,23.8125 Q392.5625,25.9063 393.25,26.9844 Q393.9375,28.0469 395.2813,28.0469 Q395.9063,28.0469 396.5,27.7813 Q397.0938,27.5 397.7188,26.9219 L397.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="415.25" y="28.1543">R</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="415.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L27" xlink:show="new" xlink:title="some_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L31" xlink:show="new" xlink:title="a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="54"/>
<ellipse cx="308" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L27" xlink:show="new" xlink:title="some_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L31" xlink:show="new" xlink:title="a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="317" y="54.2104">some_int : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="317" y="62.2104">a : A</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L28" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L32" xlink:show="new" xlink:title="b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="58.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="66.8047"/>
<ellipse cx="308" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L28" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L32" xlink:show="new" xlink:title="b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="317" y="67.0151">some_int_pointer : int *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="317" y="75.0151">b : B *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L29" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L33" xlink:show="new" xlink:title="c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="71.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="79.6094"/>
<ellipse cx="308" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L29" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L33" xlink:show="new" xlink:title="c" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="317" y="79.8198">some_int_pointer_pointer : int **</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="317" y="87.8198">c : C &amp;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L30" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L34" xlink:show="new" xlink:title="d" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="84.4141"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="92.4141"/>
<ellipse cx="308" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="97.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L30" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L34" xlink:show="new" xlink:title="d" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="317" y="92.6245">some_int_reference : int &amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="317" y="100.6245">d : const D *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L31" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L35" xlink:show="new" xlink:title="e" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="97.2188"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="105.2188"/>
<ellipse cx="308" cy="102.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="110.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L31" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L35" xlink:show="new" xlink:title="e" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="317" y="105.4292">a : A</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="75" x="317" y="113.4292">e : const E &amp;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L32" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L36" xlink:show="new" xlink:title="f" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="110.0234"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="118.0234"/>
<ellipse cx="308" cy="115.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="123.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L32" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L36" xlink:show="new" xlink:title="f" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="317" y="118.2339">b : B *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="46" x="317" y="126.2339">f : F &amp;&amp;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L33" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L37" xlink:show="new" xlink:title="g" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="122.8281"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="130.8281"/>
<ellipse cx="308" cy="127.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="135.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L33" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L37" xlink:show="new" xlink:title="g" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="317" y="131.0386">c : C &amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="44" x="317" y="139.0386">g : G **</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L34" xlink:show="new" xlink:title="d" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L38" xlink:show="new" xlink:title="h" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="135.6328"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="143.6328"/>
<ellipse cx="308" cy="140.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="148.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L34" xlink:show="new" xlink:title="d" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L38" xlink:show="new" xlink:title="h" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="317" y="143.8433">d : const D *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="317" y="151.8433">h : H ***</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L35" xlink:show="new" xlink:title="e" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L39" xlink:show="new" xlink:title="i" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="148.4375"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="156.4375"/>
<ellipse cx="308" cy="153.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="161.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L35" xlink:show="new" xlink:title="e" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L39" xlink:show="new" xlink:title="i" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="75" x="317" y="156.6479">e : const E &amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="317" y="164.6479">i : I *&amp;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L36" xlink:show="new" xlink:title="f" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L40" xlink:show="new" xlink:title="j" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="161.2422"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="169.2422"/>
<ellipse cx="308" cy="166.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="174.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L36" xlink:show="new" xlink:title="f" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L40" xlink:show="new" xlink:title="j" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="46" x="317" y="169.4526">f : F &amp;&amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="317" y="177.4526">j : volatile J *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L37" xlink:show="new" xlink:title="g" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L41" xlink:show="new" xlink:title="k" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="174.0469"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="182.0469"/>
<ellipse cx="308" cy="179.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="187.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L37" xlink:show="new" xlink:title="g" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L41" xlink:show="new" xlink:title="k" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="44" x="317" y="182.2573">g : G **</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="317" y="190.2573">k : K *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L38" xlink:show="new" xlink:title="h" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L27" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="186.8516"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="194.8516"/>
<ellipse cx="308" cy="191.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="199.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L38" xlink:show="new" xlink:title="h" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L27" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="317" y="195.062">h : H ***</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="317" y="203.062">some_int : int</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L39" xlink:show="new" xlink:title="i" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L28" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="199.6563"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="207.6563"/>
<ellipse cx="308" cy="204.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="212.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L39" xlink:show="new" xlink:title="i" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L28" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="317" y="207.8667">i : I *&amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="317" y="215.8667">some_int_pointer : int *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L40" xlink:show="new" xlink:title="j" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L29" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="212.4609"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="220.4609"/>
<ellipse cx="308" cy="217.4609" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="225.4609" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L40" xlink:show="new" xlink:title="j" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L29" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="317" y="220.6714">j : volatile J *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="317" y="228.6714">some_int_pointer_pointer : int **</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L41" xlink:show="new" xlink:title="k" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L30" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="225.2656"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="303" y="233.2656"/>
<ellipse cx="308" cy="230.2656" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="308" cy="238.2656" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00005/t00005.cc#L41" xlink:show="new" xlink:title="k" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L30" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="317" y="233.4761">k : K *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="317" y="241.4761">some_int_reference : int &amp;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="240.0703" y2="240.0703"/>
<path d="M285.16,195.65 C219.46,233.13 136.34,281.08 63,325 C57.55,328.26 51.69,331.86 46.28,335.22 " fill="none" id="C_0000630692407373144211&lt;-C_0000096355893895780319" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M285.16,195.65 C219.46,233.13 136.34,281.08 63,325 C57.55,328.26 51.69,331.86 46.28,335.22 " fill="none" id="C_0000630692407373144211&lt;-C_0000096355893895780319" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="296.8,189.02,289.6065,188.517,286.3754,194.9637,293.5689,195.4667,296.8,189.02" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#FFFFFF" points="296.8,189.02,289.6065,188.517,286.3754,194.9637,293.5689,195.4667,296.8,189.02" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="139" y="291.0669">+a</text> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="139" y="291.0669">+a</text>

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -0,0 +1,495 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 796.640625 528" style="max-width: 796.641px; background-color: white;" width="796.640625" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id1" d="M279.40625,274.8828836217502L236.38541666666666,300.5690696847918C193.36458333333334,326.2552557478335,107.32291666666667,377.6276278739167,64.30208333333333,408.980480603625C21.28125,440.3333333333333,21.28125,451.6666666666667,21.28125,457.3333333333333L21.28125,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M279.40625,293.3359334907113L249.14583333333334,315.9466112422594C218.88541666666666,338.5572889938075,158.36458333333334,383.7786444969038,128.10416666666666,412.0559889151186C97.84375,440.3333333333333,97.84375,451.6666666666667,97.84375,457.3333333333333L97.84375,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M279.40625,324.18716577540107L261.90625,341.6559714795009C244.40625,359.12477718360077,209.40625,394.06238859180036,191.90625,417.19786096256684C174.40625,440.3333333333333,174.40625,451.6666666666667,174.40625,457.3333333333333L174.40625,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M279.40625,386.2527359074953L274.6666666666667,393.37727992291275C269.9270833333333,400.50182393833023,260.4479166666667,414.7509119691651,255.70833333333334,427.5421226512492C250.96875,440.3333333333333,250.96875,451.6666666666667,250.96875,457.3333333333333L250.96875,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id5" d="M338.3285885989011,395L336.45481341575095,400.6666666666667C334.58103823260075,406.3333333333333,330.83348786630035,417.6666666666667,328.9597126831502,429C327.0859375,440.3333333333333,327.0859375,451.6666666666667,327.0859375,457.3333333333333L327.0859375,463"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id6" d="M402.3125,395L402.3125,400.6666666666667C402.3125,406.3333333333333,402.3125,417.6666666666667,402.3125,429C402.3125,440.3333333333333,402.3125,451.6666666666667,402.3125,457.3333333333333L402.3125,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id7" d="M467.0539320054945,395L468.94989125457874,400.6666666666667C470.84585050366303,406.3333333333333,474.6377690018315,417.6666666666667,476.5337282509158,429C478.4296875,440.3333333333333,478.4296875,451.6666666666667,478.4296875,457.3333333333333L478.4296875,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id8" d="M525.21875,384.1035714285714L530.2552083333334,391.58630952380946C535.2916666666666,399.0690476190476,545.3645833333334,414.03452380952376,550.4010416666666,427.18392857142857C555.4375,440.3333333333333,555.4375,451.6666666666667,555.4375,457.3333333333333L555.4375,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id9" d="M525.21875,325.1493349455865L542.4231770833334,342.45777912132206C559.6276041666666,359.76622329705765,594.0364583333334,394.38311164852877,611.2408854166666,417.35822249093104C628.4453125,440.3333333333333,628.4453125,451.6666666666667,628.4453125,457.3333333333333L628.4453125,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id10" d="M525.21875,295.38850996852045L554.3697916666666,317.6570916404337C583.5208333333334,339.925673312347,641.8229166666666,384.46283665617347,670.9739583333334,412.3980849947534C700.125,440.3333333333333,700.125,451.6666666666667,700.125,457.3333333333333L700.125,463"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id11" d="M525.21875,276.45350785340315L566.9088541666666,301.8779232111693C608.5989583333334,327.30233856893545,691.9791666666666,378.1511692844677,733.6692708333334,409.2422513089005C775.359375,440.3333333333333,775.359375,451.6666666666667,775.359375,457.3333333333333L775.359375,463"/>
</g>
<g class="edgeLabels">
<g transform="translate(21.28125, 429)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+a</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(97.84375, 429)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+b</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(174.40625, 429)" class="edgeLabel">
<g transform="translate(-8.671875, -9)" class="label">
<foreignObject height="18" width="17.34375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+c</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(250.96875, 429)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+d</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(327.0859375, 429)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+e</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(402.3125, 429)" class="edgeLabel">
<g transform="translate(-6.8984375, -9)" class="label">
<foreignObject height="18" width="13.796875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+f</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(478.4296875, 429)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+g</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(555.4375, 429)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+h</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(628.4453125, 429)" class="edgeLabel">
<g transform="translate(-6.453125, -9)" class="label">
<foreignObject height="18" width="12.90625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+i</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(700.125, 429)" class="edgeLabel">
<g transform="translate(-6.453125, -9)" class="label">
<foreignObject height="18" width="12.90625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+j</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(775.359375, 429)" class="edgeLabel">
<g transform="translate(-8.671875, -9)" class="label">
<foreignObject height="18" width="17.34375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+k</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(21.28125, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L3">
<g title="A" id="classId-C_0000096355893895780319-0" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(97.84375, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L5">
<g title="B" id="classId-C_0001909425857334087541-1" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(174.40625, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L7">
<g title="C" id="classId-C_0000968176384460064907-2" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">C</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(250.96875, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L9">
<g title="D" id="classId-C_0001735599590836186693-3" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">D</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(327.0859375, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L11">
<g title="E" id="classId-C_0000887960136921844658-4" class="node default clickable">
<rect height="57" width="25.671875" y="-28.5" x="-12.8359375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="12.8359375" x1="-12.8359375" class="divider"/>
<line y2="17.5" y1="17.5" x2="12.8359375" x1="-12.8359375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.3359375, -21)" height="18" width="10.671875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">E</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(402.3125, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L13">
<g title="F" id="classId-C_0000772719357856231772-5" class="node default clickable">
<rect height="57" width="24.78125" y="-28.5" x="-12.390625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="12.390625" x1="-12.390625" class="divider"/>
<line y2="17.5" y1="17.5" x2="12.390625" x1="-12.390625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -4.890625, -21)" height="18" width="9.78125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">F</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(478.4296875, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L15">
<g title="G" id="classId-C_0000979147885884736437-6" class="node default clickable">
<rect height="57" width="27.453125" y="-28.5" x="-13.7265625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.7265625" x1="-13.7265625" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.7265625" x1="-13.7265625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -6.2265625, -21)" height="18" width="12.453125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">G</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(555.4375, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L17">
<g title="H" id="classId-C_0001440673301054236675-7" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">H</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(628.4453125, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L19">
<g title="I" id="classId-C_0000109681731550086430-8" class="node default clickable">
<rect height="57" width="19.453125" y="-28.5" x="-9.7265625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="9.7265625" x1="-9.7265625" class="divider"/>
<line y2="17.5" y1="17.5" x2="9.7265625" x1="-9.7265625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -2.2265625, -21)" height="18" width="4.453125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">I</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(700.125, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L21">
<g title="J" id="classId-C_0000338330011969650325-9" class="node default clickable">
<rect height="57" width="23.90625" y="-28.5" x="-11.953125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="11.953125" x1="-11.953125" class="divider"/>
<line y2="17.5" y1="17.5" x2="11.953125" x1="-11.953125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -4.453125, -21)" height="18" width="8.90625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">J</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(775.359375, 491.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L23">
<g title="K" id="classId-C_0002179119389830432509-10" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">K</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(402.3125, 201.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00005/t00005.cc#L25">
<g title="R" id="classId-C_0000630692407373144211-11" class="node default clickable">
<rect height="387" width="245.8125" y="-193.5" x="-122.90625" class="outer title-state"/>
<line y2="-163.5" y1="-163.5" x2="122.90625" x1="-122.90625" class="divider"/>
<line y2="182.5" y1="182.5" x2="122.90625" x1="-122.90625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -186)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">R</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, -152)" height="18" width="41.375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+a : A</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, -130)" height="18" width="42.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+b : B </span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, -108)" height="18" width="57.359375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+c : C &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, -86)" height="18" width="85.828125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+d : const D </span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, -64)" height="18" width="100.0625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+e : const E &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, -42)" height="18" width="62.6875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+f : F &amp;&amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, -20)" height="18" width="54.703125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+g : G *</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 2)" height="18" width="60.03125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+h : H **</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 24)" height="18" width="52.03125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+i : I *&amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 46)" height="18" width="88.484375">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+j : volatile J </span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 68)" height="18" width="41.359375">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+k : K </span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 90)" height="18" width="104.5">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+some_int : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 112)" height="18" width="162.328125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+some_int_pointer : int </span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 134)" height="18" width="230.8125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+some_int_pointer_pointer : int *</span>
</div>
</foreignObject>
<foreignObject transform="translate( -115.40625, 156)" height="18" width="196.109375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+some_int_reference : int &amp;</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="479px" preserveAspectRatio="none" style="width:1390px;height:479px;" version="1.1" viewBox="0 0 1390 479" width="1390px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="479px" preserveAspectRatio="none" style="width:1390px;height:479px;" version="1.1" viewBox="0 0 1390 479" width="1390px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="fgfoikac52f65" width="300%" x="-1" y="-1"> <filter height="300%" id="f1triti74x41sz" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,258 +9,260 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0000989095304444672400" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0000989095304444672400" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="299"/>
<ellipse cx="21" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,320.6406 Q23.3906,320.9375 22.75,321.0781 Q22.1094,321.2344 21.4063,321.2344 Q18.9063,321.2344 17.5781,319.5938 Q16.2656,317.9375 16.2656,314.8125 Q16.2656,311.6875 17.5781,310.0313 Q18.9063,308.375 21.4063,308.375 Q22.1094,308.375 22.75,308.5313 Q23.4063,308.6875 23.9688,308.9844 L23.9688,311.7031 Q23.3438,311.125 22.75,310.8594 Q22.1563,310.5781 21.5313,310.5781 Q20.1875,310.5781 19.5,311.6563 Q18.8125,312.7188 18.8125,314.8125 Q18.8125,316.9063 19.5,317.9844 Q20.1875,319.0469 21.5313,319.0469 Q22.1563,319.0469 22.75,318.7813 Q23.3438,318.5 23.9688,317.9219 L23.9688,320.6406 Z "/> <path d="M23.9688,320.6406 Q23.3906,320.9375 22.75,321.0781 Q22.1094,321.2344 21.4063,321.2344 Q18.9063,321.2344 17.5781,319.5938 Q16.2656,317.9375 16.2656,314.8125 Q16.2656,311.6875 17.5781,310.0313 Q18.9063,308.375 21.4063,308.375 Q22.1094,308.375 22.75,308.5313 Q23.4063,308.6875 23.9688,308.9844 L23.9688,311.7031 Q23.3438,311.125 22.75,310.8594 Q22.1563,310.5781 21.5313,310.5781 Q20.1875,310.5781 19.5,311.6563 Q18.8125,312.7188 18.8125,314.8125 Q18.8125,316.9063 19.5,317.9844 Q20.1875,319.0469 21.5313,319.0469 Q22.1563,319.0469 22.75,318.7813 Q23.3438,318.5 23.9688,317.9219 L23.9688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="319.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="319.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L9" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L9" xlink:show="new" xlink:title="B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L9" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L9" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0000648285260245005311" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0000648285260245005311" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="299"/>
<ellipse cx="96" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="96" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M98.9688,320.6406 Q98.3906,320.9375 97.75,321.0781 Q97.1094,321.2344 96.4063,321.2344 Q93.9063,321.2344 92.5781,319.5938 Q91.2656,317.9375 91.2656,314.8125 Q91.2656,311.6875 92.5781,310.0313 Q93.9063,308.375 96.4063,308.375 Q97.1094,308.375 97.75,308.5313 Q98.4063,308.6875 98.9688,308.9844 L98.9688,311.7031 Q98.3438,311.125 97.75,310.8594 Q97.1563,310.5781 96.5313,310.5781 Q95.1875,310.5781 94.5,311.6563 Q93.8125,312.7188 93.8125,314.8125 Q93.8125,316.9063 94.5,317.9844 Q95.1875,319.0469 96.5313,319.0469 Q97.1563,319.0469 97.75,318.7813 Q98.3438,318.5 98.9688,317.9219 L98.9688,320.6406 Z "/> <path d="M98.9688,320.6406 Q98.3906,320.9375 97.75,321.0781 Q97.1094,321.2344 96.4063,321.2344 Q93.9063,321.2344 92.5781,319.5938 Q91.2656,317.9375 91.2656,314.8125 Q91.2656,311.6875 92.5781,310.0313 Q93.9063,308.375 96.4063,308.375 Q97.1094,308.375 97.75,308.5313 Q98.4063,308.6875 98.9688,308.9844 L98.9688,311.7031 Q98.3438,311.125 97.75,310.8594 Q97.1563,310.5781 96.5313,310.5781 Q95.1875,310.5781 94.5,311.6563 Q93.8125,312.7188 93.8125,314.8125 Q93.8125,316.9063 94.5,317.9844 Q95.1875,319.0469 96.5313,319.0469 Q97.1563,319.0469 97.75,318.7813 Q98.3438,318.5 98.9688,317.9219 L98.9688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="319.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="319.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0000323304333007297774" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0000323304333007297774" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="299"/>
<ellipse cx="171" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="171" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M173.9688,320.6406 Q173.3906,320.9375 172.75,321.0781 Q172.1094,321.2344 171.4063,321.2344 Q168.9063,321.2344 167.5781,319.5938 Q166.2656,317.9375 166.2656,314.8125 Q166.2656,311.6875 167.5781,310.0313 Q168.9063,308.375 171.4063,308.375 Q172.1094,308.375 172.75,308.5313 Q173.4063,308.6875 173.9688,308.9844 L173.9688,311.7031 Q173.3438,311.125 172.75,310.8594 Q172.1563,310.5781 171.5313,310.5781 Q170.1875,310.5781 169.5,311.6563 Q168.8125,312.7188 168.8125,314.8125 Q168.8125,316.9063 169.5,317.9844 Q170.1875,319.0469 171.5313,319.0469 Q172.1563,319.0469 172.75,318.7813 Q173.3438,318.5 173.9688,317.9219 L173.9688,320.6406 Z "/> <path d="M173.9688,320.6406 Q173.3906,320.9375 172.75,321.0781 Q172.1094,321.2344 171.4063,321.2344 Q168.9063,321.2344 167.5781,319.5938 Q166.2656,317.9375 166.2656,314.8125 Q166.2656,311.6875 167.5781,310.0313 Q168.9063,308.375 171.4063,308.375 Q172.1094,308.375 172.75,308.5313 Q173.4063,308.6875 173.9688,308.9844 L173.9688,311.7031 Q173.3438,311.125 172.75,310.8594 Q172.1563,310.5781 171.5313,310.5781 Q170.1875,310.5781 169.5,311.6563 Q168.8125,312.7188 168.8125,314.8125 Q168.8125,316.9063 169.5,317.9844 Q170.1875,319.0469 171.5313,319.0469 Q172.1563,319.0469 172.75,318.7813 Q173.3438,318.5 173.9688,317.9219 L173.9688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="319.1543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="319.1543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L13" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L13" xlink:show="new" xlink:title="D" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L13" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L13" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001006912399043633492" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001006912399043633492" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="299"/>
<ellipse cx="246.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="246.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M249.4688,320.6406 Q248.8906,320.9375 248.25,321.0781 Q247.6094,321.2344 246.9063,321.2344 Q244.4063,321.2344 243.0781,319.5938 Q241.7656,317.9375 241.7656,314.8125 Q241.7656,311.6875 243.0781,310.0313 Q244.4063,308.375 246.9063,308.375 Q247.6094,308.375 248.25,308.5313 Q248.9063,308.6875 249.4688,308.9844 L249.4688,311.7031 Q248.8438,311.125 248.25,310.8594 Q247.6563,310.5781 247.0313,310.5781 Q245.6875,310.5781 245,311.6563 Q244.3125,312.7188 244.3125,314.8125 Q244.3125,316.9063 245,317.9844 Q245.6875,319.0469 247.0313,319.0469 Q247.6563,319.0469 248.25,318.7813 Q248.8438,318.5 249.4688,317.9219 L249.4688,320.6406 Z "/> <path d="M249.4688,320.6406 Q248.8906,320.9375 248.25,321.0781 Q247.6094,321.2344 246.9063,321.2344 Q244.4063,321.2344 243.0781,319.5938 Q241.7656,317.9375 241.7656,314.8125 Q241.7656,311.6875 243.0781,310.0313 Q244.4063,308.375 246.9063,308.375 Q247.6094,308.375 248.25,308.5313 Q248.9063,308.6875 249.4688,308.9844 L249.4688,311.7031 Q248.8438,311.125 248.25,310.8594 Q247.6563,310.5781 247.0313,310.5781 Q245.6875,310.5781 245,311.6563 Q244.3125,312.7188 244.3125,314.8125 Q244.3125,316.9063 245,317.9844 Q245.6875,319.0469 247.0313,319.0469 Q247.6563,319.0469 248.25,318.7813 Q248.8438,318.5 249.4688,317.9219 L249.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="260.5" y="319.1543">D</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="260.5" y="319.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L15" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L15" xlink:show="new" xlink:title="E" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L15" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L15" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001092550394020578978" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="1146" y="414.5"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001092550394020578978" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="1146" y="414.5"/>
<ellipse cx="1161" cy="430.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="1161" cy="430.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1163.9688,436.1406 Q1163.3906,436.4375 1162.75,436.5781 Q1162.1094,436.7344 1161.4063,436.7344 Q1158.9063,436.7344 1157.5781,435.0938 Q1156.2656,433.4375 1156.2656,430.3125 Q1156.2656,427.1875 1157.5781,425.5313 Q1158.9063,423.875 1161.4063,423.875 Q1162.1094,423.875 1162.75,424.0313 Q1163.4063,424.1875 1163.9688,424.4844 L1163.9688,427.2031 Q1163.3438,426.625 1162.75,426.3594 Q1162.1563,426.0781 1161.5313,426.0781 Q1160.1875,426.0781 1159.5,427.1563 Q1158.8125,428.2188 1158.8125,430.3125 Q1158.8125,432.4063 1159.5,433.4844 Q1160.1875,434.5469 1161.5313,434.5469 Q1162.1563,434.5469 1162.75,434.2813 Q1163.3438,434 1163.9688,433.4219 L1163.9688,436.1406 Z "/> <path d="M1163.9688,436.1406 Q1163.3906,436.4375 1162.75,436.5781 Q1162.1094,436.7344 1161.4063,436.7344 Q1158.9063,436.7344 1157.5781,435.0938 Q1156.2656,433.4375 1156.2656,430.3125 Q1156.2656,427.1875 1157.5781,425.5313 Q1158.9063,423.875 1161.4063,423.875 Q1162.1094,423.875 1162.75,424.0313 Q1163.4063,424.1875 1163.9688,424.4844 L1163.9688,427.2031 Q1163.3438,426.625 1162.75,426.3594 Q1162.1563,426.0781 1161.5313,426.0781 Q1160.1875,426.0781 1159.5,427.1563 Q1158.8125,428.2188 1158.8125,430.3125 Q1158.8125,432.4063 1159.5,433.4844 Q1160.1875,434.5469 1161.5313,434.5469 Q1162.1563,434.5469 1162.75,434.2813 Q1163.3438,434 1163.9688,433.4219 L1163.9688,436.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1175" y="434.6543">E</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1175" y="434.6543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1147" x2="1185" y1="446.5" y2="446.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1147" x2="1185" y1="446.5" y2="446.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1147" x2="1185" y1="454.5" y2="454.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1147" x2="1185" y1="454.5" y2="454.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L17" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L17" xlink:show="new" xlink:title="F" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L17" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L17" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0000965398761810782236" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="307.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0000965398761810782236" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="307.5" y="299"/>
<ellipse cx="322.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="322.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M325.4688,320.6406 Q324.8906,320.9375 324.25,321.0781 Q323.6094,321.2344 322.9063,321.2344 Q320.4063,321.2344 319.0781,319.5938 Q317.7656,317.9375 317.7656,314.8125 Q317.7656,311.6875 319.0781,310.0313 Q320.4063,308.375 322.9063,308.375 Q323.6094,308.375 324.25,308.5313 Q324.9063,308.6875 325.4688,308.9844 L325.4688,311.7031 Q324.8438,311.125 324.25,310.8594 Q323.6563,310.5781 323.0313,310.5781 Q321.6875,310.5781 321,311.6563 Q320.3125,312.7188 320.3125,314.8125 Q320.3125,316.9063 321,317.9844 Q321.6875,319.0469 323.0313,319.0469 Q323.6563,319.0469 324.25,318.7813 Q324.8438,318.5 325.4688,317.9219 L325.4688,320.6406 Z "/> <path d="M325.4688,320.6406 Q324.8906,320.9375 324.25,321.0781 Q323.6094,321.2344 322.9063,321.2344 Q320.4063,321.2344 319.0781,319.5938 Q317.7656,317.9375 317.7656,314.8125 Q317.7656,311.6875 319.0781,310.0313 Q320.4063,308.375 322.9063,308.375 Q323.6094,308.375 324.25,308.5313 Q324.9063,308.6875 325.4688,308.9844 L325.4688,311.7031 Q324.8438,311.125 324.25,310.8594 Q323.6563,310.5781 323.0313,310.5781 Q321.6875,310.5781 321,311.6563 Q320.3125,312.7188 320.3125,314.8125 Q320.3125,316.9063 321,317.9844 Q321.6875,319.0469 323.0313,319.0469 Q323.6563,319.0469 324.25,318.7813 Q324.8438,318.5 325.4688,317.9219 L325.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="336.5" y="319.1543">F</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="336.5" y="319.1543">F</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="308.5" x2="345.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="308.5" x2="345.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="308.5" x2="345.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="308.5" x2="345.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L19" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L19" xlink:show="new" xlink:title="G" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L19" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L19" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001764732000887030464" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="381.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001764732000887030464" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="381.5" y="299"/>
<ellipse cx="396.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="396.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M399.4688,320.6406 Q398.8906,320.9375 398.25,321.0781 Q397.6094,321.2344 396.9063,321.2344 Q394.4063,321.2344 393.0781,319.5938 Q391.7656,317.9375 391.7656,314.8125 Q391.7656,311.6875 393.0781,310.0313 Q394.4063,308.375 396.9063,308.375 Q397.6094,308.375 398.25,308.5313 Q398.9063,308.6875 399.4688,308.9844 L399.4688,311.7031 Q398.8438,311.125 398.25,310.8594 Q397.6563,310.5781 397.0313,310.5781 Q395.6875,310.5781 395,311.6563 Q394.3125,312.7188 394.3125,314.8125 Q394.3125,316.9063 395,317.9844 Q395.6875,319.0469 397.0313,319.0469 Q397.6563,319.0469 398.25,318.7813 Q398.8438,318.5 399.4688,317.9219 L399.4688,320.6406 Z "/> <path d="M399.4688,320.6406 Q398.8906,320.9375 398.25,321.0781 Q397.6094,321.2344 396.9063,321.2344 Q394.4063,321.2344 393.0781,319.5938 Q391.7656,317.9375 391.7656,314.8125 Q391.7656,311.6875 393.0781,310.0313 Q394.4063,308.375 396.9063,308.375 Q397.6094,308.375 398.25,308.5313 Q398.9063,308.6875 399.4688,308.9844 L399.4688,311.7031 Q398.8438,311.125 398.25,310.8594 Q397.6563,310.5781 397.0313,310.5781 Q395.6875,310.5781 395,311.6563 Q394.3125,312.7188 394.3125,314.8125 Q394.3125,316.9063 395,317.9844 Q395.6875,319.0469 397.0313,319.0469 Q397.6563,319.0469 398.25,318.7813 Q398.8438,318.5 399.4688,317.9219 L399.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="410.5" y="319.1543">G</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="410.5" y="319.1543">G</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="421.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="421.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="421.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="421.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L21" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L21" xlink:show="new" xlink:title="H" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L21" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L21" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001669285599837552146" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001669285599837552146" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="299"/>
<ellipse cx="472.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="472.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M475.4688,320.6406 Q474.8906,320.9375 474.25,321.0781 Q473.6094,321.2344 472.9063,321.2344 Q470.4063,321.2344 469.0781,319.5938 Q467.7656,317.9375 467.7656,314.8125 Q467.7656,311.6875 469.0781,310.0313 Q470.4063,308.375 472.9063,308.375 Q473.6094,308.375 474.25,308.5313 Q474.9063,308.6875 475.4688,308.9844 L475.4688,311.7031 Q474.8438,311.125 474.25,310.8594 Q473.6563,310.5781 473.0313,310.5781 Q471.6875,310.5781 471,311.6563 Q470.3125,312.7188 470.3125,314.8125 Q470.3125,316.9063 471,317.9844 Q471.6875,319.0469 473.0313,319.0469 Q473.6563,319.0469 474.25,318.7813 Q474.8438,318.5 475.4688,317.9219 L475.4688,320.6406 Z "/> <path d="M475.4688,320.6406 Q474.8906,320.9375 474.25,321.0781 Q473.6094,321.2344 472.9063,321.2344 Q470.4063,321.2344 469.0781,319.5938 Q467.7656,317.9375 467.7656,314.8125 Q467.7656,311.6875 469.0781,310.0313 Q470.4063,308.375 472.9063,308.375 Q473.6094,308.375 474.25,308.5313 Q474.9063,308.6875 475.4688,308.9844 L475.4688,311.7031 Q474.8438,311.125 474.25,310.8594 Q473.6563,310.5781 473.0313,310.5781 Q471.6875,310.5781 471,311.6563 Q470.3125,312.7188 470.3125,314.8125 Q470.3125,316.9063 471,317.9844 Q471.6875,319.0469 473.0313,319.0469 Q473.6563,319.0469 474.25,318.7813 Q474.8438,318.5 475.4688,317.9219 L475.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="486.5" y="319.1543">H</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="486.5" y="319.1543">H</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L23" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L23" xlink:show="new" xlink:title="I" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L23" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L23" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0002234750598599000377" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="533.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0002234750598599000377" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="533.5" y="299"/>
<ellipse cx="548.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="548.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M551.4688,320.6406 Q550.8906,320.9375 550.25,321.0781 Q549.6094,321.2344 548.9063,321.2344 Q546.4063,321.2344 545.0781,319.5938 Q543.7656,317.9375 543.7656,314.8125 Q543.7656,311.6875 545.0781,310.0313 Q546.4063,308.375 548.9063,308.375 Q549.6094,308.375 550.25,308.5313 Q550.9063,308.6875 551.4688,308.9844 L551.4688,311.7031 Q550.8438,311.125 550.25,310.8594 Q549.6563,310.5781 549.0313,310.5781 Q547.6875,310.5781 547,311.6563 Q546.3125,312.7188 546.3125,314.8125 Q546.3125,316.9063 547,317.9844 Q547.6875,319.0469 549.0313,319.0469 Q549.6563,319.0469 550.25,318.7813 Q550.8438,318.5 551.4688,317.9219 L551.4688,320.6406 Z "/> <path d="M551.4688,320.6406 Q550.8906,320.9375 550.25,321.0781 Q549.6094,321.2344 548.9063,321.2344 Q546.4063,321.2344 545.0781,319.5938 Q543.7656,317.9375 543.7656,314.8125 Q543.7656,311.6875 545.0781,310.0313 Q546.4063,308.375 548.9063,308.375 Q549.6094,308.375 550.25,308.5313 Q550.9063,308.6875 551.4688,308.9844 L551.4688,311.7031 Q550.8438,311.125 550.25,310.8594 Q549.6563,310.5781 549.0313,310.5781 Q547.6875,310.5781 547,311.6563 Q546.3125,312.7188 546.3125,314.8125 Q546.3125,316.9063 547,317.9844 Q547.6875,319.0469 549.0313,319.0469 Q549.6563,319.0469 550.25,318.7813 Q550.8438,318.5 551.4688,317.9219 L551.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="562.5" y="319.1543">I</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="562.5" y="319.1543">I</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="567.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="567.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="567.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="567.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L25" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L25" xlink:show="new" xlink:title="J" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L25" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L25" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001335933649375465369" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="603.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001335933649375465369" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="603.5" y="299"/>
<ellipse cx="618.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="618.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M621.4688,320.6406 Q620.8906,320.9375 620.25,321.0781 Q619.6094,321.2344 618.9063,321.2344 Q616.4063,321.2344 615.0781,319.5938 Q613.7656,317.9375 613.7656,314.8125 Q613.7656,311.6875 615.0781,310.0313 Q616.4063,308.375 618.9063,308.375 Q619.6094,308.375 620.25,308.5313 Q620.9063,308.6875 621.4688,308.9844 L621.4688,311.7031 Q620.8438,311.125 620.25,310.8594 Q619.6563,310.5781 619.0313,310.5781 Q617.6875,310.5781 617,311.6563 Q616.3125,312.7188 616.3125,314.8125 Q616.3125,316.9063 617,317.9844 Q617.6875,319.0469 619.0313,319.0469 Q619.6563,319.0469 620.25,318.7813 Q620.8438,318.5 621.4688,317.9219 L621.4688,320.6406 Z "/> <path d="M621.4688,320.6406 Q620.8906,320.9375 620.25,321.0781 Q619.6094,321.2344 618.9063,321.2344 Q616.4063,321.2344 615.0781,319.5938 Q613.7656,317.9375 613.7656,314.8125 Q613.7656,311.6875 615.0781,310.0313 Q616.4063,308.375 618.9063,308.375 Q619.6094,308.375 620.25,308.5313 Q620.9063,308.6875 621.4688,308.9844 L621.4688,311.7031 Q620.8438,311.125 620.25,310.8594 Q619.6563,310.5781 619.0313,310.5781 Q617.6875,310.5781 617,311.6563 Q616.3125,312.7188 616.3125,314.8125 Q616.3125,316.9063 617,317.9844 Q617.6875,319.0469 619.0313,319.0469 Q619.6563,319.0469 620.25,318.7813 Q620.8438,318.5 621.4688,317.9219 L621.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="632.5" y="319.1543">J</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="632.5" y="319.1543">J</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="604.5" x2="637.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="604.5" x2="637.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="604.5" x2="637.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="604.5" x2="637.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L27" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L27" xlink:show="new" xlink:title="K" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L27" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L27" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001603190364864080123" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="673.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001603190364864080123" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="673.5" y="299"/>
<ellipse cx="688.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="688.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M691.4688,320.6406 Q690.8906,320.9375 690.25,321.0781 Q689.6094,321.2344 688.9063,321.2344 Q686.4063,321.2344 685.0781,319.5938 Q683.7656,317.9375 683.7656,314.8125 Q683.7656,311.6875 685.0781,310.0313 Q686.4063,308.375 688.9063,308.375 Q689.6094,308.375 690.25,308.5313 Q690.9063,308.6875 691.4688,308.9844 L691.4688,311.7031 Q690.8438,311.125 690.25,310.8594 Q689.6563,310.5781 689.0313,310.5781 Q687.6875,310.5781 687,311.6563 Q686.3125,312.7188 686.3125,314.8125 Q686.3125,316.9063 687,317.9844 Q687.6875,319.0469 689.0313,319.0469 Q689.6563,319.0469 690.25,318.7813 Q690.8438,318.5 691.4688,317.9219 L691.4688,320.6406 Z "/> <path d="M691.4688,320.6406 Q690.8906,320.9375 690.25,321.0781 Q689.6094,321.2344 688.9063,321.2344 Q686.4063,321.2344 685.0781,319.5938 Q683.7656,317.9375 683.7656,314.8125 Q683.7656,311.6875 685.0781,310.0313 Q686.4063,308.375 688.9063,308.375 Q689.6094,308.375 690.25,308.5313 Q690.9063,308.6875 691.4688,308.9844 L691.4688,311.7031 Q690.8438,311.125 690.25,310.8594 Q689.6563,310.5781 689.0313,310.5781 Q687.6875,310.5781 687,311.6563 Q686.3125,312.7188 686.3125,314.8125 Q686.3125,316.9063 687,317.9844 Q687.6875,319.0469 689.0313,319.0469 Q689.6563,319.0469 690.25,318.7813 Q690.8438,318.5 691.4688,317.9219 L691.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="702.5" y="319.1543">K</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="702.5" y="319.1543">K</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="674.5" x2="711.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="674.5" x2="711.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="674.5" x2="711.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="674.5" x2="711.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L29" target="_top" title="L" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L29" xlink:show="new" xlink:title="L" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L29" target="_top" title="L" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L29" xlink:show="new" xlink:title="L" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0000305487238408320046" style="stroke: #A80036; stroke-width: 1.5;" width="38" x="748" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0000305487238408320046" style="stroke: #A80036; stroke-width: 1.5;" width="38" x="748" y="299"/>
<ellipse cx="763" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="763" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M765.9688,320.6406 Q765.3906,320.9375 764.75,321.0781 Q764.1094,321.2344 763.4063,321.2344 Q760.9063,321.2344 759.5781,319.5938 Q758.2656,317.9375 758.2656,314.8125 Q758.2656,311.6875 759.5781,310.0313 Q760.9063,308.375 763.4063,308.375 Q764.1094,308.375 764.75,308.5313 Q765.4063,308.6875 765.9688,308.9844 L765.9688,311.7031 Q765.3438,311.125 764.75,310.8594 Q764.1563,310.5781 763.5313,310.5781 Q762.1875,310.5781 761.5,311.6563 Q760.8125,312.7188 760.8125,314.8125 Q760.8125,316.9063 761.5,317.9844 Q762.1875,319.0469 763.5313,319.0469 Q764.1563,319.0469 764.75,318.7813 Q765.3438,318.5 765.9688,317.9219 L765.9688,320.6406 Z "/> <path d="M765.9688,320.6406 Q765.3906,320.9375 764.75,321.0781 Q764.1094,321.2344 763.4063,321.2344 Q760.9063,321.2344 759.5781,319.5938 Q758.2656,317.9375 758.2656,314.8125 Q758.2656,311.6875 759.5781,310.0313 Q760.9063,308.375 763.4063,308.375 Q764.1094,308.375 764.75,308.5313 Q765.4063,308.6875 765.9688,308.9844 L765.9688,311.7031 Q765.3438,311.125 764.75,310.8594 Q764.1563,310.5781 763.5313,310.5781 Q762.1875,310.5781 761.5,311.6563 Q760.8125,312.7188 760.8125,314.8125 Q760.8125,316.9063 761.5,317.9844 Q762.1875,319.0469 763.5313,319.0469 Q764.1563,319.0469 764.75,318.7813 Q765.3438,318.5 765.9688,317.9219 L765.9688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="6" x="777" y="319.1543">L</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="6" x="777" y="319.1543">L</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="749" x2="785" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="749" x2="785" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="749" x2="785" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="749" x2="785" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L31" target="_top" title="M" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L31" xlink:show="new" xlink:title="M" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L31" target="_top" title="M" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L31" xlink:show="new" xlink:title="M" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001664744512423723275" style="stroke: #A80036; stroke-width: 1.5;" width="42" x="821" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001664744512423723275" style="stroke: #A80036; stroke-width: 1.5;" width="42" x="821" y="299"/>
<ellipse cx="836" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="836" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M838.9688,320.6406 Q838.3906,320.9375 837.75,321.0781 Q837.1094,321.2344 836.4063,321.2344 Q833.9063,321.2344 832.5781,319.5938 Q831.2656,317.9375 831.2656,314.8125 Q831.2656,311.6875 832.5781,310.0313 Q833.9063,308.375 836.4063,308.375 Q837.1094,308.375 837.75,308.5313 Q838.4063,308.6875 838.9688,308.9844 L838.9688,311.7031 Q838.3438,311.125 837.75,310.8594 Q837.1563,310.5781 836.5313,310.5781 Q835.1875,310.5781 834.5,311.6563 Q833.8125,312.7188 833.8125,314.8125 Q833.8125,316.9063 834.5,317.9844 Q835.1875,319.0469 836.5313,319.0469 Q837.1563,319.0469 837.75,318.7813 Q838.3438,318.5 838.9688,317.9219 L838.9688,320.6406 Z "/> <path d="M838.9688,320.6406 Q838.3906,320.9375 837.75,321.0781 Q837.1094,321.2344 836.4063,321.2344 Q833.9063,321.2344 832.5781,319.5938 Q831.2656,317.9375 831.2656,314.8125 Q831.2656,311.6875 832.5781,310.0313 Q833.9063,308.375 836.4063,308.375 Q837.1094,308.375 837.75,308.5313 Q838.4063,308.6875 838.9688,308.9844 L838.9688,311.7031 Q838.3438,311.125 837.75,310.8594 Q837.1563,310.5781 836.5313,310.5781 Q835.1875,310.5781 834.5,311.6563 Q833.8125,312.7188 833.8125,314.8125 Q833.8125,316.9063 834.5,317.9844 Q835.1875,319.0469 836.5313,319.0469 Q837.1563,319.0469 837.75,318.7813 Q838.3438,318.5 838.9688,317.9219 L838.9688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="10" x="850" y="319.1543">M</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="10" x="850" y="319.1543">M</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="862" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="862" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="862" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="862" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L33" target="_top" title="N" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L33" xlink:show="new" xlink:title="N" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L33" target="_top" title="N" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L33" xlink:show="new" xlink:title="N" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0000950210019792152600" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="898.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0000950210019792152600" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="898.5" y="299"/>
<ellipse cx="913.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="913.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M916.4688,320.6406 Q915.8906,320.9375 915.25,321.0781 Q914.6094,321.2344 913.9063,321.2344 Q911.4063,321.2344 910.0781,319.5938 Q908.7656,317.9375 908.7656,314.8125 Q908.7656,311.6875 910.0781,310.0313 Q911.4063,308.375 913.9063,308.375 Q914.6094,308.375 915.25,308.5313 Q915.9063,308.6875 916.4688,308.9844 L916.4688,311.7031 Q915.8438,311.125 915.25,310.8594 Q914.6563,310.5781 914.0313,310.5781 Q912.6875,310.5781 912,311.6563 Q911.3125,312.7188 911.3125,314.8125 Q911.3125,316.9063 912,317.9844 Q912.6875,319.0469 914.0313,319.0469 Q914.6563,319.0469 915.25,318.7813 Q915.8438,318.5 916.4688,317.9219 L916.4688,320.6406 Z "/> <path d="M916.4688,320.6406 Q915.8906,320.9375 915.25,321.0781 Q914.6094,321.2344 913.9063,321.2344 Q911.4063,321.2344 910.0781,319.5938 Q908.7656,317.9375 908.7656,314.8125 Q908.7656,311.6875 910.0781,310.0313 Q911.4063,308.375 913.9063,308.375 Q914.6094,308.375 915.25,308.5313 Q915.9063,308.6875 916.4688,308.9844 L916.4688,311.7031 Q915.8438,311.125 915.25,310.8594 Q914.6563,310.5781 914.0313,310.5781 Q912.6875,310.5781 912,311.6563 Q911.3125,312.7188 911.3125,314.8125 Q911.3125,316.9063 912,317.9844 Q912.6875,319.0469 914.0313,319.0469 Q914.6563,319.0469 915.25,318.7813 Q915.8438,318.5 916.4688,317.9219 L916.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="927.5" y="319.1543">N</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="927.5" y="319.1543">N</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="899.5" x2="938.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="899.5" x2="938.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="899.5" x2="938.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="899.5" x2="938.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L35" target="_top" title="NN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L35" xlink:show="new" xlink:title="NN" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L35" target="_top" title="NN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L35" xlink:show="new" xlink:title="NN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001662349735899726224" style="stroke: #A80036; stroke-width: 1.5;" width="50" x="975" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001662349735899726224" style="stroke: #A80036; stroke-width: 1.5;" width="50" x="975" y="299"/>
<ellipse cx="990" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="990" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M992.9688,320.6406 Q992.3906,320.9375 991.75,321.0781 Q991.1094,321.2344 990.4063,321.2344 Q987.9063,321.2344 986.5781,319.5938 Q985.2656,317.9375 985.2656,314.8125 Q985.2656,311.6875 986.5781,310.0313 Q987.9063,308.375 990.4063,308.375 Q991.1094,308.375 991.75,308.5313 Q992.4063,308.6875 992.9688,308.9844 L992.9688,311.7031 Q992.3438,311.125 991.75,310.8594 Q991.1563,310.5781 990.5313,310.5781 Q989.1875,310.5781 988.5,311.6563 Q987.8125,312.7188 987.8125,314.8125 Q987.8125,316.9063 988.5,317.9844 Q989.1875,319.0469 990.5313,319.0469 Q991.1563,319.0469 991.75,318.7813 Q992.3438,318.5 992.9688,317.9219 L992.9688,320.6406 Z "/> <path d="M992.9688,320.6406 Q992.3906,320.9375 991.75,321.0781 Q991.1094,321.2344 990.4063,321.2344 Q987.9063,321.2344 986.5781,319.5938 Q985.2656,317.9375 985.2656,314.8125 Q985.2656,311.6875 986.5781,310.0313 Q987.9063,308.375 990.4063,308.375 Q991.1094,308.375 991.75,308.5313 Q992.4063,308.6875 992.9688,308.9844 L992.9688,311.7031 Q992.3438,311.125 991.75,310.8594 Q991.1563,310.5781 990.5313,310.5781 Q989.1875,310.5781 988.5,311.6563 Q987.8125,312.7188 987.8125,314.8125 Q987.8125,316.9063 988.5,317.9844 Q989.1875,319.0469 990.5313,319.0469 Q991.1563,319.0469 991.75,318.7813 Q992.3438,318.5 992.9688,317.9219 L992.9688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="18" x="1004" y="319.1543">NN</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="18" x="1004" y="319.1543">NN</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="976" x2="1024" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="976" x2="1024" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="976" x2="1024" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="976" x2="1024" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L37" target="_top" title="NNN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L37" xlink:show="new" xlink:title="NNN" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L37" target="_top" title="NNN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L37" xlink:show="new" xlink:title="NNN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0001963145075481599858" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="1060.5" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0001963145075481599858" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="1060.5" y="299"/>
<ellipse cx="1075.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="1075.5" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1078.4688,320.6406 Q1077.8906,320.9375 1077.25,321.0781 Q1076.6094,321.2344 1075.9063,321.2344 Q1073.4063,321.2344 1072.0781,319.5938 Q1070.7656,317.9375 1070.7656,314.8125 Q1070.7656,311.6875 1072.0781,310.0313 Q1073.4063,308.375 1075.9063,308.375 Q1076.6094,308.375 1077.25,308.5313 Q1077.9063,308.6875 1078.4688,308.9844 L1078.4688,311.7031 Q1077.8438,311.125 1077.25,310.8594 Q1076.6563,310.5781 1076.0313,310.5781 Q1074.6875,310.5781 1074,311.6563 Q1073.3125,312.7188 1073.3125,314.8125 Q1073.3125,316.9063 1074,317.9844 Q1074.6875,319.0469 1076.0313,319.0469 Q1076.6563,319.0469 1077.25,318.7813 Q1077.8438,318.5 1078.4688,317.9219 L1078.4688,320.6406 Z "/> <path d="M1078.4688,320.6406 Q1077.8906,320.9375 1077.25,321.0781 Q1076.6094,321.2344 1075.9063,321.2344 Q1073.4063,321.2344 1072.0781,319.5938 Q1070.7656,317.9375 1070.7656,314.8125 Q1070.7656,311.6875 1072.0781,310.0313 Q1073.4063,308.375 1075.9063,308.375 Q1076.6094,308.375 1077.25,308.5313 Q1077.9063,308.6875 1078.4688,308.9844 L1078.4688,311.7031 Q1077.8438,311.125 1077.25,310.8594 Q1076.6563,310.5781 1076.0313,310.5781 Q1074.6875,310.5781 1074,311.6563 Q1073.3125,312.7188 1073.3125,314.8125 Q1073.3125,316.9063 1074,317.9844 Q1074.6875,319.0469 1076.0313,319.0469 Q1076.6563,319.0469 1077.25,318.7813 Q1077.8438,318.5 1078.4688,317.9219 L1078.4688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="1089.5" y="319.1543">NNN</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="1089.5" y="319.1543">NNN</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1061.5" x2="1118.5" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1061.5" x2="1118.5" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1061.5" x2="1118.5" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1061.5" x2="1118.5" y1="339" y2="339"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L39" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L39" xlink:show="new" xlink:title="custom_container" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L39" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L39" xlink:show="new" xlink:title="custom_container" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="60.8047" id="C_0000916380191954937631" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="1221.5" y="408"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="60.8047" id="C_0000916380191954937631" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="1221.5" y="408"/>
<ellipse cx="1236.5" cy="424" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="1236.5" cy="424" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1239.4688,429.6406 Q1238.8906,429.9375 1238.25,430.0781 Q1237.6094,430.2344 1236.9063,430.2344 Q1234.4063,430.2344 1233.0781,428.5938 Q1231.7656,426.9375 1231.7656,423.8125 Q1231.7656,420.6875 1233.0781,419.0313 Q1234.4063,417.375 1236.9063,417.375 Q1237.6094,417.375 1238.25,417.5313 Q1238.9063,417.6875 1239.4688,417.9844 L1239.4688,420.7031 Q1238.8438,420.125 1238.25,419.8594 Q1237.6563,419.5781 1237.0313,419.5781 Q1235.6875,419.5781 1235,420.6563 Q1234.3125,421.7188 1234.3125,423.8125 Q1234.3125,425.9063 1235,426.9844 Q1235.6875,428.0469 1237.0313,428.0469 Q1237.6563,428.0469 1238.25,427.7813 Q1238.8438,427.5 1239.4688,426.9219 L1239.4688,429.6406 Z "/> <path d="M1239.4688,429.6406 Q1238.8906,429.9375 1238.25,430.0781 Q1237.6094,430.2344 1236.9063,430.2344 Q1234.4063,430.2344 1233.0781,428.5938 Q1231.7656,426.9375 1231.7656,423.8125 Q1231.7656,420.6875 1233.0781,419.0313 Q1234.4063,417.375 1236.9063,417.375 Q1237.6094,417.375 1238.25,417.5313 Q1238.9063,417.6875 1239.4688,417.9844 L1239.4688,420.7031 Q1238.8438,420.125 1238.25,419.8594 Q1237.6563,419.5781 1237.0313,419.5781 Q1235.6875,419.5781 1235,420.6563 Q1234.3125,421.7188 1234.3125,423.8125 Q1234.3125,425.9063 1235,426.9844 Q1235.6875,428.0469 1237.0313,428.0469 Q1237.6563,428.0469 1238.25,427.7813 Q1238.8438,427.5 1239.4688,426.9219 L1239.4688,429.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1250.5" y="428.1543">custom_container</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1250.5" y="428.1543">custom_container</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1370.5" y="405"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1370.5" y="405"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1371.5" y="417.1387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1371.5" y="417.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1222.5" x2="1375.5" y1="440" y2="440"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1222.5" x2="1375.5" y1="440" y2="440"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1222.5" x2="1375.5" y1="448" y2="448"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L41" xlink:show="new" xlink:title="data" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L41" xlink:show="new" xlink:title="data" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="1227.5" y="446"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="1227.5" y="454"/>
<ellipse cx="1232.5" cy="451" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="1232.5" cy="459" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L41" xlink:show="new" xlink:title="data" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L41" xlink:show="new" xlink:title="data" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="123" x="1241.5" y="454.2104">data : std::vector&lt;T&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="123" x="1241.5" y="462.2104">data : std::vector&lt;T&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1222.5" x2="1375.5" y1="460.8047" y2="460.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L39" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L39" xlink:show="new" xlink:title="custom_container" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="48" id="C_0000050153113082434858" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1155" y="299"/> <rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="48" id="C_0000050153113082434858" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1155" y="299"/>
<ellipse cx="1170" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="1170" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1172.9688,320.6406 Q1172.3906,320.9375 1171.75,321.0781 Q1171.1094,321.2344 1170.4063,321.2344 Q1167.9063,321.2344 1166.5781,319.5938 Q1165.2656,317.9375 1165.2656,314.8125 Q1165.2656,311.6875 1166.5781,310.0313 Q1167.9063,308.375 1170.4063,308.375 Q1171.1094,308.375 1171.75,308.5313 Q1172.4063,308.6875 1172.9688,308.9844 L1172.9688,311.7031 Q1172.3438,311.125 1171.75,310.8594 Q1171.1563,310.5781 1170.5313,310.5781 Q1169.1875,310.5781 1168.5,311.6563 Q1167.8125,312.7188 1167.8125,314.8125 Q1167.8125,316.9063 1168.5,317.9844 Q1169.1875,319.0469 1170.5313,319.0469 Q1171.1563,319.0469 1171.75,318.7813 Q1172.3438,318.5 1172.9688,317.9219 L1172.9688,320.6406 Z "/> <path d="M1172.9688,320.6406 Q1172.3906,320.9375 1171.75,321.0781 Q1171.1094,321.2344 1170.4063,321.2344 Q1167.9063,321.2344 1166.5781,319.5938 Q1165.2656,317.9375 1165.2656,314.8125 Q1165.2656,311.6875 1166.5781,310.0313 Q1167.9063,308.375 1170.4063,308.375 Q1171.1094,308.375 1171.75,308.5313 Q1172.4063,308.6875 1172.9688,308.9844 L1172.9688,311.7031 Q1172.3438,311.125 1171.75,310.8594 Q1171.1563,310.5781 1170.5313,310.5781 Q1169.1875,310.5781 1168.5,311.6563 Q1167.8125,312.7188 1167.8125,314.8125 Q1167.8125,316.9063 1168.5,317.9844 Q1169.1875,319.0469 1170.5313,319.0469 Q1171.1563,319.0469 1171.75,318.7813 Q1172.3438,318.5 1172.9688,317.9219 L1172.9688,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1184" y="319.1543">custom_container</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1184" y="319.1543">custom_container</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="10" x="1304" y="296"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="10" x="1304" y="296"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="1305" y="308.1387">E</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="1305" y="308.1387">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1156" x2="1310" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1156" x2="1310" y1="331" y2="331"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1156" x2="1310" y1="339" y2="339"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1156" x2="1310" y1="339" y2="339"/>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L44" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L44" xlink:show="new" xlink:title="R" xlink:type="simple"> </a>
<rect fill="#FEFECE" filter="url(#fgfoikac52f65)" height="214.4609" id="C_0000303025561016882526" style="stroke: #A80036; stroke-width: 1.5;" width="230" x="471" y="8"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L44" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L44" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1triti74x41sz)" height="214.4609" id="C_0000303025561016882526" style="stroke: #A80036; stroke-width: 1.5;" width="230" x="471" y="8"/>
<ellipse cx="577.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="577.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M580.7188,29.6406 Q580.1406,29.9375 579.5,30.0781 Q578.8594,30.2344 578.1563,30.2344 Q575.6563,30.2344 574.3281,28.5938 Q573.0156,26.9375 573.0156,23.8125 Q573.0156,20.6875 574.3281,19.0313 Q575.6563,17.375 578.1563,17.375 Q578.8594,17.375 579.5,17.5313 Q580.1563,17.6875 580.7188,17.9844 L580.7188,20.7031 Q580.0938,20.125 579.5,19.8594 Q578.9063,19.5781 578.2813,19.5781 Q576.9375,19.5781 576.25,20.6563 Q575.5625,21.7188 575.5625,23.8125 Q575.5625,25.9063 576.25,26.9844 Q576.9375,28.0469 578.2813,28.0469 Q578.9063,28.0469 579.5,27.7813 Q580.0938,27.5 580.7188,26.9219 L580.7188,29.6406 Z "/> <path d="M580.7188,29.6406 Q580.1406,29.9375 579.5,30.0781 Q578.8594,30.2344 578.1563,30.2344 Q575.6563,30.2344 574.3281,28.5938 Q573.0156,26.9375 573.0156,23.8125 Q573.0156,20.6875 574.3281,19.0313 Q575.6563,17.375 578.1563,17.375 Q578.8594,17.375 579.5,17.5313 Q580.1563,17.6875 580.7188,17.9844 L580.7188,20.7031 Q580.0938,20.125 579.5,19.8594 Q578.9063,19.5781 578.2813,19.5781 Q576.9375,19.5781 576.25,20.6563 Q575.5625,21.7188 575.5625,23.8125 Q575.5625,25.9063 576.25,26.9844 Q576.9375,28.0469 578.2813,28.0469 Q578.9063,28.0469 579.5,27.7813 Q580.0938,27.5 580.7188,26.9219 L580.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="598.25" y="28.1543">R</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="598.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="472" x2="700" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="472" x2="700" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="472" x2="700" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L46" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L46" xlink:show="new" xlink:title="a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="54"/>
<ellipse cx="482" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L46" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L46" xlink:show="new" xlink:title="a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="491" y="54.2104">a : std::vector&lt;A&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="491" y="62.2104">a : std::vector&lt;A&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L47" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L47" xlink:show="new" xlink:title="b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="58.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="66.8047"/>
<ellipse cx="482" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L47" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L47" xlink:show="new" xlink:title="b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="491" y="67.0151">b : std::vector&lt;B *&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="491" y="75.0151">b : std::vector&lt;B *&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L49" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L49" xlink:show="new" xlink:title="c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="71.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="79.6094"/>
<ellipse cx="482" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L49" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L49" xlink:show="new" xlink:title="c" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="491" y="79.8198">c : std::map&lt;int,C&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="491" y="87.8198">c : std::map&lt;int,C&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L50" xlink:show="new" xlink:title="d" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L50" xlink:show="new" xlink:title="d" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="84.4141"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="92.4141"/>
<ellipse cx="482" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="97.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L50" xlink:show="new" xlink:title="d" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L50" xlink:show="new" xlink:title="d" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="491" y="92.6245">d : std::map&lt;int,D *&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="491" y="100.6245">d : std::map&lt;int,D *&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L52" xlink:show="new" xlink:title="e" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L52" xlink:show="new" xlink:title="e" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="97.2188"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="105.2188"/>
<ellipse cx="482" cy="102.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="110.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L52" xlink:show="new" xlink:title="e" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L52" xlink:show="new" xlink:title="e" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="491" y="105.4292">e : custom_container&lt;E&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="491" y="113.4292">e : custom_container&lt;E&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L54" xlink:show="new" xlink:title="f" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L54" xlink:show="new" xlink:title="f" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="110.0234"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="118.0234"/>
<ellipse cx="482" cy="115.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="123.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L54" xlink:show="new" xlink:title="f" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L54" xlink:show="new" xlink:title="f" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="491" y="118.2339">f : std::vector&lt;std::vector&lt;F&gt;&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="491" y="126.2339">f : std::vector&lt;std::vector&lt;F&gt;&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L55" xlink:show="new" xlink:title="g" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L55" xlink:show="new" xlink:title="g" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="122.8281"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="130.8281"/>
<ellipse cx="482" cy="127.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="135.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L55" xlink:show="new" xlink:title="g" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L55" xlink:show="new" xlink:title="g" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="491" y="131.0386">g : std::map&lt;int,std::vector&lt;G *&gt;&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="491" y="139.0386">g : std::map&lt;int,std::vector&lt;G *&gt;&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L57" xlink:show="new" xlink:title="h" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L57" xlink:show="new" xlink:title="h" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="135.6328"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="143.6328"/>
<ellipse cx="482" cy="140.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="148.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L57" xlink:show="new" xlink:title="h" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L57" xlink:show="new" xlink:title="h" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="491" y="143.8433">h : std::array&lt;H,10&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="491" y="151.8433">h : std::array&lt;H,10&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L58" xlink:show="new" xlink:title="i" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L58" xlink:show="new" xlink:title="i" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="148.4375"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="156.4375"/>
<ellipse cx="482" cy="153.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="161.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L58" xlink:show="new" xlink:title="i" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L58" xlink:show="new" xlink:title="i" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="491" y="156.6479">i : std::array&lt;I *,5&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="491" y="164.6479">i : std::array&lt;I *,5&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L60" xlink:show="new" xlink:title="j" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L60" xlink:show="new" xlink:title="j" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="161.2422"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="169.2422"/>
<ellipse cx="482" cy="166.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="174.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L60" xlink:show="new" xlink:title="j" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L60" xlink:show="new" xlink:title="j" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="491" y="169.4526">j : J[10]</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="491" y="177.4526">j : J[10]</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L61" xlink:show="new" xlink:title="k" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L61" xlink:show="new" xlink:title="k" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="174.0469"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="182.0469"/>
<ellipse cx="482" cy="179.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="187.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L61" xlink:show="new" xlink:title="k" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L61" xlink:show="new" xlink:title="k" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="491" y="182.2573">k : K *[20]</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="491" y="190.2573">k : K *[20]</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L63" xlink:show="new" xlink:title="lm" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L63" xlink:show="new" xlink:title="lm" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="186.8516"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="194.8516"/>
<ellipse cx="482" cy="191.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="199.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L63" xlink:show="new" xlink:title="lm" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L63" xlink:show="new" xlink:title="lm" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="491" y="195.062">lm : std::vector&lt;std::pair&lt;L,M&gt;&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="491" y="203.062">lm : std::vector&lt;std::pair&lt;L,M&gt;&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L65" xlink:show="new" xlink:title="ns" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L65" xlink:show="new" xlink:title="ns" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="199.6563"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="477" y="207.6563"/>
<ellipse cx="482" cy="204.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="482" cy="212.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00006/t00006.cc#L65" xlink:show="new" xlink:title="ns" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00006/t00006.cc#L65" xlink:show="new" xlink:title="ns" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="154" x="491" y="207.8667">ns : std::tuple&lt;N,NN,NNN&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="154" x="491" y="215.8667">ns : std::tuple&lt;N,NN,NNN&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="472" x2="700" y1="214.4609" y2="214.4609"/>
<path d="M1219.28,347.24 C1208.62,365.3 1193.8,390.41 1182.5,409.56 " fill="none" id="C_0000050153113082434858-&gt;C_0001092550394020578978" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M1219.28,347.24 C1208.62,365.3 1193.8,390.41 1182.5,409.56 " fill="none" id="C_0000050153113082434858-&gt;C_0001092550394020578978" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="1179.7,414.29,1187.7242,408.5793,1182.2451,409.9862,1180.8381,404.5071,1179.7,414.29" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="1179.7,414.29,1187.7242,408.5793,1182.2451,409.9862,1180.8381,404.5071,1179.7,414.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1246.52,347.24 C1253.75,359.69 1262.94,375.49 1271.6,390.38 " fill="none" id="C_0000050153113082434858-&gt;C_0000916380191954937631" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M1246.52,347.24 C1253.75,359.69 1262.94,375.49 1271.6,390.38 " fill="none" id="C_0000050153113082434858-&gt;C_0000916380191954937631" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -1,22 +1,19 @@
# t00007 - Smart pointers # t00007 - Smart pointers
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00007_class: t00007_class:
type: class type: class
glob: glob:
- ../../tests/t00007/t00007.cc - t00007.cc
using_namespace: using_namespace: clanguml::t00007
- clanguml::t00007
include: include:
namespaces: namespaces:
- clanguml::t00007 - clanguml::t00007
``` ```
## Source code ## Source code
File t00007.cc File `tests/t00007/t00007.cc`
```cpp ```cpp
#include <memory> #include <memory>
@@ -38,8 +35,10 @@ public:
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00007_class](./t00007_class.svg "Smart pointers") ![t00007_class](./t00007_class.svg "Smart pointers")
## Generated Mermaid diagrams
![t00007_class](./t00007_class_mermaid.svg "Smart pointers")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -47,7 +46,7 @@ public:
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00007::A", "display_name": "A",
"id": "98876622534017019", "id": "98876622534017019",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -59,15 +58,17 @@ public:
"name": "A", "name": "A",
"namespace": "clanguml::t00007", "namespace": "clanguml::t00007",
"source_location": { "source_location": {
"file": "../../tests/t00007/t00007.cc", "column": 7,
"line": 5 "file": "t00007.cc",
"line": 5,
"translation_unit": "t00007.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00007::B", "display_name": "B",
"id": "696381312773707784", "id": "696381312773707784",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -79,15 +80,17 @@ public:
"name": "B", "name": "B",
"namespace": "clanguml::t00007", "namespace": "clanguml::t00007",
"source_location": { "source_location": {
"file": "../../tests/t00007/t00007.cc", "column": 7,
"line": 7 "file": "t00007.cc",
"line": 7,
"translation_unit": "t00007.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00007::C", "display_name": "C",
"id": "972031178679364068", "id": "972031178679364068",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -99,15 +102,17 @@ public:
"name": "C", "name": "C",
"namespace": "clanguml::t00007", "namespace": "clanguml::t00007",
"source_location": { "source_location": {
"file": "../../tests/t00007/t00007.cc", "column": 7,
"line": 9 "file": "t00007.cc",
"line": 9,
"translation_unit": "t00007.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00007::R", "display_name": "R",
"id": "66905874721300157", "id": "66905874721300157",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -120,8 +125,10 @@ public:
"is_static": false, "is_static": false,
"name": "a", "name": "a",
"source_location": { "source_location": {
"file": "../../tests/t00007/t00007.cc", "column": 24,
"line": 13 "file": "t00007.cc",
"line": 13,
"translation_unit": "t00007.cc"
}, },
"type": "std::unique_ptr<A>" "type": "std::unique_ptr<A>"
}, },
@@ -130,8 +137,10 @@ public:
"is_static": false, "is_static": false,
"name": "b", "name": "b",
"source_location": { "source_location": {
"file": "../../tests/t00007/t00007.cc", "column": 24,
"line": 14 "file": "t00007.cc",
"line": 14,
"translation_unit": "t00007.cc"
}, },
"type": "std::shared_ptr<B>" "type": "std::shared_ptr<B>"
}, },
@@ -140,8 +149,10 @@ public:
"is_static": false, "is_static": false,
"name": "c", "name": "c",
"source_location": { "source_location": {
"file": "../../tests/t00007/t00007.cc", "column": 22,
"line": 15 "file": "t00007.cc",
"line": 15,
"translation_unit": "t00007.cc"
}, },
"type": "std::weak_ptr<C>" "type": "std::weak_ptr<C>"
} }
@@ -150,19 +161,17 @@ public:
"name": "R", "name": "R",
"namespace": "clanguml::t00007", "namespace": "clanguml::t00007",
"source_location": { "source_location": {
"file": "../../tests/t00007/t00007.cc", "column": 7,
"line": 11 "file": "t00007.cc",
"line": 11,
"translation_unit": "t00007.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00007_class", "name": "t00007_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="230px" preserveAspectRatio="none" style="width:207px;height:230px;" version="1.1" viewBox="0 0 207 230" width="207px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="230px" preserveAspectRatio="none" style="width:207px;height:230px;" version="1.1" viewBox="0 0 207 230" width="207px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="fs59nax7ljxco" width="300%" x="-1" y="-1"> <filter height="300%" id="f1op5r9vmmln1n" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,59 +9,59 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fs59nax7ljxco)" height="48" id="C_0000098876622534017019" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="171"/> <rect fill="#FEFECE" filter="url(#f1op5r9vmmln1n)" height="48" id="C_0000098876622534017019" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="171"/>
<ellipse cx="21" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,192.6406 Q23.3906,192.9375 22.75,193.0781 Q22.1094,193.2344 21.4063,193.2344 Q18.9063,193.2344 17.5781,191.5938 Q16.2656,189.9375 16.2656,186.8125 Q16.2656,183.6875 17.5781,182.0313 Q18.9063,180.375 21.4063,180.375 Q22.1094,180.375 22.75,180.5313 Q23.4063,180.6875 23.9688,180.9844 L23.9688,183.7031 Q23.3438,183.125 22.75,182.8594 Q22.1563,182.5781 21.5313,182.5781 Q20.1875,182.5781 19.5,183.6563 Q18.8125,184.7188 18.8125,186.8125 Q18.8125,188.9063 19.5,189.9844 Q20.1875,191.0469 21.5313,191.0469 Q22.1563,191.0469 22.75,190.7813 Q23.3438,190.5 23.9688,189.9219 L23.9688,192.6406 Z "/> <path d="M23.9688,192.6406 Q23.3906,192.9375 22.75,193.0781 Q22.1094,193.2344 21.4063,193.2344 Q18.9063,193.2344 17.5781,191.5938 Q16.2656,189.9375 16.2656,186.8125 Q16.2656,183.6875 17.5781,182.0313 Q18.9063,180.375 21.4063,180.375 Q22.1094,180.375 22.75,180.5313 Q23.4063,180.6875 23.9688,180.9844 L23.9688,183.7031 Q23.3438,183.125 22.75,182.8594 Q22.1563,182.5781 21.5313,182.5781 Q20.1875,182.5781 19.5,183.6563 Q18.8125,184.7188 18.8125,186.8125 Q18.8125,188.9063 19.5,189.9844 Q20.1875,191.0469 21.5313,191.0469 Q22.1563,191.0469 22.75,190.7813 Q23.3438,190.5 23.9688,189.9219 L23.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="191.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="191.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="203" y2="203"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="211" y2="211"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="211" y2="211"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fs59nax7ljxco)" height="48" id="C_0000696381312773707784" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="171"/> <rect fill="#FEFECE" filter="url(#f1op5r9vmmln1n)" height="48" id="C_0000696381312773707784" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="171"/>
<ellipse cx="96" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="96" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M98.9688,192.6406 Q98.3906,192.9375 97.75,193.0781 Q97.1094,193.2344 96.4063,193.2344 Q93.9063,193.2344 92.5781,191.5938 Q91.2656,189.9375 91.2656,186.8125 Q91.2656,183.6875 92.5781,182.0313 Q93.9063,180.375 96.4063,180.375 Q97.1094,180.375 97.75,180.5313 Q98.4063,180.6875 98.9688,180.9844 L98.9688,183.7031 Q98.3438,183.125 97.75,182.8594 Q97.1563,182.5781 96.5313,182.5781 Q95.1875,182.5781 94.5,183.6563 Q93.8125,184.7188 93.8125,186.8125 Q93.8125,188.9063 94.5,189.9844 Q95.1875,191.0469 96.5313,191.0469 Q97.1563,191.0469 97.75,190.7813 Q98.3438,190.5 98.9688,189.9219 L98.9688,192.6406 Z "/> <path d="M98.9688,192.6406 Q98.3906,192.9375 97.75,193.0781 Q97.1094,193.2344 96.4063,193.2344 Q93.9063,193.2344 92.5781,191.5938 Q91.2656,189.9375 91.2656,186.8125 Q91.2656,183.6875 92.5781,182.0313 Q93.9063,180.375 96.4063,180.375 Q97.1094,180.375 97.75,180.5313 Q98.4063,180.6875 98.9688,180.9844 L98.9688,183.7031 Q98.3438,183.125 97.75,182.8594 Q97.1563,182.5781 96.5313,182.5781 Q95.1875,182.5781 94.5,183.6563 Q93.8125,184.7188 93.8125,186.8125 Q93.8125,188.9063 94.5,189.9844 Q95.1875,191.0469 96.5313,191.0469 Q97.1563,191.0469 97.75,190.7813 Q98.3438,190.5 98.9688,189.9219 L98.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="191.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="191.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="203" y2="203"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="211" y2="211"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="211" y2="211"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fs59nax7ljxco)" height="48" id="C_0000972031178679364068" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="171"/> <rect fill="#FEFECE" filter="url(#f1op5r9vmmln1n)" height="48" id="C_0000972031178679364068" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="171"/>
<ellipse cx="171" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="171" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M173.9688,192.6406 Q173.3906,192.9375 172.75,193.0781 Q172.1094,193.2344 171.4063,193.2344 Q168.9063,193.2344 167.5781,191.5938 Q166.2656,189.9375 166.2656,186.8125 Q166.2656,183.6875 167.5781,182.0313 Q168.9063,180.375 171.4063,180.375 Q172.1094,180.375 172.75,180.5313 Q173.4063,180.6875 173.9688,180.9844 L173.9688,183.7031 Q173.3438,183.125 172.75,182.8594 Q172.1563,182.5781 171.5313,182.5781 Q170.1875,182.5781 169.5,183.6563 Q168.8125,184.7188 168.8125,186.8125 Q168.8125,188.9063 169.5,189.9844 Q170.1875,191.0469 171.5313,191.0469 Q172.1563,191.0469 172.75,190.7813 Q173.3438,190.5 173.9688,189.9219 L173.9688,192.6406 Z "/> <path d="M173.9688,192.6406 Q173.3906,192.9375 172.75,193.0781 Q172.1094,193.2344 171.4063,193.2344 Q168.9063,193.2344 167.5781,191.5938 Q166.2656,189.9375 166.2656,186.8125 Q166.2656,183.6875 167.5781,182.0313 Q168.9063,180.375 171.4063,180.375 Q172.1094,180.375 172.75,180.5313 Q173.4063,180.6875 173.9688,180.9844 L173.9688,183.7031 Q173.3438,183.125 172.75,182.8594 Q172.1563,182.5781 171.5313,182.5781 Q170.1875,182.5781 169.5,183.6563 Q168.8125,184.7188 168.8125,186.8125 Q168.8125,188.9063 169.5,189.9844 Q170.1875,191.0469 171.5313,191.0469 Q172.1563,191.0469 172.75,190.7813 Q173.3438,190.5 173.9688,189.9219 L173.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="191.1543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="191.1543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="203" y2="203"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="211" y2="211"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="211" y2="211"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L11" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L11" xlink:show="new" xlink:title="R" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L11" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L11" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fs59nax7ljxco)" height="86.4141" id="C_0000066905874721300157" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="21.5" y="8"/> <rect fill="#FEFECE" filter="url(#f1op5r9vmmln1n)" height="86.4141" id="C_0000066905874721300157" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="21.5" y="8"/>
<ellipse cx="92.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="92.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M95.7188,29.6406 Q95.1406,29.9375 94.5,30.0781 Q93.8594,30.2344 93.1563,30.2344 Q90.6563,30.2344 89.3281,28.5938 Q88.0156,26.9375 88.0156,23.8125 Q88.0156,20.6875 89.3281,19.0313 Q90.6563,17.375 93.1563,17.375 Q93.8594,17.375 94.5,17.5313 Q95.1563,17.6875 95.7188,17.9844 L95.7188,20.7031 Q95.0938,20.125 94.5,19.8594 Q93.9063,19.5781 93.2813,19.5781 Q91.9375,19.5781 91.25,20.6563 Q90.5625,21.7188 90.5625,23.8125 Q90.5625,25.9063 91.25,26.9844 Q91.9375,28.0469 93.2813,28.0469 Q93.9063,28.0469 94.5,27.7813 Q95.0938,27.5 95.7188,26.9219 L95.7188,29.6406 Z "/> <path d="M95.7188,29.6406 Q95.1406,29.9375 94.5,30.0781 Q93.8594,30.2344 93.1563,30.2344 Q90.6563,30.2344 89.3281,28.5938 Q88.0156,26.9375 88.0156,23.8125 Q88.0156,20.6875 89.3281,19.0313 Q90.6563,17.375 93.1563,17.375 Q93.8594,17.375 94.5,17.5313 Q95.1563,17.6875 95.7188,17.9844 L95.7188,20.7031 Q95.0938,20.125 94.5,19.8594 Q93.9063,19.5781 93.2813,19.5781 Q91.9375,19.5781 91.25,20.6563 Q90.5625,21.7188 90.5625,23.8125 Q90.5625,25.9063 91.25,26.9844 Q91.9375,28.0469 93.2813,28.0469 Q93.9063,28.0469 94.5,27.7813 Q95.0938,27.5 95.7188,26.9219 L95.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="113.25" y="28.1543">R</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="113.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="22.5" x2="179.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="22.5" x2="179.5" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="22.5" x2="179.5" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L13" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L13" xlink:show="new" xlink:title="a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="27.5" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="27.5" y="54"/>
<ellipse cx="32.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="32.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L13" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L13" xlink:show="new" xlink:title="a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="130" x="41.5" y="54.2104">a : std::unique_ptr&lt;A&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="130" x="41.5" y="62.2104">a : std::unique_ptr&lt;A&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L14" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L14" xlink:show="new" xlink:title="b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="27.5" y="58.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="27.5" y="66.8047"/>
<ellipse cx="32.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="32.5" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L14" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L14" xlink:show="new" xlink:title="b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="41.5" y="67.0151">b : std::shared_ptr&lt;B&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="41.5" y="75.0151">b : std::shared_ptr&lt;B&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L15" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L15" xlink:show="new" xlink:title="c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="27.5" y="71.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="27.5" y="79.6094"/>
<ellipse cx="32.5" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="32.5" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00007/t00007.cc#L15" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L15" xlink:show="new" xlink:title="c" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="41.5" y="79.8198">c : std::weak_ptr&lt;C&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="41.5" y="87.8198">c : std::weak_ptr&lt;C&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="22.5" x2="179.5" y1="86.4141" y2="86.4141"/>
<path d="M72.48,106 C60.66,128.37 47.58,153.14 38.31,170.69 " fill="none" id="C_0000066905874721300157&lt;-C_0000098876622534017019" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M72.48,106 C60.66,128.37 47.58,153.14 38.31,170.69 " fill="none" id="C_0000066905874721300157&lt;-C_0000098876622534017019" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="78.7,94.22,72.3597,97.6552,73.092,104.829,79.4323,101.3938,78.7,94.22" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#FFFFFF" points="78.7,94.22,72.3597,97.6552,73.092,104.829,79.4323,101.3938,78.7,94.22" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="62" y="137.0669">+a</text> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="62" y="137.0669">+a</text>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,187 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 198.671875 264" style="max-width: 198.672px; background-color: white;" width="198.671875" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id1" d="M50.03129090314136,131L45.488315335951135,136.66666666666666C40.94533976876091,142.33333333333334,31.85938863438045,153.66666666666666,27.316413067190226,165C22.7734375,176.33333333333334,22.7734375,187.66666666666666,22.7734375,193.33333333333334L22.7734375,199"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M99.3359375,131L99.3359375,136.66666666666666C99.3359375,142.33333333333334,99.3359375,153.66666666666666,99.3359375,165C99.3359375,176.33333333333334,99.3359375,187.66666666666666,99.3359375,193.33333333333334L99.3359375,199"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M148.64058409685865,131L153.1835596640489,136.66666666666666C157.7265352312391,142.33333333333334,166.81248636561955,153.66666666666666,171.3554619328098,165C175.8984375,176.33333333333334,175.8984375,187.66666666666666,175.8984375,193.33333333333334L175.8984375,199"/>
</g>
<g class="edgeLabels">
<g transform="translate(22.7734375, 165)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+a</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(99.3359375, 165)" class="edgeLabel">
<g transform="translate(-9.125, -9)" class="label">
<foreignObject height="18" width="18.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+b</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(175.8984375, 165)" class="edgeLabel">
<g transform="translate(-8.671875, -9)" class="label">
<foreignObject height="18" width="17.34375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+c</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(22.7734375, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L5">
<g title="A" id="classId-C_0000098876622534017019-0" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(99.3359375, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L7">
<g title="B" id="classId-C_0000696381312773707784-1" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(175.8984375, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L9">
<g title="C" id="classId-C_0000972031178679364068-2" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">C</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(99.3359375, 69.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00007/t00007.cc#L11">
<g title="R" id="classId-C_0000066905874721300157-3" class="node default clickable">
<rect height="123" width="182.671875" y="-61.5" x="-91.3359375" class="outer title-state"/>
<line y2="-31.5" y1="-31.5" x2="91.3359375" x1="-91.3359375" class="divider"/>
<line y2="50.5" y1="50.5" x2="91.3359375" x1="-91.3359375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -54)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">R</span>
</div>
</foreignObject>
<foreignObject transform="translate( -83.8359375, -20)" height="18" width="166.796875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+a : std::unique_ptr&lt;A&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -83.8359375, 2)" height="18" width="167.671875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+b : std::shared_ptr&lt;B&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -83.8359375, 24)" height="18" width="156.078125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+c : std::weak_ptr&lt;C&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,22 +1,19 @@
# t00008 - Template and template template relationships # t00008 - Template and template template relationships
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00008_class: t00008_class:
type: class type: class
glob: glob:
- ../../tests/t00008/t00008.cc - t00008.cc
using_namespace: using_namespace: clanguml::t00008
- clanguml::t00008
include: include:
namespaces: namespaces:
- clanguml::t00008 - clanguml::t00008
``` ```
## Source code ## Source code
File t00008.cc File `tests/t00008/t00008.cc`
```cpp ```cpp
#include <array> #include <array>
#include <vector> #include <vector>
@@ -71,8 +68,10 @@ template <> struct E::nested_template<char> {
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00008_class](./t00008_class.svg "Template and template template relationships") ![t00008_class](./t00008_class.svg "Template and template template relationships")
## Generated Mermaid diagrams
![t00008_class](./t00008_class_mermaid.svg "Template and template template relationships")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -80,8 +79,8 @@ template <> struct E::nested_template<char> {
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::A<T,P=T,clanguml::t00008::CMP=nullptr,int N=3>", "display_name": "A<T,P=T,CMP=nullptr,int N=3>",
"id": "1657660300852090121", "id": "2293517130897538130",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
"is_struct": false, "is_struct": false,
@@ -93,8 +92,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "value", "name": "value",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 7,
"line": 11 "file": "t00008.cc",
"line": 11,
"translation_unit": "t00008.cc"
}, },
"type": "T" "type": "T"
}, },
@@ -103,8 +104,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "pointer", "name": "pointer",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 8,
"line": 12 "file": "t00008.cc",
"line": 12,
"translation_unit": "t00008.cc"
}, },
"type": "T *" "type": "T *"
}, },
@@ -113,8 +116,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "reference", "name": "reference",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 8,
"line": 13 "file": "t00008.cc",
"line": 13,
"translation_unit": "t00008.cc"
}, },
"type": "T &" "type": "T &"
}, },
@@ -123,8 +128,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "values", "name": "values",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 20,
"line": 14 "file": "t00008.cc",
"line": 14,
"translation_unit": "t00008.cc"
}, },
"type": "std::vector<P>" "type": "std::vector<P>"
}, },
@@ -133,8 +140,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "ints", "name": "ints",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 24,
"line": 15 "file": "t00008.cc",
"line": 15,
"translation_unit": "t00008.cc"
}, },
"type": "std::array<int,N>" "type": "std::array<int,N>"
}, },
@@ -143,18 +152,22 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "comparator", "name": "comparator",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 9,
"line": 17 "file": "t00008.cc",
"line": 17,
"translation_unit": "t00008.cc"
}, },
"type": "clanguml::t00008::CMP" "type": "CMP"
} }
], ],
"methods": [], "methods": [],
"name": "A", "name": "A",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 71,
"line": 9 "file": "t00008.cc",
"line": 9,
"translation_unit": "t00008.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -175,7 +188,7 @@ template <> struct E::nested_template<char> {
"is_variadic": false, "is_variadic": false,
"kind": "non_type_template", "kind": "non_type_template",
"template_parameters": [], "template_parameters": [],
"type": "clanguml::t00008::CMP" "type": "CMP"
}, },
{ {
"default": "3", "default": "3",
@@ -190,7 +203,7 @@ template <> struct E::nested_template<char> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::Vector<T>", "display_name": "Vector<T>",
"id": "1677407014842680311", "id": "1677407014842680311",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -203,8 +216,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "values", "name": "values",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 20,
"line": 21 "file": "t00008.cc",
"line": 21,
"translation_unit": "t00008.cc"
}, },
"type": "std::vector<T>" "type": "std::vector<T>"
} }
@@ -213,8 +228,10 @@ template <> struct E::nested_template<char> {
"name": "Vector", "name": "Vector",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 30,
"line": 20 "file": "t00008.cc",
"line": 20,
"translation_unit": "t00008.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -228,7 +245,7 @@ template <> struct E::nested_template<char> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::B<T,C<>>", "display_name": "B<T,C<>>",
"id": "1968575752686868237", "id": "1968575752686868237",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -241,8 +258,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "template_template", "name": "template_template",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 10,
"line": 25 "file": "t00008.cc",
"line": 25,
"translation_unit": "t00008.cc"
}, },
"type": "C<T>" "type": "C<T>"
} }
@@ -251,8 +270,10 @@ template <> struct E::nested_template<char> {
"name": "B", "name": "B",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 62,
"line": 24 "file": "t00008.cc",
"line": 24,
"translation_unit": "t00008.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -272,7 +293,7 @@ template <> struct E::nested_template<char> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::B<int,clanguml::t00008::Vector>", "display_name": "B<int,Vector>",
"id": "1449136415707203971", "id": "1449136415707203971",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -283,6 +304,12 @@ template <> struct E::nested_template<char> {
"methods": [], "methods": [],
"name": "B", "name": "B",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": {
"column": 62,
"file": "t00008.cc",
"line": 24,
"translation_unit": "t00008.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -301,7 +328,7 @@ template <> struct E::nested_template<char> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::D", "display_name": "D",
"id": "1562396858816419857", "id": "1562396858816419857",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -314,8 +341,10 @@ template <> struct E::nested_template<char> {
"is_static": false, "is_static": false,
"name": "ints", "name": "ints",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 20,
"line": 29 "file": "t00008.cc",
"line": 29,
"translation_unit": "t00008.cc"
}, },
"type": "B<int,clanguml::t00008::Vector>" "type": "B<int,clanguml::t00008::Vector>"
} }
@@ -324,8 +353,16 @@ template <> struct E::nested_template<char> {
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -336,13 +373,27 @@ template <> struct E::nested_template<char> {
"type": "int" "type": "int"
} }
], ],
"source_location": {
"column": 10,
"file": "t00008.cc",
"line": 33,
"translation_unit": "t00008.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": true,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -359,15 +410,17 @@ template <> struct E::nested_template<char> {
"name": "D", "name": "D",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 8,
"line": 28 "file": "t00008.cc",
"line": 28,
"translation_unit": "t00008.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::E", "display_name": "E",
"id": "1787658457052431115", "id": "1787658457052431115",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -379,15 +432,17 @@ template <> struct E::nested_template<char> {
"name": "E", "name": "E",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 8,
"line": 36 "file": "t00008.cc",
"line": 36,
"translation_unit": "t00008.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::E::nested_template<ET>", "display_name": "E::nested_template<ET>",
"id": "1549419203490064906", "id": "1549419203490064906",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -399,8 +454,16 @@ template <> struct E::nested_template<char> {
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": true, "is_static": true,
"is_virtual": false, "is_virtual": false,
@@ -411,14 +474,22 @@ template <> struct E::nested_template<char> {
"type": "ET *" "type": "ET *"
} }
], ],
"type": "clanguml::t00008::E::nested_template::DT *" "source_location": {
"column": 20,
"file": "t00008.cc",
"line": 40,
"translation_unit": "t00008.cc"
},
"type": "DT *"
} }
], ],
"name": "E::nested_template", "name": "E::nested_template",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 35,
"line": 37 "file": "t00008.cc",
"line": 37,
"translation_unit": "t00008.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -432,7 +503,7 @@ template <> struct E::nested_template<char> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00008::E::nested_template<char>", "display_name": "E::nested_template<char>",
"id": "33637089897037832", "id": "33637089897037832",
"is_abstract": false, "is_abstract": false,
"is_nested": true, "is_nested": true,
@@ -444,8 +515,16 @@ template <> struct E::nested_template<char> {
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": true, "is_static": true,
"is_virtual": false, "is_virtual": false,
@@ -456,14 +535,22 @@ template <> struct E::nested_template<char> {
"type": "char *" "type": "char *"
} }
], ],
"type": "clanguml::t00008::E::nested_template<char>::DeclType *" "source_location": {
"column": 22,
"file": "t00008.cc",
"line": 47,
"translation_unit": "t00008.cc"
},
"type": "DeclType *"
} }
], ],
"name": "E::nested_template", "name": "E::nested_template",
"namespace": "clanguml::t00008", "namespace": "clanguml::t00008",
"source_location": { "source_location": {
"file": "../../tests/t00008/t00008.cc", "column": 23,
"line": 44 "file": "t00008.cc",
"line": 44,
"translation_unit": "t00008.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -476,12 +563,8 @@ template <> struct E::nested_template<char> {
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00008_class", "name": "t00008_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="403px" preserveAspectRatio="none" style="width:1182px;height:403px;" version="1.1" viewBox="0 0 1182 403" width="1182px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="403px" preserveAspectRatio="none" style="width:1039px;height:403px;" version="1.1" viewBox="0 0 1039 403" width="1039px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f1s6cyx89c6eua" width="300%" x="-1" y="-1"> <filter height="300%" id="fqf2rxvb0rnoq" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,166 +9,184 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="124.8281" id="C_0001657660300852090121" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="6" y="8"/> <rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="124.8281" id="C_0002293517130897538130" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="6" y="8"/>
<ellipse cx="21" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,29.6406 Q23.3906,29.9375 22.75,30.0781 Q22.1094,30.2344 21.4063,30.2344 Q18.9063,30.2344 17.5781,28.5938 Q16.2656,26.9375 16.2656,23.8125 Q16.2656,20.6875 17.5781,19.0313 Q18.9063,17.375 21.4063,17.375 Q22.1094,17.375 22.75,17.5313 Q23.4063,17.6875 23.9688,17.9844 L23.9688,20.7031 Q23.3438,20.125 22.75,19.8594 Q22.1563,19.5781 21.5313,19.5781 Q20.1875,19.5781 19.5,20.6563 Q18.8125,21.7188 18.8125,23.8125 Q18.8125,25.9063 19.5,26.9844 Q20.1875,28.0469 21.5313,28.0469 Q22.1563,28.0469 22.75,27.7813 Q23.3438,27.5 23.9688,26.9219 L23.9688,29.6406 Z "/> <path d="M23.9688,29.6406 Q23.3906,29.9375 22.75,30.0781 Q22.1094,30.2344 21.4063,30.2344 Q18.9063,30.2344 17.5781,28.5938 Q16.2656,26.9375 16.2656,23.8125 Q16.2656,20.6875 17.5781,19.0313 Q18.9063,17.375 21.4063,17.375 Q22.1094,17.375 22.75,17.5313 Q23.4063,17.6875 23.9688,17.9844 L23.9688,20.7031 Q23.3438,20.125 22.75,19.8594 Q22.1563,19.5781 21.5313,19.5781 Q20.1875,19.5781 19.5,20.6563 Q18.8125,21.7188 18.8125,23.8125 Q18.8125,25.9063 19.5,26.9844 Q20.1875,28.0469 21.5313,28.0469 Q22.1563,28.0469 22.75,27.7813 Q23.3438,27.5 23.9688,26.9219 L23.9688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="28.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="28.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="167" x="51" y="5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="167" x="51" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="165" x="52" y="17.1387">T,P=T,CMP=nullptr,int N=3</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="165" x="52" y="17.1387">T,P=T,CMP=nullptr,int N=3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="214" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="214" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="214" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L17" xlink:show="new" xlink:title="comparator" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="54"/>
<ellipse cx="17" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L17" xlink:show="new" xlink:title="comparator" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="26" y="54.2104">value : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="26" y="62.2104">comparator : CMP</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L12" xlink:show="new" xlink:title="pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L15" xlink:show="new" xlink:title="ints" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="58.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="66.8047"/>
<ellipse cx="17" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L12" xlink:show="new" xlink:title="pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L15" xlink:show="new" xlink:title="ints" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="69" x="26" y="67.0151">pointer : T *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="26" y="75.0151">ints : std::array&lt;int,N&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L13" xlink:show="new" xlink:title="reference" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L12" xlink:show="new" xlink:title="pointer" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="71.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="79.6094"/>
<ellipse cx="17" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L13" xlink:show="new" xlink:title="reference" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L12" xlink:show="new" xlink:title="pointer" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="26" y="79.8198">reference : T &amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="69" x="26" y="87.8198">pointer : T *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L14" xlink:show="new" xlink:title="values" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L13" xlink:show="new" xlink:title="reference" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="84.4141"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="92.4141"/>
<ellipse cx="17" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="97.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L14" xlink:show="new" xlink:title="values" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L13" xlink:show="new" xlink:title="reference" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="26" y="92.6245">values : std::vector&lt;P&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="26" y="100.6245">reference : T &amp;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L15" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="97.2188"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="105.2188"/>
<ellipse cx="17" cy="102.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="110.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L15" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="26" y="105.4292">ints : std::array&lt;int,N&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="26" y="113.4292">value : T</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L17" xlink:show="new" xlink:title="comparator" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L14" xlink:show="new" xlink:title="values" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="110.0234"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="118.0234"/>
<ellipse cx="17" cy="115.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="123.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L17" xlink:show="new" xlink:title="comparator" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L14" xlink:show="new" xlink:title="values" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="26" y="118.2339">comparator : CMP</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="26" y="126.2339">values : std::vector&lt;P&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="214" y1="124.8281" y2="124.8281"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L20" target="_top" title="Vector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L20" xlink:show="new" xlink:title="Vector" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L20" target="_top" title="Vector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L20" xlink:show="new" xlink:title="Vector" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="60.8047" id="C_0001677407014842680311" style="stroke: #A80036; stroke-width: 1.5;" width="161" x="250" y="40"/>
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="60.8047" id="C_0001677407014842680311" style="stroke: #A80036; stroke-width: 1.5;" width="161" x="250" y="40"/>
<ellipse cx="300.25" cy="56" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="300.25" cy="56" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M303.2188,61.6406 Q302.6406,61.9375 302,62.0781 Q301.3594,62.2344 300.6563,62.2344 Q298.1563,62.2344 296.8281,60.5938 Q295.5156,58.9375 295.5156,55.8125 Q295.5156,52.6875 296.8281,51.0313 Q298.1563,49.375 300.6563,49.375 Q301.3594,49.375 302,49.5313 Q302.6563,49.6875 303.2188,49.9844 L303.2188,52.7031 Q302.5938,52.125 302,51.8594 Q301.4063,51.5781 300.7813,51.5781 Q299.4375,51.5781 298.75,52.6563 Q298.0625,53.7188 298.0625,55.8125 Q298.0625,57.9063 298.75,58.9844 Q299.4375,60.0469 300.7813,60.0469 Q301.4063,60.0469 302,59.7813 Q302.5938,59.5 303.2188,58.9219 L303.2188,61.6406 Z "/> <path d="M303.2188,61.6406 Q302.6406,61.9375 302,62.0781 Q301.3594,62.2344 300.6563,62.2344 Q298.1563,62.2344 296.8281,60.5938 Q295.5156,58.9375 295.5156,55.8125 Q295.5156,52.6875 296.8281,51.0313 Q298.1563,49.375 300.6563,49.375 Q301.3594,49.375 302,49.5313 Q302.6563,49.6875 303.2188,49.9844 L303.2188,52.7031 Q302.5938,52.125 302,51.8594 Q301.4063,51.5781 300.7813,51.5781 Q299.4375,51.5781 298.75,52.6563 Q298.0625,53.7188 298.0625,55.8125 Q298.0625,57.9063 298.75,58.9844 Q299.4375,60.0469 300.7813,60.0469 Q301.4063,60.0469 302,59.7813 Q302.5938,59.5 303.2188,58.9219 L303.2188,61.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="320.75" y="60.1543">Vector</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="320.75" y="60.1543">Vector</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="405" y="37"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="405" y="37"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="406" y="49.1387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="406" y="49.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="410" y1="72" y2="72"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="410" y1="72" y2="72"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="410" y1="80" y2="80"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L21" xlink:show="new" xlink:title="values" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L21" xlink:show="new" xlink:title="values" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="256" y="78"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="256" y="86"/>
<ellipse cx="261" cy="83" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="261" cy="91" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L21" xlink:show="new" xlink:title="values" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L21" xlink:show="new" xlink:title="values" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="270" y="86.2104">values : std::vector&lt;T&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="270" y="94.2104">values : std::vector&lt;T&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="410" y1="92.8047" y2="92.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="60.8047" id="C_0001968575752686868237" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="490" y="332"/>
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="60.8047" id="C_0001968575752686868237" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="492" y="332"/> <ellipse cx="548.75" cy="348" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="550.75" cy="348" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M551.7188,353.6406 Q551.1406,353.9375 550.5,354.0781 Q549.8594,354.2344 549.1563,354.2344 Q546.6563,354.2344 545.3281,352.5938 Q544.0156,350.9375 544.0156,347.8125 Q544.0156,344.6875 545.3281,343.0313 Q546.6563,341.375 549.1563,341.375 Q549.8594,341.375 550.5,341.5313 Q551.1563,341.6875 551.7188,341.9844 L551.7188,344.7031 Q551.0938,344.125 550.5,343.8594 Q549.9063,343.5781 549.2813,343.5781 Q547.9375,343.5781 547.25,344.6563 Q546.5625,345.7188 546.5625,347.8125 Q546.5625,349.9063 547.25,350.9844 Q547.9375,352.0469 549.2813,352.0469 Q549.9063,352.0469 550.5,351.7813 Q551.0938,351.5 551.7188,350.9219 L551.7188,353.6406 Z "/>
<path d="M553.7188,353.6406 Q553.1406,353.9375 552.5,354.0781 Q551.8594,354.2344 551.1563,354.2344 Q548.6563,354.2344 547.3281,352.5938 Q546.0156,350.9375 546.0156,347.8125 Q546.0156,344.6875 547.3281,343.0313 Q548.6563,341.375 551.1563,341.375 Q551.8594,341.375 552.5,341.5313 Q553.1563,341.6875 553.7188,341.9844 L553.7188,344.7031 Q553.0938,344.125 552.5,343.8594 Q551.9063,343.5781 551.2813,343.5781 Q549.9375,343.5781 549.25,344.6563 Q548.5625,345.7188 548.5625,347.8125 Q548.5625,349.9063 549.25,350.9844 Q549.9375,352.0469 551.2813,352.0469 Q551.9063,352.0469 552.5,351.7813 Q553.0938,351.5 553.7188,350.9219 L553.7188,353.6406 Z "/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="569.25" y="352.1543">B</text>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="571.25" y="352.1543">B</text> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="41" x="629" y="329"/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="41" x="631" y="329"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="630" y="341.1387">T,C&lt;&gt;</text>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="632" y="341.1387">T,C&lt;&gt;</text> <line style="stroke: #A80036; stroke-width: 1.5;" x1="491" x2="666" y1="364" y2="364"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="493" x2="668" y1="364" y2="364"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="491" x2="666" y1="372" y2="372"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L25" xlink:show="new" xlink:title="template_template" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L25" xlink:show="new" xlink:title="template_template" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="498" y="370"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="496" y="378"/>
<ellipse cx="503" cy="375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="501" cy="383" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L25" xlink:show="new" xlink:title="template_template" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L25" xlink:show="new" xlink:title="template_template" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="512" y="378.2104">template_template : C&lt;T&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="510" y="386.2104">template_template : C&lt;T&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="493" x2="668" y1="384.8047" y2="384.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="48" id="C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="528" y="216.5"/> <rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="48" id="C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="526" y="216.5"/>
<ellipse cx="543" cy="232.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="541" cy="232.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M545.9688,238.1406 Q545.3906,238.4375 544.75,238.5781 Q544.1094,238.7344 543.4063,238.7344 Q540.9063,238.7344 539.5781,237.0938 Q538.2656,235.4375 538.2656,232.3125 Q538.2656,229.1875 539.5781,227.5313 Q540.9063,225.875 543.4063,225.875 Q544.1094,225.875 544.75,226.0313 Q545.4063,226.1875 545.9688,226.4844 L545.9688,229.2031 Q545.3438,228.625 544.75,228.3594 Q544.1563,228.0781 543.5313,228.0781 Q542.1875,228.0781 541.5,229.1563 Q540.8125,230.2188 540.8125,232.3125 Q540.8125,234.4063 541.5,235.4844 Q542.1875,236.5469 543.5313,236.5469 Q544.1563,236.5469 544.75,236.2813 Q545.3438,236 545.9688,235.4219 L545.9688,238.1406 Z "/> <path d="M543.9688,238.1406 Q543.3906,238.4375 542.75,238.5781 Q542.1094,238.7344 541.4063,238.7344 Q538.9063,238.7344 537.5781,237.0938 Q536.2656,235.4375 536.2656,232.3125 Q536.2656,229.1875 537.5781,227.5313 Q538.9063,225.875 541.4063,225.875 Q542.1094,225.875 542.75,226.0313 Q543.4063,226.1875 543.9688,226.4844 L543.9688,229.2031 Q543.3438,228.625 542.75,228.3594 Q542.1563,228.0781 541.5313,228.0781 Q540.1875,228.0781 539.5,229.1563 Q538.8125,230.2188 538.8125,232.3125 Q538.8125,234.4063 539.5,235.4844 Q540.1875,236.5469 541.5313,236.5469 Q542.1563,236.5469 542.75,236.2813 Q543.3438,236 543.9688,235.4219 L543.9688,238.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="557" y="236.6543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="555" y="236.6543">B</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="63" x="573" y="213.5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="63" x="571" y="213.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="61" x="574" y="225.6387">int,Vector</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="61" x="572" y="225.6387">int,Vector</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="529" x2="632" y1="248.5" y2="248.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="527" x2="630" y1="248.5" y2="248.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="529" x2="632" y1="256.5" y2="256.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="527" x2="630" y1="256.5" y2="256.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="86.4141" id="C_0001562396858816419857" style="stroke: #A80036; stroke-width: 1.5;" width="269" x="446" y="27.5"/>
<ellipse cx="571.75" cy="43.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M574.7188,49.1406 Q574.1406,49.4375 573.5,49.5781 Q572.8594,49.7344 572.1563,49.7344 Q569.6563,49.7344 568.3281,48.0938 Q567.0156,46.4375 567.0156,43.3125 Q567.0156,40.1875 568.3281,38.5313 Q569.6563,36.875 572.1563,36.875 Q572.8594,36.875 573.5,37.0313 Q574.1563,37.1875 574.7188,37.4844 L574.7188,40.2031 Q574.0938,39.625 573.5,39.3594 Q572.9063,39.0781 572.2813,39.0781 Q570.9375,39.0781 570.25,40.1563 Q569.5625,41.2188 569.5625,43.3125 Q569.5625,45.4063 570.25,46.4844 Q570.9375,47.5469 572.2813,47.5469 Q572.9063,47.5469 573.5,47.2813 Q574.0938,47 574.7188,46.4219 L574.7188,49.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="592.25" y="47.6543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="714" y1="59.5" y2="59.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="452" y="65.5"/> <rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="94.4141" id="C_0001562396858816419857" style="stroke: #A80036; stroke-width: 1.5;" width="265" x="446" y="23.5"/>
<ellipse cx="457" cy="70.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="569.75" cy="39.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M572.7188,45.1406 Q572.1406,45.4375 571.5,45.5781 Q570.8594,45.7344 570.1563,45.7344 Q567.6563,45.7344 566.3281,44.0938 Q565.0156,42.4375 565.0156,39.3125 Q565.0156,36.1875 566.3281,34.5313 Q567.6563,32.875 570.1563,32.875 Q570.8594,32.875 571.5,33.0313 Q572.1563,33.1875 572.7188,33.4844 L572.7188,36.2031 Q572.0938,35.625 571.5,35.3594 Q570.9063,35.0781 570.2813,35.0781 Q568.9375,35.0781 568.25,36.1563 Q567.5625,37.2188 567.5625,39.3125 Q567.5625,41.4063 568.25,42.4844 Q568.9375,43.5469 570.2813,43.5469 Q570.9063,43.5469 571.5,43.2813 Q572.0938,43 572.7188,42.4219 L572.7188,45.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="590.25" y="43.6543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="710" y1="55.5" y2="55.5"/>
<ellipse cx="457" cy="66.5" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="239" x="466" y="69.7104">D&lt;Items...&gt;(std::tuple&lt;Items...&gt; *) : void</text>
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="447" x2="710" y1="76.3047" y2="76.3047"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L33" target="_top" title="add" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L33" xlink:show="new" xlink:title="add" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="466" y="73.7104">ints : B&lt;int,Vector&gt;</text> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="452" y="82.3047"/>
<ellipse cx="457" cy="87.3047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="714" y1="80.3047" y2="80.3047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L33" target="_top" title="add" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L33" xlink:show="new" xlink:title="add" xlink:type="simple">
<ellipse cx="457" cy="91.3047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="466" y="90.5151">add(int i) : void</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="466" y="94.5151">add(int i) : void</text>
<ellipse cx="457" cy="104.1094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="243" x="466" y="107.3198">D&lt;Items...&gt;(std::tuple&lt;Items...&gt; * ) : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L36" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L36" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="48" id="C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="907.5" y="338.5"/>
<ellipse cx="922.5" cy="354.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M925.4688,360.1406 Q924.8906,360.4375 924.25,360.5781 Q923.6094,360.7344 922.9063,360.7344 Q920.4063,360.7344 919.0781,359.0938 Q917.7656,357.4375 917.7656,354.3125 Q917.7656,351.1875 919.0781,349.5313 Q920.4063,347.875 922.9063,347.875 Q923.6094,347.875 924.25,348.0313 Q924.9063,348.1875 925.4688,348.4844 L925.4688,351.2031 Q924.8438,350.625 924.25,350.3594 Q923.6563,350.0781 923.0313,350.0781 Q921.6875,350.0781 921,351.1563 Q920.3125,352.2188 920.3125,354.3125 Q920.3125,356.4063 921,357.4844 Q921.6875,358.5469 923.0313,358.5469 Q923.6563,358.5469 924.25,358.2813 Q924.8438,358 925.4688,357.4219 L925.4688,360.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="936.5" y="358.6543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="908.5" x2="946.5" y1="370.5" y2="370.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="908.5" x2="946.5" y1="378.5" y2="378.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L37" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L37" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple"> <line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="710" y1="97.1094" y2="97.1094"/>
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="60.8047" id="C_0001549419203490064906" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="926.5" y="210"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" xlink:type="simple">
<ellipse cx="972.75" cy="226" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="452" y="103.1094"/>
<path d="M975.7188,231.6406 Q975.1406,231.9375 974.5,232.0781 Q973.8594,232.2344 973.1563,232.2344 Q970.6563,232.2344 969.3281,230.5938 Q968.0156,228.9375 968.0156,225.8125 Q968.0156,222.6875 969.3281,221.0313 Q970.6563,219.375 973.1563,219.375 Q973.8594,219.375 974.5,219.5313 Q975.1563,219.6875 975.7188,219.9844 L975.7188,222.7031 Q975.0938,222.125 974.5,221.8594 Q973.9063,221.5781 973.2813,221.5781 Q971.9375,221.5781 971.25,222.6563 Q970.5625,223.7188 970.5625,225.8125 Q970.5625,227.9063 971.25,228.9844 Q971.9375,230.0469 973.2813,230.0469 Q973.9063,230.0469 974.5,229.7813 Q975.0938,229.5 975.7188,228.9219 L975.7188,231.6406 Z "/> <ellipse cx="457" cy="108.1094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="993.25" y="230.1543">E::nested_template</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="17" x="1154.5" y="207"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="15" x="1155.5" y="219.1387">ET</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="927.5" x2="1167.5" y1="242" y2="242"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="927.5" x2="1167.5" y1="250" y2="250"/>
<ellipse cx="937.5" cy="261" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="216" x="946.5" y="264.2104">get(ET * d) : E::nested_template::DT *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L44" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00008/t00008.cc#L44" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1s6cyx89c6eua)" height="60.8047" id="C_0000033637089897037832" style="stroke: #A80036; stroke-width: 1.5;" width="355" x="750" y="40"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="466" y="111.3198">ints : B&lt;int,Vector&gt;</text>
<ellipse cx="846.25" cy="56" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M849.2188,61.6406 Q848.6406,61.9375 848,62.0781 Q847.3594,62.2344 846.6563,62.2344 Q844.1563,62.2344 842.8281,60.5938 Q841.5156,58.9375 841.5156,55.8125 Q841.5156,52.6875 842.8281,51.0313 Q844.1563,49.375 846.6563,49.375 Q847.3594,49.375 848,49.5313 Q848.6563,49.6875 849.2188,49.9844 L849.2188,52.7031 Q848.5938,52.125 848,51.8594 Q847.4063,51.5781 846.7813,51.5781 Q845.4375,51.5781 844.75,52.6563 Q844.0625,53.7188 844.0625,55.8125 Q844.0625,57.9063 844.75,58.9844 Q845.4375,60.0469 846.7813,60.0469 Q847.4063,60.0469 848,59.7813 Q848.5938,59.5 849.2188,58.9219 L849.2188,61.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="866.75" y="60.1543">E::nested_template</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="30" x="1078" y="37"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="1079" y="49.1387">char</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="751" x2="1104" y1="72" y2="72"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="751" x2="1104" y1="80" y2="80"/>
<ellipse cx="761" cy="91" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="329" x="770" y="94.2104">getDecl(char * c) : E::nested_template&lt;char&gt;::DeclType *</text>
</a> </a>
<path d="M580.5,264.64 C580.5,277.97 580.5,295.27 580.5,311.55 " fill="none" id="C_0001449136415707203971-&gt;C_0001968575752686868237" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L36" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L36" xlink:show="new" xlink:title="E" xlink:type="simple">
<polygon fill="none" points="587.5,311.61,580.5,331.61,573.5,311.61,587.5,311.61" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="48" id="C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="823.5" y="338.5"/>
<path d="M580.5,126.94 C580.5,157.3 580.5,193.32 580.5,216.28 " fill="none" id="C_0001562396858816419857&lt;-C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="838.5" cy="354.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="580.5,113.89,576.5,119.89,580.5,125.89,584.5,119.89,580.5,113.89" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M841.4688,360.1406 Q840.8906,360.4375 840.25,360.5781 Q839.6094,360.7344 838.9063,360.7344 Q836.4063,360.7344 835.0781,359.0938 Q833.7656,357.4375 833.7656,354.3125 Q833.7656,351.1875 835.0781,349.5313 Q836.4063,347.875 838.9063,347.875 Q839.6094,347.875 840.25,348.0313 Q840.9063,348.1875 841.4688,348.4844 L841.4688,351.2031 Q840.8438,350.625 840.25,350.3594 Q839.6563,350.0781 839.0313,350.0781 Q837.6875,350.0781 837,351.1563 Q836.3125,352.2188 836.3125,354.3125 Q836.3125,356.4063 837,357.4844 Q837.6875,358.5469 839.0313,358.5469 Q839.6563,358.5469 840.25,358.2813 Q840.8438,358 841.4688,357.4219 L841.4688,360.1406 Z "/>
<ellipse cx="586.5" cy="172.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="852.5" y="358.6543">E</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="593.5" y="176.0669">ints</text> <line style="stroke: #A80036; stroke-width: 1.5;" x1="824.5" x2="862.5" y1="370.5" y2="370.5"/>
<path d="M1017.84,271.16 C999.79,289.21 976.77,312.23 958.49,330.51 " fill="none" id="C_0001549419203490064906-&gt;C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="824.5" x2="862.5" y1="378.5" y2="378.5"/>
<ellipse cx="953.4569" cy="335.5431" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="959.1137" x2="947.8" y1="329.8863" y2="341.2"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L37" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L37" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple">
<line style="stroke: #A80036; stroke-width: 1.0;" x1="959.1137" x2="947.8" y1="341.2" y2="329.8863"/> <rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="60.8047" id="C_0001549419203490064906" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="852" y="210"/>
<path d="M921.32,101.26 C914.02,140.26 903.57,210.78 909.5,271 C911.21,288.34 914.71,307.28 918.18,323.33 " fill="none" id="C_0000033637089897037832-&gt;C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="867" cy="226" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="919.8023" cy="330.4477" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M869.9688,231.6406 Q869.3906,231.9375 868.75,232.0781 Q868.1094,232.2344 867.4063,232.2344 Q864.9063,232.2344 863.5781,230.5938 Q862.2656,228.9375 862.2656,225.8125 Q862.2656,222.6875 863.5781,221.0313 Q864.9063,219.375 867.4063,219.375 Q868.1094,219.375 868.75,219.5313 Q869.4063,219.6875 869.9688,219.9844 L869.9688,222.7031 Q869.3438,222.125 868.75,221.8594 Q868.1563,221.5781 867.5313,221.5781 Q866.1875,221.5781 865.5,222.6563 Q864.8125,223.7188 864.8125,225.8125 Q864.8125,227.9063 865.5,228.9844 Q866.1875,230.0469 867.5313,230.0469 Q868.1563,230.0469 868.75,229.7813 Q869.3438,229.5 869.9688,228.9219 L869.9688,231.6406 Z "/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="918.0346" x2="921.57" y1="322.6455" y2="338.25"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="881" y="230.1543">E::nested_template</text>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="927.6046" x2="912" y1="328.68" y2="332.2154"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="17" x="1011" y="207"/>
<path d="M948.68,101.15 C966.96,126.74 993.66,164.13 1014.7,193.59 " fill="none" id="C_0000033637089897037832-&gt;C_0001549419203490064906" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="15" x="1012" y="219.1387">ET</text>
<polygon fill="none" points="1020.4,189.52,1026.33,209.87,1009.01,197.66,1020.4,189.52" style="stroke: #A80036; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="853" x2="1024" y1="242" y2="242"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L40" target="_top" title="get" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L40" xlink:show="new" xlink:title="get" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="858" y="248"/>
<ellipse cx="863" cy="253" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L40" target="_top" title="get" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L40" xlink:show="new" xlink:title="get" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="98" x="872" y="256.2104">get(ET * d) : DT *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="853" x2="1024" y1="262.8047" y2="262.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L44" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L44" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fqf2rxvb0rnoq)" height="60.8047" id="C_0000033637089897037832" style="stroke: #A80036; stroke-width: 1.5;" width="194" x="746.5" y="40"/>
<ellipse cx="765.1" cy="56" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M768.0688,61.6406 Q767.4906,61.9375 766.85,62.0781 Q766.2094,62.2344 765.5063,62.2344 Q763.0063,62.2344 761.6781,60.5938 Q760.3656,58.9375 760.3656,55.8125 Q760.3656,52.6875 761.6781,51.0313 Q763.0063,49.375 765.5063,49.375 Q766.2094,49.375 766.85,49.5313 Q767.5063,49.6875 768.0688,49.9844 L768.0688,52.7031 Q767.4438,52.125 766.85,51.8594 Q766.2563,51.5781 765.6313,51.5781 Q764.2875,51.5781 763.6,52.6563 Q762.9125,53.7188 762.9125,55.8125 Q762.9125,57.9063 763.6,58.9844 Q764.2875,60.0469 765.6313,60.0469 Q766.2563,60.0469 766.85,59.7813 Q767.4438,59.5 768.0688,58.9219 L768.0688,61.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="779.9" y="60.1543">E::nested_template</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="30" x="913.5" y="37"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="914.5" y="49.1387">char</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="747.5" x2="939.5" y1="72" y2="72"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L47" target="_top" title="getDecl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L47" xlink:show="new" xlink:title="getDecl" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="752.5" y="78"/>
<ellipse cx="757.5" cy="83" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L47" target="_top" title="getDecl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L47" xlink:show="new" xlink:title="getDecl" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="168" x="766.5" y="86.2104">getDecl(char * c) : DeclType *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="747.5" x2="939.5" y1="92.8047" y2="92.8047"/>
<path d="M578.5,264.64 C578.5,277.97 578.5,295.27 578.5,311.55 " fill="none" id="C_0001449136415707203971-&gt;C_0001968575752686868237" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="585.5,311.61,578.5,331.61,571.5,311.61,585.5,311.61" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M578.5,131.05 C578.5,160.58 578.5,194.53 578.5,216.46 " fill="none" id="C_0001562396858816419857&lt;-C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="578.5,117.85,574.5,123.85,578.5,129.85,582.5,123.85,578.5,117.85" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="584.5" cy="172.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="591.5" y="176.0669">ints</text>
<path d="M915.02,271.16 C901.78,287.89 885.16,308.88 871.28,326.42 " fill="none" id="C_0001549419203490064906-&gt;C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="866.9278" cy="331.9193" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="871.8955" x2="861.96" y1="325.6487" y2="338.19"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="873.1984" x2="860.6571" y1="336.8871" y2="326.9516"/>
<path d="M840.4,101.25 C836.74,140.24 831.51,210.75 834.5,271 C835.36,288.27 837.13,307.32 838.87,323.47 " fill="none" id="C_0000033637089897037832-&gt;C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="839.6807" cy="330.5307" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="838.7813" x2="840.58" y1="322.5814" y2="338.48"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="847.6299" x2="831.7314" y1="329.6314" y2="331.4301"/>
<path d="M860.27,101.15 C874.53,126.38 895.29,163.08 911.83,192.34 " fill="none" id="C_0000033637089897037832-&gt;C_0001549419203490064906" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="917.99,189.01,921.74,209.87,905.8,195.9,917.99,189.01" style="stroke: #A80036; stroke-width: 1.0;"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -0,0 +1,337 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 1075.48046875 481" style="max-width: 1075.48px; background-color: white;" width="1075.48046875" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M618.796875,333L618.796875,339C618.796875,345,618.796875,357,618.796875,367.1666666666667C618.796875,377.3333333333333,618.796875,385.6666666666667,618.796875,389.8333333333333L618.796875,394"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M618.796875,164L618.796875,175.16666666666666C618.796875,186.33333333333334,618.796875,208.66666666666666,618.796875,227.33333333333334C618.796875,246,618.796875,261,618.796875,268.5L618.796875,276"/>
<path marker-start="url(#classDiagram-lollipopStart)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M861.4921875,122.9321591019065L850.1770833333334,140.94346591825544C838.8619791666666,158.95477273460435,816.2317708333334,194.9773863673022,804.9166666666666,225.2386931836511C793.6015625,255.5,793.6015625,280,793.6015625,303C793.6015625,326,793.6015625,347.5,798.8164567183462,362.4166666666667C804.0313509366924,377.3333333333333,814.461139373385,385.6666666666667,819.6760335917312,389.8333333333333L824.8909278100775,394"/>
<path marker-start="url(#classDiagram-lollipopStart)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M887.1640625,124.18837639324053L897.6998697916666,141.99031366103378C908.2356770833334,159.79225092882703,929.3072916666666,195.39612546441353,939.8430989583334,218.86472939887344C950.37890625,242.33333333333334,950.37890625,253.66666666666666,950.37890625,259.3333333333333L950.37890625,265"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id5" d="M950.37890625,344L950.37890625,348.1666666666667C950.37890625,352.3333333333333,950.37890625,360.6666666666667,945.4660650839793,369C940.5532239179587,377.3333333333333,930.7275415859173,385.6666666666667,925.8147004198967,389.8333333333333L920.901859253876,394"/>
</g>
<g class="edgeLabels">
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(618.796875, 231)" class="edgeLabel">
<g transform="translate(-17.125, -9)" class="label">
<foreignObject height="18" width="34.25">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+ints</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(129.0859375, 102.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L9">
<g title="A" id="classId-C_0002293517130897538130-0" class="node default clickable">
<rect height="189" width="242.171875" y="-94.5" x="-121.0859375" class="outer title-state"/>
<line y2="-64.5" y1="-64.5" x2="121.0859375" x1="-121.0859375" class="divider"/>
<line y2="83.5" y1="83.5" x2="121.0859375" x1="-121.0859375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -113.5859375, -87)" height="18" width="227.171875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;T,P=T,CMP=nullptr,int N=3&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -113.5859375, -53)" height="18" width="139.15625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+comparator : CMP</span>
</div>
</foreignObject>
<foreignObject transform="translate( -113.5859375, -31)" height="18" width="165.859375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+ints : std::array&lt;int,N&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -113.5859375, -9)" height="18" width="81.375">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+pointer : T </span>
</div>
</foreignObject>
<foreignObject transform="translate( -113.5859375, 13)" height="18" width="114.59375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+reference : T &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -113.5859375, 35)" height="18" width="70.421875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : T</span>
</div>
</foreignObject>
<foreignObject transform="translate( -113.5859375, 57)" height="18" width="172.09375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+values : std::vector&lt;P&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(393.2734375, 102.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L20">
<g title="Vector" id="classId-C_0001677407014842680311-1" class="node default clickable">
<rect height="79" width="186.203125" y="-39.5" x="-93.1015625" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="93.1015625" x1="-93.1015625" class="divider"/>
<line y2="28.5" y1="28.5" x2="93.1015625" x1="-93.1015625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -38.6875, -32)" height="18" width="77.375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">Vector&lt;T&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -85.6015625, 2)" height="18" width="171.203125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+values : std::vector&lt;T&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(618.796875, 433.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L24">
<g title="B" id="classId-C_0001968575752686868237-2" class="node default clickable">
<rect height="79" width="209.328125" y="-39.5" x="-104.6640625" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="104.6640625" x1="-104.6640625" class="divider"/>
<line y2="28.5" y1="28.5" x2="104.6640625" x1="-104.6640625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -36.46875, -32)" height="18" width="72.9375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B&lt;T,C&lt;&gt;&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -97.1640625, 2)" height="18" width="194.328125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+template_template : C&lt;T&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(618.796875, 304.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L24">
<g title="B" id="classId-C_0001449136415707203971-3" class="node default clickable">
<rect height="57" width="118.15625" y="-28.5" x="-59.078125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="59.078125" x1="-59.078125" class="divider"/>
<line y2="17.5" y1="17.5" x2="59.078125" x1="-59.078125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -51.578125, -21)" height="18" width="103.15625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B&lt;int,Vector&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(618.796875, 102.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L28">
<g title="D" id="classId-C_0001562396858816419857-4" class="node default clickable">
<rect height="123" width="164.84375" y="-61.5" x="-82.421875" class="outer title-state"/>
<line y2="-31.5" y1="-31.5" x2="82.421875" x1="-82.421875" class="divider"/>
<line y2="6.5" y1="6.5" x2="82.421875" x1="-82.421875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -54)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">D</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.921875, -20)" height="18" width="143.640625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+ints : B&lt;int,Vector&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.921875, 14)" height="18" width="149.84375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+D(std::tuple *) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -74.921875, 36)" height="18" width="114.28125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+add(int i) : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(874.328125, 102.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L36">
<g title="E" id="classId-C_0001787658457052431115-5" class="node default clickable">
<rect height="57" width="25.671875" y="-28.5" x="-12.8359375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="12.8359375" x1="-12.8359375" class="divider"/>
<line y2="17.5" y1="17.5" x2="12.8359375" x1="-12.8359375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.3359375, -21)" height="18" width="10.671875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">E</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(874.328125, 433.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L37">
<g title="E##nested_template" id="classId-C_0001549419203490064906-6" class="node default clickable">
<rect height="79" width="201.734375" y="-39.5" x="-100.8671875" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="100.8671875" x1="-100.8671875" class="divider"/>
<line y2="6.5" y1="6.5" x2="100.8671875" x1="-100.8671875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -93.3671875, -32)" height="18" width="186.734375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">E::nested_template&lt;ET&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -93.3671875, 14)" height="18" width="131.46875">
<div xmlns="http://www.w3.org/1999/xhtml" style="text-decoration: underline; display: inline-block; white-space: nowrap;">
<span style="text-decoration:underline;" class="nodeLabel">+get(ET * d) : DT *</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(950.37890625, 304.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00008/t00008.cc#L44">
<g title="E##nested_template" id="classId-C_0000033637089897037832-7" class="node default clickable">
<rect height="79" width="234.203125" y="-39.5" x="-117.1015625" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="117.1015625" x1="-117.1015625" class="divider"/>
<line y2="6.5" y1="6.5" x2="117.1015625" x1="-117.1015625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -100.0390625, -32)" height="18" width="200.078125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">E::nested_template&lt;char&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -109.6015625, 14)" height="18" width="219.203125">
<div xmlns="http://www.w3.org/1999/xhtml" style="text-decoration: underline; display: inline-block; white-space: nowrap;">
<span style="text-decoration:underline;" class="nodeLabel">+getDecl(char * c) : DeclType *</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,22 +1,19 @@
# t00009 - Template instantiation # t00009 - Template instantiation
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00009_class: t00009_class:
type: class type: class
glob: glob:
- ../../tests/t00009/t00009.cc - t00009.cc
using_namespace: using_namespace: clanguml::t00009
- clanguml::t00009
include: include:
namespaces: namespaces:
- clanguml::t00009 - clanguml::t00009
``` ```
## Source code ## Source code
File t00009.cc File `tests/t00009/t00009.cc`
```cpp ```cpp
#include <string> #include <string>
#include <vector> #include <vector>
@@ -39,8 +36,10 @@ public:
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00009_class](./t00009_class.svg "Template instantiation") ![t00009_class](./t00009_class.svg "Template instantiation")
## Generated Mermaid diagrams
![t00009_class](./t00009_class_mermaid.svg "Template instantiation")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -48,7 +47,7 @@ public:
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00009::A<T>", "display_name": "A<T>",
"id": "412228989111660105", "id": "412228989111660105",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -61,8 +60,10 @@ public:
"is_static": false, "is_static": false,
"name": "value", "name": "value",
"source_location": { "source_location": {
"file": "../../tests/t00009/t00009.cc", "column": 7,
"line": 9 "file": "t00009.cc",
"line": 9,
"translation_unit": "t00009.cc"
}, },
"type": "T" "type": "T"
} }
@@ -71,8 +72,10 @@ public:
"name": "A", "name": "A",
"namespace": "clanguml::t00009", "namespace": "clanguml::t00009",
"source_location": { "source_location": {
"file": "../../tests/t00009/t00009.cc", "column": 29,
"line": 7 "file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -86,7 +89,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00009::A<int>", "display_name": "A<int>",
"id": "1894387438043499", "id": "1894387438043499",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -97,6 +100,12 @@ public:
"methods": [], "methods": [],
"name": "A", "name": "A",
"namespace": "clanguml::t00009", "namespace": "clanguml::t00009",
"source_location": {
"column": 29,
"file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -109,7 +118,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00009::A<std::string>", "display_name": "A<std::string>",
"id": "1340793233843139195", "id": "1340793233843139195",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -120,6 +129,12 @@ public:
"methods": [], "methods": [],
"name": "A", "name": "A",
"namespace": "clanguml::t00009", "namespace": "clanguml::t00009",
"source_location": {
"column": 29,
"file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -132,7 +147,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00009::A<std::vector<std::string>>", "display_name": "A<std::vector<std::string>>",
"id": "1370808797762248850", "id": "1370808797762248850",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -143,6 +158,12 @@ public:
"methods": [], "methods": [],
"name": "A", "name": "A",
"namespace": "clanguml::t00009", "namespace": "clanguml::t00009",
"source_location": {
"column": 29,
"file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -162,7 +183,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00009::B", "display_name": "B",
"id": "176239714450247310", "id": "176239714450247310",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -175,8 +196,10 @@ public:
"is_static": false, "is_static": false,
"name": "aint", "name": "aint",
"source_location": { "source_location": {
"file": "../../tests/t00009/t00009.cc", "column": 12,
"line": 14 "file": "t00009.cc",
"line": 14,
"translation_unit": "t00009.cc"
}, },
"type": "A<int>" "type": "A<int>"
}, },
@@ -185,8 +208,10 @@ public:
"is_static": false, "is_static": false,
"name": "astring", "name": "astring",
"source_location": { "source_location": {
"file": "../../tests/t00009/t00009.cc", "column": 21,
"line": 15 "file": "t00009.cc",
"line": 15,
"translation_unit": "t00009.cc"
}, },
"type": "A<std::string> *" "type": "A<std::string> *"
}, },
@@ -195,8 +220,10 @@ public:
"is_static": false, "is_static": false,
"name": "avector", "name": "avector",
"source_location": { "source_location": {
"file": "../../tests/t00009/t00009.cc", "column": 34,
"line": 16 "file": "t00009.cc",
"line": 16,
"translation_unit": "t00009.cc"
}, },
"type": "A<std::vector<std::string>> &" "type": "A<std::vector<std::string>> &"
} }
@@ -205,19 +232,17 @@ public:
"name": "B", "name": "B",
"namespace": "clanguml::t00009", "namespace": "clanguml::t00009",
"source_location": { "source_location": {
"file": "../../tests/t00009/t00009.cc", "column": 7,
"line": 12 "file": "t00009.cc",
"line": 12,
"translation_unit": "t00009.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00009_class", "name": "t00009_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="351px" preserveAspectRatio="none" style="width:448px;height:351px;" version="1.1" viewBox="0 0 448 351" width="448px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="351px" preserveAspectRatio="none" style="width:448px;height:351px;" version="1.1" viewBox="0 0 448 351" width="448px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="fe9du8sgjcd55" width="300%" x="-1" y="-1"> <filter height="300%" id="fpvhhclle8byw" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,76 +9,82 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fe9du8sgjcd55)" height="60.8047" id="C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="116.5" y="280"/> <rect fill="#FEFECE" filter="url(#fpvhhclle8byw)" height="60.8047" id="C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="116.5" y="280"/>
<ellipse cx="142.3" cy="296" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="142.3" cy="296" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M145.2688,301.6406 Q144.6906,301.9375 144.05,302.0781 Q143.4094,302.2344 142.7063,302.2344 Q140.2063,302.2344 138.8781,300.5938 Q137.5656,298.9375 137.5656,295.8125 Q137.5656,292.6875 138.8781,291.0313 Q140.2063,289.375 142.7063,289.375 Q143.4094,289.375 144.05,289.5313 Q144.7063,289.6875 145.2688,289.9844 L145.2688,292.7031 Q144.6438,292.125 144.05,291.8594 Q143.4563,291.5781 142.8313,291.5781 Q141.4875,291.5781 140.8,292.6563 Q140.1125,293.7188 140.1125,295.8125 Q140.1125,297.9063 140.8,298.9844 Q141.4875,300.0469 142.8313,300.0469 Q143.4563,300.0469 144.05,299.7813 Q144.6438,299.5 145.2688,298.9219 L145.2688,301.6406 Z "/> <path d="M145.2688,301.6406 Q144.6906,301.9375 144.05,302.0781 Q143.4094,302.2344 142.7063,302.2344 Q140.2063,302.2344 138.8781,300.5938 Q137.5656,298.9375 137.5656,295.8125 Q137.5656,292.6875 138.8781,291.0313 Q140.2063,289.375 142.7063,289.375 Q143.4094,289.375 144.05,289.5313 Q144.7063,289.6875 145.2688,289.9844 L145.2688,292.7031 Q144.6438,292.125 144.05,291.8594 Q143.4563,291.5781 142.8313,291.5781 Q141.4875,291.5781 140.8,292.6563 Q140.1125,293.7188 140.1125,295.8125 Q140.1125,297.9063 140.8,298.9844 Q141.4875,300.0469 142.8313,300.0469 Q143.4563,300.0469 144.05,299.7813 Q144.6438,299.5 145.2688,298.9219 L145.2688,301.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="158.7" y="300.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="158.7" y="300.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="185.5" y="277"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="185.5" y="277"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="186.5" y="289.1387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="186.5" y="289.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="190.5" y1="312" y2="312"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="190.5" y1="312" y2="312"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="190.5" y1="320" y2="320"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L9" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L9" xlink:show="new" xlink:title="value" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122.5" y="318"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122.5" y="326"/>
<ellipse cx="127.5" cy="323" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="127.5" cy="331" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L9" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L9" xlink:show="new" xlink:title="value" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="136.5" y="326.2104">value : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="136.5" y="334.2104">value : T</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="190.5" y1="332.8047" y2="332.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fe9du8sgjcd55)" height="48" id="C_0000001894387438043499" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="6" y="171"/> <rect fill="#FEFECE" filter="url(#fpvhhclle8byw)" height="48" id="C_0000001894387438043499" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="6" y="171"/>
<ellipse cx="21" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,192.6406 Q23.3906,192.9375 22.75,193.0781 Q22.1094,193.2344 21.4063,193.2344 Q18.9063,193.2344 17.5781,191.5938 Q16.2656,189.9375 16.2656,186.8125 Q16.2656,183.6875 17.5781,182.0313 Q18.9063,180.375 21.4063,180.375 Q22.1094,180.375 22.75,180.5313 Q23.4063,180.6875 23.9688,180.9844 L23.9688,183.7031 Q23.3438,183.125 22.75,182.8594 Q22.1563,182.5781 21.5313,182.5781 Q20.1875,182.5781 19.5,183.6563 Q18.8125,184.7188 18.8125,186.8125 Q18.8125,188.9063 19.5,189.9844 Q20.1875,191.0469 21.5313,191.0469 Q22.1563,191.0469 22.75,190.7813 Q23.3438,190.5 23.9688,189.9219 L23.9688,192.6406 Z "/> <path d="M23.9688,192.6406 Q23.3906,192.9375 22.75,193.0781 Q22.1094,193.2344 21.4063,193.2344 Q18.9063,193.2344 17.5781,191.5938 Q16.2656,189.9375 16.2656,186.8125 Q16.2656,183.6875 17.5781,182.0313 Q18.9063,180.375 21.4063,180.375 Q22.1094,180.375 22.75,180.5313 Q23.4063,180.6875 23.9688,180.9844 L23.9688,183.7031 Q23.3438,183.125 22.75,182.8594 Q22.1563,182.5781 21.5313,182.5781 Q20.1875,182.5781 19.5,183.6563 Q18.8125,184.7188 18.8125,186.8125 Q18.8125,188.9063 19.5,189.9844 Q20.1875,191.0469 21.5313,191.0469 Q22.1563,191.0469 22.75,190.7813 Q23.3438,190.5 23.9688,189.9219 L23.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="191.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="191.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="51" y="168"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="51" y="168"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="52" y="180.1387">int</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="52" y="180.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="65" y1="203" y2="203"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="65" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="65" y1="211" y2="211"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="65" y1="211" y2="211"/>
<rect fill="#FEFECE" filter="url(#fe9du8sgjcd55)" height="48" id="C_0001340793233843139195" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="101" y="171"/> </a>
<ellipse cx="116" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<path d="M118.9688,192.6406 Q118.3906,192.9375 117.75,193.0781 Q117.1094,193.2344 116.4063,193.2344 Q113.9063,193.2344 112.5781,191.5938 Q111.2656,189.9375 111.2656,186.8125 Q111.2656,183.6875 112.5781,182.0313 Q113.9063,180.375 116.4063,180.375 Q117.1094,180.375 117.75,180.5313 Q118.4063,180.6875 118.9688,180.9844 L118.9688,183.7031 Q118.3438,183.125 117.75,182.8594 Q117.1563,182.5781 116.5313,182.5781 Q115.1875,182.5781 114.5,183.6563 Q113.8125,184.7188 113.8125,186.8125 Q113.8125,188.9063 114.5,189.9844 Q115.1875,191.0469 116.5313,191.0469 Q117.1563,191.0469 117.75,190.7813 Q118.3438,190.5 118.9688,189.9219 L118.9688,192.6406 Z "/> <rect fill="#FEFECE" filter="url(#fpvhhclle8byw)" height="48" id="C_0001340793233843139195" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="101" y="171"/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="130" y="191.1543">A</text> <ellipse cx="116" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="146" y="168"/> <path d="M118.9688,192.6406 Q118.3906,192.9375 117.75,193.0781 Q117.1094,193.2344 116.4063,193.2344 Q113.9063,193.2344 112.5781,191.5938 Q111.2656,189.9375 111.2656,186.8125 Q111.2656,183.6875 112.5781,182.0313 Q113.9063,180.375 116.4063,180.375 Q117.1094,180.375 117.75,180.5313 Q118.4063,180.6875 118.9688,180.9844 L118.9688,183.7031 Q118.3438,183.125 117.75,182.8594 Q117.1563,182.5781 116.5313,182.5781 Q115.1875,182.5781 114.5,183.6563 Q113.8125,184.7188 113.8125,186.8125 Q113.8125,188.9063 114.5,189.9844 Q115.1875,191.0469 116.5313,191.0469 Q117.1563,191.0469 117.75,190.7813 Q118.3438,190.5 118.9688,189.9219 L118.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="147" y="180.1387">std::string</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="130" y="191.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="102" x2="206" y1="203" y2="203"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="146" y="168"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="102" x2="206" y1="211" y2="211"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="147" y="180.1387">std::string</text>
<rect fill="#FEFECE" filter="url(#fe9du8sgjcd55)" height="48" id="C_0001370808797762248850" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="242" y="171"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="102" x2="206" y1="203" y2="203"/>
<ellipse cx="257" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="102" x2="206" y1="211" y2="211"/>
<path d="M259.9688,192.6406 Q259.3906,192.9375 258.75,193.0781 Q258.1094,193.2344 257.4063,193.2344 Q254.9063,193.2344 253.5781,191.5938 Q252.2656,189.9375 252.2656,186.8125 Q252.2656,183.6875 253.5781,182.0313 Q254.9063,180.375 257.4063,180.375 Q258.1094,180.375 258.75,180.5313 Q259.4063,180.6875 259.9688,180.9844 L259.9688,183.7031 Q259.3438,183.125 258.75,182.8594 Q258.1563,182.5781 257.5313,182.5781 Q256.1875,182.5781 255.5,183.6563 Q254.8125,184.7188 254.8125,186.8125 Q254.8125,188.9063 255.5,189.9844 Q256.1875,191.0469 257.5313,191.0469 Q258.1563,191.0469 258.75,190.7813 Q259.3438,190.5 259.9688,189.9219 L259.9688,192.6406 Z "/> </a>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="271" y="191.1543">A</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="150" x="287" y="168"/> <rect fill="#FEFECE" filter="url(#fpvhhclle8byw)" height="48" id="C_0001370808797762248850" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="242" y="171"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="148" x="288" y="180.1387">std::vector&lt;std::string&gt;</text> <ellipse cx="257" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="433" y1="203" y2="203"/> <path d="M259.9688,192.6406 Q259.3906,192.9375 258.75,193.0781 Q258.1094,193.2344 257.4063,193.2344 Q254.9063,193.2344 253.5781,191.5938 Q252.2656,189.9375 252.2656,186.8125 Q252.2656,183.6875 253.5781,182.0313 Q254.9063,180.375 257.4063,180.375 Q258.1094,180.375 258.75,180.5313 Q259.4063,180.6875 259.9688,180.9844 L259.9688,183.7031 Q259.3438,183.125 258.75,182.8594 Q258.1563,182.5781 257.5313,182.5781 Q256.1875,182.5781 255.5,183.6563 Q254.8125,184.7188 254.8125,186.8125 Q254.8125,188.9063 255.5,189.9844 Q256.1875,191.0469 257.5313,191.0469 Q258.1563,191.0469 258.75,190.7813 Q259.3438,190.5 259.9688,189.9219 L259.9688,192.6406 Z "/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="433" y1="211" y2="211"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="271" y="191.1543">A</text>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L12" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L12" xlink:show="new" xlink:title="B" xlink:type="simple"> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="150" x="287" y="168"/>
<rect fill="#FEFECE" filter="url(#fe9du8sgjcd55)" height="86.4141" id="C_0000176239714450247310" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="25.5" y="8"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="148" x="288" y="180.1387">std::vector&lt;std::string&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="433" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="433" y1="211" y2="211"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L12" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L12" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fpvhhclle8byw)" height="86.4141" id="C_0000176239714450247310" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="25.5" y="8"/>
<ellipse cx="145.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="145.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M148.7188,29.6406 Q148.1406,29.9375 147.5,30.0781 Q146.8594,30.2344 146.1563,30.2344 Q143.6563,30.2344 142.3281,28.5938 Q141.0156,26.9375 141.0156,23.8125 Q141.0156,20.6875 142.3281,19.0313 Q143.6563,17.375 146.1563,17.375 Q146.8594,17.375 147.5,17.5313 Q148.1563,17.6875 148.7188,17.9844 L148.7188,20.7031 Q148.0938,20.125 147.5,19.8594 Q146.9063,19.5781 146.2813,19.5781 Q144.9375,19.5781 144.25,20.6563 Q143.5625,21.7188 143.5625,23.8125 Q143.5625,25.9063 144.25,26.9844 Q144.9375,28.0469 146.2813,28.0469 Q146.9063,28.0469 147.5,27.7813 Q148.0938,27.5 148.7188,26.9219 L148.7188,29.6406 Z "/> <path d="M148.7188,29.6406 Q148.1406,29.9375 147.5,30.0781 Q146.8594,30.2344 146.1563,30.2344 Q143.6563,30.2344 142.3281,28.5938 Q141.0156,26.9375 141.0156,23.8125 Q141.0156,20.6875 142.3281,19.0313 Q143.6563,17.375 146.1563,17.375 Q146.8594,17.375 147.5,17.5313 Q148.1563,17.6875 148.7188,17.9844 L148.7188,20.7031 Q148.0938,20.125 147.5,19.8594 Q146.9063,19.5781 146.2813,19.5781 Q144.9375,19.5781 144.25,20.6563 Q143.5625,21.7188 143.5625,23.8125 Q143.5625,25.9063 144.25,26.9844 Q144.9375,28.0469 146.2813,28.0469 Q146.9063,28.0469 147.5,27.7813 Q148.0938,27.5 148.7188,26.9219 L148.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="166.25" y="28.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="166.25" y="28.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="26.5" x2="281.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="26.5" x2="281.5" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="26.5" x2="281.5" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L14" xlink:show="new" xlink:title="aint" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L14" xlink:show="new" xlink:title="aint" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="31.5" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="31.5" y="54"/>
<ellipse cx="36.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="36.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L14" xlink:show="new" xlink:title="aint" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L14" xlink:show="new" xlink:title="aint" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="45.5" y="54.2104">aint : A&lt;int&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="45.5" y="62.2104">aint : A&lt;int&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="31.5" y="58.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="31.5" y="66.8047"/>
<ellipse cx="36.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="36.5" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="45.5" y="67.0151">astring : A&lt;std::string&gt; *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="45.5" y="75.0151">astring : A&lt;std::string&gt; *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L16" xlink:show="new" xlink:title="avector" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L16" xlink:show="new" xlink:title="avector" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="31.5" y="71.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="31.5" y="79.6094"/>
<ellipse cx="36.5" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="36.5" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00009/t00009.cc#L16" xlink:show="new" xlink:title="avector" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L16" xlink:show="new" xlink:title="avector" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="231" x="45.5" y="79.8198">avector : A&lt;std::vector&lt;std::string&gt;&gt; &amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="231" x="45.5" y="87.8198">avector : A&lt;std::vector&lt;std::string&gt;&gt; &amp;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="26.5" x2="281.5" y1="86.4141" y2="86.4141"/>
<path d="M60.16,219.24 C74.1,232.65 92.08,249.94 108.57,265.8 " fill="none" id="C_0000001894387438043499-&gt;C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M60.16,219.24 C74.1,232.65 92.08,249.94 108.57,265.8 " fill="none" id="C_0000001894387438043499-&gt;C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="113.57,260.9,123.13,279.81,103.86,270.99,113.57,260.9" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="113.57,260.9,123.13,279.81,103.86,270.99,113.57,260.9" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M154,219.24 C154,230.87 154,245.42 154,259.43 " fill="none" id="C_0001340793233843139195-&gt;C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M154,219.24 C154,230.87 154,245.42 154,259.43 " fill="none" id="C_0001340793233843139195-&gt;C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,247 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 530.859375 393" style="max-width: 530.859px; background-color: white;" width="530.859375" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M40.3984375,256L40.3984375,260.1666666666667C40.3984375,264.3333333333333,40.3984375,272.6666666666667,57.375,284.40742141763485C74.3515625,296.1481761686031,108.3046875,311.29635233720614,125.28125,318.8704404215077L142.2578125,326.4445285058092"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id2" d="M184.96875,256L184.96875,260.1666666666667C184.96875,264.3333333333333,184.96875,272.6666666666667,184.96875,281C184.96875,289.3333333333333,184.96875,297.6666666666667,184.96875,301.8333333333333L184.96875,306"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id3" d="M410,256L410,260.1666666666667C410,264.3333333333333,410,272.6666666666667,379.61328125,285.5429830347637C349.2265625,298.41929940286076,288.453125,315.83859880572146,258.06640625,324.5482485071518L227.6796875,333.25789820858216"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M91.86849640052355,131L83.29015325043629,136.66666666666666C74.71181010034904,142.33333333333334,57.55512380017452,153.66666666666666,48.97678065008726,165C40.3984375,176.33333333333334,40.3984375,187.66666666666666,40.3984375,193.33333333333334L40.3984375,199"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id5" d="M184.96875,131L184.96875,136.66666666666666C184.96875,142.33333333333334,184.96875,153.66666666666666,184.96875,165C184.96875,176.33333333333334,184.96875,187.66666666666666,184.96875,193.33333333333334L184.96875,199"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id6" d="M329.8841623036649,131L343.2368019197208,136.66666666666666C356.5894415357766,142.33333333333334,383.2947207678883,153.66666666666666,396.6473603839442,165C410,176.33333333333334,410,187.66666666666666,410,193.33333333333334L410,199"/>
</g>
<g class="edgeLabels">
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(40.3984375, 165)" class="edgeLabel">
<g transform="translate(-17.5703125, -9)" class="label">
<foreignObject height="18" width="35.140625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+aint</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(184.96875, 165)" class="edgeLabel">
<g transform="translate(-28.6875, -9)" class="label">
<foreignObject height="18" width="57.375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+astring</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(410, 165)" class="edgeLabel">
<g transform="translate(-30.90625, -9)" class="label">
<foreignObject height="18" width="61.8125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+avector</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(184.96875, 345.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0000412228989111660105-0" class="node default clickable">
<rect height="79" width="85.421875" y="-39.5" x="-42.7109375" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="42.7109375" x1="-42.7109375" class="divider"/>
<line y2="28.5" y1="28.5" x2="42.7109375" x1="-42.7109375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -20.0078125, -32)" height="18" width="40.015625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;T&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -35.2109375, 2)" height="18" width="70.421875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : T</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(40.3984375, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0000001894387438043499-1" class="node default clickable">
<rect height="57" width="64.796875" y="-28.5" x="-32.3984375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="32.3984375" x1="-32.3984375" class="divider"/>
<line y2="17.5" y1="17.5" x2="32.3984375" x1="-32.3984375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -24.8984375, -21)" height="18" width="49.796875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;int&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(184.96875, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0001340793233843139195-2" class="node default clickable">
<rect height="57" width="124.34375" y="-28.5" x="-62.171875" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="62.171875" x1="-62.171875" class="divider"/>
<line y2="17.5" y1="17.5" x2="62.171875" x1="-62.171875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -54.671875, -21)" height="18" width="109.34375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;std::string&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(410, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0001370808797762248850-3" class="node default clickable">
<rect height="57" width="225.71875" y="-28.5" x="-112.859375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="112.859375" x1="-112.859375" class="divider"/>
<line y2="17.5" y1="17.5" x2="112.859375" x1="-112.859375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -105.359375, -21)" height="18" width="210.71875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;std::vector&lt;std::string&gt;&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(184.96875, 69.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00009/t00009.cc#L12">
<g title="B" id="classId-C_0000176239714450247310-4" class="node default clickable">
<rect height="123" width="295.59375" y="-61.5" x="-147.796875" class="outer title-state"/>
<line y2="-31.5" y1="-31.5" x2="147.796875" x1="-147.796875" class="divider"/>
<line y2="50.5" y1="50.5" x2="147.796875" x1="-147.796875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -54)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B</span>
</div>
</foreignObject>
<foreignObject transform="translate( -140.296875, -20)" height="18" width="93.859375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+aint : A&lt;int&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -140.296875, 2)" height="18" width="168.828125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+astring : A&lt;std::string&gt; </span>
</div>
</foreignObject>
<foreignObject transform="translate( -140.296875, 24)" height="18" width="280.59375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+avector : A&lt;std::vector&lt;std::string&gt;&gt; &amp;</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,22 +1,19 @@
# t00010 - Basic template instantiation # t00010 - Basic template instantiation
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00010_class: t00010_class:
type: class type: class
glob: glob:
- ../../tests/t00010/t00010.cc - t00010.cc
using_namespace: using_namespace: clanguml::t00010
- clanguml::t00010
include: include:
namespaces: namespaces:
- clanguml::t00010 - clanguml::t00010
``` ```
## Source code ## Source code
File t00010.cc File `tests/t00010/t00010.cc`
```cpp ```cpp
#include <string> #include <string>
#include <vector> #include <vector>
@@ -43,8 +40,10 @@ public:
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00010_class](./t00010_class.svg "Basic template instantiation") ![t00010_class](./t00010_class.svg "Basic template instantiation")
## Generated Mermaid diagrams
![t00010_class](./t00010_class_mermaid.svg "Basic template instantiation")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -52,7 +51,7 @@ public:
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00010::A<T,P>", "display_name": "A<T,P>",
"id": "2222216618904514099", "id": "2222216618904514099",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -65,8 +64,10 @@ public:
"is_static": false, "is_static": false,
"name": "first", "name": "first",
"source_location": { "source_location": {
"file": "../../tests/t00010/t00010.cc", "column": 7,
"line": 9 "file": "t00010.cc",
"line": 9,
"translation_unit": "t00010.cc"
}, },
"type": "T" "type": "T"
}, },
@@ -75,8 +76,10 @@ public:
"is_static": false, "is_static": false,
"name": "second", "name": "second",
"source_location": { "source_location": {
"file": "../../tests/t00010/t00010.cc", "column": 7,
"line": 10 "file": "t00010.cc",
"line": 10,
"translation_unit": "t00010.cc"
}, },
"type": "P" "type": "P"
} }
@@ -85,8 +88,10 @@ public:
"name": "A", "name": "A",
"namespace": "clanguml::t00010", "namespace": "clanguml::t00010",
"source_location": { "source_location": {
"file": "../../tests/t00010/t00010.cc", "column": 41,
"line": 7 "file": "t00010.cc",
"line": 7,
"translation_unit": "t00010.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -106,7 +111,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00010::A<T,std::string>", "display_name": "A<T,std::string>",
"id": "1861520693741915300", "id": "1861520693741915300",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -117,6 +122,12 @@ public:
"methods": [], "methods": [],
"name": "A", "name": "A",
"namespace": "clanguml::t00010", "namespace": "clanguml::t00010",
"source_location": {
"column": 41,
"file": "t00010.cc",
"line": 7,
"translation_unit": "t00010.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -135,7 +146,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00010::B<T>", "display_name": "B<T>",
"id": "2303611426082708583", "id": "2303611426082708583",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -148,8 +159,10 @@ public:
"is_static": false, "is_static": false,
"name": "astring", "name": "astring",
"source_location": { "source_location": {
"file": "../../tests/t00010/t00010.cc", "column": 23,
"line": 15 "file": "t00010.cc",
"line": 15,
"translation_unit": "t00010.cc"
}, },
"type": "A<T,std::string>" "type": "A<T,std::string>"
} }
@@ -158,8 +171,10 @@ public:
"name": "B", "name": "B",
"namespace": "clanguml::t00010", "namespace": "clanguml::t00010",
"source_location": { "source_location": {
"file": "../../tests/t00010/t00010.cc", "column": 29,
"line": 13 "file": "t00010.cc",
"line": 13,
"translation_unit": "t00010.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -173,7 +188,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00010::B<int>", "display_name": "B<int>",
"id": "1498376939480949099", "id": "1498376939480949099",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -184,6 +199,12 @@ public:
"methods": [], "methods": [],
"name": "B", "name": "B",
"namespace": "clanguml::t00010", "namespace": "clanguml::t00010",
"source_location": {
"column": 29,
"file": "t00010.cc",
"line": 13,
"translation_unit": "t00010.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -196,7 +217,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00010::C", "display_name": "C",
"id": "1880966578968892571", "id": "1880966578968892571",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -209,8 +230,10 @@ public:
"is_static": false, "is_static": false,
"name": "aintstring", "name": "aintstring",
"source_location": { "source_location": {
"file": "../../tests/t00010/t00010.cc", "column": 12,
"line": 20 "file": "t00010.cc",
"line": 20,
"translation_unit": "t00010.cc"
}, },
"type": "B<int>" "type": "B<int>"
} }
@@ -219,19 +242,17 @@ public:
"name": "C", "name": "C",
"namespace": "clanguml::t00010", "namespace": "clanguml::t00010",
"source_location": { "source_location": {
"file": "../../tests/t00010/t00010.cc", "column": 7,
"line": 18 "file": "t00010.cc",
"line": 18,
"translation_unit": "t00010.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00010_class", "name": "t00010_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="586px" preserveAspectRatio="none" style="width:193px;height:586px;" version="1.1" viewBox="0 0 193 586" width="193px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="586px" preserveAspectRatio="none" style="width:193px;height:586px;" version="1.1" viewBox="0 0 193 586" width="193px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f1ewiijfkugxng" width="300%" x="-1" y="-1"> <filter height="300%" id="f1i6sid1ymerh8" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,78 +9,82 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1ewiijfkugxng)" height="73.6094" id="C_0002222216618904514099" style="stroke: #A80036; stroke-width: 1.5;" width="86" x="49.5" y="502"/> <rect fill="#FEFECE" filter="url(#f1i6sid1ymerh8)" height="73.6094" id="C_0002222216618904514099" style="stroke: #A80036; stroke-width: 1.5;" width="86" x="49.5" y="502"/>
<ellipse cx="75.3" cy="518" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="75.3" cy="518" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M78.2688,523.6406 Q77.6906,523.9375 77.05,524.0781 Q76.4094,524.2344 75.7063,524.2344 Q73.2063,524.2344 71.8781,522.5938 Q70.5656,520.9375 70.5656,517.8125 Q70.5656,514.6875 71.8781,513.0313 Q73.2063,511.375 75.7063,511.375 Q76.4094,511.375 77.05,511.5313 Q77.7063,511.6875 78.2688,511.9844 L78.2688,514.7031 Q77.6438,514.125 77.05,513.8594 Q76.4563,513.5781 75.8313,513.5781 Q74.4875,513.5781 73.8,514.6563 Q73.1125,515.7188 73.1125,517.8125 Q73.1125,519.9063 73.8,520.9844 Q74.4875,522.0469 75.8313,522.0469 Q76.4563,522.0469 77.05,521.7813 Q77.6438,521.5 78.2688,520.9219 L78.2688,523.6406 Z "/> <path d="M78.2688,523.6406 Q77.6906,523.9375 77.05,524.0781 Q76.4094,524.2344 75.7063,524.2344 Q73.2063,524.2344 71.8781,522.5938 Q70.5656,520.9375 70.5656,517.8125 Q70.5656,514.6875 71.8781,513.0313 Q73.2063,511.375 75.7063,511.375 Q76.4094,511.375 77.05,511.5313 Q77.7063,511.6875 78.2688,511.9844 L78.2688,514.7031 Q77.6438,514.125 77.05,513.8594 Q76.4563,513.5781 75.8313,513.5781 Q74.4875,513.5781 73.8,514.6563 Q73.1125,515.7188 73.1125,517.8125 Q73.1125,519.9063 73.8,520.9844 Q74.4875,522.0469 75.8313,522.0469 Q76.4563,522.0469 77.05,521.7813 Q77.6438,521.5 78.2688,520.9219 L78.2688,523.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="91.7" y="522.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="91.7" y="522.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="20" x="118.5" y="499"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="20" x="118.5" y="499"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="18" x="119.5" y="511.1387">T,P</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="18" x="119.5" y="511.1387">T,P</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="50.5" x2="134.5" y1="534" y2="534"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="50.5" x2="134.5" y1="534" y2="534"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="50.5" x2="134.5" y1="542" y2="542"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L9" xlink:show="new" xlink:title="first" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L9" xlink:show="new" xlink:title="first" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="55.5" y="540"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="55.5" y="548"/>
<ellipse cx="60.5" cy="545" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="60.5" cy="553" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L9" xlink:show="new" xlink:title="first" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L9" xlink:show="new" xlink:title="first" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="69.5" y="548.2104">first : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="69.5" y="556.2104">first : T</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L10" xlink:show="new" xlink:title="second" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L10" xlink:show="new" xlink:title="second" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="55.5" y="552.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="55.5" y="560.8047"/>
<ellipse cx="60.5" cy="557.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="60.5" cy="565.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L10" xlink:show="new" xlink:title="second" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L10" xlink:show="new" xlink:title="second" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="60" x="69.5" y="561.0151">second : P</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="60" x="69.5" y="569.0151">second : P</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="50.5" x2="134.5" y1="567.6094" y2="567.6094"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1ewiijfkugxng)" height="48" id="C_0001861520693741915300" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="34" y="393"/> <rect fill="#FEFECE" filter="url(#f1i6sid1ymerh8)" height="48" id="C_0001861520693741915300" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="34" y="393"/>
<ellipse cx="49" cy="409" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="49" cy="409" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M51.9688,414.6406 Q51.3906,414.9375 50.75,415.0781 Q50.1094,415.2344 49.4063,415.2344 Q46.9063,415.2344 45.5781,413.5938 Q44.2656,411.9375 44.2656,408.8125 Q44.2656,405.6875 45.5781,404.0313 Q46.9063,402.375 49.4063,402.375 Q50.1094,402.375 50.75,402.5313 Q51.4063,402.6875 51.9688,402.9844 L51.9688,405.7031 Q51.3438,405.125 50.75,404.8594 Q50.1563,404.5781 49.5313,404.5781 Q48.1875,404.5781 47.5,405.6563 Q46.8125,406.7188 46.8125,408.8125 Q46.8125,410.9063 47.5,411.9844 Q48.1875,413.0469 49.5313,413.0469 Q50.1563,413.0469 50.75,412.7813 Q51.3438,412.5 51.9688,411.9219 L51.9688,414.6406 Z "/> <path d="M51.9688,414.6406 Q51.3906,414.9375 50.75,415.0781 Q50.1094,415.2344 49.4063,415.2344 Q46.9063,415.2344 45.5781,413.5938 Q44.2656,411.9375 44.2656,408.8125 Q44.2656,405.6875 45.5781,404.0313 Q46.9063,402.375 49.4063,402.375 Q50.1094,402.375 50.75,402.5313 Q51.4063,402.6875 51.9688,402.9844 L51.9688,405.7031 Q51.3438,405.125 50.75,404.8594 Q50.1563,404.5781 49.5313,404.5781 Q48.1875,404.5781 47.5,405.6563 Q46.8125,406.7188 46.8125,408.8125 Q46.8125,410.9063 47.5,411.9844 Q48.1875,413.0469 49.5313,413.0469 Q50.1563,413.0469 50.75,412.7813 Q51.3438,412.5 51.9688,411.9219 L51.9688,414.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="63" y="413.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="63" y="413.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="75" x="79" y="390"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="75" x="79" y="390"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="73" x="80" y="402.1387">T,std::string</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="73" x="80" y="402.1387">T,std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="35" x2="150" y1="425" y2="425"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="35" x2="150" y1="425" y2="425"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="35" x2="150" y1="433" y2="433"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="35" x2="150" y1="433" y2="433"/>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple"> </a>
<rect fill="#FEFECE" filter="url(#f1ewiijfkugxng)" height="60.8047" id="C_0002303611426082708583" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="6" y="255"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1i6sid1ymerh8)" height="60.8047" id="C_0002303611426082708583" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="6" y="255"/>
<ellipse cx="78.75" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="78.75" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M81.7188,276.6406 Q81.1406,276.9375 80.5,277.0781 Q79.8594,277.2344 79.1563,277.2344 Q76.6563,277.2344 75.3281,275.5938 Q74.0156,273.9375 74.0156,270.8125 Q74.0156,267.6875 75.3281,266.0313 Q76.6563,264.375 79.1563,264.375 Q79.8594,264.375 80.5,264.5313 Q81.1563,264.6875 81.7188,264.9844 L81.7188,267.7031 Q81.0938,267.125 80.5,266.8594 Q79.9063,266.5781 79.2813,266.5781 Q77.9375,266.5781 77.25,267.6563 Q76.5625,268.7188 76.5625,270.8125 Q76.5625,272.9063 77.25,273.9844 Q77.9375,275.0469 79.2813,275.0469 Q79.9063,275.0469 80.5,274.7813 Q81.0938,274.5 81.7188,273.9219 L81.7188,276.6406 Z "/> <path d="M81.7188,276.6406 Q81.1406,276.9375 80.5,277.0781 Q79.8594,277.2344 79.1563,277.2344 Q76.6563,277.2344 75.3281,275.5938 Q74.0156,273.9375 74.0156,270.8125 Q74.0156,267.6875 75.3281,266.0313 Q76.6563,264.375 79.1563,264.375 Q79.8594,264.375 80.5,264.5313 Q81.1563,264.6875 81.7188,264.9844 L81.7188,267.7031 Q81.0938,267.125 80.5,266.8594 Q79.9063,266.5781 79.2813,266.5781 Q77.9375,266.5781 77.25,267.6563 Q76.5625,268.7188 76.5625,270.8125 Q76.5625,272.9063 77.25,273.9844 Q77.9375,275.0469 79.2813,275.0469 Q79.9063,275.0469 80.5,274.7813 Q81.0938,274.5 81.7188,273.9219 L81.7188,276.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="99.25" y="275.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="99.25" y="275.1543">B</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="173" y="252"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="173" y="252"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="174" y="264.1387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="174" y="264.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="178" y1="287" y2="287"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="178" y1="287" y2="287"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="178" y1="295" y2="295"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="293"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="301"/>
<ellipse cx="17" cy="298" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="306" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="26" y="301.2104">astring : A&lt;T,std::string&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="26" y="309.2104">astring : A&lt;T,std::string&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="178" y1="307.8047" y2="307.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1ewiijfkugxng)" height="48" id="C_0001498376939480949099" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="62.5" y="146"/> <rect fill="#FEFECE" filter="url(#f1i6sid1ymerh8)" height="48" id="C_0001498376939480949099" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="62.5" y="146"/>
<ellipse cx="77.5" cy="162" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="77.5" cy="162" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M80.4688,167.6406 Q79.8906,167.9375 79.25,168.0781 Q78.6094,168.2344 77.9063,168.2344 Q75.4063,168.2344 74.0781,166.5938 Q72.7656,164.9375 72.7656,161.8125 Q72.7656,158.6875 74.0781,157.0313 Q75.4063,155.375 77.9063,155.375 Q78.6094,155.375 79.25,155.5313 Q79.9063,155.6875 80.4688,155.9844 L80.4688,158.7031 Q79.8438,158.125 79.25,157.8594 Q78.6563,157.5781 78.0313,157.5781 Q76.6875,157.5781 76,158.6563 Q75.3125,159.7188 75.3125,161.8125 Q75.3125,163.9063 76,164.9844 Q76.6875,166.0469 78.0313,166.0469 Q78.6563,166.0469 79.25,165.7813 Q79.8438,165.5 80.4688,164.9219 L80.4688,167.6406 Z "/> <path d="M80.4688,167.6406 Q79.8906,167.9375 79.25,168.0781 Q78.6094,168.2344 77.9063,168.2344 Q75.4063,168.2344 74.0781,166.5938 Q72.7656,164.9375 72.7656,161.8125 Q72.7656,158.6875 74.0781,157.0313 Q75.4063,155.375 77.9063,155.375 Q78.6094,155.375 79.25,155.5313 Q79.9063,155.6875 80.4688,155.9844 L80.4688,158.7031 Q79.8438,158.125 79.25,157.8594 Q78.6563,157.5781 78.0313,157.5781 Q76.6875,157.5781 76,158.6563 Q75.3125,159.7188 75.3125,161.8125 Q75.3125,163.9063 76,164.9844 Q76.6875,166.0469 78.0313,166.0469 Q78.6563,166.0469 79.25,165.7813 Q79.8438,165.5 80.4688,164.9219 L80.4688,167.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="91.5" y="166.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="91.5" y="166.1543">B</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="107.5" y="143"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="107.5" y="143"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="108.5" y="155.1387">int</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="108.5" y="155.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="63.5" x2="121.5" y1="178" y2="178"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="63.5" x2="121.5" y1="178" y2="178"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="63.5" x2="121.5" y1="186" y2="186"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="63.5" x2="121.5" y1="186" y2="186"/>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L18" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L18" xlink:show="new" xlink:title="C" xlink:type="simple"> </a>
<rect fill="#FEFECE" filter="url(#f1ewiijfkugxng)" height="60.8047" id="C_0001880966578968892571" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="26.5" y="8"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L18" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L18" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1i6sid1ymerh8)" height="60.8047" id="C_0001880966578968892571" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="26.5" y="8"/>
<ellipse cx="84.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="84.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M87.2188,29.6406 Q86.6406,29.9375 86,30.0781 Q85.3594,30.2344 84.6563,30.2344 Q82.1563,30.2344 80.8281,28.5938 Q79.5156,26.9375 79.5156,23.8125 Q79.5156,20.6875 80.8281,19.0313 Q82.1563,17.375 84.6563,17.375 Q85.3594,17.375 86,17.5313 Q86.6563,17.6875 87.2188,17.9844 L87.2188,20.7031 Q86.5938,20.125 86,19.8594 Q85.4063,19.5781 84.7813,19.5781 Q83.4375,19.5781 82.75,20.6563 Q82.0625,21.7188 82.0625,23.8125 Q82.0625,25.9063 82.75,26.9844 Q83.4375,28.0469 84.7813,28.0469 Q85.4063,28.0469 86,27.7813 Q86.5938,27.5 87.2188,26.9219 L87.2188,29.6406 Z "/> <path d="M87.2188,29.6406 Q86.6406,29.9375 86,30.0781 Q85.3594,30.2344 84.6563,30.2344 Q82.1563,30.2344 80.8281,28.5938 Q79.5156,26.9375 79.5156,23.8125 Q79.5156,20.6875 80.8281,19.0313 Q82.1563,17.375 84.6563,17.375 Q85.3594,17.375 86,17.5313 Q86.6563,17.6875 87.2188,17.9844 L87.2188,20.7031 Q86.5938,20.125 86,19.8594 Q85.4063,19.5781 84.7813,19.5781 Q83.4375,19.5781 82.75,20.6563 Q82.0625,21.7188 82.0625,23.8125 Q82.0625,25.9063 82.75,26.9844 Q83.4375,28.0469 84.7813,28.0469 Q85.4063,28.0469 86,27.7813 Q86.5938,27.5 87.2188,26.9219 L87.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="104.75" y="28.1543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="104.75" y="28.1543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="27.5" x2="157.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="27.5" x2="157.5" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="27.5" x2="157.5" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L20" xlink:show="new" xlink:title="aintstring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L20" xlink:show="new" xlink:title="aintstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="32.5" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="32.5" y="54"/>
<ellipse cx="37.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="37.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00010/t00010.cc#L20" xlink:show="new" xlink:title="aintstring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L20" xlink:show="new" xlink:title="aintstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="46.5" y="54.2104">aintstring : B&lt;int&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="46.5" y="62.2104">aintstring : B&lt;int&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="27.5" x2="157.5" y1="60.8047" y2="60.8047"/>
<path d="M92.5,441.14 C92.5,452.67 92.5,467.17 92.5,481.41 " fill="none" id="C_0001861520693741915300-&gt;C_0002222216618904514099" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M92.5,441.14 C92.5,452.67 92.5,467.17 92.5,481.41 " fill="none" id="C_0001861520693741915300-&gt;C_0002222216618904514099" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="99.5,481.71,92.5,501.71,85.5,481.71,99.5,481.71" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="99.5,481.71,92.5,501.71,85.5,481.71,99.5,481.71" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M92.5,329.5 C92.5,350.65 92.5,375.32 92.5,392.88 " fill="none" id="C_0002303611426082708583&lt;-C_0001861520693741915300" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M92.5,329.5 C92.5,350.65 92.5,375.32 92.5,392.88 " fill="none" id="C_0002303611426082708583&lt;-C_0001861520693741915300" style="stroke: #A80036; stroke-width: 1.0;"/>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,223 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 211.984375 625" style="max-width: 211.984px; background-color: white;" width="211.984375" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M105.9921875,466L105.9921875,470.1666666666667C105.9921875,474.3333333333333,105.9921875,482.6666666666667,105.9921875,491C105.9921875,499.3333333333333,105.9921875,507.6666666666667,105.9921875,511.8333333333333L105.9921875,516"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M105.9921875,341L105.9921875,346.6666666666667C105.9921875,352.3333333333333,105.9921875,363.6666666666667,105.9921875,375C105.9921875,386.3333333333333,105.9921875,397.6666666666667,105.9921875,403.3333333333333L105.9921875,409"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id3" d="M105.9921875,212L105.9921875,216.16666666666666C105.9921875,220.33333333333334,105.9921875,228.66666666666666,105.9921875,237C105.9921875,245.33333333333334,105.9921875,253.66666666666666,105.9921875,257.8333333333333L105.9921875,262"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M105.9921875,87L105.9921875,92.66666666666667C105.9921875,98.33333333333333,105.9921875,109.66666666666667,105.9921875,121C105.9921875,132.33333333333334,105.9921875,143.66666666666666,105.9921875,149.33333333333334L105.9921875,155"/>
</g>
<g class="edgeLabels">
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(105.9921875, 375)" class="edgeLabel">
<g transform="translate(-28.6875, -9)" class="label">
<foreignObject height="18" width="57.375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+astring</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(105.9921875, 121)" class="edgeLabel">
<g transform="translate(-37.1328125, -9)" class="label">
<foreignObject height="18" width="74.265625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+aintstring</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(105.9921875, 566.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L7">
<g title="A" id="classId-C_0002222216618904514099-0" class="node default clickable">
<rect height="101" width="99.953125" y="-50.5" x="-49.9765625" class="outer title-state"/>
<line y2="-20.5" y1="-20.5" x2="49.9765625" x1="-49.9765625" class="divider"/>
<line y2="39.5" y1="39.5" x2="49.9765625" x1="-49.9765625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -26.6796875, -43)" height="18" width="53.359375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;T,P&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -42.4765625, -9)" height="18" width="57.9375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+first : T</span>
</div>
</foreignObject>
<foreignObject transform="translate( -42.4765625, 13)" height="18" width="84.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+second : P</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(105.9921875, 437.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L7">
<g title="A" id="classId-C_0001861520693741915300-1" class="node default clickable">
<rect height="57" width="136.796875" y="-28.5" x="-68.3984375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="68.3984375" x1="-68.3984375" class="divider"/>
<line y2="17.5" y1="17.5" x2="68.3984375" x1="-68.3984375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -60.8984375, -21)" height="18" width="121.796875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;T,std::string&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(105.9921875, 301.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L13">
<g title="B" id="classId-C_0002303611426082708583-2" class="node default clickable">
<rect height="79" width="195.984375" y="-39.5" x="-97.9921875" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="97.9921875" x1="-97.9921875" class="divider"/>
<line y2="28.5" y1="28.5" x2="97.9921875" x1="-97.9921875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -20.0078125, -32)" height="18" width="40.015625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B&lt;T&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -90.4921875, 2)" height="18" width="180.984375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+astring : A&lt;T,std::string&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(105.9921875, 183.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L13">
<g title="B" id="classId-C_0001498376939480949099-3" class="node default clickable">
<rect height="57" width="64.796875" y="-28.5" x="-32.3984375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="32.3984375" x1="-32.3984375" class="divider"/>
<line y2="17.5" y1="17.5" x2="32.3984375" x1="-32.3984375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -24.8984375, -21)" height="18" width="49.796875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B&lt;int&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(105.9921875, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00010/t00010.cc#L18">
<g title="C" id="classId-C_0001880966578968892571-4" class="node default clickable">
<rect height="79" width="148.859375" y="-39.5" x="-74.4296875" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="74.4296875" x1="-74.4296875" class="divider"/>
<line y2="28.5" y1="28.5" x2="74.4296875" x1="-74.4296875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -32)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">C</span>
</div>
</foreignObject>
<foreignObject transform="translate( -66.9296875, 2)" height="18" width="133.859375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+aintstring : B&lt;int&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,22 +1,19 @@
# t00011 - Friend relationships # t00011 - Friend relationships
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00011_class: t00011_class:
type: class type: class
glob: glob:
- ../../tests/t00011/t00011.cc - t00011.cc
using_namespace: using_namespace: clanguml::t00011
- clanguml::t00011
include: include:
namespaces: namespaces:
- clanguml::t00011 - clanguml::t00011
``` ```
## Source code ## Source code
File t00011.cc File `tests/t00011/t00011.cc`
```cpp ```cpp
namespace external { namespace external {
class C { }; class C { };
@@ -52,8 +49,10 @@ public:
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00011_class](./t00011_class.svg "Friend relationships") ![t00011_class](./t00011_class.svg "Friend relationships")
## Generated Mermaid diagrams
![t00011_class](./t00011_class_mermaid.svg "Friend relationships")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -61,7 +60,7 @@ public:
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00011::D<T>", "display_name": "D<T>",
"id": "1150639902748052276", "id": "1150639902748052276",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -74,8 +73,10 @@ public:
"is_static": false, "is_static": false,
"name": "value", "name": "value",
"source_location": { "source_location": {
"file": "../../tests/t00011/t00011.cc", "column": 7,
"line": 11 "file": "t00011.cc",
"line": 11,
"translation_unit": "t00011.cc"
}, },
"type": "T" "type": "T"
} }
@@ -84,8 +85,10 @@ public:
"name": "D", "name": "D",
"namespace": "clanguml::t00011", "namespace": "clanguml::t00011",
"source_location": { "source_location": {
"file": "../../tests/t00011/t00011.cc", "column": 29,
"line": 10 "file": "t00011.cc",
"line": 10,
"translation_unit": "t00011.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -99,7 +102,7 @@ public:
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00011::A", "display_name": "A",
"id": "1420516952857803719", "id": "1420516952857803719",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -111,28 +114,44 @@ public:
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "foo", "name": "foo",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00011.cc",
"line": 16,
"translation_unit": "t00011.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "A", "name": "A",
"namespace": "clanguml::t00011", "namespace": "clanguml::t00011",
"source_location": { "source_location": {
"file": "../../tests/t00011/t00011.cc", "column": 7,
"line": 14 "file": "t00011.cc",
"line": 14,
"translation_unit": "t00011.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00011::B", "display_name": "B",
"id": "1687427603952049829", "id": "1687427603952049829",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -145,42 +164,56 @@ public:
"is_static": false, "is_static": false,
"name": "m_a", "name": "m_a",
"source_location": { "source_location": {
"file": "../../tests/t00011/t00011.cc", "column": 8,
"line": 29 "file": "t00011.cc",
"line": 29,
"translation_unit": "t00011.cc"
}, },
"type": "clanguml::t00011::A *" "type": "A *"
} }
], ],
"methods": [ "methods": [
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "foo", "name": "foo",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00011.cc",
"line": 28,
"translation_unit": "t00011.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "B", "name": "B",
"namespace": "clanguml::t00011", "namespace": "clanguml::t00011",
"source_location": { "source_location": {
"file": "../../tests/t00011/t00011.cc", "column": 7,
"line": 26 "file": "t00011.cc",
"line": 26,
"translation_unit": "t00011.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00011_class", "name": "t00011_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="230px" preserveAspectRatio="none" style="width:226px;height:230px;" version="1.1" viewBox="0 0 226 230" width="226px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="230px" preserveAspectRatio="none" style="width:226px;height:230px;" version="1.1" viewBox="0 0 226 230" width="226px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f1wdidovi6z01e" width="300%" x="-1" y="-1"> <filter height="300%" id="f110hn68drh5b1" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,50 +9,60 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L10" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L10" xlink:show="new" xlink:title="D" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L10" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L10" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1wdidovi6z01e)" height="60.8047" id="C_0001150639902748052276" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="6" y="8"/> <rect fill="#FEFECE" filter="url(#f110hn68drh5b1)" height="60.8047" id="C_0001150639902748052276" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="6" y="8"/>
<ellipse cx="31.35" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="31.35" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M34.3188,29.6406 Q33.7406,29.9375 33.1,30.0781 Q32.4594,30.2344 31.7563,30.2344 Q29.2563,30.2344 27.9281,28.5938 Q26.6156,26.9375 26.6156,23.8125 Q26.6156,20.6875 27.9281,19.0313 Q29.2563,17.375 31.7563,17.375 Q32.4594,17.375 33.1,17.5313 Q33.7563,17.6875 34.3188,17.9844 L34.3188,20.7031 Q33.6938,20.125 33.1,19.8594 Q32.5063,19.5781 31.8813,19.5781 Q30.5375,19.5781 29.85,20.6563 Q29.1625,21.7188 29.1625,23.8125 Q29.1625,25.9063 29.85,26.9844 Q30.5375,28.0469 31.8813,28.0469 Q32.5063,28.0469 33.1,27.7813 Q33.6938,27.5 34.3188,26.9219 L34.3188,29.6406 Z "/> <path d="M34.3188,29.6406 Q33.7406,29.9375 33.1,30.0781 Q32.4594,30.2344 31.7563,30.2344 Q29.2563,30.2344 27.9281,28.5938 Q26.6156,26.9375 26.6156,23.8125 Q26.6156,20.6875 27.9281,19.0313 Q29.2563,17.375 31.7563,17.375 Q32.4594,17.375 33.1,17.5313 Q33.7563,17.6875 34.3188,17.9844 L34.3188,20.7031 Q33.6938,20.125 33.1,19.8594 Q32.5063,19.5781 31.8813,19.5781 Q30.5375,19.5781 29.85,20.6563 Q29.1625,21.7188 29.1625,23.8125 Q29.1625,25.9063 29.85,26.9844 Q30.5375,28.0469 31.8813,28.0469 Q32.5063,28.0469 33.1,27.7813 Q33.6938,27.5 34.3188,26.9219 L34.3188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="47.65" y="28.1543">D</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="47.65" y="28.1543">D</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="75" y="5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="75" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="76" y="17.1387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="76" y="17.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="80" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="80" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="80" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="54"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="48"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="56"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="26" y="54.2104">value : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="26" y="62.2104">value : T</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="80" y1="60.8047" y2="60.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#f110hn68drh5b1)" height="60.8047" id="C_0001420516952857803719" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="116" y="8"/>
<rect fill="#FEFECE" filter="url(#f1wdidovi6z01e)" height="60.8047" id="C_0001420516952857803719" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="116" y="8"/>
<ellipse cx="152.15" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="152.15" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M155.1188,29.6406 Q154.5406,29.9375 153.9,30.0781 Q153.2594,30.2344 152.5563,30.2344 Q150.0563,30.2344 148.7281,28.5938 Q147.4156,26.9375 147.4156,23.8125 Q147.4156,20.6875 148.7281,19.0313 Q150.0563,17.375 152.5563,17.375 Q153.2594,17.375 153.9,17.5313 Q154.5563,17.6875 155.1188,17.9844 L155.1188,20.7031 Q154.4938,20.125 153.9,19.8594 Q153.3063,19.5781 152.6813,19.5781 Q151.3375,19.5781 150.65,20.6563 Q149.9625,21.7188 149.9625,23.8125 Q149.9625,25.9063 150.65,26.9844 Q151.3375,28.0469 152.6813,28.0469 Q153.3063,28.0469 153.9,27.7813 Q154.4938,27.5 155.1188,26.9219 L155.1188,29.6406 Z "/> <path d="M155.1188,29.6406 Q154.5406,29.9375 153.9,30.0781 Q153.2594,30.2344 152.5563,30.2344 Q150.0563,30.2344 148.7281,28.5938 Q147.4156,26.9375 147.4156,23.8125 Q147.4156,20.6875 148.7281,19.0313 Q150.0563,17.375 152.5563,17.375 Q153.2594,17.375 153.9,17.5313 Q154.5563,17.6875 155.1188,17.9844 L155.1188,20.7031 Q154.4938,20.125 153.9,19.8594 Q153.3063,19.5781 152.6813,19.5781 Q151.3375,19.5781 150.65,20.6563 Q149.9625,21.7188 149.9625,23.8125 Q149.9625,25.9063 150.65,26.9844 Q151.3375,28.0469 152.6813,28.0469 Q153.3063,28.0469 153.9,27.7813 Q154.4938,27.5 155.1188,26.9219 L155.1188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="170.85" y="28.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="170.85" y="28.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="48" y2="48"/>
<ellipse cx="127" cy="59" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="62.2104">foo() : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L26" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L26" xlink:show="new" xlink:title="B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L16" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L16" xlink:show="new" xlink:title="foo" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1wdidovi6z01e)" height="73.6094" id="C_0001687427603952049829" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="116" y="146"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122" y="46"/>
<ellipse cx="127" cy="51" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L16" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L16" xlink:show="new" xlink:title="foo" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="54.2104">foo() : void</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="60.8047" y2="60.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L26" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L26" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f110hn68drh5b1)" height="73.6094" id="C_0001687427603952049829" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="116" y="146"/>
<ellipse cx="152.15" cy="162" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="152.15" cy="162" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M155.1188,167.6406 Q154.5406,167.9375 153.9,168.0781 Q153.2594,168.2344 152.5563,168.2344 Q150.0563,168.2344 148.7281,166.5938 Q147.4156,164.9375 147.4156,161.8125 Q147.4156,158.6875 148.7281,157.0313 Q150.0563,155.375 152.5563,155.375 Q153.2594,155.375 153.9,155.5313 Q154.5563,155.6875 155.1188,155.9844 L155.1188,158.7031 Q154.4938,158.125 153.9,157.8594 Q153.3063,157.5781 152.6813,157.5781 Q151.3375,157.5781 150.65,158.6563 Q149.9625,159.7188 149.9625,161.8125 Q149.9625,163.9063 150.65,164.9844 Q151.3375,166.0469 152.6813,166.0469 Q153.3063,166.0469 153.9,165.7813 Q154.4938,165.5 155.1188,164.9219 L155.1188,167.6406 Z "/> <path d="M155.1188,167.6406 Q154.5406,167.9375 153.9,168.0781 Q153.2594,168.2344 152.5563,168.2344 Q150.0563,168.2344 148.7281,166.5938 Q147.4156,164.9375 147.4156,161.8125 Q147.4156,158.6875 148.7281,157.0313 Q150.0563,155.375 152.5563,155.375 Q153.2594,155.375 153.9,155.5313 Q154.5563,155.6875 155.1188,155.9844 L155.1188,158.7031 Q154.4938,158.125 153.9,157.8594 Q153.3063,157.5781 152.6813,157.5781 Q151.3375,157.5781 150.65,158.6563 Q149.9625,159.7188 149.9625,161.8125 Q149.9625,163.9063 150.65,164.9844 Q151.3375,166.0469 152.6813,166.0469 Q153.3063,166.0469 153.9,165.7813 Q154.4938,165.5 155.1188,164.9219 L155.1188,167.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="170.85" y="166.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="170.85" y="166.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="178" y2="178"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="178" y2="178"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L29" xlink:show="new" xlink:title="m_a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L28" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L28" xlink:show="new" xlink:title="foo" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122" y="184"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122" y="184"/>
<ellipse cx="127" cy="189" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="127" cy="189" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00011/t00011.cc#L29" xlink:show="new" xlink:title="m_a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L28" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L28" xlink:show="new" xlink:title="foo" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="136" y="192.2104">m_a : A *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="192.2104">foo() : void</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="198.8047" y2="198.8047"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="198.8047" y2="198.8047"/>
<ellipse cx="127" cy="209.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L29" xlink:show="new" xlink:title="m_a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="213.0151">foo() : void</text> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122" y="204.8047"/>
<ellipse cx="127" cy="209.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L29" xlink:show="new" xlink:title="m_a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="136" y="213.0151">m_a : A *</text>
</a>
<path d="M116.04,73.01 C105.09,85.59 97.85,100.6 103.5,116 C107.44,126.72 113.97,136.89 121.21,145.9 " fill="none" id="C_0001420516952857803719&lt;-C_0001687427603952049829" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M116.04,73.01 C105.09,85.59 97.85,100.6 103.5,116 C107.44,126.72 113.97,136.89 121.21,145.9 " fill="none" id="C_0001420516952857803719&lt;-C_0001687427603952049829" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="119.54,69.18,110.5057,73.102,116.1575,72.8622,116.3973,78.514,119.54,69.18" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="119.54,69.18,110.5057,73.102,116.1575,72.8622,116.3973,78.514,119.54,69.18" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="109.5" cy="108.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="109.5" cy="108.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,161 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 252.29296875 264" style="max-width: 252.293px; background-color: white;" width="252.29296875" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-start="url(#classDiagram-dependencyStart)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M170.73551764455783,87L168.0614990787982,92.66666666666667C165.38748051303855,98.33333333333333,160.03944338151928,109.66666666666667,159.69134629011862,121C159.34324919871793,132.33333333333334,163.99509214743588,143.66666666666666,166.32101362179486,149.33333333333334L168.64693509615384,155"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M210.10306490384616,155L212.4289863782051,149.33333333333334C214.75490785256412,143.66666666666666,219.40675080128207,132.33333333333334,219.05865370988138,121C218.71055661848072,109.66666666666667,213.36251948696145,98.33333333333333,210.6885009212018,92.66666666666667L208.01448235544217,87"/>
</g>
<g class="edgeLabels">
<g transform="translate(154.69140625, 121)" class="edgeLabel">
<g transform="translate(-29.1328125, -9)" class="label">
<foreignObject height="18" width="58.265625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+[friend]</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(224.05859375, 121)" class="edgeLabel">
<g transform="translate(-20.234375, -9)" class="label">
<foreignObject height="18" width="40.46875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+m_a</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(48.703125, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L10">
<g title="D" id="classId-C_0001150639902748052276-0" class="node default clickable">
<rect height="79" width="81.40625" y="-39.5" x="-40.703125" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="40.703125" x1="-40.703125" class="divider"/>
<line y2="28.5" y1="28.5" x2="40.703125" x1="-40.703125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -20.0078125, -32)" height="18" width="40.015625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">D&lt;T&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -33.203125, 2)" height="18" width="66.40625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-value : T</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(189.375, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L14">
<g title="A" id="classId-C_0001420516952857803719-1" class="node default clickable">
<rect height="79" width="99.9375" y="-39.5" x="-49.96875" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="49.96875" x1="-49.96875" class="divider"/>
<line y2="6.5" y1="6.5" x2="49.96875" x1="-49.96875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -32)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A</span>
</div>
</foreignObject>
<foreignObject transform="translate( -42.46875, 14)" height="18" width="84.9375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo() : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(189.375, 205.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00011/t00011.cc#L26">
<g title="B" id="classId-C_0001687427603952049829-2" class="node default clickable">
<rect height="101" width="99.9375" y="-50.5" x="-49.96875" class="outer title-state"/>
<line y2="-20.5" y1="-20.5" x2="49.96875" x1="-49.96875" class="divider"/>
<line y2="17.5" y1="17.5" x2="49.96875" x1="-49.96875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -43)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B</span>
</div>
</foreignObject>
<foreignObject transform="translate( -42.46875, -9)" height="18" width="63.890625">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+m_a : A </span>
</div>
</foreignObject>
<foreignObject transform="translate( -42.46875, 25)" height="18" width="84.9375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+foo() : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,15 +1,12 @@
# t00012 - Advanced template instantiations # t00012 - Advanced template instantiations
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00012_class: t00012_class:
type: class type: class
glob: glob:
- ../../tests/t00012/t00012.cc - t00012.cc
using_namespace: using_namespace: clanguml::t00012
- clanguml::t00012
include: include:
namespaces: namespaces:
- clanguml::t00012 - clanguml::t00012
@@ -19,7 +16,7 @@ diagrams:
``` ```
## Source code ## Source code
File t00012.cc File `tests/t00012/t00012.cc`
```cpp ```cpp
#include <algorithm> #include <algorithm>
#include <array> #include <array>
@@ -59,8 +56,10 @@ class R {
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00012_class](./t00012_class.svg "Advanced template instantiations") ![t00012_class](./t00012_class.svg "Advanced template instantiations")
## Generated Mermaid diagrams
![t00012_class](./t00012_class_mermaid.svg "Advanced template instantiations")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -68,7 +67,7 @@ class R {
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::A<T,Ts...>", "display_name": "A<T,Ts...>",
"id": "1773299890023132282", "id": "1773299890023132282",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -81,8 +80,10 @@ class R {
"is_static": false, "is_static": false,
"name": "value", "name": "value",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 7,
"line": 12 "file": "t00012.cc",
"line": 12,
"translation_unit": "t00012.cc"
}, },
"type": "T" "type": "T"
}, },
@@ -91,8 +92,10 @@ class R {
"is_static": false, "is_static": false,
"name": "values", "name": "values",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 25,
"line": 13 "file": "t00012.cc",
"line": 13,
"translation_unit": "t00012.cc"
}, },
"type": "std::variant<Ts...>" "type": "std::variant<Ts...>"
} }
@@ -101,8 +104,10 @@ class R {
"name": "A", "name": "A",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 45,
"line": 11 "file": "t00012.cc",
"line": 11,
"translation_unit": "t00012.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -122,7 +127,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::B<int... Is>", "display_name": "B<int... Is>",
"id": "2061171077567279746", "id": "2061171077567279746",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -135,8 +140,10 @@ class R {
"is_static": false, "is_static": false,
"name": "ints", "name": "ints",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 36,
"line": 17 "file": "t00012.cc",
"line": 17,
"translation_unit": "t00012.cc"
}, },
"type": "std::array<int,sizeof...(Is)>" "type": "std::array<int,sizeof...(Is)>"
} }
@@ -145,8 +152,10 @@ class R {
"name": "B", "name": "B",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 28,
"line": 16 "file": "t00012.cc",
"line": 16,
"translation_unit": "t00012.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -161,7 +170,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::C<T,int... Is>", "display_name": "C<T,int... Is>",
"id": "627809578407650629", "id": "627809578407650629",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -174,8 +183,10 @@ class R {
"is_static": false, "is_static": false,
"name": "ints", "name": "ints",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 34,
"line": 21 "file": "t00012.cc",
"line": 21,
"translation_unit": "t00012.cc"
}, },
"type": "std::array<T,sizeof...(Is)>" "type": "std::array<T,sizeof...(Is)>"
} }
@@ -184,8 +195,10 @@ class R {
"name": "C", "name": "C",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 40,
"line": 20 "file": "t00012.cc",
"line": 20,
"translation_unit": "t00012.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -206,7 +219,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::A<int,std::string,float>", "display_name": "A<int,std::string,float>",
"id": "286972398942005457", "id": "286972398942005457",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -217,6 +230,12 @@ class R {
"methods": [], "methods": [],
"name": "A", "name": "A",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": {
"column": 45,
"file": "t00012.cc",
"line": 11,
"translation_unit": "t00012.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -241,7 +260,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::A<int,std::string,bool>", "display_name": "A<int,std::string,bool>",
"id": "299466181098300963", "id": "299466181098300963",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -252,6 +271,12 @@ class R {
"methods": [], "methods": [],
"name": "A", "name": "A",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": {
"column": 45,
"file": "t00012.cc",
"line": 11,
"translation_unit": "t00012.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -276,7 +301,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::B<3,2,1>", "display_name": "B<3,2,1>",
"id": "489063277971613593", "id": "489063277971613593",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -287,6 +312,12 @@ class R {
"methods": [], "methods": [],
"name": "B", "name": "B",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": {
"column": 28,
"file": "t00012.cc",
"line": 16,
"translation_unit": "t00012.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -311,7 +342,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::B<1,1,1,1>", "display_name": "B<1,1,1,1>",
"id": "14232362483200599", "id": "14232362483200599",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -322,6 +353,12 @@ class R {
"methods": [], "methods": [],
"name": "B", "name": "B",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": {
"column": 28,
"file": "t00012.cc",
"line": 16,
"translation_unit": "t00012.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -352,7 +389,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3>", "display_name": "C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3>",
"id": "1478239414632239754", "id": "1478239414632239754",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -363,6 +400,12 @@ class R {
"methods": [], "methods": [],
"name": "C", "name": "C",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": {
"column": 40,
"file": "t00012.cc",
"line": 20,
"translation_unit": "t00012.cc"
},
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
@@ -427,7 +470,7 @@ class R {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00012::R", "display_name": "R",
"id": "559263385732885469", "id": "559263385732885469",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -440,8 +483,10 @@ class R {
"is_static": false, "is_static": false,
"name": "a1", "name": "a1",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 32,
"line": 25 "file": "t00012.cc",
"line": 25,
"translation_unit": "t00012.cc"
}, },
"type": "A<int,std::string,float>" "type": "A<int,std::string,float>"
}, },
@@ -450,8 +495,10 @@ class R {
"is_static": false, "is_static": false,
"name": "a2", "name": "a2",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 31,
"line": 26 "file": "t00012.cc",
"line": 26,
"translation_unit": "t00012.cc"
}, },
"type": "A<int,std::string,bool>" "type": "A<int,std::string,bool>"
}, },
@@ -460,8 +507,10 @@ class R {
"is_static": false, "is_static": false,
"name": "b1", "name": "b1",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 16,
"line": 28 "file": "t00012.cc",
"line": 28,
"translation_unit": "t00012.cc"
}, },
"type": "B<3,2,1>" "type": "B<3,2,1>"
}, },
@@ -470,8 +519,10 @@ class R {
"is_static": false, "is_static": false,
"name": "b2", "name": "b2",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 19,
"line": 29 "file": "t00012.cc",
"line": 29,
"translation_unit": "t00012.cc"
}, },
"type": "B<1,1,1,1>" "type": "B<1,1,1,1>"
}, },
@@ -480,8 +531,10 @@ class R {
"is_static": false, "is_static": false,
"name": "c1", "name": "c1",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 9,
"line": 33 "file": "t00012.cc",
"line": 33,
"translation_unit": "t00012.cc"
}, },
"type": "C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3>" "type": "C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3>"
} }
@@ -490,19 +543,17 @@ class R {
"name": "R", "name": "R",
"namespace": "clanguml::t00012", "namespace": "clanguml::t00012",
"source_location": { "source_location": {
"file": "../../tests/t00012/t00012.cc", "column": 7,
"line": 24 "file": "t00012.cc",
"line": 24,
"translation_unit": "t00012.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00012_class", "name": "t00012_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="390px" preserveAspectRatio="none" style="width:1362px;height:390px;" version="1.1" viewBox="0 0 1362 390" width="1362px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="390px" preserveAspectRatio="none" style="width:1362px;height:390px;" version="1.1" viewBox="0 0 1362 390" width="1362px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f1pf8zvzryw5dp" width="300%" x="-1" y="-1"> <filter height="300%" id="f112ce93dg7o3j" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,32 +9,32 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="73.6094" id="C_0001773299890023132282" style="stroke: #A80036; stroke-width: 1.5;" width="184" x="822" y="306"/> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="73.6094" id="C_0001773299890023132282" style="stroke: #A80036; stroke-width: 1.5;" width="184" x="822" y="306"/>
<ellipse cx="885.75" cy="322" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="885.75" cy="322" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M888.7188,327.6406 Q888.1406,327.9375 887.5,328.0781 Q886.8594,328.2344 886.1563,328.2344 Q883.6563,328.2344 882.3281,326.5938 Q881.0156,324.9375 881.0156,321.8125 Q881.0156,318.6875 882.3281,317.0313 Q883.6563,315.375 886.1563,315.375 Q886.8594,315.375 887.5,315.5313 Q888.1563,315.6875 888.7188,315.9844 L888.7188,318.7031 Q888.0938,318.125 887.5,317.8594 Q886.9063,317.5781 886.2813,317.5781 Q884.9375,317.5781 884.25,318.6563 Q883.5625,319.7188 883.5625,321.8125 Q883.5625,323.9063 884.25,324.9844 Q884.9375,326.0469 886.2813,326.0469 Q886.9063,326.0469 887.5,325.7813 Q888.0938,325.5 888.7188,324.9219 L888.7188,327.6406 Z "/> <path d="M888.7188,327.6406 Q888.1406,327.9375 887.5,328.0781 Q886.8594,328.2344 886.1563,328.2344 Q883.6563,328.2344 882.3281,326.5938 Q881.0156,324.9375 881.0156,321.8125 Q881.0156,318.6875 882.3281,317.0313 Q883.6563,315.375 886.1563,315.375 Q886.8594,315.375 887.5,315.5313 Q888.1563,315.6875 888.7188,315.9844 L888.7188,318.7031 Q888.0938,318.125 887.5,317.8594 Q886.9063,317.5781 886.2813,317.5781 Q884.9375,317.5781 884.25,318.6563 Q883.5625,319.7188 883.5625,321.8125 Q883.5625,323.9063 884.25,324.9844 Q884.9375,326.0469 886.2813,326.0469 Q886.9063,326.0469 887.5,325.7813 Q888.0938,325.5 888.7188,324.9219 L888.7188,327.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="906.25" y="326.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="906.25" y="326.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="38" x="971" y="303"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="38" x="971" y="303"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="36" x="972" y="315.1387">T,Ts...</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="36" x="972" y="315.1387">T,Ts...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="823" x2="1005" y1="338" y2="338"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="823" x2="1005" y1="338" y2="338"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="823" x2="1005" y1="346" y2="346"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="828" y="344"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="828" y="352"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="346"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="354"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="842" y="352.2104">value : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="842" y="360.2104">value : T</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L13" xlink:show="new" xlink:title="values" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L13" xlink:show="new" xlink:title="values" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="828" y="356.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="828" y="364.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="358.8047"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="366.8047"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L13" xlink:show="new" xlink:title="values" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L13" xlink:show="new" xlink:title="values" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="842" y="365.0151">values : std::variant&lt;Ts...&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="842" y="373.0151">values : std::variant&lt;Ts...&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="823" x2="1005" y1="371.6094" y2="371.6094"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="60.8047" id="C_0002061171077567279746" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="1134" y="312.5"/>
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="60.8047" id="C_0002061171077567279746" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="1134" y="312.5"/>
<ellipse cx="1209.75" cy="328.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="1209.75" cy="328.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1212.7188,334.1406 Q1212.1406,334.4375 1211.5,334.5781 Q1210.8594,334.7344 1210.1563,334.7344 Q1207.6563,334.7344 1206.3281,333.0938 Q1205.0156,331.4375 1205.0156,328.3125 Q1205.0156,325.1875 1206.3281,323.5313 Q1207.6563,321.875 1210.1563,321.875 Q1210.8594,321.875 1211.5,322.0313 Q1212.1563,322.1875 1212.7188,322.4844 L1212.7188,325.2031 Q1212.0938,324.625 1211.5,324.3594 Q1210.9063,324.0781 1210.2813,324.0781 Q1208.9375,324.0781 1208.25,325.1563 Q1207.5625,326.2188 1207.5625,328.3125 Q1207.5625,330.4063 1208.25,331.4844 Q1208.9375,332.5469 1210.2813,332.5469 Q1210.9063,332.5469 1211.5,332.2813 Q1212.0938,332 1212.7188,331.4219 L1212.7188,334.1406 Z "/> <path d="M1212.7188,334.1406 Q1212.1406,334.4375 1211.5,334.5781 Q1210.8594,334.7344 1210.1563,334.7344 Q1207.6563,334.7344 1206.3281,333.0938 Q1205.0156,331.4375 1205.0156,328.3125 Q1205.0156,325.1875 1206.3281,323.5313 Q1207.6563,321.875 1210.1563,321.875 Q1210.8594,321.875 1211.5,322.0313 Q1212.1563,322.1875 1212.7188,322.4844 L1212.7188,325.2031 Q1212.0938,324.625 1211.5,324.3594 Q1210.9063,324.0781 1210.2813,324.0781 Q1208.9375,324.0781 1208.25,325.1563 Q1207.5625,326.2188 1207.5625,328.3125 Q1207.5625,330.4063 1208.25,331.4844 Q1208.9375,332.5469 1210.2813,332.5469 Q1210.9063,332.5469 1211.5,332.2813 Q1212.0938,332 1212.7188,331.4219 L1212.7188,334.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1230.25" y="332.6543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1230.25" y="332.6543">B</text>
@@ -43,15 +43,15 @@
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1135" x2="1347" y1="344.5" y2="344.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1135" x2="1347" y1="344.5" y2="344.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1135" x2="1347" y1="352.5" y2="352.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1135" x2="1347" y1="352.5" y2="352.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="1140" y="358.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="1140" y="358.5"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1142" y="360.5"/> <rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1142" y="360.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="188" x="1154" y="366.7104">ints : std::array&lt;int,sizeof...(Is)&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="188" x="1154" y="366.7104">ints : std::array&lt;int,sizeof...(Is)&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="60.8047" id="C_0000627809578407650629" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="149.5" y="312.5"/> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="60.8047" id="C_0000627809578407650629" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="149.5" y="312.5"/>
<ellipse cx="216.25" cy="328.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="216.25" cy="328.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M219.2188,334.1406 Q218.6406,334.4375 218,334.5781 Q217.3594,334.7344 216.6563,334.7344 Q214.1563,334.7344 212.8281,333.0938 Q211.5156,331.4375 211.5156,328.3125 Q211.5156,325.1875 212.8281,323.5313 Q214.1563,321.875 216.6563,321.875 Q217.3594,321.875 218,322.0313 Q218.6563,322.1875 219.2188,322.4844 L219.2188,325.2031 Q218.5938,324.625 218,324.3594 Q217.4063,324.0781 216.7813,324.0781 Q215.4375,324.0781 214.75,325.1563 Q214.0625,326.2188 214.0625,328.3125 Q214.0625,330.4063 214.75,331.4844 Q215.4375,332.5469 216.7813,332.5469 Q217.4063,332.5469 218,332.2813 Q218.5938,332 219.2188,331.4219 L219.2188,334.1406 Z "/> <path d="M219.2188,334.1406 Q218.6406,334.4375 218,334.5781 Q217.3594,334.7344 216.6563,334.7344 Q214.1563,334.7344 212.8281,333.0938 Q211.5156,331.4375 211.5156,328.3125 Q211.5156,325.1875 212.8281,323.5313 Q214.1563,321.875 216.6563,321.875 Q217.3594,321.875 218,322.0313 Q218.6563,322.1875 219.2188,322.4844 L219.2188,325.2031 Q218.5938,324.625 218,324.3594 Q217.4063,324.0781 216.7813,324.0781 Q215.4375,324.0781 214.75,325.1563 Q214.0625,326.2188 214.0625,328.3125 Q214.0625,330.4063 214.75,331.4844 Q215.4375,332.5469 216.7813,332.5469 Q217.4063,332.5469 218,332.2813 Q218.5938,332 219.2188,331.4219 L219.2188,334.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="236.75" y="332.6543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="236.75" y="332.6543">C</text>
@@ -60,97 +60,107 @@
<line style="stroke: #A80036; stroke-width: 1.5;" x1="150.5" x2="355.5" y1="344.5" y2="344.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="150.5" x2="355.5" y1="344.5" y2="344.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="150.5" x2="355.5" y1="352.5" y2="352.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="150.5" x2="355.5" y1="352.5" y2="352.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="155.5" y="358.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="155.5" y="358.5"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="157.5" y="360.5"/> <rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="157.5" y="360.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="181" x="169.5" y="366.7104">ints : std::array&lt;T,sizeof...(Is)&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="181" x="169.5" y="366.7104">ints : std::array&lt;T,sizeof...(Is)&gt;</text>
</a> </a>
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="48" id="C_0000286972398942005457" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="758" y="197"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<ellipse cx="773" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="48" id="C_0000286972398942005457" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="758" y="197"/>
<path d="M775.9688,218.6406 Q775.3906,218.9375 774.75,219.0781 Q774.1094,219.2344 773.4063,219.2344 Q770.9063,219.2344 769.5781,217.5938 Q768.2656,215.9375 768.2656,212.8125 Q768.2656,209.6875 769.5781,208.0313 Q770.9063,206.375 773.4063,206.375 Q774.1094,206.375 774.75,206.5313 Q775.4063,206.6875 775.9688,206.9844 L775.9688,209.7031 Q775.3438,209.125 774.75,208.8594 Q774.1563,208.5781 773.5313,208.5781 Q772.1875,208.5781 771.5,209.6563 Q770.8125,210.7188 770.8125,212.8125 Q770.8125,214.9063 771.5,215.9844 Q772.1875,217.0469 773.5313,217.0469 Q774.1563,217.0469 774.75,216.7813 Q775.3438,216.5 775.9688,215.9219 L775.9688,218.6406 Z "/> <ellipse cx="773" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="787" y="217.1543">A</text> <path d="M775.9688,218.6406 Q775.3906,218.9375 774.75,219.0781 Q774.1094,219.2344 773.4063,219.2344 Q770.9063,219.2344 769.5781,217.5938 Q768.2656,215.9375 768.2656,212.8125 Q768.2656,209.6875 769.5781,208.0313 Q770.9063,206.375 773.4063,206.375 Q774.1094,206.375 774.75,206.5313 Q775.4063,206.6875 775.9688,206.9844 L775.9688,209.7031 Q775.3438,209.125 774.75,208.8594 Q774.1563,208.5781 773.5313,208.5781 Q772.1875,208.5781 771.5,209.6563 Q770.8125,210.7188 770.8125,212.8125 Q770.8125,214.9063 771.5,215.9844 Q772.1875,217.0469 773.5313,217.0469 Q774.1563,217.0469 774.75,216.7813 Q775.3438,216.5 775.9688,215.9219 L775.9688,218.6406 Z "/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="803" y="194"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="787" y="217.1543">A</text>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="114" x="804" y="206.1387">int,std::string,float</text> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="803" y="194"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="759" x2="915" y1="229" y2="229"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="114" x="804" y="206.1387">int,std::string,float</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="759" x2="915" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="759" x2="915" y1="229" y2="229"/>
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="48" id="C_0000299466181098300963" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="951.5" y="197"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="759" x2="915" y1="237" y2="237"/>
<ellipse cx="966.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<path d="M969.4688,218.6406 Q968.8906,218.9375 968.25,219.0781 Q967.6094,219.2344 966.9063,219.2344 Q964.4063,219.2344 963.0781,217.5938 Q961.7656,215.9375 961.7656,212.8125 Q961.7656,209.6875 963.0781,208.0313 Q964.4063,206.375 966.9063,206.375 Q967.6094,206.375 968.25,206.5313 Q968.9063,206.6875 969.4688,206.9844 L969.4688,209.7031 Q968.8438,209.125 968.25,208.8594 Q967.6563,208.5781 967.0313,208.5781 Q965.6875,208.5781 965,209.6563 Q964.3125,210.7188 964.3125,212.8125 Q964.3125,214.9063 965,215.9844 Q965.6875,217.0469 967.0313,217.0469 Q967.6563,217.0469 968.25,216.7813 Q968.8438,216.5 969.4688,215.9219 L969.4688,218.6406 Z "/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="980.5" y="217.1543">A</text> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="48" id="C_0000299466181098300963" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="951.5" y="197"/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="115" x="996.5" y="194"/> <ellipse cx="966.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="113" x="997.5" y="206.1387">int,std::string,bool</text> <path d="M969.4688,218.6406 Q968.8906,218.9375 968.25,219.0781 Q967.6094,219.2344 966.9063,219.2344 Q964.4063,219.2344 963.0781,217.5938 Q961.7656,215.9375 961.7656,212.8125 Q961.7656,209.6875 963.0781,208.0313 Q964.4063,206.375 966.9063,206.375 Q967.6094,206.375 968.25,206.5313 Q968.9063,206.6875 969.4688,206.9844 L969.4688,209.7031 Q968.8438,209.125 968.25,208.8594 Q967.6563,208.5781 967.0313,208.5781 Q965.6875,208.5781 965,209.6563 Q964.3125,210.7188 964.3125,212.8125 Q964.3125,214.9063 965,215.9844 Q965.6875,217.0469 967.0313,217.0469 Q967.6563,217.0469 968.25,216.7813 Q968.8438,216.5 969.4688,215.9219 L969.4688,218.6406 Z "/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952.5" x2="1107.5" y1="229" y2="229"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="980.5" y="217.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952.5" x2="1107.5" y1="237" y2="237"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="115" x="996.5" y="194"/>
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="48" id="C_0000489063277971613593" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="1144" y="197"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="113" x="997.5" y="206.1387">int,std::string,bool</text>
<ellipse cx="1159" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="952.5" x2="1107.5" y1="229" y2="229"/>
<path d="M1161.9688,218.6406 Q1161.3906,218.9375 1160.75,219.0781 Q1160.1094,219.2344 1159.4063,219.2344 Q1156.9063,219.2344 1155.5781,217.5938 Q1154.2656,215.9375 1154.2656,212.8125 Q1154.2656,209.6875 1155.5781,208.0313 Q1156.9063,206.375 1159.4063,206.375 Q1160.1094,206.375 1160.75,206.5313 Q1161.4063,206.6875 1161.9688,206.9844 L1161.9688,209.7031 Q1161.3438,209.125 1160.75,208.8594 Q1160.1563,208.5781 1159.5313,208.5781 Q1158.1875,208.5781 1157.5,209.6563 Q1156.8125,210.7188 1156.8125,212.8125 Q1156.8125,214.9063 1157.5,215.9844 Q1158.1875,217.0469 1159.5313,217.0469 Q1160.1563,217.0469 1160.75,216.7813 Q1161.3438,216.5 1161.9688,215.9219 L1161.9688,218.6406 Z "/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="952.5" x2="1107.5" y1="237" y2="237"/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1173" y="217.1543">B</text> </a>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="34" x="1189" y="194"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="32" x="1190" y="206.1387">3,2,1</text> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="48" id="C_0000489063277971613593" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="1144" y="197"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1145" x2="1219" y1="229" y2="229"/> <ellipse cx="1159" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1145" x2="1219" y1="237" y2="237"/> <path d="M1161.9688,218.6406 Q1161.3906,218.9375 1160.75,219.0781 Q1160.1094,219.2344 1159.4063,219.2344 Q1156.9063,219.2344 1155.5781,217.5938 Q1154.2656,215.9375 1154.2656,212.8125 Q1154.2656,209.6875 1155.5781,208.0313 Q1156.9063,206.375 1159.4063,206.375 Q1160.1094,206.375 1160.75,206.5313 Q1161.4063,206.6875 1161.9688,206.9844 L1161.9688,209.7031 Q1161.3438,209.125 1160.75,208.8594 Q1160.1563,208.5781 1159.5313,208.5781 Q1158.1875,208.5781 1157.5,209.6563 Q1156.8125,210.7188 1156.8125,212.8125 Q1156.8125,214.9063 1157.5,215.9844 Q1158.1875,217.0469 1159.5313,217.0469 Q1160.1563,217.0469 1160.75,216.7813 Q1161.3438,216.5 1161.9688,215.9219 L1161.9688,218.6406 Z "/>
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="48" id="C_0000014232362483200599" style="stroke: #A80036; stroke-width: 1.5;" width="88" x="1255" y="197"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1173" y="217.1543">B</text>
<ellipse cx="1270" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="34" x="1189" y="194"/>
<path d="M1272.9688,218.6406 Q1272.3906,218.9375 1271.75,219.0781 Q1271.1094,219.2344 1270.4063,219.2344 Q1267.9063,219.2344 1266.5781,217.5938 Q1265.2656,215.9375 1265.2656,212.8125 Q1265.2656,209.6875 1266.5781,208.0313 Q1267.9063,206.375 1270.4063,206.375 Q1271.1094,206.375 1271.75,206.5313 Q1272.4063,206.6875 1272.9688,206.9844 L1272.9688,209.7031 Q1272.3438,209.125 1271.75,208.8594 Q1271.1563,208.5781 1270.5313,208.5781 Q1269.1875,208.5781 1268.5,209.6563 Q1267.8125,210.7188 1267.8125,212.8125 Q1267.8125,214.9063 1268.5,215.9844 Q1269.1875,217.0469 1270.5313,217.0469 Q1271.1563,217.0469 1271.75,216.7813 Q1272.3438,216.5 1272.9688,215.9219 L1272.9688,218.6406 Z "/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="32" x="1190" y="206.1387">3,2,1</text>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1284" y="217.1543">B</text> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1145" x2="1219" y1="229" y2="229"/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="46" x="1300" y="194"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1145" x2="1219" y1="237" y2="237"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="44" x="1301" y="206.1387">1,1,1,1</text> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1256" x2="1342" y1="229" y2="229"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1256" x2="1342" y1="237" y2="237"/> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="48" id="C_0000014232362483200599" style="stroke: #A80036; stroke-width: 1.5;" width="88" x="1255" y="197"/>
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="48" id="C_0001478239414632239754" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="6" y="197"/> <ellipse cx="1270" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="21" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M1272.9688,218.6406 Q1272.3906,218.9375 1271.75,219.0781 Q1271.1094,219.2344 1270.4063,219.2344 Q1267.9063,219.2344 1266.5781,217.5938 Q1265.2656,215.9375 1265.2656,212.8125 Q1265.2656,209.6875 1266.5781,208.0313 Q1267.9063,206.375 1270.4063,206.375 Q1271.1094,206.375 1271.75,206.5313 Q1272.4063,206.6875 1272.9688,206.9844 L1272.9688,209.7031 Q1272.3438,209.125 1271.75,208.8594 Q1271.1563,208.5781 1270.5313,208.5781 Q1269.1875,208.5781 1268.5,209.6563 Q1267.8125,210.7188 1267.8125,212.8125 Q1267.8125,214.9063 1268.5,215.9844 Q1269.1875,217.0469 1270.5313,217.0469 Q1271.1563,217.0469 1271.75,216.7813 Q1272.3438,216.5 1272.9688,215.9219 L1272.9688,218.6406 Z "/>
<path d="M23.9688,218.6406 Q23.3906,218.9375 22.75,219.0781 Q22.1094,219.2344 21.4063,219.2344 Q18.9063,219.2344 17.5781,217.5938 Q16.2656,215.9375 16.2656,212.8125 Q16.2656,209.6875 17.5781,208.0313 Q18.9063,206.375 21.4063,206.375 Q22.1094,206.375 22.75,206.5313 Q23.4063,206.6875 23.9688,206.9844 L23.9688,209.7031 Q23.3438,209.125 22.75,208.8594 Q22.1563,208.5781 21.5313,208.5781 Q20.1875,208.5781 19.5,209.6563 Q18.8125,210.7188 18.8125,212.8125 Q18.8125,214.9063 19.5,215.9844 Q20.1875,217.0469 21.5313,217.0469 Q22.1563,217.0469 22.75,216.7813 Q23.3438,216.5 23.9688,215.9219 L23.9688,218.6406 Z "/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1284" y="217.1543">B</text>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="217.1543">C</text> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="46" x="1300" y="194"/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="452" x="51" y="194"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="44" x="1301" y="206.1387">1,1,1,1</text>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="450" x="52" y="206.1387">std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3</text> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1256" x2="1342" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="1256" x2="1342" y1="237" y2="237"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="237" y2="237"/> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L24" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L24" xlink:show="new" xlink:title="R" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pf8zvzryw5dp)" height="112.0234" id="C_0000559263385732885469" style="stroke: #A80036; stroke-width: 1.5;" width="493" x="783.5" y="8"/> <rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="48" id="C_0001478239414632239754" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="6" y="197"/>
<ellipse cx="21" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,218.6406 Q23.3906,218.9375 22.75,219.0781 Q22.1094,219.2344 21.4063,219.2344 Q18.9063,219.2344 17.5781,217.5938 Q16.2656,215.9375 16.2656,212.8125 Q16.2656,209.6875 17.5781,208.0313 Q18.9063,206.375 21.4063,206.375 Q22.1094,206.375 22.75,206.5313 Q23.4063,206.6875 23.9688,206.9844 L23.9688,209.7031 Q23.3438,209.125 22.75,208.8594 Q22.1563,208.5781 21.5313,208.5781 Q20.1875,208.5781 19.5,209.6563 Q18.8125,210.7188 18.8125,212.8125 Q18.8125,214.9063 19.5,215.9844 Q20.1875,217.0469 21.5313,217.0469 Q22.1563,217.0469 22.75,216.7813 Q23.3438,216.5 23.9688,215.9219 L23.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="217.1543">C</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="452" x="51" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="450" x="52" y="206.1387">std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="237" y2="237"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L24" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L24" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f112ce93dg7o3j)" height="112.0234" id="C_0000559263385732885469" style="stroke: #A80036; stroke-width: 1.5;" width="493" x="783.5" y="8"/>
<ellipse cx="1021.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="1021.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1024.7188,29.6406 Q1024.1406,29.9375 1023.5,30.0781 Q1022.8594,30.2344 1022.1563,30.2344 Q1019.6563,30.2344 1018.3281,28.5938 Q1017.0156,26.9375 1017.0156,23.8125 Q1017.0156,20.6875 1018.3281,19.0313 Q1019.6563,17.375 1022.1563,17.375 Q1022.8594,17.375 1023.5,17.5313 Q1024.1563,17.6875 1024.7188,17.9844 L1024.7188,20.7031 Q1024.0938,20.125 1023.5,19.8594 Q1022.9063,19.5781 1022.2813,19.5781 Q1020.9375,19.5781 1020.25,20.6563 Q1019.5625,21.7188 1019.5625,23.8125 Q1019.5625,25.9063 1020.25,26.9844 Q1020.9375,28.0469 1022.2813,28.0469 Q1022.9063,28.0469 1023.5,27.7813 Q1024.0938,27.5 1024.7188,26.9219 L1024.7188,29.6406 Z "/> <path d="M1024.7188,29.6406 Q1024.1406,29.9375 1023.5,30.0781 Q1022.8594,30.2344 1022.1563,30.2344 Q1019.6563,30.2344 1018.3281,28.5938 Q1017.0156,26.9375 1017.0156,23.8125 Q1017.0156,20.6875 1018.3281,19.0313 Q1019.6563,17.375 1022.1563,17.375 Q1022.8594,17.375 1023.5,17.5313 Q1024.1563,17.6875 1024.7188,17.9844 L1024.7188,20.7031 Q1024.0938,20.125 1023.5,19.8594 Q1022.9063,19.5781 1022.2813,19.5781 Q1020.9375,19.5781 1020.25,20.6563 Q1019.5625,21.7188 1019.5625,23.8125 Q1019.5625,25.9063 1020.25,26.9844 Q1020.9375,28.0469 1022.2813,28.0469 Q1022.9063,28.0469 1023.5,27.7813 Q1024.0938,27.5 1024.7188,26.9219 L1024.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1042.25" y="28.1543">R</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1042.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="784.5" x2="1275.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="784.5" x2="1275.5" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="784.5" x2="1275.5" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L25" xlink:show="new" xlink:title="a1" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L25" xlink:show="new" xlink:title="a1" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="54"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="48"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="56"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L25" xlink:show="new" xlink:title="a1" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L25" xlink:show="new" xlink:title="a1" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="803.5" y="54.2104">a1 : A&lt;int,std::string,float&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="803.5" y="62.2104">a1 : A&lt;int,std::string,float&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L26" xlink:show="new" xlink:title="a2" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L26" xlink:show="new" xlink:title="a2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="58.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="66.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="60.8047"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="68.8047"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L26" xlink:show="new" xlink:title="a2" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L26" xlink:show="new" xlink:title="a2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="803.5" y="67.0151">a2 : A&lt;int,std::string,bool&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="803.5" y="75.0151">a2 : A&lt;int,std::string,bool&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L28" xlink:show="new" xlink:title="b1" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L28" xlink:show="new" xlink:title="b1" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="71.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="79.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="73.6094"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="81.6094"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L28" xlink:show="new" xlink:title="b1" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L28" xlink:show="new" xlink:title="b1" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="803.5" y="79.8198">b1 : B&lt;3,2,1&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="803.5" y="87.8198">b1 : B&lt;3,2,1&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L29" xlink:show="new" xlink:title="b2" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L29" xlink:show="new" xlink:title="b2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="84.4141"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="92.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="86.4141"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="94.4141"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L29" xlink:show="new" xlink:title="b2" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L29" xlink:show="new" xlink:title="b2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="92" x="803.5" y="92.6245">b2 : B&lt;1,1,1,1&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="92" x="803.5" y="100.6245">b2 : B&lt;1,1,1,1&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L33" xlink:show="new" xlink:title="c1" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L33" xlink:show="new" xlink:title="c1" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="97.2188"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="789.5" y="105.2188"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="99.2188"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="107.2188"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00012/t00012.cc#L33" xlink:show="new" xlink:title="c1" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L33" xlink:show="new" xlink:title="c1" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="467" x="803.5" y="105.4292">c1 : C&lt;std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="467" x="803.5" y="113.4292">c1 : C&lt;std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="784.5" x2="1275.5" y1="112.0234" y2="112.0234"/> <path d="M535.5,208.5 L535.5,217 L500.12,221 L535.5,225 L535.5,233.6328 A0,0 0 0 0 535.5,233.6328 L722.5,233.6328 A0,0 0 0 0 722.5,233.6328 L722.5,218.5 L712.5,208.5 L535.5,208.5 A0,0 0 0 0 535.5,208.5 " fill="#FBFB77" filter="url(#f112ce93dg7o3j)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M535.5,208.5 L535.5,217 L500.12,221 L535.5,225 L535.5,233.6328 A0,0 0 0 0 535.5,233.6328 L722.5,233.6328 A0,0 0 0 0 722.5,233.6328 L722.5,218.5 L712.5,208.5 L535.5,208.5 A0,0 0 0 0 535.5,208.5 " fill="#FBFB77" filter="url(#f1pf8zvzryw5dp)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M712.5,208.5 L712.5,218.5 L722.5,218.5 L712.5,208.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M712.5,208.5 L712.5,218.5 L722.5,218.5 L712.5,208.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="166" x="541.5" y="225.5669">Long template annotation</text> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="166" x="541.5" y="225.5669">Long template annotation</text>
<path d="M851.85,245.14 C859.85,257.61 870.07,273.55 879.91,288.88 " fill="none" id="C_0000286972398942005457-&gt;C_0001773299890023132282" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M851.85,245.14 C859.85,257.61 870.07,273.55 879.91,288.88 " fill="none" id="C_0000286972398942005457-&gt;C_0001773299890023132282" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -0,0 +1,396 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 1342.828125 459" style="max-width: 1342.83px; background-color: white;" width="1342.828125" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M101.28125,300L101.28125,304.1666666666667C101.28125,308.3333333333333,101.28125,316.6666666666667,107.8086972268212,325C114.33614445364238,333.3333333333333,127.39103890728477,341.6666666666667,133.91848613410596,345.8333333333333L140.44593336092714,350"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id2" d="M337.8359375,300L337.8359375,304.1666666666667C337.8359375,308.3333333333333,337.8359375,316.6666666666667,331.30849027317885,325C324.78104304635764,333.3333333333333,311.7261485927152,341.6666666666667,305.19870136589407,345.8333333333333L298.67125413907286,350"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id3" d="M521.5234375,300L521.5234375,304.1666666666667C521.5234375,308.3333333333333,521.5234375,316.6666666666667,526.9870136589403,326.8333333333333C532.4505898178808,337,543.3777421357617,349,548.841318294702,355L554.3048944536424,361"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id4" d="M659.0234375,300L659.0234375,304.1666666666667C659.0234375,308.3333333333333,659.0234375,316.6666666666667,653.5598613410597,326.8333333333333C648.0962851821192,337,637.1691328642383,349,631.705556705298,355L626.2419805463576,361"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id5" d="M1045.46875,300L1045.46875,304.1666666666667C1045.46875,308.3333333333333,1045.46875,316.6666666666667,1045.46875,326.8333333333333C1045.46875,337,1045.46875,349,1045.46875,355L1045.46875,361"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id6" d="M236.9921875,171.05513004034134L214.37369791666666,177.37927503361777C191.75520833333334,183.70342002689424,146.51822916666666,196.3517100134471,123.89973958333333,208.34252167339022C101.28125,220.33333333333334,101.28125,231.66666666666666,101.28125,237.33333333333334L101.28125,243"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id7" d="M390.9880651595745,175L382.1293772163121,180.66666666666666C373.27068927304964,186.33333333333334,355.55331338652485,197.66666666666666,346.6946254432624,209C337.8359375,220.33333333333334,337.8359375,231.66666666666666,337.8359375,237.33333333333334L337.8359375,243"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id8" d="M521.5234375,175L521.5234375,180.66666666666666C521.5234375,186.33333333333334,521.5234375,197.66666666666666,521.5234375,209C521.5234375,220.33333333333334,521.5234375,231.66666666666666,521.5234375,237.33333333333334L521.5234375,243"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id9" d="M619.2362034574468,175L625.8674091312056,180.66666666666666C632.4986148049645,186.33333333333334,645.7610261524823,197.66666666666666,652.3922318262411,209C659.0234375,220.33333333333334,659.0234375,231.66666666666666,659.0234375,237.33333333333334L659.0234375,243"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id10" d="M806.0546875,155.30899127711922L845.95703125,164.25749273093268C885.859375,173.20599418474615,965.6640625,191.1029970923731,1005.56640625,205.71816521285322C1045.46875,220.33333333333334,1045.46875,231.66666666666666,1045.46875,237.33333333333334L1045.46875,243"/>
</g>
<g class="edgeLabels">
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(101.28125, 209)" class="edgeLabel">
<g transform="translate(-11.5625, -9)" class="label">
<foreignObject height="18" width="23.125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-a1</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(337.8359375, 209)" class="edgeLabel">
<g transform="translate(-11.5625, -9)" class="label">
<foreignObject height="18" width="23.125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-a2</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(521.5234375, 209)" class="edgeLabel">
<g transform="translate(-11.5625, -9)" class="label">
<foreignObject height="18" width="23.125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-b1</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(659.0234375, 209)" class="edgeLabel">
<g transform="translate(-11.5625, -9)" class="label">
<foreignObject height="18" width="23.125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-b2</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(1045.46875, 209)" class="edgeLabel">
<g transform="translate(-11.1171875, -9)" class="label">
<foreignObject height="18" width="22.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-c1</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(219.55859375, 400.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11">
<g title="A" id="classId-C_0001773299890023132282-0" class="node default clickable">
<rect height="101" width="206.203125" y="-50.5" x="-103.1015625" class="outer title-state"/>
<line y2="-20.5" y1="-20.5" x2="103.1015625" x1="-103.1015625" class="divider"/>
<line y2="39.5" y1="39.5" x2="103.1015625" x1="-103.1015625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -36.7578125, -43)" height="18" width="73.515625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;T,Ts...&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -95.6015625, -9)" height="18" width="66.40625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-value : T</span>
</div>
</foreignObject>
<foreignObject transform="translate( -95.6015625, 13)" height="18" width="191.203125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-values : std::variant&lt;Ts...&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(590.2734375, 400.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16">
<g title="B" id="classId-C_0002061171077567279746-1" class="node default clickable">
<rect height="79" width="243.515625" y="-39.5" x="-121.7578125" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="121.7578125" x1="-121.7578125" class="divider"/>
<line y2="28.5" y1="28.5" x2="121.7578125" x1="-121.7578125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -40.4609375, -32)" height="18" width="80.921875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B&lt;int... Is&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -114.2578125, 2)" height="18" width="228.515625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-ints : std::array&lt;int,sizeof...(Is)&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(1045.46875, 400.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L20">
<g title="C" id="classId-C_0000627809578407650629-2" class="node default clickable">
<rect height="79" width="234.625" y="-39.5" x="-117.3125" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="117.3125" x1="-117.3125" class="divider"/>
<line y2="28.5" y1="28.5" x2="117.3125" x1="-117.3125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -46.6796875, -32)" height="18" width="93.359375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">C&lt;T,int... Is&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -109.8125, 2)" height="18" width="219.625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-ints : std::array&lt;T,sizeof...(Is)&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(101.28125, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11">
<g title="A" id="classId-C_0000286972398942005457-3" class="node default clickable">
<rect height="57" width="186.5625" y="-28.5" x="-93.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="93.28125" x1="-93.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="93.28125" x1="-93.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -85.78125, -21)" height="18" width="171.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;int,std::string,float&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(337.8359375, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L11">
<g title="A" id="classId-C_0000299466181098300963-4" class="node default clickable">
<rect height="57" width="186.546875" y="-28.5" x="-93.2734375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="93.2734375" x1="-93.2734375" class="divider"/>
<line y2="17.5" y1="17.5" x2="93.2734375" x1="-93.2734375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -85.7734375, -21)" height="18" width="171.546875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;int,std::string,bool&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(521.5234375, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16">
<g title="B" id="classId-C_0000489063277971613593-5" class="node default clickable">
<rect height="57" width="80.828125" y="-28.5" x="-40.4140625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="40.4140625" x1="-40.4140625" class="divider"/>
<line y2="17.5" y1="17.5" x2="40.4140625" x1="-40.4140625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -32.9140625, -21)" height="18" width="65.828125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B&lt;3,2,1&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(659.0234375, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L16">
<g title="B" id="classId-C_0000014232362483200599-6" class="node default clickable">
<rect height="57" width="94.171875" y="-28.5" x="-47.0859375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="47.0859375" x1="-47.0859375" class="divider"/>
<line y2="17.5" y1="17.5" x2="47.0859375" x1="-47.0859375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -39.5859375, -21)" height="18" width="79.171875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B&lt;1,1,1,1&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(1045.46875, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L20">
<g title="C" id="classId-C_0001478239414632239754-7" class="node default clickable">
<rect height="57" width="578.71875" y="-28.5" x="-289.359375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="289.359375" x1="-289.359375" class="divider"/>
<line y2="17.5" y1="17.5" x2="289.359375" x1="-289.359375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -281.859375, -21)" height="18" width="563.71875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">C&lt;std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(521.5234375, 91.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00012/t00012.cc#L24">
<g title="R" id="classId-C_0000559263385732885469-8" class="node default clickable">
<rect height="167" width="569.0625" y="-83.5" x="-284.53125" class="outer title-state"/>
<line y2="-53.5" y1="-53.5" x2="284.53125" x1="-284.53125" class="divider"/>
<line y2="72.5" y1="72.5" x2="284.53125" x1="-284.53125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -76)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">R</span>
</div>
</foreignObject>
<foreignObject transform="translate( -277.03125, -42)" height="18" width="190.328125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-a1 : A&lt;int,std::string,float&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -277.03125, -20)" height="18" width="190.34375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-a2 : A&lt;int,std::string,bool&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -277.03125, 2)" height="18" width="101.40625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-b1 : B&lt;3,2,1&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -277.03125, 24)" height="18" width="114.75">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-b2 : B&lt;1,1,1,1&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -277.03125, 46)" height="18" width="554.0625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-c1 : C&lt;std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="518px" preserveAspectRatio="none" style="width:1138px;height:518px;" version="1.1" viewBox="0 0 1138 518" width="1138px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="518px" preserveAspectRatio="none" style="width:1138px;height:518px;" version="1.1" viewBox="0 0 1138 518" width="1138px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="fbtq4xcy61ed9" width="300%" x="-1" y="-1"> <filter height="300%" id="f54gbguaxg29u" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,202 +9,260 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="60.8047" id="C_0000952770730316239752" style="stroke: #A80036; stroke-width: 1.5;" width="91" x="161" y="440.5"/> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="60.8047" id="C_0000952770730316239752" style="stroke: #A80036; stroke-width: 1.5;" width="91" x="161" y="440.5"/>
<ellipse cx="176" cy="456.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="176" cy="456.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M178.9688,462.1406 Q178.3906,462.4375 177.75,462.5781 Q177.1094,462.7344 176.4063,462.7344 Q173.9063,462.7344 172.5781,461.0938 Q171.2656,459.4375 171.2656,456.3125 Q171.2656,453.1875 172.5781,451.5313 Q173.9063,449.875 176.4063,449.875 Q177.1094,449.875 177.75,450.0313 Q178.4063,450.1875 178.9688,450.4844 L178.9688,453.2031 Q178.3438,452.625 177.75,452.3594 Q177.1563,452.0781 176.5313,452.0781 Q175.1875,452.0781 174.5,453.1563 Q173.8125,454.2188 173.8125,456.3125 Q173.8125,458.4063 174.5,459.4844 Q175.1875,460.5469 176.5313,460.5469 Q177.1563,460.5469 177.75,460.2813 Q178.3438,460 178.9688,459.4219 L178.9688,462.1406 Z "/> <path d="M178.9688,462.1406 Q178.3906,462.4375 177.75,462.5781 Q177.1094,462.7344 176.4063,462.7344 Q173.9063,462.7344 172.5781,461.0938 Q171.2656,459.4375 171.2656,456.3125 Q171.2656,453.1875 172.5781,451.5313 Q173.9063,449.875 176.4063,449.875 Q177.1094,449.875 177.75,450.0313 Q178.4063,450.1875 178.9688,450.4844 L178.9688,453.2031 Q178.3438,452.625 177.75,452.3594 Q177.1563,452.0781 176.5313,452.0781 Q175.1875,452.0781 174.5,453.1563 Q173.8125,454.2188 173.8125,456.3125 Q173.8125,458.4063 174.5,459.4844 Q175.1875,460.5469 176.5313,460.5469 Q177.1563,460.5469 177.75,460.2813 Q178.3438,460 178.9688,459.4219 L178.9688,462.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="190" y="460.6543">ABCD::F</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="190" y="460.6543">ABCD::F</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="246" y="437.5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="246" y="437.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="247" y="449.6387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="247" y="449.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="251" y1="472.5" y2="472.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="251" y1="472.5" y2="472.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="251" y1="480.5" y2="480.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L8" xlink:show="new" xlink:title="f" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L8" xlink:show="new" xlink:title="f" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="167" y="478.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="167" y="486.5"/>
<ellipse cx="172" cy="483.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="172" cy="491.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L8" xlink:show="new" xlink:title="f" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L8" xlink:show="new" xlink:title="f" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="181" y="486.7104">f : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="181" y="494.7104">f : T</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="251" y1="493.3047" y2="493.3047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="48" id="C_0002304215469403389354" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="233.5" y="312"/> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="48" id="C_0002304215469403389354" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="233.5" y="312"/>
<ellipse cx="248.5" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="248.5" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M251.4688,333.6406 Q250.8906,333.9375 250.25,334.0781 Q249.6094,334.2344 248.9063,334.2344 Q246.4063,334.2344 245.0781,332.5938 Q243.7656,330.9375 243.7656,327.8125 Q243.7656,324.6875 245.0781,323.0313 Q246.4063,321.375 248.9063,321.375 Q249.6094,321.375 250.25,321.5313 Q250.9063,321.6875 251.4688,321.9844 L251.4688,324.7031 Q250.8438,324.125 250.25,323.8594 Q249.6563,323.5781 249.0313,323.5781 Q247.6875,323.5781 247,324.6563 Q246.3125,325.7188 246.3125,327.8125 Q246.3125,329.9063 247,330.9844 Q247.6875,332.0469 249.0313,332.0469 Q249.6563,332.0469 250.25,331.7813 Q250.8438,331.5 251.4688,330.9219 L251.4688,333.6406 Z "/> <path d="M251.4688,333.6406 Q250.8906,333.9375 250.25,334.0781 Q249.6094,334.2344 248.9063,334.2344 Q246.4063,334.2344 245.0781,332.5938 Q243.7656,330.9375 243.7656,327.8125 Q243.7656,324.6875 245.0781,323.0313 Q246.4063,321.375 248.9063,321.375 Q249.6094,321.375 250.25,321.5313 Q250.9063,321.6875 251.4688,321.9844 L251.4688,324.7031 Q250.8438,324.125 250.25,323.8594 Q249.6563,323.5781 249.0313,323.5781 Q247.6875,323.5781 247,324.6563 Q246.3125,325.7188 246.3125,327.8125 Q246.3125,329.9063 247,330.9844 Q247.6875,332.0469 249.0313,332.0469 Q249.6563,332.0469 250.25,331.7813 Q250.8438,331.5 251.4688,330.9219 L251.4688,333.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="262.5" y="332.1543">ABCD::F</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="262.5" y="332.1543">ABCD::F</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="318.5" y="309"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="318.5" y="309"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="319.5" y="321.1387">int</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="319.5" y="321.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="234.5" x2="332.5" y1="344" y2="344"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="234.5" x2="332.5" y1="344" y2="344"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="234.5" x2="332.5" y1="352" y2="352"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="234.5" x2="332.5" y1="352" y2="352"/>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple"> </a>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="60.8047" id="C_0000519995486237427479" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="369" y="305.5"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="60.8047" id="C_0000519995486237427479" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="369" y="305.5"/>
<ellipse cx="392.55" cy="321.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="392.55" cy="321.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M395.5188,327.1406 Q394.9406,327.4375 394.3,327.5781 Q393.6594,327.7344 392.9563,327.7344 Q390.4563,327.7344 389.1281,326.0938 Q387.8156,324.4375 387.8156,321.3125 Q387.8156,318.1875 389.1281,316.5313 Q390.4563,314.875 392.9563,314.875 Q393.6594,314.875 394.3,315.0313 Q394.9563,315.1875 395.5188,315.4844 L395.5188,318.2031 Q394.8938,317.625 394.3,317.3594 Q393.7063,317.0781 393.0813,317.0781 Q391.7375,317.0781 391.05,318.1563 Q390.3625,319.2188 390.3625,321.3125 Q390.3625,323.4063 391.05,324.4844 Q391.7375,325.5469 393.0813,325.5469 Q393.7063,325.5469 394.3,325.2813 Q394.8938,325 395.5188,324.4219 L395.5188,327.1406 Z "/> <path d="M395.5188,327.1406 Q394.9406,327.4375 394.3,327.5781 Q393.6594,327.7344 392.9563,327.7344 Q390.4563,327.7344 389.1281,326.0938 Q387.8156,324.4375 387.8156,321.3125 Q387.8156,318.1875 389.1281,316.5313 Q390.4563,314.875 392.9563,314.875 Q393.6594,314.875 394.3,315.0313 Q394.9563,315.1875 395.5188,315.4844 L395.5188,318.2031 Q394.8938,317.625 394.3,317.3594 Q393.7063,317.0781 393.0813,317.0781 Q391.7375,317.0781 391.05,318.1563 Q390.3625,319.2188 390.3625,321.3125 Q390.3625,323.4063 391.05,324.4844 Q391.7375,325.5469 393.0813,325.5469 Q393.7063,325.5469 394.3,325.2813 Q394.8938,325 395.5188,324.4219 L395.5188,327.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="408.45" y="325.6543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="408.45" y="325.6543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="427" y1="337.5" y2="337.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="427" y1="337.5" y2="337.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="427" y1="345.5" y2="345.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L15" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L15" xlink:show="new" xlink:title="a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="375" y="343.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="375" y="351.5"/>
<ellipse cx="380" cy="348.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="380" cy="356.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L15" xlink:show="new" xlink:title="a" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L15" xlink:show="new" xlink:title="a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="389" y="351.7104">a : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="389" y="359.7104">a : int</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="427" y1="358.3047" y2="358.3047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L18" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L18" xlink:show="new" xlink:title="B" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L18" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L18" xlink:show="new" xlink:title="B" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="60.8047" id="C_0001177487653597650440" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="463" y="305.5"/>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="60.8047" id="C_0001177487653597650440" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="463" y="305.5"/>
<ellipse cx="486.55" cy="321.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="486.55" cy="321.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M489.5188,327.1406 Q488.9406,327.4375 488.3,327.5781 Q487.6594,327.7344 486.9563,327.7344 Q484.4563,327.7344 483.1281,326.0938 Q481.8156,324.4375 481.8156,321.3125 Q481.8156,318.1875 483.1281,316.5313 Q484.4563,314.875 486.9563,314.875 Q487.6594,314.875 488.3,315.0313 Q488.9563,315.1875 489.5188,315.4844 L489.5188,318.2031 Q488.8938,317.625 488.3,317.3594 Q487.7063,317.0781 487.0813,317.0781 Q485.7375,317.0781 485.05,318.1563 Q484.3625,319.2188 484.3625,321.3125 Q484.3625,323.4063 485.05,324.4844 Q485.7375,325.5469 487.0813,325.5469 Q487.7063,325.5469 488.3,325.2813 Q488.8938,325 489.5188,324.4219 L489.5188,327.1406 Z "/> <path d="M489.5188,327.1406 Q488.9406,327.4375 488.3,327.5781 Q487.6594,327.7344 486.9563,327.7344 Q484.4563,327.7344 483.1281,326.0938 Q481.8156,324.4375 481.8156,321.3125 Q481.8156,318.1875 483.1281,316.5313 Q484.4563,314.875 486.9563,314.875 Q487.6594,314.875 488.3,315.0313 Q488.9563,315.1875 489.5188,315.4844 L489.5188,318.2031 Q488.8938,317.625 488.3,317.3594 Q487.7063,317.0781 487.0813,317.0781 Q485.7375,317.0781 485.05,318.1563 Q484.3625,319.2188 484.3625,321.3125 Q484.3625,323.4063 485.05,324.4844 Q485.7375,325.5469 487.0813,325.5469 Q487.7063,325.5469 488.3,325.2813 Q488.8938,325 489.5188,324.4219 L489.5188,327.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="502.45" y="325.6543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="502.45" y="325.6543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="464" x2="521" y1="337.5" y2="337.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="464" x2="521" y1="337.5" y2="337.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="464" x2="521" y1="345.5" y2="345.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L19" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L19" xlink:show="new" xlink:title="b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="469" y="343.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="469" y="351.5"/>
<ellipse cx="474" cy="348.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="474" cy="356.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L19" xlink:show="new" xlink:title="b" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L19" xlink:show="new" xlink:title="b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="483" y="351.7104">b : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="483" y="359.7104">b : int</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="464" x2="521" y1="358.3047" y2="358.3047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L22" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L22" xlink:show="new" xlink:title="C" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L22" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L22" xlink:show="new" xlink:title="C" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="60.8047" id="C_0001028245818073128358" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="557.5" y="305.5"/>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="60.8047" id="C_0001028245818073128358" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="557.5" y="305.5"/>
<ellipse cx="580.6" cy="321.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="580.6" cy="321.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M583.5688,327.1406 Q582.9906,327.4375 582.35,327.5781 Q581.7094,327.7344 581.0063,327.7344 Q578.5063,327.7344 577.1781,326.0938 Q575.8656,324.4375 575.8656,321.3125 Q575.8656,318.1875 577.1781,316.5313 Q578.5063,314.875 581.0063,314.875 Q581.7094,314.875 582.35,315.0313 Q583.0063,315.1875 583.5688,315.4844 L583.5688,318.2031 Q582.9438,317.625 582.35,317.3594 Q581.7563,317.0781 581.1313,317.0781 Q579.7875,317.0781 579.1,318.1563 Q578.4125,319.2188 578.4125,321.3125 Q578.4125,323.4063 579.1,324.4844 Q579.7875,325.5469 581.1313,325.5469 Q581.7563,325.5469 582.35,325.2813 Q582.9438,325 583.5688,324.4219 L583.5688,327.1406 Z "/> <path d="M583.5688,327.1406 Q582.9906,327.4375 582.35,327.5781 Q581.7094,327.7344 581.0063,327.7344 Q578.5063,327.7344 577.1781,326.0938 Q575.8656,324.4375 575.8656,321.3125 Q575.8656,318.1875 577.1781,316.5313 Q578.5063,314.875 581.0063,314.875 Q581.7094,314.875 582.35,315.0313 Q583.0063,315.1875 583.5688,315.4844 L583.5688,318.2031 Q582.9438,317.625 582.35,317.3594 Q581.7563,317.0781 581.1313,317.0781 Q579.7875,317.0781 579.1,318.1563 Q578.4125,319.2188 578.4125,321.3125 Q578.4125,323.4063 579.1,324.4844 Q579.7875,325.5469 581.1313,325.5469 Q581.7563,325.5469 582.35,325.2813 Q582.9438,325 583.5688,324.4219 L583.5688,327.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="596.4" y="325.6543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="596.4" y="325.6543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="558.5" x2="614.5" y1="337.5" y2="337.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="558.5" x2="614.5" y1="337.5" y2="337.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="558.5" x2="614.5" y1="345.5" y2="345.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L23" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L23" xlink:show="new" xlink:title="c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="563.5" y="343.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="563.5" y="351.5"/>
<ellipse cx="568.5" cy="348.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="568.5" cy="356.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L23" xlink:show="new" xlink:title="c" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L23" xlink:show="new" xlink:title="c" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="577.5" y="351.7104">c : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="577.5" y="359.7104">c : int</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="558.5" x2="614.5" y1="358.3047" y2="358.3047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="73.6094" id="C_0000409373870621931875" style="stroke: #A80036; stroke-width: 1.5;" width="121" x="6" y="299"/>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="73.6094" id="C_0000409373870621931875" style="stroke: #A80036; stroke-width: 1.5;" width="121" x="6" y="299"/>
<ellipse cx="57.75" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="57.75" cy="315" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M60.7188,320.6406 Q60.1406,320.9375 59.5,321.0781 Q58.8594,321.2344 58.1563,321.2344 Q55.6563,321.2344 54.3281,319.5938 Q53.0156,317.9375 53.0156,314.8125 Q53.0156,311.6875 54.3281,310.0313 Q55.6563,308.375 58.1563,308.375 Q58.8594,308.375 59.5,308.5313 Q60.1563,308.6875 60.7188,308.9844 L60.7188,311.7031 Q60.0938,311.125 59.5,310.8594 Q58.9063,310.5781 58.2813,310.5781 Q56.9375,310.5781 56.25,311.6563 Q55.5625,312.7188 55.5625,314.8125 Q55.5625,316.9063 56.25,317.9844 Q56.9375,319.0469 58.2813,319.0469 Q58.9063,319.0469 59.5,318.7813 Q60.0938,318.5 60.7188,317.9219 L60.7188,320.6406 Z "/> <path d="M60.7188,320.6406 Q60.1406,320.9375 59.5,321.0781 Q58.8594,321.2344 58.1563,321.2344 Q55.6563,321.2344 54.3281,319.5938 Q53.0156,317.9375 53.0156,314.8125 Q53.0156,311.6875 54.3281,310.0313 Q55.6563,308.375 58.1563,308.375 Q58.8594,308.375 59.5,308.5313 Q60.1563,308.6875 60.7188,308.9844 L60.7188,311.7031 Q60.0938,311.125 59.5,310.8594 Q58.9063,310.5781 58.2813,310.5781 Q56.9375,310.5781 56.25,311.6563 Q55.5625,312.7188 55.5625,314.8125 Q55.5625,316.9063 56.25,317.9844 Q56.9375,319.0469 58.2813,319.0469 Q58.9063,319.0469 59.5,318.7813 Q60.0938,318.5 60.7188,317.9219 L60.7188,320.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="78.25" y="319.1543">D</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="78.25" y="319.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="126" y1="331" y2="331"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="126" y1="331" y2="331"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L30" target="_top" title="print" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L30" xlink:show="new" xlink:title="print" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="337"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="337"/>
<ellipse cx="17" cy="342" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="17" cy="342" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L30" target="_top" title="print" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L30" xlink:show="new" xlink:title="print" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="26" y="345.2104">d : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="95" x="26" y="345.2104">print(R * r) : void</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="126" y1="351.8047" y2="351.8047"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="126" y1="351.8047" y2="351.8047"/>
<ellipse cx="17" cy="362.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="95" x="26" y="366.0151">print(R * r) : void</text> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="357.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple"> <ellipse cx="17" cy="362.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="60.8047" id="C_0000864055993755439230" style="stroke: #A80036; stroke-width: 1.5;" width="52" x="795.5" y="440.5"/> </a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="26" y="366.0151">d : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="60.8047" id="C_0000864055993755439230" style="stroke: #A80036; stroke-width: 1.5;" width="52" x="795.5" y="440.5"/>
<ellipse cx="810.95" cy="456.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="810.95" cy="456.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M813.9188,462.1406 Q813.3406,462.4375 812.7,462.5781 Q812.0594,462.7344 811.3563,462.7344 Q808.8563,462.7344 807.5281,461.0938 Q806.2156,459.4375 806.2156,456.3125 Q806.2156,453.1875 807.5281,451.5313 Q808.8563,449.875 811.3563,449.875 Q812.0594,449.875 812.7,450.0313 Q813.3563,450.1875 813.9188,450.4844 L813.9188,453.2031 Q813.2938,452.625 812.7,452.3594 Q812.1063,452.0781 811.4813,452.0781 Q810.1375,452.0781 809.45,453.1563 Q808.7625,454.2188 808.7625,456.3125 Q808.7625,458.4063 809.45,459.4844 Q810.1375,460.5469 811.4813,460.5469 Q812.1063,460.5469 812.7,460.2813 Q813.2938,460 813.9188,459.4219 L813.9188,462.1406 Z "/> <path d="M813.9188,462.1406 Q813.3406,462.4375 812.7,462.5781 Q812.0594,462.7344 811.3563,462.7344 Q808.8563,462.7344 807.5281,461.0938 Q806.2156,459.4375 806.2156,456.3125 Q806.2156,453.1875 807.5281,451.5313 Q808.8563,449.875 811.3563,449.875 Q812.0594,449.875 812.7,450.0313 Q813.3563,450.1875 813.9188,450.4844 L813.9188,453.2031 Q813.2938,452.625 812.7,452.3594 Q812.1063,452.0781 811.4813,452.0781 Q810.1375,452.0781 809.45,453.1563 Q808.7625,454.2188 808.7625,456.3125 Q808.7625,458.4063 809.45,459.4844 Q810.1375,460.5469 811.4813,460.5469 Q812.1063,460.5469 812.7,460.2813 Q813.2938,460 813.9188,459.4219 L813.9188,462.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="825.05" y="460.6543">E</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="825.05" y="460.6543">E</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="841.5" y="437.5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="841.5" y="437.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="842.5" y="449.6387">T</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="842.5" y="449.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="796.5" x2="846.5" y1="472.5" y2="472.5"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="796.5" x2="846.5" y1="472.5" y2="472.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="796.5" x2="846.5" y1="480.5" y2="480.5"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L34" xlink:show="new" xlink:title="e" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L34" xlink:show="new" xlink:title="e" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="801.5" y="478.5"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="801.5" y="486.5"/>
<ellipse cx="806.5" cy="483.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="806.5" cy="491.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L34" xlink:show="new" xlink:title="e" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L34" xlink:show="new" xlink:title="e" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="815.5" y="486.7104">e : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="815.5" y="494.7104">e : T</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="796.5" x2="846.5" y1="493.3047" y2="493.3047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple"> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="73.6094" id="C_0000205927019127027617" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="950.5" y="434"/>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="73.6094" id="C_0000205927019127027617" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="950.5" y="434"/>
<ellipse cx="1001.75" cy="450" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="1001.75" cy="450" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1004.7188,455.6406 Q1004.1406,455.9375 1003.5,456.0781 Q1002.8594,456.2344 1002.1563,456.2344 Q999.6563,456.2344 998.3281,454.5938 Q997.0156,452.9375 997.0156,449.8125 Q997.0156,446.6875 998.3281,445.0313 Q999.6563,443.375 1002.1563,443.375 Q1002.8594,443.375 1003.5,443.5313 Q1004.1563,443.6875 1004.7188,443.9844 L1004.7188,446.7031 Q1004.0938,446.125 1003.5,445.8594 Q1002.9063,445.5781 1002.2813,445.5781 Q1000.9375,445.5781 1000.25,446.6563 Q999.5625,447.7188 999.5625,449.8125 Q999.5625,451.9063 1000.25,452.9844 Q1000.9375,454.0469 1002.2813,454.0469 Q1002.9063,454.0469 1003.5,453.7813 Q1004.0938,453.5 1004.7188,452.9219 L1004.7188,455.6406 Z "/> <path d="M1004.7188,455.6406 Q1004.1406,455.9375 1003.5,456.0781 Q1002.8594,456.2344 1002.1563,456.2344 Q999.6563,456.2344 998.3281,454.5938 Q997.0156,452.9375 997.0156,449.8125 Q997.0156,446.6875 998.3281,445.0313 Q999.6563,443.375 1002.1563,443.375 Q1002.8594,443.375 1003.5,443.5313 Q1004.1563,443.6875 1004.7188,443.9844 L1004.7188,446.7031 Q1004.0938,446.125 1003.5,445.8594 Q1002.9063,445.5781 1002.2813,445.5781 Q1000.9375,445.5781 1000.25,446.6563 Q999.5625,447.7188 999.5625,449.8125 Q999.5625,451.9063 1000.25,452.9844 Q1000.9375,454.0469 1002.2813,454.0469 Q1002.9063,454.0469 1003.5,453.7813 Q1004.0938,453.5 1004.7188,452.9219 L1004.7188,455.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="1022.25" y="454.1543">G</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="1022.25" y="454.1543">G</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="52" x="1075.5" y="431"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="52" x="1075.5" y="431"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="50" x="1076.5" y="443.1387">T,Args...</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="50" x="1076.5" y="443.1387">T,Args...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951.5" x2="1123.5" y1="466" y2="466"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="951.5" x2="1123.5" y1="466" y2="466"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951.5" x2="1123.5" y1="474" y2="474"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L38" xlink:show="new" xlink:title="g" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L39" xlink:show="new" xlink:title="args" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="956.5" y="472"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="956.5" y="480"/>
<ellipse cx="961.5" cy="477" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="961.5" cy="485" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L38" xlink:show="new" xlink:title="g" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L39" xlink:show="new" xlink:title="args" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="970.5" y="480.2104">g : T</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="970.5" y="488.2104">args : std::tuple&lt;Args...&gt;</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L39" xlink:show="new" xlink:title="args" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L38" xlink:show="new" xlink:title="g" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="956.5" y="484.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="956.5" y="492.8047"/>
<ellipse cx="961.5" cy="489.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="961.5" cy="497.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L39" xlink:show="new" xlink:title="args" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L38" xlink:show="new" xlink:title="g" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="970.5" y="493.0151">args : std::tuple&lt;Args...&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="970.5" y="501.0151">g : T</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951.5" x2="1123.5" y1="499.6094" y2="499.6094"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="48" id="C_0001977486318799565722" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="791.5" y="312"/> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="48" id="C_0001977486318799565722" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="791.5" y="312"/>
<ellipse cx="806.5" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="806.5" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M809.4688,333.6406 Q808.8906,333.9375 808.25,334.0781 Q807.6094,334.2344 806.9063,334.2344 Q804.4063,334.2344 803.0781,332.5938 Q801.7656,330.9375 801.7656,327.8125 Q801.7656,324.6875 803.0781,323.0313 Q804.4063,321.375 806.9063,321.375 Q807.6094,321.375 808.25,321.5313 Q808.9063,321.6875 809.4688,321.9844 L809.4688,324.7031 Q808.8438,324.125 808.25,323.8594 Q807.6563,323.5781 807.0313,323.5781 Q805.6875,323.5781 805,324.6563 Q804.3125,325.7188 804.3125,327.8125 Q804.3125,329.9063 805,330.9844 Q805.6875,332.0469 807.0313,332.0469 Q807.6563,332.0469 808.25,331.7813 Q808.8438,331.5 809.4688,330.9219 L809.4688,333.6406 Z "/> <path d="M809.4688,333.6406 Q808.8906,333.9375 808.25,334.0781 Q807.6094,334.2344 806.9063,334.2344 Q804.4063,334.2344 803.0781,332.5938 Q801.7656,330.9375 801.7656,327.8125 Q801.7656,324.6875 803.0781,323.0313 Q804.4063,321.375 806.9063,321.375 Q807.6094,321.375 808.25,321.5313 Q808.9063,321.6875 809.4688,321.9844 L809.4688,324.7031 Q808.8438,324.125 808.25,323.8594 Q807.6563,323.5781 807.0313,323.5781 Q805.6875,323.5781 805,324.6563 Q804.3125,325.7188 804.3125,327.8125 Q804.3125,329.9063 805,330.9844 Q805.6875,332.0469 807.0313,332.0469 Q807.6563,332.0469 808.25,331.7813 Q808.8438,331.5 809.4688,330.9219 L809.4688,333.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="820.5" y="332.1543">E</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="820.5" y="332.1543">E</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="836.5" y="309"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="836.5" y="309"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="837.5" y="321.1387">int</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="837.5" y="321.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="792.5" x2="850.5" y1="344" y2="344"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="792.5" x2="850.5" y1="344" y2="344"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="792.5" x2="850.5" y1="352" y2="352"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="792.5" x2="850.5" y1="352" y2="352"/>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="48" id="C_0001526733274613822014" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="958" y="312"/> </a>
<ellipse cx="973" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple">
<path d="M975.9688,333.6406 Q975.3906,333.9375 974.75,334.0781 Q974.1094,334.2344 973.4063,334.2344 Q970.9063,334.2344 969.5781,332.5938 Q968.2656,330.9375 968.2656,327.8125 Q968.2656,324.6875 969.5781,323.0313 Q970.9063,321.375 973.4063,321.375 Q974.1094,321.375 974.75,321.5313 Q975.4063,321.6875 975.9688,321.9844 L975.9688,324.7031 Q975.3438,324.125 974.75,323.8594 Q974.1563,323.5781 973.5313,323.5781 Q972.1875,323.5781 971.5,324.6563 Q970.8125,325.7188 970.8125,327.8125 Q970.8125,329.9063 971.5,330.9844 Q972.1875,332.0469 973.5313,332.0469 Q974.1563,332.0469 974.75,331.7813 Q975.3438,331.5 975.9688,330.9219 L975.9688,333.6406 Z "/> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="48" id="C_0001526733274613822014" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="958" y="312"/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="987" y="332.1543">G</text> <ellipse cx="973" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="1004" y="309"/> <path d="M975.9688,333.6406 Q975.3906,333.9375 974.75,334.0781 Q974.1094,334.2344 973.4063,334.2344 Q970.9063,334.2344 969.5781,332.5938 Q968.2656,330.9375 968.2656,327.8125 Q968.2656,324.6875 969.5781,323.0313 Q970.9063,321.375 973.4063,321.375 Q974.1094,321.375 974.75,321.5313 Q975.4063,321.6875 975.9688,321.9844 L975.9688,324.7031 Q975.3438,324.125 974.75,323.8594 Q974.1563,323.5781 973.5313,323.5781 Q972.1875,323.5781 971.5,324.6563 Q970.8125,325.7188 970.8125,327.8125 Q970.8125,329.9063 971.5,330.9844 Q972.1875,332.0469 973.5313,332.0469 Q974.1563,332.0469 974.75,331.7813 Q975.3438,331.5 975.9688,330.9219 L975.9688,333.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="114" x="1005" y="321.1387">int,float,std::string</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="987" y="332.1543">G</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="959" x2="1116" y1="344" y2="344"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="1004" y="309"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="959" x2="1116" y1="352" y2="352"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="114" x="1005" y="321.1387">int,float,std::string</text>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="48" id="C_0000531523220915557686" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="650.5" y="312"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="959" x2="1116" y1="344" y2="344"/>
<ellipse cx="665.5" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="959" x2="1116" y1="352" y2="352"/>
<path d="M668.4688,333.6406 Q667.8906,333.9375 667.25,334.0781 Q666.6094,334.2344 665.9063,334.2344 Q663.4063,334.2344 662.0781,332.5938 Q660.7656,330.9375 660.7656,327.8125 Q660.7656,324.6875 662.0781,323.0313 Q663.4063,321.375 665.9063,321.375 Q666.6094,321.375 667.25,321.5313 Q667.9063,321.6875 668.4688,321.9844 L668.4688,324.7031 Q667.8438,324.125 667.25,323.8594 Q666.6563,323.5781 666.0313,323.5781 Q664.6875,323.5781 664,324.6563 Q663.3125,325.7188 663.3125,327.8125 Q663.3125,329.9063 664,330.9844 Q664.6875,332.0469 666.0313,332.0469 Q666.6563,332.0469 667.25,331.7813 Q667.8438,331.5 668.4688,330.9219 L668.4688,333.6406 Z "/> </a>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="679.5" y="332.1543">E</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="695.5" y="309"/> <rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="48" id="C_0000531523220915557686" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="650.5" y="312"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="696.5" y="321.1387">std::string</text> <ellipse cx="665.5" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="755.5" y1="344" y2="344"/> <path d="M668.4688,333.6406 Q667.8906,333.9375 667.25,334.0781 Q666.6094,334.2344 665.9063,334.2344 Q663.4063,334.2344 662.0781,332.5938 Q660.7656,330.9375 660.7656,327.8125 Q660.7656,324.6875 662.0781,323.0313 Q663.4063,321.375 665.9063,321.375 Q666.6094,321.375 667.25,321.5313 Q667.9063,321.6875 668.4688,321.9844 L668.4688,324.7031 Q667.8438,324.125 667.25,323.8594 Q666.6563,323.5781 666.0313,323.5781 Q664.6875,323.5781 664,324.6563 Q663.3125,325.7188 663.3125,327.8125 Q663.3125,329.9063 664,330.9844 Q664.6875,332.0469 666.0313,332.0469 Q666.6563,332.0469 667.25,331.7813 Q667.8438,331.5 668.4688,330.9219 L668.4688,333.6406 Z "/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="755.5" y1="352" y2="352"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="679.5" y="332.1543">E</text>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L43" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L43" xlink:show="new" xlink:title="R" xlink:type="simple"> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="695.5" y="309"/>
<rect fill="#FEFECE" filter="url(#fbtq4xcy61ed9)" height="214.4609" id="C_0002198686676355573844" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="371.5" y="8"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="696.5" y="321.1387">std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="755.5" y1="344" y2="344"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="755.5" y1="352" y2="352"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L43" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L43" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f54gbguaxg29u)" height="214.4609" id="C_0002198686676355573844" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="371.5" y="8"/>
<ellipse cx="484.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="484.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M487.2188,29.6406 Q486.6406,29.9375 486,30.0781 Q485.3594,30.2344 484.6563,30.2344 Q482.1563,30.2344 480.8281,28.5938 Q479.5156,26.9375 479.5156,23.8125 Q479.5156,20.6875 480.8281,19.0313 Q482.1563,17.375 484.6563,17.375 Q485.3594,17.375 486,17.5313 Q486.6563,17.6875 487.2188,17.9844 L487.2188,20.7031 Q486.5938,20.125 486,19.8594 Q485.4063,19.5781 484.7813,19.5781 Q483.4375,19.5781 482.75,20.6563 Q482.0625,21.7188 482.0625,23.8125 Q482.0625,25.9063 482.75,26.9844 Q483.4375,28.0469 484.7813,28.0469 Q485.4063,28.0469 486,27.7813 Q486.5938,27.5 487.2188,26.9219 L487.2188,29.6406 Z "/> <path d="M487.2188,29.6406 Q486.6406,29.9375 486,30.0781 Q485.3594,30.2344 484.6563,30.2344 Q482.1563,30.2344 480.8281,28.5938 Q479.5156,26.9375 479.5156,23.8125 Q479.5156,20.6875 480.8281,19.0313 Q482.1563,17.375 484.6563,17.375 Q485.3594,17.375 486,17.5313 Q486.6563,17.6875 487.2188,17.9844 L487.2188,20.7031 Q486.5938,20.125 486,19.8594 Q485.4063,19.5781 484.7813,19.5781 Q483.4375,19.5781 482.75,20.6563 Q482.0625,21.7188 482.0625,23.8125 Q482.0625,25.9063 482.75,26.9844 Q483.4375,28.0469 484.7813,28.0469 Q485.4063,28.0469 486,27.7813 Q486.5938,27.5 487.2188,26.9219 L487.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="504.75" y="28.1543">R</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="504.75" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="40" y2="40"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L45" target="_top" title="get_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L45" xlink:show="new" xlink:title="get_a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="46"/>
<ellipse cx="382.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="382.5" cy="51" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L45" target="_top" title="get_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L45" xlink:show="new" xlink:title="get_a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="391.5" y="54.2104">gintstring : G&lt;int,float,std::string&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="391.5" y="54.2104">get_a(A * a) : int</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L46" target="_top" title="get_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L46" xlink:show="new" xlink:title="get_b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="58.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="58.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="379.5" y="60.8047"/> <ellipse cx="382.5" cy="63.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L46" target="_top" title="get_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L46" xlink:show="new" xlink:title="get_b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="391.5" y="67.0151">estring : E&lt;std::string&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="391.5" y="67.0151">get_b(B &amp; b) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L48" target="_top" title="get_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L48" xlink:show="new" xlink:title="get_c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="71.6094"/>
<ellipse cx="382.5" cy="76.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L48" target="_top" title="get_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L48" xlink:show="new" xlink:title="get_c" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="391.5" y="79.8198">get_c(C c) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L47" target="_top" title="get_const_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L47" xlink:show="new" xlink:title="get_const_b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="84.4141"/>
<ellipse cx="382.5" cy="89.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L47" target="_top" title="get_const_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L47" xlink:show="new" xlink:title="get_const_b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="391.5" y="92.6245">get_const_b(const B &amp; b) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L49" target="_top" title="get_d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L49" xlink:show="new" xlink:title="get_d" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="97.2188"/>
<ellipse cx="382.5" cy="102.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L49" target="_top" title="get_d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L49" xlink:show="new" xlink:title="get_d" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="391.5" y="105.4292">get_d(D &amp;&amp; d) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L51" target="_top" title="get_d2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L51" xlink:show="new" xlink:title="get_d2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="110.0234"/>
<ellipse cx="382.5" cy="115.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L51" target="_top" title="get_d2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L51" xlink:show="new" xlink:title="get_d2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="391.5" y="118.2339">get_d2(D &amp;&amp; d) : int</text>
</a>
<ellipse cx="382.5" cy="127.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="391.5" y="131.0386">get_e&lt;T&gt;(E&lt;T&gt; e) : T</text>
<ellipse cx="382.5" cy="140.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="391.5" y="143.8433">get_f&lt;T&gt;(const F&lt;T&gt; &amp; f) : T</text>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L54" target="_top" title="get_int_e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L54" xlink:show="new" xlink:title="get_int_e" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="148.4375"/>
<ellipse cx="382.5" cy="153.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L54" target="_top" title="get_int_e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L54" xlink:show="new" xlink:title="get_int_e" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="184" x="391.5" y="156.6479">get_int_e(const E&lt;int&gt; &amp; e) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L55" target="_top" title="get_int_e2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L55" xlink:show="new" xlink:title="get_int_e2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="161.2422"/>
<ellipse cx="382.5" cy="166.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L55" target="_top" title="get_int_e2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L55" xlink:show="new" xlink:title="get_int_e2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="391.5" y="169.4526">get_int_e2(E&lt;int&gt; &amp; e) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L58" target="_top" title="get_int_f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L58" xlink:show="new" xlink:title="get_int_f" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="174.0469"/>
<ellipse cx="382.5" cy="179.0469" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L58" target="_top" title="get_int_f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L58" xlink:show="new" xlink:title="get_int_f" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="391.5" y="182.2573">get_int_f(const ABCD::F&lt;int&gt; &amp; f) : int</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="188.8516" y2="188.8516"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="194.8516"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="379.5" y="196.8516"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="391.5" y="203.062">estring : E&lt;std::string&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="207.6563"/>
<ellipse cx="382.5" cy="212.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="391.5" y="215.8667">gintstring : G&lt;int,float,std::string&gt;</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="73.6094" y2="73.6094"/>
<ellipse cx="382.5" cy="84.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="391.5" y="87.8198">get_a(A * a) : int</text>
<ellipse cx="382.5" cy="97.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="391.5" y="100.6245">get_b(B &amp; b) : int</text>
<ellipse cx="382.5" cy="110.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="391.5" y="113.4292">get_const_b(const B &amp; b) : int</text>
<ellipse cx="382.5" cy="123.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="391.5" y="126.2339">get_c(C c) : int</text>
<ellipse cx="382.5" cy="135.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="391.5" y="139.0386">get_d(D &amp;&amp; d) : int</text>
<ellipse cx="382.5" cy="148.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="391.5" y="151.8433">get_d2(D &amp;&amp; d) : int</text>
<ellipse cx="382.5" cy="161.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="184" x="391.5" y="164.6479">get_int_e(const E&lt;int&gt; &amp; e) : int</text>
<ellipse cx="382.5" cy="174.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="391.5" y="177.4526">get_int_e2(E&lt;int&gt; &amp; e) : int</text>
<ellipse cx="382.5" cy="187.0469" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="391.5" y="190.2573">get_int_f(const ABCD::F&lt;int&gt; &amp; f) : int</text>
<ellipse cx="382.5" cy="199.8516" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="391.5" y="203.062">get_e&lt;T&gt;(E&lt;T&gt; e) : T</text>
<ellipse cx="382.5" cy="212.6563" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="391.5" y="215.8667">get_f&lt;T&gt;(const F&lt;T&gt; &amp; f) : T</text>
<path d="M270.09,360.17 C260.11,377.41 246.14,401.53 233.84,422.78 " fill="none" id="C_0002304215469403389354-&gt;C_0000952770730316239752" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M270.09,360.17 C260.11,377.41 246.14,401.53 233.84,422.78 " fill="none" id="C_0002304215469403389354-&gt;C_0000952770730316239752" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="239.89,426.3,223.81,440.1,227.77,419.28,239.89,426.3" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="239.89,426.3,223.81,440.1,227.77,419.28,239.89,426.3" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M115.49,298.63 C132.68,282.78 152.34,264.91 172.5,252 C232.6,213.53 305.37,182.56 366.43,159.94 " fill="none" id="C_0000409373870621931875-&gt;C_0002198686676355573844" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M115.49,298.63 C132.68,282.78 152.34,264.91 172.5,252 C232.6,213.53 305.37,182.56 366.43,159.94 " fill="none" id="C_0000409373870621931875-&gt;C_0002198686676355573844" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 51 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 40 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 73 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -1,22 +1,19 @@
# t00015 - Namespace fun # t00015 - Namespace fun
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00015_class: t00015_class:
type: class type: class
glob: glob:
- ../../tests/t00015/t00015.cc - t00015.cc
using_namespace: using_namespace: clanguml::t00015
- clanguml::t00015
include: include:
namespaces: namespaces:
- clanguml::t00015 - clanguml::t00015
``` ```
## Source code ## Source code
File t00015.cc File `tests/t00015/t00015.cc`
```cpp ```cpp
namespace clanguml { namespace clanguml {
namespace t00015 { namespace t00015 {
@@ -47,8 +44,10 @@ class B : public ns1::ns2::Anon { };
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00015_class](./t00015_class.svg "Namespace fun") ![t00015_class](./t00015_class.svg "Namespace fun")
## Generated Mermaid diagrams
![t00015_class](./t00015_class_mermaid.svg "Namespace fun")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -56,7 +55,7 @@ class B : public ns1::ns2::Anon { };
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00015::ns1::A", "display_name": "ns1::A",
"id": "1410694888805149453", "id": "1410694888805149453",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -68,15 +67,17 @@ class B : public ns1::ns2::Anon { };
"name": "A", "name": "A",
"namespace": "clanguml::t00015::ns1", "namespace": "clanguml::t00015::ns1",
"source_location": { "source_location": {
"file": "../../tests/t00015/t00015.cc", "column": 7,
"line": 6 "file": "t00015.cc",
"line": 6,
"translation_unit": "t00015.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00015::ns1::ns2_v0_9_0::A", "display_name": "ns1::ns2_v0_9_0::A",
"id": "485552648049088863", "id": "485552648049088863",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -88,8 +89,10 @@ class B : public ns1::ns2::Anon { };
"name": "A", "name": "A",
"namespace": "clanguml::t00015::ns1::ns2_v0_9_0", "namespace": "clanguml::t00015::ns1::ns2_v0_9_0",
"source_location": { "source_location": {
"file": "../../tests/t00015/t00015.cc", "column": 22,
"line": 10 "file": "t00015.cc",
"line": 10,
"translation_unit": "t00015.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -103,7 +106,7 @@ class B : public ns1::ns2::Anon { };
"name": "clanguml::t00015::ns1::A" "name": "clanguml::t00015::ns1::A"
} }
], ],
"display_name": "clanguml::t00015::ns1::Anon", "display_name": "ns1::Anon",
"id": "1060731132374575329", "id": "1060731132374575329",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -115,8 +118,10 @@ class B : public ns1::ns2::Anon { };
"name": "Anon", "name": "Anon",
"namespace": "clanguml::t00015::ns1", "namespace": "clanguml::t00015::ns1",
"source_location": { "source_location": {
"file": "../../tests/t00015/t00015.cc", "column": 7,
"line": 14 "file": "t00015.cc",
"line": 14,
"translation_unit": "t00015.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -130,7 +135,7 @@ class B : public ns1::ns2::Anon { };
"name": "clanguml::t00015::ns1::A" "name": "clanguml::t00015::ns1::A"
} }
], ],
"display_name": "clanguml::t00015::ns3::ns1::ns2::Anon", "display_name": "ns3::ns1::ns2::Anon",
"id": "1797521288354158629", "id": "1797521288354158629",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -142,8 +147,10 @@ class B : public ns1::ns2::Anon { };
"name": "Anon", "name": "Anon",
"namespace": "clanguml::t00015::ns3::ns1::ns2", "namespace": "clanguml::t00015::ns3::ns1::ns2",
"source_location": { "source_location": {
"file": "../../tests/t00015/t00015.cc", "column": 7,
"line": 21 "file": "t00015.cc",
"line": 21,
"translation_unit": "t00015.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
@@ -157,7 +164,7 @@ class B : public ns1::ns2::Anon { };
"name": "clanguml::t00015::ns3::ns1::ns2::Anon" "name": "clanguml::t00015::ns3::ns1::ns2::Anon"
} }
], ],
"display_name": "clanguml::t00015::ns3::B", "display_name": "ns3::B",
"id": "870882387819356092", "id": "870882387819356092",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -169,19 +176,17 @@ class B : public ns1::ns2::Anon { };
"name": "B", "name": "B",
"namespace": "clanguml::t00015::ns3", "namespace": "clanguml::t00015::ns3",
"source_location": { "source_location": {
"file": "../../tests/t00015/t00015.cc", "column": 7,
"line": 24 "file": "t00015.cc",
"line": 24,
"translation_unit": "t00015.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00015_class", "name": "t00015_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="283px" preserveAspectRatio="none" style="width:365px;height:283px;" version="1.1" viewBox="0 0 365 283" width="365px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="283px" preserveAspectRatio="none" style="width:365px;height:283px;" version="1.1" viewBox="0 0 365 283" width="365px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f1eql30un5wrmc" width="300%" x="-1" y="-1"> <filter height="300%" id="fhuovqqjwg1nu" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,40 +9,40 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1eql30un5wrmc)" height="48" id="C_0001410694888805149453" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="98" y="8"/> <rect fill="#FEFECE" filter="url(#fhuovqqjwg1nu)" height="48" id="C_0001410694888805149453" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="98" y="8"/>
<ellipse cx="113" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="113" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M115.9688,29.6406 Q115.3906,29.9375 114.75,30.0781 Q114.1094,30.2344 113.4063,30.2344 Q110.9063,30.2344 109.5781,28.5938 Q108.2656,26.9375 108.2656,23.8125 Q108.2656,20.6875 109.5781,19.0313 Q110.9063,17.375 113.4063,17.375 Q114.1094,17.375 114.75,17.5313 Q115.4063,17.6875 115.9688,17.9844 L115.9688,20.7031 Q115.3438,20.125 114.75,19.8594 Q114.1563,19.5781 113.5313,19.5781 Q112.1875,19.5781 111.5,20.6563 Q110.8125,21.7188 110.8125,23.8125 Q110.8125,25.9063 111.5,26.9844 Q112.1875,28.0469 113.5313,28.0469 Q114.1563,28.0469 114.75,27.7813 Q115.3438,27.5 115.9688,26.9219 L115.9688,29.6406 Z "/> <path d="M115.9688,29.6406 Q115.3906,29.9375 114.75,30.0781 Q114.1094,30.2344 113.4063,30.2344 Q110.9063,30.2344 109.5781,28.5938 Q108.2656,26.9375 108.2656,23.8125 Q108.2656,20.6875 109.5781,19.0313 Q110.9063,17.375 113.4063,17.375 Q114.1094,17.375 114.75,17.5313 Q115.4063,17.6875 115.9688,17.9844 L115.9688,20.7031 Q115.3438,20.125 114.75,19.8594 Q114.1563,19.5781 113.5313,19.5781 Q112.1875,19.5781 111.5,20.6563 Q110.8125,21.7188 110.8125,23.8125 Q110.8125,25.9063 111.5,26.9844 Q112.1875,28.0469 113.5313,28.0469 Q114.1563,28.0469 114.75,27.7813 Q115.3438,27.5 115.9688,26.9219 L115.9688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="127" y="28.1543">ns1::A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="127" y="28.1543">ns1::A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="99" x2="168" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="99" x2="168" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="99" x2="168" y1="48" y2="48"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="99" x2="168" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1eql30un5wrmc)" height="48" id="C_0000485552648049088863" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="204.5" y="8"/> <rect fill="#FEFECE" filter="url(#fhuovqqjwg1nu)" height="48" id="C_0000485552648049088863" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="204.5" y="8"/>
<ellipse cx="219.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="219.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M222.4688,29.6406 Q221.8906,29.9375 221.25,30.0781 Q220.6094,30.2344 219.9063,30.2344 Q217.4063,30.2344 216.0781,28.5938 Q214.7656,26.9375 214.7656,23.8125 Q214.7656,20.6875 216.0781,19.0313 Q217.4063,17.375 219.9063,17.375 Q220.6094,17.375 221.25,17.5313 Q221.9063,17.6875 222.4688,17.9844 L222.4688,20.7031 Q221.8438,20.125 221.25,19.8594 Q220.6563,19.5781 220.0313,19.5781 Q218.6875,19.5781 218,20.6563 Q217.3125,21.7188 217.3125,23.8125 Q217.3125,25.9063 218,26.9844 Q218.6875,28.0469 220.0313,28.0469 Q220.6563,28.0469 221.25,27.7813 Q221.8438,27.5 222.4688,26.9219 L222.4688,29.6406 Z "/> <path d="M222.4688,29.6406 Q221.8906,29.9375 221.25,30.0781 Q220.6094,30.2344 219.9063,30.2344 Q217.4063,30.2344 216.0781,28.5938 Q214.7656,26.9375 214.7656,23.8125 Q214.7656,20.6875 216.0781,19.0313 Q217.4063,17.375 219.9063,17.375 Q220.6094,17.375 221.25,17.5313 Q221.9063,17.6875 222.4688,17.9844 L222.4688,20.7031 Q221.8438,20.125 221.25,19.8594 Q220.6563,19.5781 220.0313,19.5781 Q218.6875,19.5781 218,20.6563 Q217.3125,21.7188 217.3125,23.8125 Q217.3125,25.9063 218,26.9844 Q218.6875,28.0469 220.0313,28.0469 Q220.6563,28.0469 221.25,27.7813 Q221.8438,27.5 222.4688,26.9219 L222.4688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="233.5" y="28.1543">ns1::ns2_v0_9_0::A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="233.5" y="28.1543">ns1::ns2_v0_9_0::A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="205.5" x2="353.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="205.5" x2="353.5" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="205.5" x2="353.5" y1="48" y2="48"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="205.5" x2="353.5" y1="48" y2="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L14" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L14" xlink:show="new" xlink:title="Anon" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L14" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L14" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1eql30un5wrmc)" height="48" id="C_0001060731132374575329" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="6" y="116"/> <rect fill="#FEFECE" filter="url(#fhuovqqjwg1nu)" height="48" id="C_0001060731132374575329" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="6" y="116"/>
<ellipse cx="21" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,137.6406 Q23.3906,137.9375 22.75,138.0781 Q22.1094,138.2344 21.4063,138.2344 Q18.9063,138.2344 17.5781,136.5938 Q16.2656,134.9375 16.2656,131.8125 Q16.2656,128.6875 17.5781,127.0313 Q18.9063,125.375 21.4063,125.375 Q22.1094,125.375 22.75,125.5313 Q23.4063,125.6875 23.9688,125.9844 L23.9688,128.7031 Q23.3438,128.125 22.75,127.8594 Q22.1563,127.5781 21.5313,127.5781 Q20.1875,127.5781 19.5,128.6563 Q18.8125,129.7188 18.8125,131.8125 Q18.8125,133.9063 19.5,134.9844 Q20.1875,136.0469 21.5313,136.0469 Q22.1563,136.0469 22.75,135.7813 Q23.3438,135.5 23.9688,134.9219 L23.9688,137.6406 Z "/> <path d="M23.9688,137.6406 Q23.3906,137.9375 22.75,138.0781 Q22.1094,138.2344 21.4063,138.2344 Q18.9063,138.2344 17.5781,136.5938 Q16.2656,134.9375 16.2656,131.8125 Q16.2656,128.6875 17.5781,127.0313 Q18.9063,125.375 21.4063,125.375 Q22.1094,125.375 22.75,125.5313 Q23.4063,125.6875 23.9688,125.9844 L23.9688,128.7031 Q23.3438,128.125 22.75,127.8594 Q22.1563,127.5781 21.5313,127.5781 Q20.1875,127.5781 19.5,128.6563 Q18.8125,129.7188 18.8125,131.8125 Q18.8125,133.9063 19.5,134.9844 Q20.1875,136.0469 21.5313,136.0469 Q22.1563,136.0469 22.75,135.7813 Q23.3438,135.5 23.9688,134.9219 L23.9688,137.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="35" y="136.1543">ns1::Anon</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="35" y="136.1543">ns1::Anon</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="100" y1="148" y2="148"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="100" y1="148" y2="148"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="100" y1="156" y2="156"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="100" y1="156" y2="156"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L21" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L21" xlink:show="new" xlink:title="Anon" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L21" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L21" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1eql30un5wrmc)" height="48" id="C_0001797521288354158629" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="136" y="116"/> <rect fill="#FEFECE" filter="url(#fhuovqqjwg1nu)" height="48" id="C_0001797521288354158629" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="136" y="116"/>
<ellipse cx="151" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="151" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M153.9688,137.6406 Q153.3906,137.9375 152.75,138.0781 Q152.1094,138.2344 151.4063,138.2344 Q148.9063,138.2344 147.5781,136.5938 Q146.2656,134.9375 146.2656,131.8125 Q146.2656,128.6875 147.5781,127.0313 Q148.9063,125.375 151.4063,125.375 Q152.1094,125.375 152.75,125.5313 Q153.4063,125.6875 153.9688,125.9844 L153.9688,128.7031 Q153.3438,128.125 152.75,127.8594 Q152.1563,127.5781 151.5313,127.5781 Q150.1875,127.5781 149.5,128.6563 Q148.8125,129.7188 148.8125,131.8125 Q148.8125,133.9063 149.5,134.9844 Q150.1875,136.0469 151.5313,136.0469 Q152.1563,136.0469 152.75,135.7813 Q153.3438,135.5 153.9688,134.9219 L153.9688,137.6406 Z "/> <path d="M153.9688,137.6406 Q153.3906,137.9375 152.75,138.0781 Q152.1094,138.2344 151.4063,138.2344 Q148.9063,138.2344 147.5781,136.5938 Q146.2656,134.9375 146.2656,131.8125 Q146.2656,128.6875 147.5781,127.0313 Q148.9063,125.375 151.4063,125.375 Q152.1094,125.375 152.75,125.5313 Q153.4063,125.6875 153.9688,125.9844 L153.9688,128.7031 Q153.3438,128.125 152.75,127.8594 Q152.1563,127.5781 151.5313,127.5781 Q150.1875,127.5781 149.5,128.6563 Q148.8125,129.7188 148.8125,131.8125 Q148.8125,133.9063 149.5,134.9844 Q150.1875,136.0469 151.5313,136.0469 Q152.1563,136.0469 152.75,135.7813 Q153.3438,135.5 153.9688,134.9219 L153.9688,137.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="165" y="136.1543">ns3::ns1::ns2::Anon</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="165" y="136.1543">ns3::ns1::ns2::Anon</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="137" x2="292" y1="148" y2="148"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="137" x2="292" y1="148" y2="148"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="137" x2="292" y1="156" y2="156"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="137" x2="292" y1="156" y2="156"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00015/t00015.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1eql30un5wrmc)" height="48" id="C_0000870882387819356092" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="179" y="224"/> <rect fill="#FEFECE" filter="url(#fhuovqqjwg1nu)" height="48" id="C_0000870882387819356092" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="179" y="224"/>
<ellipse cx="194" cy="240" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="194" cy="240" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M196.9688,245.6406 Q196.3906,245.9375 195.75,246.0781 Q195.1094,246.2344 194.4063,246.2344 Q191.9063,246.2344 190.5781,244.5938 Q189.2656,242.9375 189.2656,239.8125 Q189.2656,236.6875 190.5781,235.0313 Q191.9063,233.375 194.4063,233.375 Q195.1094,233.375 195.75,233.5313 Q196.4063,233.6875 196.9688,233.9844 L196.9688,236.7031 Q196.3438,236.125 195.75,235.8594 Q195.1563,235.5781 194.5313,235.5781 Q193.1875,235.5781 192.5,236.6563 Q191.8125,237.7188 191.8125,239.8125 Q191.8125,241.9063 192.5,242.9844 Q193.1875,244.0469 194.5313,244.0469 Q195.1563,244.0469 195.75,243.7813 Q196.3438,243.5 196.9688,242.9219 L196.9688,245.6406 Z "/> <path d="M196.9688,245.6406 Q196.3906,245.9375 195.75,246.0781 Q195.1094,246.2344 194.4063,246.2344 Q191.9063,246.2344 190.5781,244.5938 Q189.2656,242.9375 189.2656,239.8125 Q189.2656,236.6875 190.5781,235.0313 Q191.9063,233.375 194.4063,233.375 Q195.1094,233.375 195.75,233.5313 Q196.4063,233.6875 196.9688,233.9844 L196.9688,236.7031 Q196.3438,236.125 195.75,235.8594 Q195.1563,235.5781 194.5313,235.5781 Q193.1875,235.5781 192.5,236.6563 Q191.8125,237.7188 191.8125,239.8125 Q191.8125,241.9063 192.5,242.9844 Q193.1875,244.0469 194.5313,244.0469 Q195.1563,244.0469 195.75,243.7813 Q196.3438,243.5 196.9688,242.9219 L196.9688,245.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="208" y="244.1543">ns3::B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="208" y="244.1543">ns3::B</text>

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -0,0 +1,185 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 401.91015625 287" style="max-width: 401.91px; background-color: white;" width="401.91015625" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id1" d="M113.83203125,55.50775525943699L104.03580729166667,61.25646271619749C94.23958333333333,67.00517017295799,74.64713541666667,78.50258508647899,64.85091145833333,88.41795920990616C55.0546875,98.33333333333333,55.0546875,106.66666666666667,55.0546875,110.83333333333333L55.0546875,115"/>
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M178.61328125,55.50775525943699L188.40950520833334,61.25646271619749C198.20572916666666,67.00517017295799,217.79817708333334,78.50258508647899,227.59440104166666,88.41795920990616C237.390625,98.33333333333333,237.390625,106.66666666666667,237.390625,110.83333333333333L237.390625,115"/>
<path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M237.390625,172L237.390625,176.16666666666666C237.390625,180.33333333333334,237.390625,188.66666666666666,237.390625,197C237.390625,205.33333333333334,237.390625,213.66666666666666,237.390625,217.83333333333334L237.390625,222"/>
</g>
<g class="edgeLabels">
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
<g class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel"/>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(146.22265625, 36.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L6">
<g title="A" id="classId-C_0001410694888805149453-0" class="node default clickable">
<rect height="57" width="64.78125" y="-28.5" x="-32.390625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="32.390625" x1="-32.390625" class="divider"/>
<line y2="17.5" y1="17.5" x2="32.390625" x1="-32.390625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -24.890625, -21)" height="18" width="49.78125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">ns1::A</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(311.26171875, 36.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L10">
<g title="A" id="classId-C_0000485552648049088863-1" class="node default clickable">
<rect height="57" width="165.296875" y="-28.5" x="-82.6484375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="82.6484375" x1="-82.6484375" class="divider"/>
<line y2="17.5" y1="17.5" x2="82.6484375" x1="-82.6484375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -75.1484375, -21)" height="18" width="150.296875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">ns1::ns2_v0_9_0::A</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(55.0546875, 143.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L14">
<g title="Anon" id="classId-C_0001060731132374575329-2" class="node default clickable">
<rect height="57" width="94.109375" y="-28.5" x="-47.0546875" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="47.0546875" x1="-47.0546875" class="divider"/>
<line y2="17.5" y1="17.5" x2="47.0546875" x1="-47.0546875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -39.5546875, -21)" height="18" width="79.109375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">ns1::Anon</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(237.390625, 143.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L21">
<g title="Anon" id="classId-C_0001797521288354158629-3" class="node default clickable">
<rect height="57" width="170.5625" y="-28.5" x="-85.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="85.28125" x1="-85.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="85.28125" x1="-85.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -77.78125, -21)" height="18" width="155.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">ns3::ns1::ns2::Anon</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(237.390625, 250.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00015/t00015.cc#L24">
<g title="B" id="classId-C_0000870882387819356092-4" class="node default clickable">
<rect height="57" width="64.78125" y="-28.5" x="-32.390625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="32.390625" x1="-32.390625" class="divider"/>
<line y2="17.5" y1="17.5" x2="32.390625" x1="-32.390625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -24.890625, -21)" height="18" width="49.78125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">ns3::B</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,22 +1,19 @@
# t00016 - Unnamed enums and empty templates # t00016 - Unnamed enums and empty templates
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00016_class: t00016_class:
type: class type: class
glob: glob:
- ../../tests/t00016/t00016.cc - t00016.cc
using_namespace: using_namespace: clanguml::t00016
- clanguml::t00016
include: include:
namespaces: namespaces:
- clanguml::t00016 - clanguml::t00016
``` ```
## Source code ## Source code
File t00016.cc File `tests/t00016/t00016.cc`
```cpp ```cpp
namespace clanguml { namespace clanguml {
namespace t00016 { namespace t00016 {
@@ -48,8 +45,10 @@ template <> struct is_numeric<bool> {
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00016_class](./t00016_class.svg "Unnamed enums and empty templates") ![t00016_class](./t00016_class.svg "Unnamed enums and empty templates")
## Generated Mermaid diagrams
![t00016_class](./t00016_class_mermaid.svg "Unnamed enums and empty templates")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -57,8 +56,8 @@ template <> struct is_numeric<bool> {
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00016::is_numeric<>", "display_name": "is_numeric<typename>",
"id": "214045147845616983", "id": "932856332558460389",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
"is_struct": true, "is_struct": true,
@@ -76,13 +75,16 @@ template <> struct is_numeric<bool> {
"name": "is_numeric", "name": "is_numeric",
"namespace": "clanguml::t00016", "namespace": "clanguml::t00016",
"source_location": { "source_location": {
"file": "../../tests/t00016/t00016.cc", "column": 28,
"line": 4 "file": "t00016.cc",
"line": 4,
"translation_unit": "t00016.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
"is_variadic": false, "is_variadic": false,
"kind": "template_type", "kind": "template_type",
"name": "typename",
"template_parameters": [] "template_parameters": []
} }
], ],
@@ -90,7 +92,7 @@ template <> struct is_numeric<bool> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00016::is_numeric<float>", "display_name": "is_numeric<float>",
"id": "95618295648274199", "id": "95618295648274199",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -109,8 +111,10 @@ template <> struct is_numeric<bool> {
"name": "is_numeric", "name": "is_numeric",
"namespace": "clanguml::t00016", "namespace": "clanguml::t00016",
"source_location": { "source_location": {
"file": "../../tests/t00016/t00016.cc", "column": 20,
"line": 8 "file": "t00016.cc",
"line": 8,
"translation_unit": "t00016.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -124,7 +128,7 @@ template <> struct is_numeric<bool> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00016::is_numeric<char>", "display_name": "is_numeric<char>",
"id": "979129381790761728", "id": "979129381790761728",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -143,8 +147,10 @@ template <> struct is_numeric<bool> {
"name": "is_numeric", "name": "is_numeric",
"namespace": "clanguml::t00016", "namespace": "clanguml::t00016",
"source_location": { "source_location": {
"file": "../../tests/t00016/t00016.cc", "column": 20,
"line": 12 "file": "t00016.cc",
"line": 12,
"translation_unit": "t00016.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -158,7 +164,7 @@ template <> struct is_numeric<bool> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00016::is_numeric<unsigned int>", "display_name": "is_numeric<unsigned int>",
"id": "2090787690027341836", "id": "2090787690027341836",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -177,8 +183,10 @@ template <> struct is_numeric<bool> {
"name": "is_numeric", "name": "is_numeric",
"namespace": "clanguml::t00016", "namespace": "clanguml::t00016",
"source_location": { "source_location": {
"file": "../../tests/t00016/t00016.cc", "column": 20,
"line": 16 "file": "t00016.cc",
"line": 16,
"translation_unit": "t00016.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -192,7 +200,7 @@ template <> struct is_numeric<bool> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00016::is_numeric<int>", "display_name": "is_numeric<int>",
"id": "500603075237446075", "id": "500603075237446075",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -211,8 +219,10 @@ template <> struct is_numeric<bool> {
"name": "is_numeric", "name": "is_numeric",
"namespace": "clanguml::t00016", "namespace": "clanguml::t00016",
"source_location": { "source_location": {
"file": "../../tests/t00016/t00016.cc", "column": 20,
"line": 20 "file": "t00016.cc",
"line": 20,
"translation_unit": "t00016.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -226,7 +236,7 @@ template <> struct is_numeric<bool> {
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00016::is_numeric<bool>", "display_name": "is_numeric<bool>",
"id": "2111316837513419920", "id": "2111316837513419920",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -245,8 +255,10 @@ template <> struct is_numeric<bool> {
"name": "is_numeric", "name": "is_numeric",
"namespace": "clanguml::t00016", "namespace": "clanguml::t00016",
"source_location": { "source_location": {
"file": "../../tests/t00016/t00016.cc", "column": 20,
"line": 24 "file": "t00016.cc",
"line": 24,
"translation_unit": "t00016.cc"
}, },
"template_parameters": [ "template_parameters": [
{ {
@@ -259,40 +271,36 @@ template <> struct is_numeric<bool> {
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00016_class", "name": "t00016_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",
"destination": "214045147845616983", "destination": "932856332558460389",
"source": "95618295648274199", "source": "95618295648274199",
"type": "instantiation" "type": "instantiation"
}, },
{ {
"access": "public", "access": "public",
"destination": "214045147845616983", "destination": "932856332558460389",
"source": "979129381790761728", "source": "979129381790761728",
"type": "instantiation" "type": "instantiation"
}, },
{ {
"access": "public", "access": "public",
"destination": "214045147845616983", "destination": "932856332558460389",
"source": "2090787690027341836", "source": "2090787690027341836",
"type": "instantiation" "type": "instantiation"
}, },
{ {
"access": "public", "access": "public",
"destination": "214045147845616983", "destination": "932856332558460389",
"source": "500603075237446075", "source": "500603075237446075",
"type": "instantiation" "type": "instantiation"
}, },
{ {
"access": "public", "access": "public",
"destination": "214045147845616983", "destination": "932856332558460389",
"source": "2111316837513419920", "source": "2111316837513419920",
"type": "instantiation" "type": "instantiation"
} }

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="200px" preserveAspectRatio="none" style="width:847px;height:200px;" version="1.1" viewBox="0 0 847 200" width="847px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="200px" preserveAspectRatio="none" style="width:847px;height:200px;" version="1.1" viewBox="0 0 847 200" width="847px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="fmkmy92fi4fd5" width="300%" x="-1" y="-1"> <filter height="300%" id="f1ogvi7lanev5i" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,85 +9,87 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L4" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L4" xlink:show="new" xlink:title="is_numeric" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L4" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L4" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fmkmy92fi4fd5)" height="60.8047" id="C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="367" y="129"/> <rect fill="#FEFECE" filter="url(#f1ogvi7lanev5i)" height="60.8047" id="C_0000932856332558460389" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="343.5" y="129"/>
<ellipse cx="382" cy="145" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="358.5" cy="145" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M384.9688,150.6406 Q384.3906,150.9375 383.75,151.0781 Q383.1094,151.2344 382.4063,151.2344 Q379.9063,151.2344 378.5781,149.5938 Q377.2656,147.9375 377.2656,144.8125 Q377.2656,141.6875 378.5781,140.0313 Q379.9063,138.375 382.4063,138.375 Q383.1094,138.375 383.75,138.5313 Q384.4063,138.6875 384.9688,138.9844 L384.9688,141.7031 Q384.3438,141.125 383.75,140.8594 Q383.1563,140.5781 382.5313,140.5781 Q381.1875,140.5781 380.5,141.6563 Q379.8125,142.7188 379.8125,144.8125 Q379.8125,146.9063 380.5,147.9844 Q381.1875,149.0469 382.5313,149.0469 Q383.1563,149.0469 383.75,148.7813 Q384.3438,148.5 384.9688,147.9219 L384.9688,150.6406 Z "/> <path d="M361.4688,150.6406 Q360.8906,150.9375 360.25,151.0781 Q359.6094,151.2344 358.9063,151.2344 Q356.4063,151.2344 355.0781,149.5938 Q353.7656,147.9375 353.7656,144.8125 Q353.7656,141.6875 355.0781,140.0313 Q356.4063,138.375 358.9063,138.375 Q359.6094,138.375 360.25,138.5313 Q360.9063,138.6875 361.4688,138.9844 L361.4688,141.7031 Q360.8438,141.125 360.25,140.8594 Q359.6563,140.5781 359.0313,140.5781 Q357.6875,140.5781 357,141.6563 Q356.3125,142.7188 356.3125,144.8125 Q356.3125,146.9063 357,147.9844 Q357.6875,149.0469 359.0313,149.0469 Q359.6563,149.0469 360.25,148.7813 Q360.8438,148.5 361.4688,147.9219 L361.4688,150.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="396" y="149.1543">is_numeric&lt;&gt;</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="372.5" y="149.1543">is_numeric</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="484" y1="161" y2="161"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="65" x="446.5" y="126"/>
<ellipse cx="378" cy="172" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="63" x="447.5" y="138.1387">typename</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="387" y="175.2104">value : enum</text> <line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="507.5" y1="161" y2="161"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="484" y1="181.8047" y2="181.8047"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="507.5" y1="169" y2="169"/>
<ellipse cx="354.5" cy="180" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="363.5" y="183.2104">value : enum</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L8" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L8" xlink:show="new" xlink:title="is_numeric" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L8" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L8" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fmkmy92fi4fd5)" height="60.8047" id="C_0000095618295648274199" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="6" y="8"/> <rect fill="#FEFECE" filter="url(#f1ogvi7lanev5i)" height="60.8047" id="C_0000095618295648274199" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="6" y="8"/>
<ellipse cx="21" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,29.6406 Q23.3906,29.9375 22.75,30.0781 Q22.1094,30.2344 21.4063,30.2344 Q18.9063,30.2344 17.5781,28.5938 Q16.2656,26.9375 16.2656,23.8125 Q16.2656,20.6875 17.5781,19.0313 Q18.9063,17.375 21.4063,17.375 Q22.1094,17.375 22.75,17.5313 Q23.4063,17.6875 23.9688,17.9844 L23.9688,20.7031 Q23.3438,20.125 22.75,19.8594 Q22.1563,19.5781 21.5313,19.5781 Q20.1875,19.5781 19.5,20.6563 Q18.8125,21.7188 18.8125,23.8125 Q18.8125,25.9063 19.5,26.9844 Q20.1875,28.0469 21.5313,28.0469 Q22.1563,28.0469 22.75,27.7813 Q23.3438,27.5 23.9688,26.9219 L23.9688,29.6406 Z "/> <path d="M23.9688,29.6406 Q23.3906,29.9375 22.75,30.0781 Q22.1094,30.2344 21.4063,30.2344 Q18.9063,30.2344 17.5781,28.5938 Q16.2656,26.9375 16.2656,23.8125 Q16.2656,20.6875 17.5781,19.0313 Q18.9063,17.375 21.4063,17.375 Q22.1094,17.375 22.75,17.5313 Q23.4063,17.6875 23.9688,17.9844 L23.9688,20.7031 Q23.3438,20.125 22.75,19.8594 Q22.1563,19.5781 21.5313,19.5781 Q20.1875,19.5781 19.5,20.6563 Q18.8125,21.7188 18.8125,23.8125 Q18.8125,25.9063 19.5,26.9844 Q20.1875,28.0469 21.5313,28.0469 Q22.1563,28.0469 22.75,27.7813 Q23.3438,27.5 23.9688,26.9219 L23.9688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="35" y="28.1543">is_numeric</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="35" y="28.1543">is_numeric</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="30" x="109" y="5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="30" x="109" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="110" y="17.1387">float</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="110" y="17.1387">float</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="40" y2="40"/>
<ellipse cx="17" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="48" y2="48"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="26" y="54.2104">value : enum</text> <ellipse cx="17" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="60.8047" y2="60.8047"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="26" y="62.2104">value : enum</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L12" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L12" xlink:show="new" xlink:title="is_numeric" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L12" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L12" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fmkmy92fi4fd5)" height="60.8047" id="C_0000979129381790761728" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="171" y="8"/> <rect fill="#FEFECE" filter="url(#f1ogvi7lanev5i)" height="60.8047" id="C_0000979129381790761728" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="171" y="8"/>
<ellipse cx="186" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="186" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M188.9688,29.6406 Q188.3906,29.9375 187.75,30.0781 Q187.1094,30.2344 186.4063,30.2344 Q183.9063,30.2344 182.5781,28.5938 Q181.2656,26.9375 181.2656,23.8125 Q181.2656,20.6875 182.5781,19.0313 Q183.9063,17.375 186.4063,17.375 Q187.1094,17.375 187.75,17.5313 Q188.4063,17.6875 188.9688,17.9844 L188.9688,20.7031 Q188.3438,20.125 187.75,19.8594 Q187.1563,19.5781 186.5313,19.5781 Q185.1875,19.5781 184.5,20.6563 Q183.8125,21.7188 183.8125,23.8125 Q183.8125,25.9063 184.5,26.9844 Q185.1875,28.0469 186.5313,28.0469 Q187.1563,28.0469 187.75,27.7813 Q188.3438,27.5 188.9688,26.9219 L188.9688,29.6406 Z "/> <path d="M188.9688,29.6406 Q188.3906,29.9375 187.75,30.0781 Q187.1094,30.2344 186.4063,30.2344 Q183.9063,30.2344 182.5781,28.5938 Q181.2656,26.9375 181.2656,23.8125 Q181.2656,20.6875 182.5781,19.0313 Q183.9063,17.375 186.4063,17.375 Q187.1094,17.375 187.75,17.5313 Q188.4063,17.6875 188.9688,17.9844 L188.9688,20.7031 Q188.3438,20.125 187.75,19.8594 Q187.1563,19.5781 186.5313,19.5781 Q185.1875,19.5781 184.5,20.6563 Q183.8125,21.7188 183.8125,23.8125 Q183.8125,25.9063 184.5,26.9844 Q185.1875,28.0469 186.5313,28.0469 Q187.1563,28.0469 187.75,27.7813 Q188.3438,27.5 188.9688,26.9219 L188.9688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="200" y="28.1543">is_numeric</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="200" y="28.1543">is_numeric</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="30" x="274" y="5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="30" x="274" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="275" y="17.1387">char</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="275" y="17.1387">char</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="40" y2="40"/>
<ellipse cx="182" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="48" y2="48"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="191" y="54.2104">value : enum</text> <ellipse cx="182" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="60.8047" y2="60.8047"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="191" y="62.2104">value : enum</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L16" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L16" xlink:show="new" xlink:title="is_numeric" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L16" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L16" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fmkmy92fi4fd5)" height="60.8047" id="C_0002090787690027341836" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="336.5" y="8"/> <rect fill="#FEFECE" filter="url(#f1ogvi7lanev5i)" height="60.8047" id="C_0002090787690027341836" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="336.5" y="8"/>
<ellipse cx="351.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="351.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M354.4688,29.6406 Q353.8906,29.9375 353.25,30.0781 Q352.6094,30.2344 351.9063,30.2344 Q349.4063,30.2344 348.0781,28.5938 Q346.7656,26.9375 346.7656,23.8125 Q346.7656,20.6875 348.0781,19.0313 Q349.4063,17.375 351.9063,17.375 Q352.6094,17.375 353.25,17.5313 Q353.9063,17.6875 354.4688,17.9844 L354.4688,20.7031 Q353.8438,20.125 353.25,19.8594 Q352.6563,19.5781 352.0313,19.5781 Q350.6875,19.5781 350,20.6563 Q349.3125,21.7188 349.3125,23.8125 Q349.3125,25.9063 350,26.9844 Q350.6875,28.0469 352.0313,28.0469 Q352.6563,28.0469 353.25,27.7813 Q353.8438,27.5 354.4688,26.9219 L354.4688,29.6406 Z "/> <path d="M354.4688,29.6406 Q353.8906,29.9375 353.25,30.0781 Q352.6094,30.2344 351.9063,30.2344 Q349.4063,30.2344 348.0781,28.5938 Q346.7656,26.9375 346.7656,23.8125 Q346.7656,20.6875 348.0781,19.0313 Q349.4063,17.375 351.9063,17.375 Q352.6094,17.375 353.25,17.5313 Q353.9063,17.6875 354.4688,17.9844 L354.4688,20.7031 Q353.8438,20.125 353.25,19.8594 Q352.6563,19.5781 352.0313,19.5781 Q350.6875,19.5781 350,20.6563 Q349.3125,21.7188 349.3125,23.8125 Q349.3125,25.9063 350,26.9844 Q350.6875,28.0469 352.0313,28.0469 Q352.6563,28.0469 353.25,27.7813 Q353.8438,27.5 354.4688,26.9219 L354.4688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="365.5" y="28.1543">is_numeric</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="365.5" y="28.1543">is_numeric</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="79" x="439.5" y="5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="79" x="439.5" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="77" x="440.5" y="17.1387">unsigned int</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="77" x="440.5" y="17.1387">unsigned int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="40" y2="40"/>
<ellipse cx="347.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="48" y2="48"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="356.5" y="54.2104">value : enum</text> <ellipse cx="347.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="60.8047" y2="60.8047"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="356.5" y="62.2104">value : enum</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L20" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L20" xlink:show="new" xlink:title="is_numeric" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L20" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L20" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fmkmy92fi4fd5)" height="60.8047" id="C_0000500603075237446075" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="551" y="8"/> <rect fill="#FEFECE" filter="url(#f1ogvi7lanev5i)" height="60.8047" id="C_0000500603075237446075" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="551" y="8"/>
<ellipse cx="566" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="566" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M568.9688,29.6406 Q568.3906,29.9375 567.75,30.0781 Q567.1094,30.2344 566.4063,30.2344 Q563.9063,30.2344 562.5781,28.5938 Q561.2656,26.9375 561.2656,23.8125 Q561.2656,20.6875 562.5781,19.0313 Q563.9063,17.375 566.4063,17.375 Q567.1094,17.375 567.75,17.5313 Q568.4063,17.6875 568.9688,17.9844 L568.9688,20.7031 Q568.3438,20.125 567.75,19.8594 Q567.1563,19.5781 566.5313,19.5781 Q565.1875,19.5781 564.5,20.6563 Q563.8125,21.7188 563.8125,23.8125 Q563.8125,25.9063 564.5,26.9844 Q565.1875,28.0469 566.5313,28.0469 Q567.1563,28.0469 567.75,27.7813 Q568.3438,27.5 568.9688,26.9219 L568.9688,29.6406 Z "/> <path d="M568.9688,29.6406 Q568.3906,29.9375 567.75,30.0781 Q567.1094,30.2344 566.4063,30.2344 Q563.9063,30.2344 562.5781,28.5938 Q561.2656,26.9375 561.2656,23.8125 Q561.2656,20.6875 562.5781,19.0313 Q563.9063,17.375 566.4063,17.375 Q567.1094,17.375 567.75,17.5313 Q568.4063,17.6875 568.9688,17.9844 L568.9688,20.7031 Q568.3438,20.125 567.75,19.8594 Q567.1563,19.5781 566.5313,19.5781 Q565.1875,19.5781 564.5,20.6563 Q563.8125,21.7188 563.8125,23.8125 Q563.8125,25.9063 564.5,26.9844 Q565.1875,28.0469 566.5313,28.0469 Q567.1563,28.0469 567.75,27.7813 Q568.3438,27.5 568.9688,26.9219 L568.9688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="580" y="28.1543">is_numeric</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="580" y="28.1543">is_numeric</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="654" y="5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="654" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="655" y="17.1387">int</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="655" y="17.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="40" y2="40"/>
<ellipse cx="562" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="48" y2="48"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="571" y="54.2104">value : enum</text> <ellipse cx="562" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="60.8047" y2="60.8047"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="571" y="62.2104">value : enum</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L24" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00016/t00016.cc#L24" xlink:show="new" xlink:title="is_numeric" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L24" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L24" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fmkmy92fi4fd5)" height="60.8047" id="C_0002111316837513419920" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="704.5" y="8"/> <rect fill="#FEFECE" filter="url(#f1ogvi7lanev5i)" height="60.8047" id="C_0002111316837513419920" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="704.5" y="8"/>
<ellipse cx="719.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="719.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M722.4688,29.6406 Q721.8906,29.9375 721.25,30.0781 Q720.6094,30.2344 719.9063,30.2344 Q717.4063,30.2344 716.0781,28.5938 Q714.7656,26.9375 714.7656,23.8125 Q714.7656,20.6875 716.0781,19.0313 Q717.4063,17.375 719.9063,17.375 Q720.6094,17.375 721.25,17.5313 Q721.9063,17.6875 722.4688,17.9844 L722.4688,20.7031 Q721.8438,20.125 721.25,19.8594 Q720.6563,19.5781 720.0313,19.5781 Q718.6875,19.5781 718,20.6563 Q717.3125,21.7188 717.3125,23.8125 Q717.3125,25.9063 718,26.9844 Q718.6875,28.0469 720.0313,28.0469 Q720.6563,28.0469 721.25,27.7813 Q721.8438,27.5 722.4688,26.9219 L722.4688,29.6406 Z "/> <path d="M722.4688,29.6406 Q721.8906,29.9375 721.25,30.0781 Q720.6094,30.2344 719.9063,30.2344 Q717.4063,30.2344 716.0781,28.5938 Q714.7656,26.9375 714.7656,23.8125 Q714.7656,20.6875 716.0781,19.0313 Q717.4063,17.375 719.9063,17.375 Q720.6094,17.375 721.25,17.5313 Q721.9063,17.6875 722.4688,17.9844 L722.4688,20.7031 Q721.8438,20.125 721.25,19.8594 Q720.6563,19.5781 720.0313,19.5781 Q718.6875,19.5781 718,20.6563 Q717.3125,21.7188 717.3125,23.8125 Q717.3125,25.9063 718,26.9844 Q718.6875,28.0469 720.0313,28.0469 Q720.6563,28.0469 721.25,27.7813 Q721.8438,27.5 722.4688,26.9219 L722.4688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="733.5" y="28.1543">is_numeric</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="733.5" y="28.1543">is_numeric</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="29" x="807.5" y="5"/> <rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="29" x="807.5" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="808.5" y="17.1387">bool</text> <text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="808.5" y="17.1387">bool</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="40" y2="40"/>
<ellipse cx="715.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="48" y2="48"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="724.5" y="54.2104">value : enum</text> <ellipse cx="715.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="60.8047" y2="60.8047"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="724.5" y="62.2104">value : enum</text>
</a> </a>
<path d="M136.29,63.18 C141.93,65.17 147.56,67.13 153,69 C218.43,91.49 293.11,115.88 347.8,133.52 " fill="none" id="C_0000095618295648274199-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M136.29,63.18 C141.93,65.17 147.56,67.13 153,69 C209.46,88.41 272.82,109.24 324.27,125.91 " fill="none" id="C_0000095618295648274199-&gt;C_0000932856332558460389" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="350.1,126.9,366.99,139.69,345.81,140.23,350.1,126.9" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="326.49,119.27,343.36,132.09,322.18,132.59,326.49,119.27" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M283.45,69.22 C307.12,84.04 336.09,102.19 361.72,118.24 " fill="none" id="C_0000979129381790761728-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M283.45,69.22 C307.12,84.04 336.09,102.19 361.72,118.24 " fill="none" id="C_0000979129381790761728-&gt;C_0000932856332558460389" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="365.59,112.4,378.82,128.95,358.16,124.27,365.59,112.4" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="365.59,112.4,378.82,128.95,358.16,124.27,365.59,112.4" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M426,69.22 C426,81.15 426,95.23 426,108.63 " fill="none" id="C_0002090787690027341836-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M426,69.22 C426,81.15 426,95.23 426,108.63 " fill="none" id="C_0002090787690027341836-&gt;C_0000932856332558460389" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="433,108.74,426,128.74,419,108.74,433,108.74" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="433,108.74,426,128.74,419,108.74,433,108.74" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M564.04,69.22 C541.24,83.97 513.34,102.01 488.61,118.01 " fill="none" id="C_0000500603075237446075-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M564.04,69.22 C541.24,83.97 513.34,102.01 488.61,118.01 " fill="none" id="C_0000500603075237446075-&gt;C_0000932856332558460389" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="492.28,123.97,471.69,128.95,484.68,112.21,492.28,123.97" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="492.28,123.97,471.69,128.95,484.68,112.21,492.28,123.97" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M704.13,62.94 C698.34,65 692.57,67.04 687,69 C625.69,90.54 556.06,114.39 504.15,132.04 " fill="none" id="C_0002111316837513419920-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M704.13,62.94 C698.34,65 692.57,67.04 687,69 C634.55,87.43 576.02,107.54 527.69,124.02 " fill="none" id="C_0002111316837513419920-&gt;C_0000932856332558460389" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="506.36,138.68,485.17,138.49,501.86,125.43,506.36,138.68" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="none" points="529.88,130.67,508.69,130.5,525.36,117.42,529.88,130.67" style="stroke: #A80036; stroke-width: 1.0;"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,264 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 1022.859375 224" style="max-width: 1022.86px; background-color: white;" width="1022.859375" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M83.9765625,87L83.9765625,91.16666666666667C83.9765625,95.33333333333333,83.9765625,103.66666666666667,140.33463541666666,116.19783708151317C196.69270833333334,128.72900749635969,309.4088541666667,145.45801499271937,365.7669270833333,153.8225187408992L422.125,162.18702248907906"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id2" d="M285.9375,87L285.9375,91.16666666666667C285.9375,95.33333333333333,285.9375,103.66666666666667,308.6354166666667,114.12679115171055C331.3333333333333,124.58691563675443,376.7291666666667,137.17383127350885,399.4270833333333,143.46728909188607L422.125,149.7607469102633"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id3" d="M518.5625,87L518.5625,91.16666666666667C518.5625,95.33333333333333,518.5625,103.66666666666667,518.5625,112C518.5625,120.33333333333333,518.5625,128.66666666666666,518.5625,132.83333333333334L518.5625,137"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id4" d="M744.0625,87L744.0625,91.16666666666667C744.0625,95.33333333333333,744.0625,103.66666666666667,722.5520833333334,113.98598022912047C701.0416666666666,124.30529379157429,658.0208333333334,136.61058758314854,636.5104166666666,142.7632344789357L615,148.91588137472283"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id5" d="M938.890625,87L938.890625,91.16666666666667C938.890625,95.33333333333333,938.890625,103.66666666666667,884.9088541666666,116.11691944537377C830.9270833333334,128.56717222408088,722.9635416666666,145.13434444816178,668.9817708333334,153.41793056020222L615,161.70151667224266"/>
</g>
<g class="edgeLabels">
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(518.5625, 176.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L4">
<g title="is_numeric" id="classId-C_0000932856332558460389-0" class="node default clickable">
<rect height="79" width="192.875" y="-39.5" x="-96.4375" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="96.4375" x1="-96.4375" class="divider"/>
<line y2="28.5" y1="28.5" x2="96.4375" x1="-96.4375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -88.9375, -32)" height="18" width="177.875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">is_numeric&lt;typename&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -88.9375, 2)" height="18" width="100.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : enum</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(83.9765625, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L8">
<g title="is_numeric" id="classId-C_0000095618295648274199-1" class="node default clickable">
<rect height="79" width="151.953125" y="-39.5" x="-75.9765625" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="75.9765625" x1="-75.9765625" class="divider"/>
<line y2="28.5" y1="28.5" x2="75.9765625" x1="-75.9765625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -68.4765625, -32)" height="18" width="136.953125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">is_numeric&lt;float&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -68.4765625, 2)" height="18" width="100.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : enum</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(285.9375, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L12">
<g title="is_numeric" id="classId-C_0000979129381790761728-2" class="node default clickable">
<rect height="79" width="151.96875" y="-39.5" x="-75.984375" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="75.984375" x1="-75.984375" class="divider"/>
<line y2="28.5" y1="28.5" x2="75.984375" x1="-75.984375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -68.484375, -32)" height="18" width="136.96875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">is_numeric&lt;char&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -68.484375, 2)" height="18" width="100.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : enum</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(518.5625, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L16">
<g title="is_numeric" id="classId-C_0002090787690027341836-3" class="node default clickable">
<rect height="79" width="213.28125" y="-39.5" x="-106.640625" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="106.640625" x1="-106.640625" class="divider"/>
<line y2="28.5" y1="28.5" x2="106.640625" x1="-106.640625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -99.140625, -32)" height="18" width="198.28125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">is_numeric&lt;unsigned int&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -99.140625, 2)" height="18" width="100.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : enum</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(744.0625, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L20">
<g title="is_numeric" id="classId-C_0000500603075237446075-4" class="node default clickable">
<rect height="79" width="137.71875" y="-39.5" x="-68.859375" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="68.859375" x1="-68.859375" class="divider"/>
<line y2="28.5" y1="28.5" x2="68.859375" x1="-68.859375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -61.359375, -32)" height="18" width="122.71875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">is_numeric&lt;int&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -61.359375, 2)" height="18" width="100.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : enum</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(938.890625, 47.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00016/t00016.cc#L24">
<g title="is_numeric" id="classId-C_0002111316837513419920-5" class="node default clickable">
<rect height="79" width="151.9375" y="-39.5" x="-75.96875" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="75.96875" x1="-75.96875" class="divider"/>
<line y2="28.5" y1="28.5" x2="75.96875" x1="-75.96875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -68.46875, -32)" height="18" width="136.9375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">is_numeric&lt;bool&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -68.46875, 2)" height="18" width="100.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : enum</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="256px" preserveAspectRatio="none" style="width:799px;height:256px;" version="1.1" viewBox="0 0 799 256" width="799px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="256px" preserveAspectRatio="none" style="width:799px;height:256px;" version="1.1" viewBox="0 0 799 256" width="799px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f79ub59qp2509" width="300%" x="-1" y="-1"> <filter height="300%" id="f1s7krcrkevi3f" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,172 +9,169 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0000121332093434690887" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0000121332093434690887" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="197"/>
<ellipse cx="21" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="21" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,218.6406 Q23.3906,218.9375 22.75,219.0781 Q22.1094,219.2344 21.4063,219.2344 Q18.9063,219.2344 17.5781,217.5938 Q16.2656,215.9375 16.2656,212.8125 Q16.2656,209.6875 17.5781,208.0313 Q18.9063,206.375 21.4063,206.375 Q22.1094,206.375 22.75,206.5313 Q23.4063,206.6875 23.9688,206.9844 L23.9688,209.7031 Q23.3438,209.125 22.75,208.8594 Q22.1563,208.5781 21.5313,208.5781 Q20.1875,208.5781 19.5,209.6563 Q18.8125,210.7188 18.8125,212.8125 Q18.8125,214.9063 19.5,215.9844 Q20.1875,217.0469 21.5313,217.0469 Q22.1563,217.0469 22.75,216.7813 Q23.3438,216.5 23.9688,215.9219 L23.9688,218.6406 Z "/> <path d="M23.9688,218.6406 Q23.3906,218.9375 22.75,219.0781 Q22.1094,219.2344 21.4063,219.2344 Q18.9063,219.2344 17.5781,217.5938 Q16.2656,215.9375 16.2656,212.8125 Q16.2656,209.6875 17.5781,208.0313 Q18.9063,206.375 21.4063,206.375 Q22.1094,206.375 22.75,206.5313 Q23.4063,206.6875 23.9688,206.9844 L23.9688,209.7031 Q23.3438,209.125 22.75,208.8594 Q22.1563,208.5781 21.5313,208.5781 Q20.1875,208.5781 19.5,209.6563 Q18.8125,210.7188 18.8125,212.8125 Q18.8125,214.9063 19.5,215.9844 Q20.1875,217.0469 21.5313,217.0469 Q22.1563,217.0469 22.75,216.7813 Q23.3438,216.5 23.9688,215.9219 L23.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="217.1543">A</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="217.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0001424864837456200487" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0001424864837456200487" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="197"/>
<ellipse cx="96" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="96" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M98.9688,218.6406 Q98.3906,218.9375 97.75,219.0781 Q97.1094,219.2344 96.4063,219.2344 Q93.9063,219.2344 92.5781,217.5938 Q91.2656,215.9375 91.2656,212.8125 Q91.2656,209.6875 92.5781,208.0313 Q93.9063,206.375 96.4063,206.375 Q97.1094,206.375 97.75,206.5313 Q98.4063,206.6875 98.9688,206.9844 L98.9688,209.7031 Q98.3438,209.125 97.75,208.8594 Q97.1563,208.5781 96.5313,208.5781 Q95.1875,208.5781 94.5,209.6563 Q93.8125,210.7188 93.8125,212.8125 Q93.8125,214.9063 94.5,215.9844 Q95.1875,217.0469 96.5313,217.0469 Q97.1563,217.0469 97.75,216.7813 Q98.3438,216.5 98.9688,215.9219 L98.9688,218.6406 Z "/> <path d="M98.9688,218.6406 Q98.3906,218.9375 97.75,219.0781 Q97.1094,219.2344 96.4063,219.2344 Q93.9063,219.2344 92.5781,217.5938 Q91.2656,215.9375 91.2656,212.8125 Q91.2656,209.6875 92.5781,208.0313 Q93.9063,206.375 96.4063,206.375 Q97.1094,206.375 97.75,206.5313 Q98.4063,206.6875 98.9688,206.9844 L98.9688,209.7031 Q98.3438,209.125 97.75,208.8594 Q97.1563,208.5781 96.5313,208.5781 Q95.1875,208.5781 94.5,209.6563 Q93.8125,210.7188 93.8125,212.8125 Q93.8125,214.9063 94.5,215.9844 Q95.1875,217.0469 96.5313,217.0469 Q97.1563,217.0469 97.75,216.7813 Q98.3438,216.5 98.9688,215.9219 L98.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="217.1543">B</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="110" y="217.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="82" x2="120" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0002151170391844743478" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0002151170391844743478" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="197"/>
<ellipse cx="171" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="171" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M173.9688,218.6406 Q173.3906,218.9375 172.75,219.0781 Q172.1094,219.2344 171.4063,219.2344 Q168.9063,219.2344 167.5781,217.5938 Q166.2656,215.9375 166.2656,212.8125 Q166.2656,209.6875 167.5781,208.0313 Q168.9063,206.375 171.4063,206.375 Q172.1094,206.375 172.75,206.5313 Q173.4063,206.6875 173.9688,206.9844 L173.9688,209.7031 Q173.3438,209.125 172.75,208.8594 Q172.1563,208.5781 171.5313,208.5781 Q170.1875,208.5781 169.5,209.6563 Q168.8125,210.7188 168.8125,212.8125 Q168.8125,214.9063 169.5,215.9844 Q170.1875,217.0469 171.5313,217.0469 Q172.1563,217.0469 172.75,216.7813 Q173.3438,216.5 173.9688,215.9219 L173.9688,218.6406 Z "/> <path d="M173.9688,218.6406 Q173.3906,218.9375 172.75,219.0781 Q172.1094,219.2344 171.4063,219.2344 Q168.9063,219.2344 167.5781,217.5938 Q166.2656,215.9375 166.2656,212.8125 Q166.2656,209.6875 167.5781,208.0313 Q168.9063,206.375 171.4063,206.375 Q172.1094,206.375 172.75,206.5313 Q173.4063,206.6875 173.9688,206.9844 L173.9688,209.7031 Q173.3438,209.125 172.75,208.8594 Q172.1563,208.5781 171.5313,208.5781 Q170.1875,208.5781 169.5,209.6563 Q168.8125,210.7188 168.8125,212.8125 Q168.8125,214.9063 169.5,215.9844 Q170.1875,217.0469 171.5313,217.0469 Q172.1563,217.0469 172.75,216.7813 Q173.3438,216.5 173.9688,215.9219 L173.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="217.1543">C</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185" y="217.1543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="157" x2="195" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L11" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L11" xlink:show="new" xlink:title="D" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L11" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L11" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0001378112127131766972" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0001378112127131766972" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="197"/>
<ellipse cx="246.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="246.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M249.4688,218.6406 Q248.8906,218.9375 248.25,219.0781 Q247.6094,219.2344 246.9063,219.2344 Q244.4063,219.2344 243.0781,217.5938 Q241.7656,215.9375 241.7656,212.8125 Q241.7656,209.6875 243.0781,208.0313 Q244.4063,206.375 246.9063,206.375 Q247.6094,206.375 248.25,206.5313 Q248.9063,206.6875 249.4688,206.9844 L249.4688,209.7031 Q248.8438,209.125 248.25,208.8594 Q247.6563,208.5781 247.0313,208.5781 Q245.6875,208.5781 245,209.6563 Q244.3125,210.7188 244.3125,212.8125 Q244.3125,214.9063 245,215.9844 Q245.6875,217.0469 247.0313,217.0469 Q247.6563,217.0469 248.25,216.7813 Q248.8438,216.5 249.4688,215.9219 L249.4688,218.6406 Z "/> <path d="M249.4688,218.6406 Q248.8906,218.9375 248.25,219.0781 Q247.6094,219.2344 246.9063,219.2344 Q244.4063,219.2344 243.0781,217.5938 Q241.7656,215.9375 241.7656,212.8125 Q241.7656,209.6875 243.0781,208.0313 Q244.4063,206.375 246.9063,206.375 Q247.6094,206.375 248.25,206.5313 Q248.9063,206.6875 249.4688,206.9844 L249.4688,209.7031 Q248.8438,209.125 248.25,208.8594 Q247.6563,208.5781 247.0313,208.5781 Q245.6875,208.5781 245,209.6563 Q244.3125,210.7188 244.3125,212.8125 Q244.3125,214.9063 245,215.9844 Q245.6875,217.0469 247.0313,217.0469 Q247.6563,217.0469 248.25,216.7813 Q248.8438,216.5 249.4688,215.9219 L249.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="260.5" y="217.1543">D</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="260.5" y="217.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="232.5" x2="271.5" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L13" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L13" xlink:show="new" xlink:title="E" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L13" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L13" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0001535300935831802489" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="308" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0001535300935831802489" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="308" y="197"/>
<ellipse cx="323" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="323" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M325.9688,218.6406 Q325.3906,218.9375 324.75,219.0781 Q324.1094,219.2344 323.4063,219.2344 Q320.9063,219.2344 319.5781,217.5938 Q318.2656,215.9375 318.2656,212.8125 Q318.2656,209.6875 319.5781,208.0313 Q320.9063,206.375 323.4063,206.375 Q324.1094,206.375 324.75,206.5313 Q325.4063,206.6875 325.9688,206.9844 L325.9688,209.7031 Q325.3438,209.125 324.75,208.8594 Q324.1563,208.5781 323.5313,208.5781 Q322.1875,208.5781 321.5,209.6563 Q320.8125,210.7188 320.8125,212.8125 Q320.8125,214.9063 321.5,215.9844 Q322.1875,217.0469 323.5313,217.0469 Q324.1563,217.0469 324.75,216.7813 Q325.3438,216.5 325.9688,215.9219 L325.9688,218.6406 Z "/> <path d="M325.9688,218.6406 Q325.3906,218.9375 324.75,219.0781 Q324.1094,219.2344 323.4063,219.2344 Q320.9063,219.2344 319.5781,217.5938 Q318.2656,215.9375 318.2656,212.8125 Q318.2656,209.6875 319.5781,208.0313 Q320.9063,206.375 323.4063,206.375 Q324.1094,206.375 324.75,206.5313 Q325.4063,206.6875 325.9688,206.9844 L325.9688,209.7031 Q325.3438,209.125 324.75,208.8594 Q324.1563,208.5781 323.5313,208.5781 Q322.1875,208.5781 321.5,209.6563 Q320.8125,210.7188 320.8125,212.8125 Q320.8125,214.9063 321.5,215.9844 Q322.1875,217.0469 323.5313,217.0469 Q324.1563,217.0469 324.75,216.7813 Q325.3438,216.5 325.9688,215.9219 L325.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="337" y="217.1543">E</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="337" y="217.1543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="347" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L15" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L15" xlink:show="new" xlink:title="F" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L15" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L15" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="383.5" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="383.5" y="197"/>
<ellipse cx="398.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="398.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M401.4688,218.6406 Q400.8906,218.9375 400.25,219.0781 Q399.6094,219.2344 398.9063,219.2344 Q396.4063,219.2344 395.0781,217.5938 Q393.7656,215.9375 393.7656,212.8125 Q393.7656,209.6875 395.0781,208.0313 Q396.4063,206.375 398.9063,206.375 Q399.6094,206.375 400.25,206.5313 Q400.9063,206.6875 401.4688,206.9844 L401.4688,209.7031 Q400.8438,209.125 400.25,208.8594 Q399.6563,208.5781 399.0313,208.5781 Q397.6875,208.5781 397,209.6563 Q396.3125,210.7188 396.3125,212.8125 Q396.3125,214.9063 397,215.9844 Q397.6875,217.0469 399.0313,217.0469 Q399.6563,217.0469 400.25,216.7813 Q400.8438,216.5 401.4688,215.9219 L401.4688,218.6406 Z "/> <path d="M401.4688,218.6406 Q400.8906,218.9375 400.25,219.0781 Q399.6094,219.2344 398.9063,219.2344 Q396.4063,219.2344 395.0781,217.5938 Q393.7656,215.9375 393.7656,212.8125 Q393.7656,209.6875 395.0781,208.0313 Q396.4063,206.375 398.9063,206.375 Q399.6094,206.375 400.25,206.5313 Q400.9063,206.6875 401.4688,206.9844 L401.4688,209.7031 Q400.8438,209.125 400.25,208.8594 Q399.6563,208.5781 399.0313,208.5781 Q397.6875,208.5781 397,209.6563 Q396.3125,210.7188 396.3125,212.8125 Q396.3125,214.9063 397,215.9844 Q397.6875,217.0469 399.0313,217.0469 Q399.6563,217.0469 400.25,216.7813 Q400.8438,216.5 401.4688,215.9219 L401.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="412.5" y="217.1543">F</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="412.5" y="217.1543">F</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="384.5" x2="421.5" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L17" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L17" xlink:show="new" xlink:title="G" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L17" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L17" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0001135797791892670246" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0001135797791892670246" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="197"/>
<ellipse cx="472.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="472.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M475.4688,218.6406 Q474.8906,218.9375 474.25,219.0781 Q473.6094,219.2344 472.9063,219.2344 Q470.4063,219.2344 469.0781,217.5938 Q467.7656,215.9375 467.7656,212.8125 Q467.7656,209.6875 469.0781,208.0313 Q470.4063,206.375 472.9063,206.375 Q473.6094,206.375 474.25,206.5313 Q474.9063,206.6875 475.4688,206.9844 L475.4688,209.7031 Q474.8438,209.125 474.25,208.8594 Q473.6563,208.5781 473.0313,208.5781 Q471.6875,208.5781 471,209.6563 Q470.3125,210.7188 470.3125,212.8125 Q470.3125,214.9063 471,215.9844 Q471.6875,217.0469 473.0313,217.0469 Q473.6563,217.0469 474.25,216.7813 Q474.8438,216.5 475.4688,215.9219 L475.4688,218.6406 Z "/> <path d="M475.4688,218.6406 Q474.8906,218.9375 474.25,219.0781 Q473.6094,219.2344 472.9063,219.2344 Q470.4063,219.2344 469.0781,217.5938 Q467.7656,215.9375 467.7656,212.8125 Q467.7656,209.6875 469.0781,208.0313 Q470.4063,206.375 472.9063,206.375 Q473.6094,206.375 474.25,206.5313 Q474.9063,206.6875 475.4688,206.9844 L475.4688,209.7031 Q474.8438,209.125 474.25,208.8594 Q473.6563,208.5781 473.0313,208.5781 Q471.6875,208.5781 471,209.6563 Q470.3125,210.7188 470.3125,212.8125 Q470.3125,214.9063 471,215.9844 Q471.6875,217.0469 473.0313,217.0469 Q473.6563,217.0469 474.25,216.7813 Q474.8438,216.5 475.4688,215.9219 L475.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="486.5" y="217.1543">G</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="486.5" y="217.1543">G</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="458.5" x2="497.5" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L19" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L19" xlink:show="new" xlink:title="H" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L19" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L19" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0001243547836571712317" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="533.5" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0001243547836571712317" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="533.5" y="197"/>
<ellipse cx="548.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="548.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M551.4688,218.6406 Q550.8906,218.9375 550.25,219.0781 Q549.6094,219.2344 548.9063,219.2344 Q546.4063,219.2344 545.0781,217.5938 Q543.7656,215.9375 543.7656,212.8125 Q543.7656,209.6875 545.0781,208.0313 Q546.4063,206.375 548.9063,206.375 Q549.6094,206.375 550.25,206.5313 Q550.9063,206.6875 551.4688,206.9844 L551.4688,209.7031 Q550.8438,209.125 550.25,208.8594 Q549.6563,208.5781 549.0313,208.5781 Q547.6875,208.5781 547,209.6563 Q546.3125,210.7188 546.3125,212.8125 Q546.3125,214.9063 547,215.9844 Q547.6875,217.0469 549.0313,217.0469 Q549.6563,217.0469 550.25,216.7813 Q550.8438,216.5 551.4688,215.9219 L551.4688,218.6406 Z "/> <path d="M551.4688,218.6406 Q550.8906,218.9375 550.25,219.0781 Q549.6094,219.2344 548.9063,219.2344 Q546.4063,219.2344 545.0781,217.5938 Q543.7656,215.9375 543.7656,212.8125 Q543.7656,209.6875 545.0781,208.0313 Q546.4063,206.375 548.9063,206.375 Q549.6094,206.375 550.25,206.5313 Q550.9063,206.6875 551.4688,206.9844 L551.4688,209.7031 Q550.8438,209.125 550.25,208.8594 Q549.6563,208.5781 549.0313,208.5781 Q547.6875,208.5781 547,209.6563 Q546.3125,210.7188 546.3125,212.8125 Q546.3125,214.9063 547,215.9844 Q547.6875,217.0469 549.0313,217.0469 Q549.6563,217.0469 550.25,216.7813 Q550.8438,216.5 551.4688,215.9219 L551.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="562.5" y="217.1543">H</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="562.5" y="217.1543">H</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="534.5" x2="573.5" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L21" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L21" xlink:show="new" xlink:title="I" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L21" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L21" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0000387733199705628658" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="609.5" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0000387733199705628658" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="609.5" y="197"/>
<ellipse cx="624.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="624.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M627.4688,218.6406 Q626.8906,218.9375 626.25,219.0781 Q625.6094,219.2344 624.9063,219.2344 Q622.4063,219.2344 621.0781,217.5938 Q619.7656,215.9375 619.7656,212.8125 Q619.7656,209.6875 621.0781,208.0313 Q622.4063,206.375 624.9063,206.375 Q625.6094,206.375 626.25,206.5313 Q626.9063,206.6875 627.4688,206.9844 L627.4688,209.7031 Q626.8438,209.125 626.25,208.8594 Q625.6563,208.5781 625.0313,208.5781 Q623.6875,208.5781 623,209.6563 Q622.3125,210.7188 622.3125,212.8125 Q622.3125,214.9063 623,215.9844 Q623.6875,217.0469 625.0313,217.0469 Q625.6563,217.0469 626.25,216.7813 Q626.8438,216.5 627.4688,215.9219 L627.4688,218.6406 Z "/> <path d="M627.4688,218.6406 Q626.8906,218.9375 626.25,219.0781 Q625.6094,219.2344 624.9063,219.2344 Q622.4063,219.2344 621.0781,217.5938 Q619.7656,215.9375 619.7656,212.8125 Q619.7656,209.6875 621.0781,208.0313 Q622.4063,206.375 624.9063,206.375 Q625.6094,206.375 626.25,206.5313 Q626.9063,206.6875 627.4688,206.9844 L627.4688,209.7031 Q626.8438,209.125 626.25,208.8594 Q625.6563,208.5781 625.0313,208.5781 Q623.6875,208.5781 623,209.6563 Q622.3125,210.7188 622.3125,212.8125 Q622.3125,214.9063 623,215.9844 Q623.6875,217.0469 625.0313,217.0469 Q625.6563,217.0469 626.25,216.7813 Q626.8438,216.5 627.4688,215.9219 L627.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="638.5" y="217.1543">I</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="638.5" y="217.1543">I</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="610.5" x2="643.5" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L23" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L23" xlink:show="new" xlink:title="J" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L23" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L23" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0000747991828672433537" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="679.5" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0000747991828672433537" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="679.5" y="197"/>
<ellipse cx="694.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="694.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M697.4688,218.6406 Q696.8906,218.9375 696.25,219.0781 Q695.6094,219.2344 694.9063,219.2344 Q692.4063,219.2344 691.0781,217.5938 Q689.7656,215.9375 689.7656,212.8125 Q689.7656,209.6875 691.0781,208.0313 Q692.4063,206.375 694.9063,206.375 Q695.6094,206.375 696.25,206.5313 Q696.9063,206.6875 697.4688,206.9844 L697.4688,209.7031 Q696.8438,209.125 696.25,208.8594 Q695.6563,208.5781 695.0313,208.5781 Q693.6875,208.5781 693,209.6563 Q692.3125,210.7188 692.3125,212.8125 Q692.3125,214.9063 693,215.9844 Q693.6875,217.0469 695.0313,217.0469 Q695.6563,217.0469 696.25,216.7813 Q696.8438,216.5 697.4688,215.9219 L697.4688,218.6406 Z "/> <path d="M697.4688,218.6406 Q696.8906,218.9375 696.25,219.0781 Q695.6094,219.2344 694.9063,219.2344 Q692.4063,219.2344 691.0781,217.5938 Q689.7656,215.9375 689.7656,212.8125 Q689.7656,209.6875 691.0781,208.0313 Q692.4063,206.375 694.9063,206.375 Q695.6094,206.375 696.25,206.5313 Q696.9063,206.6875 697.4688,206.9844 L697.4688,209.7031 Q696.8438,209.125 696.25,208.8594 Q695.6563,208.5781 695.0313,208.5781 Q693.6875,208.5781 693,209.6563 Q692.3125,210.7188 692.3125,212.8125 Q692.3125,214.9063 693,215.9844 Q693.6875,217.0469 695.0313,217.0469 Q695.6563,217.0469 696.25,216.7813 Q696.8438,216.5 697.4688,215.9219 L697.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="708.5" y="217.1543">J</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="3" x="708.5" y="217.1543">J</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="680.5" x2="713.5" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L25" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L25" xlink:show="new" xlink:title="K" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L25" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L25" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="48" id="C_0001783571342994833467" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="749.5" y="197"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="48" id="C_0001783571342994833467" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="749.5" y="197"/>
<ellipse cx="764.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="764.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M767.4688,218.6406 Q766.8906,218.9375 766.25,219.0781 Q765.6094,219.2344 764.9063,219.2344 Q762.4063,219.2344 761.0781,217.5938 Q759.7656,215.9375 759.7656,212.8125 Q759.7656,209.6875 761.0781,208.0313 Q762.4063,206.375 764.9063,206.375 Q765.6094,206.375 766.25,206.5313 Q766.9063,206.6875 767.4688,206.9844 L767.4688,209.7031 Q766.8438,209.125 766.25,208.8594 Q765.6563,208.5781 765.0313,208.5781 Q763.6875,208.5781 763,209.6563 Q762.3125,210.7188 762.3125,212.8125 Q762.3125,214.9063 763,215.9844 Q763.6875,217.0469 765.0313,217.0469 Q765.6563,217.0469 766.25,216.7813 Q766.8438,216.5 767.4688,215.9219 L767.4688,218.6406 Z "/> <path d="M767.4688,218.6406 Q766.8906,218.9375 766.25,219.0781 Q765.6094,219.2344 764.9063,219.2344 Q762.4063,219.2344 761.0781,217.5938 Q759.7656,215.9375 759.7656,212.8125 Q759.7656,209.6875 761.0781,208.0313 Q762.4063,206.375 764.9063,206.375 Q765.6094,206.375 766.25,206.5313 Q766.9063,206.6875 767.4688,206.9844 L767.4688,209.7031 Q766.8438,209.125 766.25,208.8594 Q765.6563,208.5781 765.0313,208.5781 Q763.6875,208.5781 763,209.6563 Q762.3125,210.7188 762.3125,212.8125 Q762.3125,214.9063 763,215.9844 Q763.6875,217.0469 765.0313,217.0469 Q765.6563,217.0469 766.25,216.7813 Q766.8438,216.5 767.4688,215.9219 L767.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="778.5" y="217.1543">K</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="778.5" y="217.1543">K</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="229" y2="229"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="237" y2="237"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="750.5" x2="787.5" y1="237" y2="237"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L27" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L27" xlink:show="new" xlink:title="R" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L27" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L27" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f79ub59qp2509)" height="112.0234" id="C_0000287495916564113342" style="stroke: #A80036; stroke-width: 1.5;" width="379" x="196.5" y="8"/> <rect fill="#FEFECE" filter="url(#f1s7krcrkevi3f)" height="112.0234" id="C_0000287495916564113342" style="stroke: #A80036; stroke-width: 1.5;" width="379" x="213.5" y="8"/>
<ellipse cx="377.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="394.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M380.7188,29.6406 Q380.1406,29.9375 379.5,30.0781 Q378.8594,30.2344 378.1563,30.2344 Q375.6563,30.2344 374.3281,28.5938 Q373.0156,26.9375 373.0156,23.8125 Q373.0156,20.6875 374.3281,19.0313 Q375.6563,17.375 378.1563,17.375 Q378.8594,17.375 379.5,17.5313 Q380.1563,17.6875 380.7188,17.9844 L380.7188,20.7031 Q380.0938,20.125 379.5,19.8594 Q378.9063,19.5781 378.2813,19.5781 Q376.9375,19.5781 376.25,20.6563 Q375.5625,21.7188 375.5625,23.8125 Q375.5625,25.9063 376.25,26.9844 Q376.9375,28.0469 378.2813,28.0469 Q378.9063,28.0469 379.5,27.7813 Q380.0938,27.5 380.7188,26.9219 L380.7188,29.6406 Z "/> <path d="M397.7188,29.6406 Q397.1406,29.9375 396.5,30.0781 Q395.8594,30.2344 395.1563,30.2344 Q392.6563,30.2344 391.3281,28.5938 Q390.0156,26.9375 390.0156,23.8125 Q390.0156,20.6875 391.3281,19.0313 Q392.6563,17.375 395.1563,17.375 Q395.8594,17.375 396.5,17.5313 Q397.1563,17.6875 397.7188,17.9844 L397.7188,20.7031 Q397.0938,20.125 396.5,19.8594 Q395.9063,19.5781 395.2813,19.5781 Q393.9375,19.5781 393.25,20.6563 Q392.5625,21.7188 392.5625,23.8125 Q392.5625,25.9063 393.25,26.9844 Q393.9375,28.0469 395.2813,28.0469 Q395.9063,28.0469 396.5,27.7813 Q397.0938,27.5 397.7188,26.9219 L397.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="398.25" y="28.1543">R</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="415.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="197.5" x2="574.5" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="214.5" x2="591.5" y1="40" y2="40"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L38" xlink:show="new" xlink:title="some_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L28" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L28" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="202.5" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="219.5" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="48"/> <rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="48"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L38" xlink:show="new" xlink:title="some_int" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L28" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L28" xlink:show="new" xlink:title="R" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="216.5" y="54.2104">some_int : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="353" x="233.5" y="54.2104">R(int &amp; some_int, C &amp; cc, const E &amp; ee, F &amp;&amp; ff, I *&amp; ii) : void</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L39" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple"> <line style="stroke: #A80036; stroke-width: 1.5;" x1="214.5" x2="591.5" y1="60.8047" y2="60.8047"/>
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="202.5" y="58.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L38" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="60.8047"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="219.5" y="66.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="68.8047"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L39" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L38" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="216.5" y="67.0151">some_int_pointer : int *</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="233.5" y="75.0151">some_int : int</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L40" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L39" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="202.5" y="71.6094"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="219.5" y="79.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="73.6094"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="81.6094"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L40" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L39" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="216.5" y="79.8198">some_int_pointer_pointer : int **</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="233.5" y="87.8198">some_int_pointer : int *</text>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L41" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L40" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="202.5" y="84.4141"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="219.5" y="92.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="86.4141"/> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="94.4141"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00017/t00017.cc#L41" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L40" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="216.5" y="92.6245">some_int_reference : int &amp;</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="233.5" y="100.6245">some_int_pointer_pointer : int **</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="197.5" x2="574.5" y1="99.2188" y2="99.2188"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L41" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="107.2188"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="219.5" y="105.2188"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="353" x="216.5" y="113.4292">R(int &amp; some_int, C &amp; cc, const E &amp; ee, F &amp;&amp; ff, I *&amp; ii) : void</text> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="107.2188"/>
<path d="M196.38,115.54 C183.12,125.1 171.33,136.48 162,150 C153.6,162.17 156.07,178.21 161.11,191.86 " fill="none" id="C_0000287495916564113342-&gt;C_0002151170391844743478" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> </a>
<polygon fill="#A80036" points="163.06,196.77,163.4575,186.9292,161.2154,192.1227,156.0218,189.8806,163.06,196.77" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L41" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<path d="M297.03,120.16 C282.72,129.76 268.27,139.91 255,150 C235.64,164.73 215.11,183 199.84,197.19 " fill="none" id="C_0000287495916564113342-&gt;C_0002151170391844743478-1" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="233.5" y="113.4292">some_int_reference : int &amp;</text>
<polygon fill="#A80036" points="196.07,200.7,205.385,197.5015,199.7319,197.2956,199.9379,191.6424,196.07,200.7" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="256" y="163.0669">-c</text> <path d="M227.33,124.78 C173.51,145.32 114.85,170.01 63,197 C57.36,199.93 51.44,203.42 46.03,206.78 " fill="none" id="C_0000287495916564113342&lt;-C_0000121332093434690887" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M328.46,120.3 C321.75,129.55 315.91,139.56 312,150 C306.98,163.4 309.68,178.85 314.18,191.83 " fill="none" id="C_0000287495916564113342-&gt;C_0001535300935831802489" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <polygon fill="#FFFFFF" points="239.82,120.06,232.7927,118.4422,228.5966,124.3067,235.6239,125.9245,239.82,120.06" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="316.06,196.85,316.6452,187.0185,314.3044,192.1684,309.1546,189.8275,316.06,196.85" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="164" y="163.0669">-a</text>
<path d="M365.39,120.08 C356.32,144.31 346.06,171.73 338.59,191.71 " fill="none" id="C_0000287495916564113342-&gt;C_0001535300935831802489-1" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M286.66,120.01 C239.94,142.86 185.91,170.26 138,197 C133.93,199.27 129.67,201.79 125.55,204.29 " fill="none" id="C_0000287495916564113342-&gt;C_0001424864837456200487" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="336.75,196.62,343.6366,189.5791,338.4931,191.9337,336.1385,186.7901,336.75,196.62" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="121.15,207,130.9093,205.6752,125.4044,204.3731,126.7064,198.8682,121.15,207" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="355" y="163.0669">-e</text> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="226" y="163.0669">-b</text>
<path d="M392.04,120.08 C394.69,144.21 397.68,171.5 399.87,191.46 " fill="none" id="C_0000287495916564113342-&gt;C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <path d="M322.33,120.08 C279.51,149.32 229.87,183.22 200.8,203.07 " fill="none" id="C_0000287495916564113342-&gt;C_0002151170391844743478" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="400.44,196.62,403.4128,187.2305,399.8831,191.6511,395.4625,188.1215,400.44,196.62" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="196.32,206.13,206.0096,204.3659,200.4514,203.3138,201.5036,197.7556,196.32,206.13" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M402.61,133.18 C403.57,138.85 404.39,144.5 405,150 C405.83,157.51 405.14,159.45 405,167 C404.82,176.76 404.44,187.52 404.07,196.79 " fill="none" id="C_0000287495916564113342&lt;-C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="277" y="163.0669">-c</text>
<polygon fill="#FFFFFF" points="400.15,120.03,397.3198,126.6625,402.3535,131.826,405.1837,125.1935,400.15,120.03" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M349.34,120.08 C324.54,145.54 296.31,174.52 276.66,194.69 " fill="none" id="C_0000287495916564113342-&gt;C_0001378112127131766972" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="407" y="163.0669">-f</text> <polygon fill="#A80036" points="272.85,198.6,281.9915,194.9348,276.3352,195.0148,276.2552,189.3585,272.85,198.6" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M472.34,120.01 C509.26,143.62 552.81,171.57 592,197 C596.21,199.73 600.69,202.66 604.99,205.48 " fill="none" id="C_0000287495916564113342-&gt;C_0000387733199705628658" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="320" y="163.0669">-d</text>
<polygon fill="#A80036" points="609.22,208.26,603.8846,199.9815,605.0379,205.5195,599.4999,206.6728,609.22,208.26" style="stroke: #A80036; stroke-width: 1.0;"/> <path d="M376.35,120.08 C364.57,144.41 351.24,171.96 341.57,191.97 " fill="none" id="C_0000287495916564113342-&gt;C_0001535300935831802489" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M511.39,120.16 C527.93,129.27 544.24,139.28 559,150 C576.42,162.65 593.29,179.99 605.88,194.24 " fill="none" id="C_0000287495916564113342-&gt;C_0000387733199705628658-1" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="339.31,196.62,346.8402,190.272,341.4945,192.1225,339.6441,186.7768,339.31,196.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="609.31,198.17,606.414,188.7565,606.0256,194.4,600.3821,194.0116,609.31,198.17" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="363" y="163.0669">-e</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="579" y="163.0669">-i</text> <path d="M403,133.26 C403,155.95 403,179.72 403,196.62 " fill="none" id="C_0000287495916564113342&lt;-C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M183.84,111.01 C154.05,121.64 124.5,134.5 98,150 C77.23,162.14 57.93,181.54 44.55,196.83 " fill="none" id="C_0000287495916564113342&lt;-C_0000121332093434690887" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#FFFFFF" points="403,120.08,399,126.08,403,132.08,407,126.08,403,120.08" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="196.16,106.75,189.1829,104.9277,184.8173,110.6672,191.7944,112.4895,196.16,106.75" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="404" y="163.0669">-f</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="99" y="163.0669">-a</text> <path d="M429.65,120.08 C441.43,144.41 454.76,171.96 464.43,191.97 " fill="none" id="C_0000287495916564113342-&gt;C_0001135797791892670246" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M196.4,109.87 C173.78,120.54 152.27,133.72 134,150 C121.56,161.08 113.43,177.85 108.35,192.19 " fill="none" id="C_0000287495916564113342-&gt;C_0001424864837456200487" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="466.69,196.62,466.3559,186.7768,464.5055,192.1225,459.1598,190.272,466.69,196.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="106.75,196.95,113.4236,189.7069,108.3526,192.2138,105.8457,187.1427,106.75,196.95" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="453" y="163.0669">-g</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="135" y="163.0669">-b</text> <path d="M456.66,120.08 C481.46,145.54 509.69,174.52 529.34,194.69 " fill="none" id="C_0000287495916564113342-&gt;C_0001243547836571712317" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M314.7,120.06 C304.75,129.44 295.15,139.55 287,150 C277.1,162.69 268.87,178.62 262.88,192.08 " fill="none" id="C_0000287495916564113342-&gt;C_0001378112127131766972" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="533.15,198.6,529.7448,189.3585,529.6648,195.0148,524.0085,194.9348,533.15,198.6" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="260.78,196.92,268.0444,190.2695,262.7788,192.3369,260.7115,187.0714,260.78,196.92" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="502" y="163.0669">-h</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="288" y="163.0669">-d</text> <path d="M482.6,120.08 C526.05,150.15 576.62,185.14 604.91,204.71 " fill="none" id="C_0000287495916564113342-&gt;C_0000387733199705628658" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M418.69,120.08 C433.2,144.51 449.63,172.2 461.51,192.22 " fill="none" id="C_0000287495916564113342-&gt;C_0001135797791892670246" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="609.25,207.72,604.1332,199.3046,605.1411,204.871,599.5748,205.8789,609.25,207.72" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="464.13,196.62,462.9678,186.84,461.5743,192.3225,456.0918,190.929,464.13,196.62" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="550" y="163.0669">-i</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="447" y="163.0669">-g</text> <path d="M517.59,120.01 C563.14,142.75 615.64,170.06 662,197 C666.34,199.52 670.88,202.35 675.2,205.15 " fill="none" id="C_0000287495916564113342-&gt;C_0000747991828672433537" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M445.7,120.08 C474.59,146.73 507.67,177.26 529.59,197.48 " fill="none" id="C_0000287495916564113342-&gt;C_0001243547836571712317" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="679.43,207.91,674.0946,199.6315,675.2479,205.1695,669.7099,206.3228,679.43,207.91" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="533.28,200.88,529.3755,191.8382,529.6043,197.4904,523.9521,197.7192,533.28,200.88" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="608" y="163.0669">-j</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="496" y="163.0669">-h</text> <path d="M559.13,120.02 C614.82,141.62 677.28,168.16 732,197 C736.23,199.23 740.62,201.76 744.84,204.3 " fill="none" id="C_0000287495916564113342-&gt;C_0001783571342994833467" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M533.93,120.04 C555.11,129.31 576.36,139.39 596,150 C624.74,165.53 655.23,187.52 675.1,202.69 " fill="none" id="C_0000287495916564113342-&gt;C_0000747991828672433537" style="stroke: #A80036; stroke-width: 1.0;"/> <polygon fill="#A80036" points="749.33,207.05,743.7539,198.9317,745.0693,204.4335,739.5675,205.7489,749.33,207.05" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="679.17,205.82,674.4737,197.1629,675.2063,202.7721,669.5971,203.5048,679.17,205.82" style="stroke: #A80036; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="664" y="163.0669">-k</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="624" y="163.0669">-j</text>
<path d="M562.91,120.01 C589.34,129.36 616.06,139.48 641,150 C682.94,167.69 692.42,174.52 732,197 C736.15,199.36 740.51,201.95 744.72,204.52 " fill="none" id="C_0000287495916564113342-&gt;C_0001783571342994833467" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="749.2,207.29,743.6436,199.1582,744.9456,204.6631,739.4407,205.9652,749.2,207.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="680" y="163.0669">-k</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -0,0 +1,445 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 796.640625 308" style="max-width: 796.641px; background-color: white;" width="796.640625" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id1" d="M179.328125,160.26250717624868L152.98697916666666,168.38542264687388C126.64583333333333,176.5083381174991,73.96354166666667,192.75416905874954,47.622395833333336,206.54375119604143C21.28125,220.33333333333334,21.28125,231.66666666666666,21.28125,237.33333333333334L21.28125,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M185.94534574468085,175L171.2617464539007,180.66666666666666C156.57814716312058,186.33333333333334,127.21094858156027,197.66666666666666,112.52734929078014,209C97.84375,220.33333333333334,97.84375,231.66666666666666,97.84375,237.33333333333334L97.84375,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M240.3535904255319,175L229.36236702127658,180.66666666666666C218.3711436170213,186.33333333333334,196.38869680851064,197.66666666666666,185.3974734042553,209C174.40625,220.33333333333334,174.40625,231.66666666666666,174.40625,237.33333333333334L174.40625,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M294.761835106383,175L287.4629875886525,180.66666666666666C280.164140070922,186.33333333333334,265.56644503546096,197.66666666666666,258.2675975177305,209C250.96875,220.33333333333334,250.96875,231.66666666666666,250.96875,237.33333333333334L250.96875,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id5" d="M348.85362367021276,175L345.22567597517735,180.66666666666666C341.59772828014184,186.33333333333334,334.3418328900709,197.66666666666666,330.71388519503546,209C327.0859375,220.33333333333334,327.0859375,231.66666666666666,327.0859375,237.33333333333334L327.0859375,243"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id6" d="M402.3125,175L402.3125,180.66666666666666C402.3125,186.33333333333334,402.3125,197.66666666666666,402.3125,209C402.3125,220.33333333333334,402.3125,231.66666666666666,402.3125,237.33333333333334L402.3125,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id7" d="M456.40428856382977,175L460.0751883865248,180.66666666666666C463.74608820921986,186.33333333333334,471.08788785460996,197.66666666666666,474.75878767730495,209C478.4296875,220.33333333333334,478.4296875,231.66666666666666,478.4296875,237.33333333333334L478.4296875,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id8" d="M511.1289893617021,175L518.5137411347517,180.66666666666666C525.8984929078014,186.33333333333334,540.6679964539007,197.66666666666666,548.0527482269504,209C555.4375,220.33333333333334,555.4375,231.66666666666666,555.4375,237.33333333333334L555.4375,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id9" d="M563.0111369680851,175L573.916832890071,180.66666666666666C584.8225288120567,186.33333333333334,606.6339206560284,197.66666666666666,617.5396165780143,209C628.4453125,220.33333333333334,628.4453125,231.66666666666666,628.4453125,237.33333333333334L628.4453125,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id10" d="M613.9494680851064,175L628.3120567375887,180.66666666666666C642.674645390071,186.33333333333334,671.3998226950355,197.66666666666666,685.7624113475177,209C700.125,220.33333333333334,700.125,231.66666666666666,700.125,237.33333333333334L700.125,243"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id11" d="M625.296875,161.73424083769635L650.3072916666666,169.61186736474696C675.3177083333334,177.48949389179757,725.3385416666666,193.24474694589878,750.3489583333334,206.78904013961605C775.359375,220.33333333333334,775.359375,231.66666666666666,775.359375,237.33333333333334L775.359375,243"/>
</g>
<g class="edgeLabels">
<g transform="translate(21.28125, 209)" class="edgeLabel">
<g transform="translate(-7.1171875, -9)" class="label">
<foreignObject height="18" width="14.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-a</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(97.84375, 209)" class="edgeLabel">
<g transform="translate(-7.1171875, -9)" class="label">
<foreignObject height="18" width="14.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-b</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(174.40625, 209)" class="edgeLabel">
<g transform="translate(-6.6640625, -9)" class="label">
<foreignObject height="18" width="13.328125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-c</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(250.96875, 209)" class="edgeLabel">
<g transform="translate(-7.1171875, -9)" class="label">
<foreignObject height="18" width="14.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-d</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(327.0859375, 209)" class="edgeLabel">
<g transform="translate(-7.1171875, -9)" class="label">
<foreignObject height="18" width="14.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-e</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(402.3125, 209)" class="edgeLabel">
<g transform="translate(-4.890625, -9)" class="label">
<foreignObject height="18" width="9.78125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-f</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(478.4296875, 209)" class="edgeLabel">
<g transform="translate(-7.1171875, -9)" class="label">
<foreignObject height="18" width="14.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-g</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(555.4375, 209)" class="edgeLabel">
<g transform="translate(-7.1171875, -9)" class="label">
<foreignObject height="18" width="14.234375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-h</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(628.4453125, 209)" class="edgeLabel">
<g transform="translate(-4.4453125, -9)" class="label">
<foreignObject height="18" width="8.890625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-i</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(700.125, 209)" class="edgeLabel">
<g transform="translate(-4.4453125, -9)" class="label">
<foreignObject height="18" width="8.890625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-j</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(775.359375, 209)" class="edgeLabel">
<g transform="translate(-6.6640625, -9)" class="label">
<foreignObject height="18" width="13.328125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-k</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(21.28125, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L5">
<g title="A" id="classId-C_0000121332093434690887-0" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(97.84375, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L7">
<g title="B" id="classId-C_0001424864837456200487-1" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(174.40625, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L9">
<g title="C" id="classId-C_0002151170391844743478-2" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">C</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(250.96875, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L11">
<g title="D" id="classId-C_0001378112127131766972-3" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">D</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(327.0859375, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L13">
<g title="E" id="classId-C_0001535300935831802489-4" class="node default clickable">
<rect height="57" width="25.671875" y="-28.5" x="-12.8359375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="12.8359375" x1="-12.8359375" class="divider"/>
<line y2="17.5" y1="17.5" x2="12.8359375" x1="-12.8359375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.3359375, -21)" height="18" width="10.671875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">E</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(402.3125, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L15">
<g title="F" id="classId-C_0001803800465279710134-5" class="node default clickable">
<rect height="57" width="24.78125" y="-28.5" x="-12.390625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="12.390625" x1="-12.390625" class="divider"/>
<line y2="17.5" y1="17.5" x2="12.390625" x1="-12.390625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -4.890625, -21)" height="18" width="9.78125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">F</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(478.4296875, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L17">
<g title="G" id="classId-C_0001135797791892670246-6" class="node default clickable">
<rect height="57" width="27.453125" y="-28.5" x="-13.7265625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.7265625" x1="-13.7265625" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.7265625" x1="-13.7265625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -6.2265625, -21)" height="18" width="12.453125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">G</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(555.4375, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L19">
<g title="H" id="classId-C_0001243547836571712317-7" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">H</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(628.4453125, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L21">
<g title="I" id="classId-C_0000387733199705628658-8" class="node default clickable">
<rect height="57" width="19.453125" y="-28.5" x="-9.7265625" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="9.7265625" x1="-9.7265625" class="divider"/>
<line y2="17.5" y1="17.5" x2="9.7265625" x1="-9.7265625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -2.2265625, -21)" height="18" width="4.453125" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">I</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(700.125, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L23">
<g title="J" id="classId-C_0000747991828672433537-9" class="node default clickable">
<rect height="57" width="23.90625" y="-28.5" x="-11.953125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="11.953125" x1="-11.953125" class="divider"/>
<line y2="17.5" y1="17.5" x2="11.953125" x1="-11.953125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -4.453125, -21)" height="18" width="8.90625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">J</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(775.359375, 271.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L25">
<g title="K" id="classId-C_0001783571342994833467-10" class="node default clickable">
<rect height="57" width="26.5625" y="-28.5" x="-13.28125" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="13.28125" x1="-13.28125" class="divider"/>
<line y2="17.5" y1="17.5" x2="13.28125" x1="-13.28125" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -21)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">K</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(402.3125, 91.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00017/t00017.cc#L27">
<g title="R" id="classId-C_0000287495916564113342-11" class="node default clickable">
<rect height="167" width="445.96875" y="-83.5" x="-222.984375" class="outer title-state"/>
<line y2="-53.5" y1="-53.5" x2="222.984375" x1="-222.984375" class="divider"/>
<line y2="50.5" y1="50.5" x2="222.984375" x1="-222.984375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -76)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">R</span>
</div>
</foreignObject>
<foreignObject transform="translate( -215.484375, -42)" height="18" width="100.484375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-some_int : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -215.484375, -20)" height="18" width="158.3125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">-some_int_pointer : int </span>
</div>
</foreignObject>
<foreignObject transform="translate( -215.484375, 2)" height="18" width="226.796875">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">-some_int_pointer_pointer : int *</span>
</div>
</foreignObject>
<foreignObject transform="translate( -215.484375, 24)" height="18" width="192.09375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-some_int_reference : int &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -215.484375, 58)" height="18" width="430.96875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-R(int &amp; some_int, C &amp; cc, const E &amp; ee, F &amp;&amp; ff, I *&amp; ii) : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -1,22 +1,19 @@
# t00018 - Pimpl pattern # t00018 - Pimpl pattern
## Config ## Config
```yaml ```yaml
compilation_database_dir: ..
output_directory: puml
diagrams: diagrams:
t00018_class: t00018_class:
type: class type: class
glob: glob:
- ../../tests/t00018/**.cc - "*.cc"
using_namespace: using_namespace: clanguml::t00018
- clanguml::t00018
include: include:
namespaces: namespaces:
- clanguml::t00018 - clanguml::t00018
``` ```
## Source code ## Source code
File t00018.h File `tests/t00018/t00018.h`
```cpp ```cpp
#pragma once #pragma once
@@ -54,7 +51,7 @@ public:
} }
``` ```
File t00018_impl.h File `tests/t00018/t00018_impl.h`
```cpp ```cpp
#pragma once #pragma once
@@ -77,7 +74,7 @@ public:
} }
``` ```
File t00018.cc File `tests/t00018/t00018.cc`
```cpp ```cpp
#include "t00018.h" #include "t00018.h"
#include "t00018_impl.h" #include "t00018_impl.h"
@@ -103,7 +100,7 @@ widget &widget::operator=(widget &&) = default;
} // namespace clanguml } // namespace clanguml
``` ```
File t00018_impl.cc File `tests/t00018/t00018_impl.cc`
```cpp ```cpp
#include "t00018_impl.h" #include "t00018_impl.h"
#include "t00018.h" #include "t00018.h"
@@ -133,8 +130,10 @@ void widget::draw(const clanguml::t00018::widget &w)
} // namespace clanguml } // namespace clanguml
``` ```
## Generated UML diagrams ## Generated PlantUML diagrams
![t00018_class](./t00018_class.svg "Pimpl pattern") ![t00018_class](./t00018_class.svg "Pimpl pattern")
## Generated Mermaid diagrams
![t00018_class](./t00018_class_mermaid.svg "Pimpl pattern")
## Generated JSON models ## Generated JSON models
```json ```json
{ {
@@ -142,7 +141,7 @@ void widget::draw(const clanguml::t00018::widget &w)
"elements": [ "elements": [
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00018::impl::widget", "display_name": "impl::widget",
"id": "130502639682787993", "id": "130502639682787993",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -155,8 +154,10 @@ void widget::draw(const clanguml::t00018::widget &w)
"is_static": false, "is_static": false,
"name": "n", "name": "n",
"source_location": { "source_location": {
"file": "../../tests/t00018/t00018_impl.h", "column": 9,
"line": 10 "file": "t00018_impl.h",
"line": 10,
"translation_unit": "t00018.cc"
}, },
"type": "int" "type": "int"
} }
@@ -165,8 +166,16 @@ void widget::draw(const clanguml::t00018::widget &w)
{ {
"access": "public", "access": "public",
"is_const": true, "is_const": true,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -177,13 +186,27 @@ void widget::draw(const clanguml::t00018::widget &w)
"type": "const clanguml::t00018::widget &" "type": "const clanguml::t00018::widget &"
} }
], ],
"source_location": {
"column": 10,
"file": "t00018_impl.h",
"line": 13,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -194,13 +217,27 @@ void widget::draw(const clanguml::t00018::widget &w)
"type": "const clanguml::t00018::widget &" "type": "const clanguml::t00018::widget &"
} }
], ],
"source_location": {
"column": 10,
"file": "t00018_impl.h",
"line": 14,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": true,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -211,21 +248,29 @@ void widget::draw(const clanguml::t00018::widget &w)
"type": "int" "type": "int"
} }
], ],
"source_location": {
"column": 5,
"file": "t00018_impl.h",
"line": 15,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
} }
], ],
"name": "widget", "name": "widget",
"namespace": "clanguml::t00018::impl", "namespace": "clanguml::t00018::impl",
"source_location": { "source_location": {
"file": "../../tests/t00018/t00018_impl.h", "column": 7,
"line": 9 "file": "t00018_impl.h",
"line": 9,
"translation_unit": "t00018.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
}, },
{ {
"bases": [], "bases": [],
"display_name": "clanguml::t00018::widget", "display_name": "widget",
"id": "1005661284373854088", "id": "1005661284373854088",
"is_abstract": false, "is_abstract": false,
"is_nested": false, "is_nested": false,
@@ -238,8 +283,10 @@ void widget::draw(const clanguml::t00018::widget &w)
"is_static": false, "is_static": false,
"name": "pImpl", "name": "pImpl",
"source_location": { "source_location": {
"file": "../../tests/t00018/t00018.h", "column": 35,
"line": 18 "file": "t00018.h",
"line": 18,
"translation_unit": "t00018.cc"
}, },
"type": "std::unique_ptr<impl::widget>" "type": "std::unique_ptr<impl::widget>"
} }
@@ -248,44 +295,94 @@ void widget::draw(const clanguml::t00018::widget &w)
{ {
"access": "public", "access": "public",
"is_const": true, "is_const": true,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "draw", "name": "draw",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00018.h",
"line": 21,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "draw", "name": "draw",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00018.h",
"line": 22,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": true, "is_const": true,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "shown", "name": "shown",
"parameters": [], "parameters": [],
"source_location": {
"column": 10,
"file": "t00018.h",
"line": 23,
"translation_unit": "t00018.cc"
},
"type": "bool" "type": "bool"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": true,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -296,25 +393,53 @@ void widget::draw(const clanguml::t00018::widget &w)
"type": "int" "type": "int"
} }
], ],
"source_location": {
"column": 5,
"file": "t00018.h",
"line": 24,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
"name": "~widget", "name": "~widget",
"parameters": [], "parameters": [],
"source_location": {
"column": 5,
"file": "t00018.h",
"line": 25,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": true,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -322,16 +447,30 @@ void widget::draw(const clanguml::t00018::widget &w)
"parameters": [ "parameters": [
{ {
"name": "", "name": "",
"type": "clanguml::t00018::widget &&" "type": "widget &&"
} }
], ],
"source_location": {
"column": 5,
"file": "t00018.h",
"line": 27,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": true,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": true,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -339,16 +478,30 @@ void widget::draw(const clanguml::t00018::widget &w)
"parameters": [ "parameters": [
{ {
"name": "", "name": "",
"type": "const clanguml::t00018::widget &" "type": "const widget &"
} }
], ],
"source_location": {
"column": 5,
"file": "t00018.h",
"line": 29,
"translation_unit": "t00018.cc"
},
"type": "void" "type": "void"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": false,
"is_move_assignment": true,
"is_noexcept": false,
"is_operator": true,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -356,16 +509,30 @@ void widget::draw(const clanguml::t00018::widget &w)
"parameters": [ "parameters": [
{ {
"name": "", "name": "",
"type": "clanguml::t00018::widget &&" "type": "widget &&"
} }
], ],
"type": "clanguml::t00018::widget &" "source_location": {
"column": 13,
"file": "t00018.h",
"line": 30,
"translation_unit": "t00018.cc"
},
"type": "widget &"
}, },
{ {
"access": "public", "access": "public",
"is_const": false, "is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": true,
"is_coroutine": false,
"is_defaulted": false, "is_defaulted": false,
"is_implicit": false, "is_deleted": true,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": true,
"is_pure_virtual": false, "is_pure_virtual": false,
"is_static": false, "is_static": false,
"is_virtual": false, "is_virtual": false,
@@ -373,28 +540,32 @@ void widget::draw(const clanguml::t00018::widget &w)
"parameters": [ "parameters": [
{ {
"name": "", "name": "",
"type": "const clanguml::t00018::widget &" "type": "const widget &"
} }
], ],
"type": "clanguml::t00018::widget &" "source_location": {
"column": 13,
"file": "t00018.h",
"line": 31,
"translation_unit": "t00018.cc"
},
"type": "widget &"
} }
], ],
"name": "widget", "name": "widget",
"namespace": "clanguml::t00018", "namespace": "clanguml::t00018",
"source_location": { "source_location": {
"file": "../../tests/t00018/t00018.h", "column": 7,
"line": 17 "file": "t00018.h",
"line": 17,
"translation_unit": "t00018.cc"
}, },
"template_parameters": [], "template_parameters": [],
"type": "class" "type": "class"
} }
], ],
"metadata": {
"clang_uml_version": "0.3.5",
"llvm_version": "Ubuntu clang version 15.0.6",
"schema_version": 1
},
"name": "t00018_class", "name": "t00018_class",
"package_type": "namespace",
"relationships": [ "relationships": [
{ {
"access": "public", "access": "public",

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="371px" preserveAspectRatio="none" style="width:262px;height:371px;" version="1.1" viewBox="0 0 262 371" width="262px" zoomAndPan="magnify"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="395px" preserveAspectRatio="none" style="width:317px;height:395px;" version="1.1" viewBox="0 0 317 395" width="317px" zoomAndPan="magnify">
<defs> <defs>
<filter height="300%" id="f7ubfo1fvra2u" width="300%" x="-1" y="-1"> <filter height="300%" id="f137onr27zqppl" width="300%" x="-1" y="-1">
<feGaussianBlur result="blurOut" stdDeviation="2.0"/> <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/> <feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/> <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,65 +9,128 @@
<style type="text/css">a:hover { text-decoration: underline; }</style> <style type="text/css">a:hover { text-decoration: underline; }</style>
</defs> </defs>
<g> <g>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018_impl.h#L9" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018_impl.h#L9" xlink:show="new" xlink:title="widget" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L9" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L9" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7ubfo1fvra2u)" height="99.2188" id="C_0000130502639682787993" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="13" y="8"/> <rect fill="#FEFECE" filter="url(#f137onr27zqppl)" height="107.2188" id="C_0000130502639682787993" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="40.5" y="8"/>
<ellipse cx="87.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="114.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M90.2188,29.6406 Q89.6406,29.9375 89,30.0781 Q88.3594,30.2344 87.6563,30.2344 Q85.1563,30.2344 83.8281,28.5938 Q82.5156,26.9375 82.5156,23.8125 Q82.5156,20.6875 83.8281,19.0313 Q85.1563,17.375 87.6563,17.375 Q88.3594,17.375 89,17.5313 Q89.6563,17.6875 90.2188,17.9844 L90.2188,20.7031 Q89.5938,20.125 89,19.8594 Q88.4063,19.5781 87.7813,19.5781 Q86.4375,19.5781 85.75,20.6563 Q85.0625,21.7188 85.0625,23.8125 Q85.0625,25.9063 85.75,26.9844 Q86.4375,28.0469 87.7813,28.0469 Q88.4063,28.0469 89,27.7813 Q89.5938,27.5 90.2188,26.9219 L90.2188,29.6406 Z "/> <path d="M117.7188,29.6406 Q117.1406,29.9375 116.5,30.0781 Q115.8594,30.2344 115.1563,30.2344 Q112.6563,30.2344 111.3281,28.5938 Q110.0156,26.9375 110.0156,23.8125 Q110.0156,20.6875 111.3281,19.0313 Q112.6563,17.375 115.1563,17.375 Q115.8594,17.375 116.5,17.5313 Q117.1563,17.6875 117.7188,17.9844 L117.7188,20.7031 Q117.0938,20.125 116.5,19.8594 Q115.9063,19.5781 115.2813,19.5781 Q113.9375,19.5781 113.25,20.6563 Q112.5625,21.7188 112.5625,23.8125 Q112.5625,25.9063 113.25,26.9844 Q113.9375,28.0469 115.2813,28.0469 Q115.9063,28.0469 116.5,27.7813 Q117.0938,27.5 117.7188,26.9219 L117.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="107.75" y="28.1543">impl::widget</text> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="135.25" y="28.1543">impl::widget</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="14" x2="243" y1="40" y2="40"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="41.5" x2="270.5" y1="40" y2="40"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L15" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L15" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="19" y="46"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="46.5" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="21" y="48"/> <ellipse cx="51.5" cy="51" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L15" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L15" xlink:show="new" xlink:title="widget" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="33" y="54.2104">n : int</text> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="60.5" y="54.2104">widget(int n) : void</text>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="14" x2="243" y1="60.8047" y2="60.8047"/> <line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="41.5" x2="270.5" y1="60.8047" y2="60.8047"/>
<ellipse cx="24" cy="71.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L13" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L13" xlink:show="new" xlink:title="draw" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="205" x="33" y="75.0151">draw(const widget &amp; w) const : void</text> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="46.5" y="66.8047"/>
<ellipse cx="24" cy="84.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="51.5" cy="71.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="33" y="87.8198">draw(const widget &amp; w) : void</text>
<ellipse cx="24" cy="97.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="33" y="100.6245">widget(int n) : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018.h#L17" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018.h#L17" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7ubfo1fvra2u)" height="176.0469" id="C_0001005661284373854088" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="6" y="184"/>
<ellipse cx="103.75" cy="200" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M106.7188,205.6406 Q106.1406,205.9375 105.5,206.0781 Q104.8594,206.2344 104.1563,206.2344 Q101.6563,206.2344 100.3281,204.5938 Q99.0156,202.9375 99.0156,199.8125 Q99.0156,196.6875 100.3281,195.0313 Q101.6563,193.375 104.1563,193.375 Q104.8594,193.375 105.5,193.5313 Q106.1563,193.6875 106.7188,193.9844 L106.7188,196.7031 Q106.0938,196.125 105.5,195.8594 Q104.9063,195.5781 104.2813,195.5781 Q102.9375,195.5781 102.25,196.6563 Q101.5625,197.7188 101.5625,199.8125 Q101.5625,201.9063 102.25,202.9844 Q102.9375,204.0469 104.2813,204.0469 Q104.9063,204.0469 105.5,203.7813 Q106.0938,203.5 106.7188,202.9219 L106.7188,205.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="124.25" y="204.1543">widget</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="250" y1="216" y2="216"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018.h#L18" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018.h#L18" xlink:show="new" xlink:title="pImpl" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L13" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L13" xlink:show="new" xlink:title="draw" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="222"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="205" x="60.5" y="75.0151">draw(const widget &amp; w) const : void</text>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="224"/>
</a> </a>
<a href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018.h#L18" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/9e366ddd9e09d983429895f8e46a11c95117963d/tests/t00018/t00018.h#L18" xlink:show="new" xlink:title="pImpl" xlink:type="simple"> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L14" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L14" xlink:show="new" xlink:title="draw" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="26" y="230.2104">pImpl : std::unique_ptr&lt;impl::widget&gt;</text> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="46.5" y="79.6094"/>
<ellipse cx="51.5" cy="84.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a> </a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="250" y1="236.8047" y2="236.8047"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L14" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L14" xlink:show="new" xlink:title="draw" xlink:type="simple">
<ellipse cx="17" cy="247.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="60.5" y="87.8198">draw(const widget &amp; w) : void</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="26" y="251.0151">draw() const : void</text> </a>
<ellipse cx="17" cy="260.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <line style="stroke: #A80036; stroke-width: 1.5;" x1="41.5" x2="270.5" y1="94.4141" y2="94.4141"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="26" y="263.8198">draw() : void</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" xlink:type="simple">
<ellipse cx="17" cy="273.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="46.5" y="100.4141"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="26" y="276.6245">shown() const : bool</text> <rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="48.5" y="102.4141"/>
<ellipse cx="17" cy="286.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> </a>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="26" y="289.4292">widget(int ) : void</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" xlink:type="simple">
<ellipse cx="17" cy="299.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="60.5" y="108.6245">n : int</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="89" x="26" y="302.2339">~widget() : void</text> </a>
<ellipse cx="17" cy="311.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L17" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L17" xlink:show="new" xlink:title="widget" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="26" y="315.0386">widget(widget &amp;&amp; ) : void</text> <rect fill="#FEFECE" filter="url(#f137onr27zqppl)" height="192.0469" id="C_0001005661284373854088" style="stroke: #A80036; stroke-width: 1.5;" width="300" x="6" y="192"/>
<ellipse cx="17" cy="324.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <ellipse cx="131.25" cy="208" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="26" y="327.8433">widget(const widget &amp; ) : void</text> <path d="M134.2188,213.6406 Q133.6406,213.9375 133,214.0781 Q132.3594,214.2344 131.6563,214.2344 Q129.1563,214.2344 127.8281,212.5938 Q126.5156,210.9375 126.5156,207.8125 Q126.5156,204.6875 127.8281,203.0313 Q129.1563,201.375 131.6563,201.375 Q132.3594,201.375 133,201.5313 Q133.6563,201.6875 134.2188,201.9844 L134.2188,204.7031 Q133.5938,204.125 133,203.8594 Q132.4063,203.5781 131.7813,203.5781 Q130.4375,203.5781 129.75,204.6563 Q129.0625,205.7188 129.0625,207.8125 Q129.0625,209.9063 129.75,210.9844 Q130.4375,212.0469 131.7813,212.0469 Q132.4063,212.0469 133,211.7813 Q133.5938,211.5 134.2188,210.9219 L134.2188,213.6406 Z "/>
<ellipse cx="17" cy="337.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="151.75" y="212.1543">widget</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="26" y="340.6479">operator=(widget &amp;&amp; ) : widget &amp;</text> <line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="305" y1="224" y2="224"/>
<ellipse cx="17" cy="350.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/> </a>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="26" y="353.4526">operator=(const widget &amp; ) : widget &amp;</text> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L24" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L24" xlink:show="new" xlink:title="widget" xlink:type="simple">
<path d="M123.49,107.03 C122.66,116.94 121.93,127.29 121.5,137 C120.9,150.47 120.93,164.7 121.33,178.66 " fill="none" id="C_0000130502639682787993-&gt;C_0001005661284373854088" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/> <rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="230"/>
<polygon fill="#A80036" points="121.5,183.79,125.2153,174.6688,121.3429,178.7925,117.2193,174.9201,121.5,183.79" style="stroke: #A80036; stroke-width: 1.0;"/> <ellipse cx="17" cy="235" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<path d="M128.5,170.43 C128.5,148.43 128.5,126.11 128.5,107.25 " fill="none" id="C_0001005661284373854088&lt;-C_0000130502639682787993" style="stroke: #A80036; stroke-width: 1.0;"/> </a>
<polygon fill="#FFFFFF" points="128.5,183.68,132.5,177.68,128.5,171.68,124.5,177.68,128.5,183.68" style="stroke: #A80036; stroke-width: 1.0;"/> <a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L24" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L24" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="131.5" y="143.0664"/> <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="26" y="238.2104">widget(int) : void</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="141.5" y="150.0669">pImpl</text> </a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L27" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L27" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="242.8047"/>
<ellipse cx="17" cy="247.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L27" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L27" xlink:show="new" xlink:title="widget" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="26" y="251.0151">widget(widget &amp;&amp;) : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L29" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L29" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="255.6094"/>
<ellipse cx="17" cy="260.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L29" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L29" xlink:show="new" xlink:title="widget" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="26" y="263.8198">widget(const widget &amp;) = deleted : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L25" target="_top" title="~widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L25" xlink:show="new" xlink:title="~widget" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="268.4141"/>
<ellipse cx="17" cy="273.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L25" target="_top" title="~widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L25" xlink:show="new" xlink:title="~widget" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="89" x="26" y="276.6245">~widget() : void</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="305" y1="283.2188" y2="283.2188"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L30" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L30" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="289.2188"/>
<ellipse cx="17" cy="294.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L30" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L30" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="26" y="297.4292">operator=(widget &amp;&amp;) : widget &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L31" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L31" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="302.0234"/>
<ellipse cx="17" cy="307.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L31" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L31" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="26" y="310.2339">operator=(const widget &amp;) = deleted : widget &amp;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="305" y1="316.8281" y2="316.8281"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L21" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L21" xlink:show="new" xlink:title="draw" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="322.8281"/>
<ellipse cx="17" cy="327.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L21" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L21" xlink:show="new" xlink:title="draw" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="26" y="331.0386">draw() const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L22" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L22" xlink:show="new" xlink:title="draw" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="335.6328"/>
<ellipse cx="17" cy="340.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L22" target="_top" title="draw" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L22" xlink:show="new" xlink:title="draw" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="26" y="343.8433">draw() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L23" target="_top" title="shown" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L23" xlink:show="new" xlink:title="shown" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="348.4375"/>
<ellipse cx="17" cy="353.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L23" target="_top" title="shown" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L23" xlink:show="new" xlink:title="shown" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="26" y="356.6479">shown() const : bool</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="305" y1="363.2422" y2="363.2422"/>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L18" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L18" xlink:show="new" xlink:title="pImpl" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="369.2422"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="371.2422"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L18" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L18" xlink:show="new" xlink:title="pImpl" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="26" y="377.4526">pImpl : std::unique_ptr&lt;impl::widget&gt;</text>
</a>
<path d="M150.85,115.27 C150.08,125.14 149.41,135.38 149,145 C148.43,158.51 148.42,172.74 148.76,186.76 " fill="none" id="C_0000130502639682787993-&gt;C_0001005661284373854088" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="148.91,191.91,152.6773,182.8102,148.7815,186.9117,144.68,183.0158,148.91,191.91" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M156,178.29 C156,156.29 156,134.11 156,115.14 " fill="none" id="C_0001005661284373854088&lt;-C_0000130502639682787993" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="156,191.57,160,185.57,156,179.57,152,185.57,156,191.57" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="159" y="151.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="169" y="158.0669">pImpl</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,192 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 300 506" style="max-width: 300px; background-color: white;" width="300" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M135.62710900821597,153L134.50371063184664,158.66666666666666C133.38031225547732,164.33333333333334,131.13351550273865,175.66666666666666,130.7036935152582,187C130.2738715277778,198.33333333333334,131.66102430555557,209.66666666666666,132.35460069444446,215.33333333333334L133.04817708333334,221"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M166.95182291666666,221L167.64539930555554,215.33333333333334C168.33897569444443,209.66666666666666,169.7261284722222,198.33333333333334,169.2963064847418,187C168.86648449726135,175.66666666666666,166.61968774452268,164.33333333333334,165.49628936815336,158.66666666666666L164.37289099178403,153"/>
</g>
<g class="edgeLabels">
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(171.11328125, 187)" class="edgeLabel">
<g transform="translate(-22.2265625, -9)" class="label">
<foreignObject height="18" width="44.453125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">-pImpl</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(150, 80.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018_impl.h#L9">
<g title="widget" id="classId-C_0000130502639682787993-0" class="node default clickable">
<rect height="145" width="284" y="-72.5" x="-142" class="outer title-state"/>
<line y2="-42.5" y1="-42.5" x2="142" x1="-142" class="divider"/>
<line y2="-4.5" y1="-4.5" x2="142" x1="-142" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -47.109375, -65)" height="18" width="94.21875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">impl::widget</span>
</div>
</foreignObject>
<foreignObject transform="translate( -134.5, -31)" height="18" width="44.46875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-n : int</span>
</div>
</foreignObject>
<foreignObject transform="translate( -134.5, 3)" height="18" width="139.1875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+widget(int n) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -134.5, 25)" height="18" width="269">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+draw(const widget &amp; w) : [const] void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -134.5, 47)" height="18" width="217.421875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+draw(const widget &amp; w) : void</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(150, 359.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/3fcb00e8eb38e5b9b76eaf306048df16b2727330/tests/t00018/t00018.h#L17">
<g title="widget" id="classId-C_0001005661284373854088-1" class="node default clickable">
<rect height="277" width="282.703125" y="-138.5" x="-141.3515625" class="outer title-state"/>
<line y2="-108.5" y1="-108.5" x2="141.3515625" x1="-141.3515625" class="divider"/>
<line y2="-70.5" y1="-70.5" x2="141.3515625" x1="-141.3515625" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -25.3359375, -131)" height="18" width="50.671875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">widget</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, -97)" height="18" width="266.8125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">-pImpl : std::unique_ptr&lt;impl::widget&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, -63)" height="18" width="125.84375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+widget(int) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, -41)" height="18" width="180.984375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+widget(widget &amp;&amp;) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, -19)" height="18" width="213">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+widget(const widget &amp;) : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, 3)" height="18" width="118.28125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+~widget() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, 25)" height="18" width="235.6875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+operator=(widget &amp;&amp;) : widget &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, 47)" height="18" width="267.703125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+operator=(const widget &amp;) : widget &amp;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, 69)" height="18" width="148.953125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+draw() : [const] void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, 91)" height="18" width="97.375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+draw() : void</span>
</div>
</foreignObject>
<foreignObject transform="translate( -133.8515625, 113)" height="18" width="161.421875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+shown() : [const] bool</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More